[M3commit] CVS Update: cm3
Jay Krell
jkrell at elego.de
Sat Nov 20 13:48:03 CET 2010
CVSROOT: /usr/cvs
Changes by: jkrell at birch. 10/11/20 13:48:03
Modified files:
cm3/m3-sys/m3cc/gcc/gcc/m3cg/: parse.c
Log message:
restore TREE_SIDE_EFFECTS
see recent change:
Mon Nov 1 08:15:22 2010 MET (2 weeks, 5 days ago) by jkrell
remove all but one use of TREE_SIDE_EFFECTS
optimized m3core and libm3 are unchanged
presumably unoptimized is also unchanged
and maybe add a few more
on all MODIFY_EXPR, BIND_EXPR, and calls
and on volatile load/store (which we have very few of)
It isn't automatic on those though?
This is based on a quick perusal of the C frontend.
I was really wondering what they do for nested functions,
but ended up fixating on their add_stmt => add_to_statement_list_force
vs. our add_stmt => add_to_statement_list which varies
in that non-force doen't add if not TREE_SIDE_EFFECTS.
I also don't know why we have TREE_USED in add_stmt. Left alone,
just added a comment.
Allow inlining in *modules* that have *no* nested functions,
but not at all in *modules* that have *any* nested functions.
I tried just nested functions and/or their parents, that's not enough.
A little better but still not very good.
It seems some of the previously broken cases for optimization
aren't broken now. But still, overall, reenabling any/many
of the few we have disabled, break somewhere.
And some of this is probably related to type info or its absense.
Continue punting for now.
More information about the M3commit
mailing list