Hi,
find_cond_trap introduce invalid sharing by passing condition stolen
randomly from the RTL instructions into gen_cond_trap.
This shows up on gcc.c-torture on PPC64 with sharing checker.
Bootstrapped/regtsted i686-linux (and ppc-linux with checker in)
OK?
Honza
* ifcvt.c (find_cond_trap): Avoid invalid RTL sharing.
Index: ifcvt.c
===================================================================
--- ifcvt.c (revision 126141)
+++ ifcvt.c (working copy)
@@ -3311,8 +3311,8 @@
}
/* Attempt to generate the conditional trap. */
- seq = gen_cond_trap (code, XEXP (cond, 0),
- XEXP (cond, 1),
+ seq = gen_cond_trap (code, copy_rtx (XEXP (cond, 0)),
+ copy_rtx (XEXP (cond, 1)),
TRAP_CODE (PATTERN (trap)));
if (seq == NULL)
return FALSE;