[LLVMdev] Strong PHI elimination asserts in RegisterCoalescer.C:1388

Cameron Zwarich zwarich at apple.com
Wed Jun 20 16:15:48 PDT 2012


Okay, maybe I'll just try turning it on and look for any obvious problems on x86 test cases.

I think the plan is still to move phi elimination into RegisterCoalescer and only insert actual copies on interference like StrongPHIElimination does, but I shouldn't speak too strongly on behalf of the people who will actually do the work. :)

Cameron

On Jun 20, 2012, at 4:13 PM, Andrew Clinton wrote:

> I will try to make a standalone test case but the one that is failing uses a custom back end, so it's not really portable.
> 
> So is the plan to have the strong PHI elimination behavior rolled into other passes?
> 
> Andrew
> 
> On 06/20/2012 06:54 PM, Cameron Zwarich wrote:
>> I'm the person who wrote it, and it's not really maintained, as we decided we wanted to go in a different direction long-term by having fewer passes making independent coalescing decisions rather than more. At the time I stopped working on it, it worked fine on x86 but caused problems with armv7 NEON code.
>> 
>> If you file a PR with a test case, I am happy to take a quick look and try to fix it. There have been some changes to the backend that might not have been updated correctly in StrongPHIElimination.
>> 
>> Cameron
>> 
>> On Jun 20, 2012, at 3:47 PM, Andrew Clinton wrote:
>> 
>>> I've started using the strong PHI elimination pass, and it seems to work beautifully (producing much better placement of copy instructions) - though I'm seeing that it triggers an assert in debug+assert builds.  The assertion is on line 1388 of RegisterCoalescer.C.  Attached is the -debug output from the machine optimization part of the optimizer, for the simplest test case I could create that triggers this behavior.
>>> 
>>> Any idea what might be going wrong?  Are there known issues with strong PHI elimination?
>>> 
>>> Andrew
>>> <log_debug_coalescing.txt>_______________________________________________
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 




More information about the llvm-dev mailing list