[llvm-dev] A bug related with undef value when bootstrapMemorySSA.cpp

Nuno Lopes via llvm-dev llvm-dev at lists.llvm.org
Mon Jul 17 15:22:25 PDT 2017

>> On Mon, Jul 17, 2017 at 11:18 AM, Sanjoy Das via llvm-dev 
>> <llvm-dev at lists.llvm.org> wrote:
>>  Hi,
>> On Mon, Jul 17, 2017 at 10:32 AM, Xinliang David Li <davidxl at google.com> 
>> wrote:
>>> The issue blocks another optimization patch and Wei has spent huge 
>>> amount of
>>> effort isolating the the bootstrap failure to this same problem. I agree
>>> with Wei that other developers may also get hit by the same issue and 
>>> the
>>> cost of leaving this issue open for long can be very high to the 
>>> community.
>> I can't speak for others, but I am fine with adding a workaround for
>> this.  However, I suspect isGuaranteedNotToBeUndefOrPoison in
>> LoopUnswitch may regress other benchmarks.
> Any other thoughts on a more minimal fix?
> Otherwise, it sounds like we can only try to find the fix that does the 
> least damage.
> We can't just leave it broken given it's triggering even in llvm 
> bootstraps now :(

Well, I don't think there's an easy fix for this..
The only suggestion I can help to improve isGuaranteedNotToBeUndefOrPoison() 
is to tweak the pass manager to say if all inter-procedural stuff is done 
such that this function can consider all arguments and global as 
non-poisonous. That probably will improve the precision significantly.
I can't think of any easy hack otherwise.


More information about the llvm-dev mailing list