This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
More CFG branch merge lossage
- From: Richard Earnshaw <rearnsha at buzzard dot freeserve dot co dot uk>
- To: Jan Hubicka <jh at suse dot cz>, gcc-bugs at gcc dot gnu dot org
- Cc: Richard dot Earnshaw at buzzard dot freeserve dot co dot uk
- Date: Sat, 09 Mar 2002 16:15:05 +0000
- Subject: More CFG branch merge lossage
- Reply-to: Richard dot Earnshaw at buzzard dot freeserve dot co dot uk
Jan,
Here's another bug that seems to be a result of your recent CFG merges.
On an ARM target (arm-netbsd/arm-elf), the following code will abort in
verify_local_live_at_start() when called after sched2.
This is causing a bootstrap failure while building jcf-write.c
void foo(int);
void f (int a, int b, int c)
{
int x;
if (a)
x = b > 0 ? 7 : 0;
else
x = c > 0 ? 9 : 0;
foo(x);
}
Until reload is completed, the two asignement expressions are handled as
if_then_else expressions. After reload these are split into conditional
execution insns. The new feature seems to be that the false arms of both
expressions are being merged and that this is sufficient to confuse the
conditional-life tracking that we perform.
R.