When ALLOCATE_INITIAL_VALUE, allocate_initial_values will replace a pseudo with a machine-defined value, but it won't update the register liveness information. This can lead to incorrect global allocations. An incomplete conflict list can be observed compiling execute/pr17377.c at -O2 for sh64-elf. If this leads to an actual execution failure depends on details of if-conversion, the machine description and register allocation, which are subject to change.
-- Summary: allocate_initial_values does not adjust register liveness information Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P2 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: amylaar at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20793