------- 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 <[EMAIL PROTECTED]> > > * 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