[llvm] r233447 - [SCEV] Look at backedge dominating conditions.

Sanjoy Das sanjoy at playingwithpointers.com
Wed Apr 1 11:33:43 PDT 2015


I just re-landed r233447 + a fix as rL233829. The new change has a fix
that avoids the compile-time blowup in 1.i.  Please let me know if the
fix does not fix other cases you care about.

-- Sanjoy

On Tue, Mar 31, 2015 at 3:35 AM, Evgeniy Stepanov <eugenis at google.com> wrote:
> You latest patch does not help.
> Attaching a sample source file (this is a pre-processed bn_asm.c from
> openssl with a custom config).
> Build with -fsanitize=memory -O1.
>
>
>
> On Tue, Mar 31, 2015 at 1:27 AM, Sanjoy Das
> <sanjoy at playingwithpointers.com> wrote:
>>> The isSingleEdge() call you make in this patch will be linear time, sadly ;(
>>
>> Yes, looks like isSingleEdge is O(# of successors).  It should be
>> possible to write a faster but less precise version of isSingleEdge
>> such that it only looks at blocks with two successors.  I think I can
>> also exploit LoopInfo::isLoopExiting to make this faster.
>>
>> However, before I do any of the above, I want to understand what
>> actually is causing the slowdown. :)
>>
>> -- Sanjoy



More information about the llvm-commits mailing list