[llvm] r280268 - Add an optional parameter with a list of undefs to extendToIndices

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 31 15:46:24 PDT 2016


Reverted this and dependent change in r280301.

On Wed, Aug 31, 2016 at 3:37 PM, Reid Kleckner <rnk at google.com> wrote:

> This causes MSVC 2013 to ICE:
> http://lab.llvm.org:8011/builders/clang-x86-win2008-
> selfhost/builds/9998/steps/build%20stage%201/logs/stdio
>
> You would have received email but the bot was broken for *other* reasons
> relating to ELFDumper.cpp, which I hope Saleem dealt with.
>
> On Wed, Aug 31, 2016 at 11:02 AM, Krzysztof Parzyszek via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: kparzysz
>> Date: Wed Aug 31 13:02:19 2016
>> New Revision: 280268
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=280268&view=rev
>> Log:
>> Add an optional parameter with a list of undefs to extendToIndices
>>
>> Modified:
>>     llvm/trunk/include/llvm/CodeGen/LiveIntervalAnalysis.h
>>     llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp
>>
>> Modified: llvm/trunk/include/llvm/CodeGen/LiveIntervalAnalysis.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/
>> CodeGen/LiveIntervalAnalysis.h?rev=280268&r1=280267&r2=280268&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/include/llvm/CodeGen/LiveIntervalAnalysis.h (original)
>> +++ llvm/trunk/include/llvm/CodeGen/LiveIntervalAnalysis.h Wed Aug 31
>> 13:02:19 2016
>> @@ -164,14 +164,19 @@ extern cl::opt<bool> UseSegmentSetForPhy
>>      void shrinkToUses(LiveInterval::SubRange &SR, unsigned Reg);
>>
>>      /// Extend the live range @p LR to reach all points in @p Indices.
>> The
>> -    /// points in the @p Indices array must be jointly dominated by
>> existing
>> -    /// defs in @p LR. PHI-defs are added as needed to maintain SSA form.
>> +    /// points in the @p Indices array must be jointly dominated by the
>> union
>> +    /// of the existing defs in @p LR and points in @p Undefs.
>> +    ///
>> +    /// PHI-defs are added as needed to maintain SSA form.
>>      ///
>>      /// If a SlotIndex in @p Indices is the end index of a basic block,
>> @p LR
>>      /// will be extended to be live out of the basic block.
>> +    /// If a SlotIndex in @p Indices is jointy dominated only by points
>> in
>> +    /// @p Undefs, the live range will not be extended to that point.
>>      ///
>>      /// See also LiveRangeCalc::extend().
>> -    void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices);
>> +    void extendToIndices(LiveRange &LR, ArrayRef<SlotIndex> Indices,
>> +                         ArrayRef<SlotIndex> Undefs = {});
>>
>>      /// If @p LR has a live value at @p Kill, prune its live range by
>> removing
>>      /// any liveness reachable from Kill. Add live range end points to
>>
>> Modified: llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/
>> LiveIntervalAnalysis.cpp?rev=280268&r1=280267&r2=280268&view=diff
>> ============================================================
>> ==================
>> --- llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/LiveIntervalAnalysis.cpp Wed Aug 31 13:02:19
>> 2016
>> @@ -568,11 +568,12 @@ void LiveIntervals::shrinkToUses(LiveInt
>>  }
>>
>>  void LiveIntervals::extendToIndices(LiveRange &LR,
>> -                                    ArrayRef<SlotIndex> Indices) {
>> +                                    ArrayRef<SlotIndex> Indices,
>> +                                    ArrayRef<SlotIndex> Undefs) {
>>    assert(LRCalc && "LRCalc not initialized.");
>>    LRCalc->reset(MF, getSlotIndexes(), DomTree, &getVNInfoAllocator());
>>    for (unsigned i = 0, e = Indices.size(); i != e; ++i)
>> -    LRCalc->extend(LR, Indices[i], /*PhysReg=*/0, /*Undefs=*/{});
>> +    LRCalc->extend(LR, Indices[i], /*PhysReg=*/0, Undefs);
>>  }
>>
>>  void LiveIntervals::pruneValue(LiveRange &LR, SlotIndex Kill,
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160831/968f2f3a/attachment.html>


More information about the llvm-commits mailing list