[llvm-commits] PATCH: Fix AddressSanitizer to emit basic blocks in the natural order for the CFG

Chandler Carruth chandlerc at gmail.com
Tue Jul 10 09:21:25 PDT 2012


On Tue, Jul 10, 2012 at 9:13 AM, Jakob Stoklund Olesen <stoklund at 2pi.dk>wrote:

>
> On Jul 10, 2012, at 8:50 AM, Chandler Carruth <chandlerc at gmail.com> wrote:
>
> On Tue, Jul 10, 2012 at 8:33 AM, Jakob Stoklund Olesen <stoklund at 2pi.dk>wrote:
>
>> FWIW, I am planning to rip out LiveVariables and compute LiveIntervals
>> directly from the machine code using LiveRangeCalc. This is already done
>> for regunit liveness. This may help the constant factor, but it is still
>> the same algorithm.
>>
>
> Hrm... I wonder if it's worth having an adaptive algorithm so that we bail
> out quickly when the structure of the function is going to quickly go
> quadratic with the algorithm? Even if it costs some optimization, that
> would seem better than grinding codegen to a halt.
>
>
> Unfortunately, we can't bail out of register allocation.
>

But is there a cheaper algorithm we could fall over to? I don't know the
first thing about regalloc, so maybe this doesn't make sense. Just trying
to get a feel for whether this is solvable within the backend, or we simply
must not produce such inputs.


>
> That said, about 40% of what the profile is showing (which  may or may not
> be that accurate sadly...) isn't out of LiveVariables, its
> TwoAddressInstructionPass (and its helper findLocalKills). I'm going to
> work on that one and see if I can get that to go away -- it doesn't look
> inherently slow at first glance.
>
>
> Good idea.
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120710/6d390ed2/attachment.html>


More information about the llvm-commits mailing list