This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] Fix Ada bootstrap (was: 16: EH redirection)

On Mon, Apr 27, 2009 at 6:16 PM, Steven Bosscher <> wrote:
> On Mon, Apr 27, 2009 at 4:28 PM, Jan Hubicka <> wrote:
>>> This is the patch I am testing (x86_64-linux) and will commit once
>>> passes. ?The problem here is that removing dead TRY region imply need to
>>> update prev_try pointers in the subregions. ?This is actually ages old
>>> bug, I am surprised it did not lead to any wrong code issues.
>>> There is still one ICE on ada testsuite in my run. ?This one is caused
>>> by dominance calcuation being called in forprop2 on CFG containing dead
>>> code. ?Seems weird since preceeding CCP calls cfgcleanup.
>> Actually it is RTL fwprop2 ?and problem seems to be introduced by fact
>> that CSE calls cleanup_cfg only conditionally while it can produce dead
>> BBs.
>> Steven, since I think you are responsible for the conditional cfgcleanup
>> here, do you have any preferrences how to fix this?
> CSE should cleanup_cfg when cse_main modifies jumps. cse_main returns
> non-zero in this case. From cse.c:cse_main():
> /* Perform cse on the instructions of a function.
> ? F is the first instruction.
> ? NREGS is one plus the highest pseudo-reg number used in the instruction.
> ? Return 2 if jump optimizations should be redone due to simplifications
> ? in conditional jump instructions.
> ? Return 1 if the CFG should be cleaned up because it has been modified.
> ? Return 0 otherwise. ?*/
> int
> cse_main (rtx f ATTRIBUTE_UNUSED, int nregs)
> {
> (...etc...)
> If CSE introduces unreachable basic blocks and cse_main does *not*
> return non-zero, then cse_main is broken.

This issue is now triggered during bootstrap by some Ada RTS changes,
thus Ada bootstrap is now broken on at least x86_64-linux.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]