[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