[llvm-commits] PATCH: Fix AddressSanitizer to emit basic blocks in the natural order for the CFG
chandlerc at gmail.com
Tue Jul 10 11:21:25 CDT 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
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-commits