This is the mail archive of the gcc@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]

Missed opportunity in cselib.c/postreload?


Hi,
I am investigating pr54133. For following dump insns before postreload:
  130 r2:DF=1.0e+1
   77 r0:DF=call [`__aeabi_ddiv'] argc:0
      REG_EH_REGION: 0xffffffff80000000
   78 r4:DF=r0:DF
  144 r2:DF=[sp:SI+0x28]
   80 [sp:SI]=r2:DF
  145 r2:DF=[sp:SI+0x38]
   81 [sp:SI+0x8]=r2:DF
  146 r2:DF=[sp:SI+0x48]
   82 [sp:SI+0x10]=r2:DF
   83 r0:DF=r4:DF
   84 r2:DF=[sp:SI+0x18]
   85 r0:DF=call [`bar'] argc:0x18
  147 r2:DF=[sp:SI+0x30]
   86 [sp:SI]=r2:DF
  148 r2:DF=[sp:SI+0x40]
   87 [sp:SI+0x8]=r2:DF
  149 r2:DF=[sp:SI+0x50]
   88 [sp:SI+0x10]=r2:DF
   89 r0:DF=r4:DF
   90 r2:DF=[sp:SI+0x20]
   91 r0:DF=call [`bar'] argc:0x18

r0 in 78 should be propagated into 83 and have it DCEd.
But problem is function cselib_hash_rtx treats call_insn un-hashable,
causing r0:DF won't be recorded or propagated.

So why call_insn is not hashed here? Am I missing something?
Thanks very much.
-- 
Best Regards.


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