This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Bug in reload_cse_move2add()
- To: Alexandre Oliva <aoliva at redhat dot com>
- Subject: Re: Bug in reload_cse_move2add()
- From: Richard Earnshaw <rearnsha at arm dot com>
- Date: Tue, 16 Jan 2001 20:35:37 +0000
- cc: Richard Earnshaw <rearnsha at buzzard dot freeserve dot co dot uk>, Joern Rennecke <amylaar at redhat dot com>, rearnsha at arm dot com, gcc-patches at gcc dot gnu dot org, law at redhat dot com
- Organization: ARM Ltd.
- Reply-To: rearnsha at arm dot com
I've only had a look at this quickly, but two immediate things aren't
clear to me.
1) We don't appear to note where a conditional jump may branch back in the
source, hence a loop of the form
L1
...
incr (reg)
...
b<cond> L1
reg=const
might not see the multiple increments (why does the main loop in
reload_cse_move2add not handle JUMP_INSNs?)
2) There doesn't appear to be any handling of conditional execution in
move2add_note_stores? I don't think this is the test case I sent you, but
do we correctly invalidate information when a register is conditionally
updated? (note that although ce2 pass hasn't run at this time, since
reload_completed==1, split_insns will split (set () (if_then_else ...)
into conditional move expressions).
R.