This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
REG_INC notes going AWOL during reload
- To: egcs-bugs at cygnus dot com
- Subject: REG_INC notes going AWOL during reload
- From: Michael Hayes <m dot hayes at elec dot canterbury dot ac dot nz>
- Date: Sat, 20 Feb 1999 23:37:37 +1300 (NZDT)
I'm having a problem with REG_INC notes disappearing during reload
(usually ending up on the wrong insns). As a consequence, the dead
store code in the second flow pass doesn't work properly and deletes
some useful insns.
For example, consider the insn:
(insn 60 59 62 (parallel[
(set (reg:QI 50)
(plus:QI (mem:QI (pre_dec:QI (reg/v:QI 37)) 0)
(const_int 1)))
(clobber (reg:CC_NOOV 21 st))
] ) 36 {*addqi3_clobber} (nil)
(expr_list:REG_INC (reg/v:QI 37)
(expr_list:REG_UNUSED (reg:CC_NOOV 21 st)
(nil))))
If the first operand for the PLUS is reloaded then we emit a new insn
which has the address side effect, but the reloaded insn still has the
REG_INC note.
I suppose we should recreate the REG_INC notes during the second flow
pass to fix this problem. Any other suggestions?
Michael.