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