[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