This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/19464] [3.3/3.4/4.0 Regression] gcse causes poor register allocation


------- Additional Comments From dberlin at gcc dot gnu dot org  2005-01-15 21:44 -------
Subject: Re:  New: [3.3/3.4/4.0 Regression]
	gcse causes poor register allocation


> This is a regression and was introduced by this change:

I have a very hard time believing this, since the patch below only
touched store motion.

> 
> 2001-07-16  Daniel Berlin  <dan@cgsoftware.com>
> 
> 	* gcse.c: Update comment at top. 
> 	Update comment on mem handling.
> 	mem_last_set, mem_first_set, mem_set_in_block: gone.
> 	Declaration of reg_set_info: gone.
> 	(oprs_unchanged_p): Don't use mem_*set_* anymore. They are
> 	pointless with load_killed_in_block_p (they are *more*
> 	conservative then it, not less, and less accurate).
> 	(oprs_not_set_p): Ditto.	
> 	(alloc_gcse_mem): Don't allocate mem_set_in_block
> 	(free_gcse_mem): Don't free it, either.
> 	(record_last_mem_set_info): Update comment in front, remove
> 	mem_*set_* stuff. Note the reason we don't handle stores directly
> 	here.
> 	(compute_hash_table): Update comments to reflect reality. Remove
> 	mem_*set_* references.
> 	(reset_opr_set_tables): Remove mem_*set_* references.
> 	(mark_call): Ditto.
> 	(mark_set): Ditto.  Also remove double sets of bitmaps for REG's.	
> 	(mark_clobber): Ditto (on both parts, we double set here too).
> 	(expr_killed_p): Remove mem_set_in_block test.
> 	(compute_transp): Remove mem_set_in_block test.
> 



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19464


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]