<html><head><style>body{font-family:Helvetica,Arial;font-size:13px}</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">I have triggered a system wide clean of the workspaces. Lets see if that fixes it.</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">It could also be a cmake issue, this is one of the first cmake builds we run.</div> <br> <div id="bloop_sign_1468258842991363072" class="bloop_sign"></div> <br><p class="airmail_on">On July 11, 2016 at 10:14:11 AM, Quentin Colombet (<a href="mailto:qcolombet@apple.com">qcolombet@apple.com</a>) wrote:</p> <blockquote type="cite" class="clean_bq"><span><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div></div><div>
<title></title>
Hi Chris,
<div class=""><br class=""></div>
<div class="">Is there a way to check what is on the
buildslave?</div>
<div class=""><br class=""></div>
<div class="">It looks as if it did not updated the header
file.</div>
<div class=""><br class=""></div>
<div class="">Cheers,</div>
<div class="">-Quentin<br class="">
<div>
<blockquote type="cite" class="">
<div class="">On Jul 9, 2016, at 11:24 PM, Lang Hames <<a href="mailto:lhames@gmail.com" class="">lhames@gmail.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="ltr" class="">Hi Wei,
<div class=""><br class=""></div>
<div class="">I am still seeing failures on the
buildbots: <a href="http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_build/" class="">http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_build/</a>
, but you're right the code looks ok to me. Quentin, Chris - could
this be a builder config issue?</div>
<div class=""><br class=""></div>
<div class="">- Lang.</div>
<div class=""><br class=""></div>
<div class=""><br class=""></div>
</div>
<div class="gmail_extra"><br class="">
<div class="gmail_quote">On Sat, Jul 9, 2016 at 11:05 AM, Wei Mi
<span dir="ltr" class=""><<a href="mailto:wmi@google.com" target="_blank" class="">wmi@google.com</a>></span>
wrote:<br class="">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi
Lang,<br class="">
<br class="">
Sorry, I am little confused. I check the program and cannot see
any<br class="">
discrepancy reported in the error log, and I also cannot reproduce
the<br class="">
error in clang bootstrap build. Is it anything related
with<br class="">
incremental build?<br class="">
<br class="">
Thanks,<br class="">
Wei.<br class="">
<div class="HOEnZb">
<div class="h5"><br class="">
On Sat, Jul 9, 2016 at 9:28 AM, Wei Mi <<a href="mailto:wmi@google.com" class="">wmi@google.com</a>>
wrote:<br class="">
> Sorry, I will fix it.<br class="">
><br class="">
> Thanks,<br class="">
> Wei.<br class="">
><br class="">
> On Sat, Jul 9, 2016 at 9:03 AM, Lang Hames <<a href="mailto:lhames@gmail.com" class="">lhames@gmail.com</a>>
wrote:<br class="">
>> Hi Wei,<br class="">
>><br class="">
>> This appears to have broken the bots:<br class="">
>> <a href="http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_build/27331/" rel="noreferrer" target="_blank" class="">http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_build/27331/</a><br class="">
>><br class="">
>> Could you please fix or revert?<br class="">
>><br class="">
>> Cheers,<br class="">
>> Lang.<br class="">
>><br class="">
>><br class="">
>> On Fri, Jul 8, 2016 at 2:08 PM, Wei Mi via
llvm-commits<br class="">
>> <<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a>> wrote:<br class="">
>>><br class="">
>>> Author: wmi<br class="">
>>> Date: Fri Jul 8 16:08:09 2016<br class="">
>>> New Revision: 274928<br class="">
>>><br class="">
>>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=274928&view=rev" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=274928&view=rev</a><br class="">
>>> Log:<br class="">
>>> Allow dead insts to be kept in DeadRemat only when
they are<br class="">
>>> rematerializable.<br class="">
>>><br class="">
>>> Because isReallyTriviallyReMaterializableGeneric puts
many limits on<br class="">
>>> rematerializable instructions, this fix can prevent
instructions with<br class="">
>>> tied virtual operands and instructions with virtual
register uses from<br class="">
>>> being kept in DeadRemat, so as to workaround the live
interval consistency<br class="">
>>> problem for the dummy instructions kept in
DeadRemat.<br class="">
>>><br class="">
>>> But we still need to fix the live interval consistency
problem. This patch<br class="">
>>> is just a short time relieve. PR28464 has been filed
as a reminder.<br class="">
>>><br class="">
>>> Differential Revision: <a href="http://reviews.llvm.org/D19486" rel="noreferrer" target="_blank" class="">http://reviews.llvm.org/D19486</a><br class="">
>>><br class="">
>>> Modified:<br class="">
>>>
llvm/trunk/include/llvm/CodeGen/LiveRangeEdit.h<br class="">
>>>
llvm/trunk/lib/CodeGen/InlineSpiller.cpp<br class="">
>>>
llvm/trunk/lib/CodeGen/LiveRangeEdit.cpp<br class="">
>>>
llvm/trunk/lib/CodeGen/RegAllocGreedy.cpp<br class="">
>>>
llvm/trunk/lib/CodeGen/SplitKit.cpp<br class="">
>>>
llvm/trunk/lib/CodeGen/SplitKit.h<br class="">
>>><br class="">
>>> Modified:
llvm/trunk/include/llvm/CodeGen/LiveRangeEdit.h<br class="">
>>> URL:<br class="">
>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/LiveRangeEdit.h?rev=274928&r1=274927&r2=274928&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/LiveRangeEdit.h?rev=274928&r1=274927&r2=274928&view=diff</a><br class="">
>>><br class="">
>>>
==============================================================================<br class="">
>>> --- llvm/trunk/include/llvm/CodeGen/LiveRangeEdit.h
(original)<br class="">
>>> +++ llvm/trunk/include/llvm/CodeGen/LiveRangeEdit.h
Fri Jul 8 16:08:09<br class="">
>>> 2016<br class="">
>>> @@ -100,7 +100,8 @@ private:<br class="">
>>>
SmallVector<LiveInterval*, 8>,<br class="">
>>>
SmallPtrSet<LiveInterval*, 8> >
ToShrinkSet;<br class="">
>>> /// Helper for
eliminateDeadDefs.<br class="">
>>> - void eliminateDeadDef(MachineInstr *MI,
ToShrinkSet &ToShrink);<br class="">
>>> + void eliminateDeadDef(MachineInstr *MI,
ToShrinkSet &ToShrink,<br class="">
>>> +
AliasAnalysis *AA);<br class="">
>>><br class="">
>>> /// MachineRegisterInfo callback to
notify when new virtual<br class="">
>>> /// registers are created.<br class="">
>>> @@ -242,7 +243,8 @@ public:<br class="">
>>> /// allocator. These registers
should not be split into new intervals<br class="">
>>> /// as currently those new intervals are
not guaranteed to spill.<br class="">
>>> void
eliminateDeadDefs(SmallVectorImpl<MachineInstr *>
&Dead,<br class="">
>>> -
ArrayRef<unsigned>
RegsBeingSpilled = None);<br class="">
>>> +
ArrayRef<unsigned>
RegsBeingSpilled = None,<br class="">
>>> +
AliasAnalysis *AA =
nullptr);<br class="">
>>><br class="">
>>> /// calculateRegClassAndHint - Recompute
register class and hint for<br class="">
>>> each new<br class="">
>>> /// register.<br class="">
>>><br class="">
>>> Modified:
llvm/trunk/lib/CodeGen/InlineSpiller.cpp<br class="">
>>> URL:<br class="">
>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/InlineSpiller.cpp?rev=274928&r1=274927&r2=274928&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/InlineSpiller.cpp?rev=274928&r1=274927&r2=274928&view=diff</a><br class="">
>>><br class="">
>>>
==============================================================================<br class="">
>>> --- llvm/trunk/lib/CodeGen/InlineSpiller.cpp
(original)<br class="">
>>> +++ llvm/trunk/lib/CodeGen/InlineSpiller.cpp Fri
Jul 8 16:08:09 2016<br class="">
>>> @@ -626,7 +626,7 @@ void
InlineSpiller::reMaterializeAll() {<br class="">
>>> if (DeadDefs.empty())<br class="">
>>> return;<br class="">
>>> DEBUG(dbgs() << "Remat created "
<< DeadDefs.size() << " dead<br class="">
>>> defs.\n");<br class="">
>>> - Edit->eliminateDeadDefs(DeadDefs,
RegsToSpill);<br class="">
>>> + Edit->eliminateDeadDefs(DeadDefs,
RegsToSpill, AA);<br class="">
>>><br class="">
>>> // LiveRangeEdit::eliminateDeadDef is
used to remove dead define<br class="">
>>> instructions<br class="">
>>> // after rematerialization. To
remove a VNI for a vreg from its<br class="">
>>> LiveInterval,<br class="">
>>> @@ -996,7 +996,7 @@ void InlineSpiller::spillAll()
{<br class="">
>>> // Hoisted spills may cause dead
code.<br class="">
>>> if (!DeadDefs.empty()) {<br class="">
>>> DEBUG(dbgs() << "Eliminating
" << DeadDefs.size() << " dead defs\n");<br class="">
>>> - Edit->eliminateDeadDefs(DeadDefs,
RegsToSpill);<br class="">
>>> + Edit->eliminateDeadDefs(DeadDefs,
RegsToSpill, AA);<br class="">
>>> }<br class="">
>>><br class="">
>>> // Finally delete the
SnippetCopies.<br class="">
>>> @@ -1440,7 +1440,7 @@ void
HoistSpillHelper::hoistAllSpills()<br class="">
>>>
RMEnt->RemoveOperand(i - 1);<br class="">
>>> }<br class="">
>>> }<br class="">
>>> - Edit.eliminateDeadDefs(SpillsToRm,
None);<br class="">
>>> + Edit.eliminateDeadDefs(SpillsToRm,
None, AA);<br class="">
>>> }<br class="">
>>> }<br class="">
>>><br class="">
>>><br class="">
>>> Modified:
llvm/trunk/lib/CodeGen/LiveRangeEdit.cpp<br class="">
>>> URL:<br class="">
>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveRangeEdit.cpp?rev=274928&r1=274927&r2=274928&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LiveRangeEdit.cpp?rev=274928&r1=274927&r2=274928&view=diff</a><br class="">
>>><br class="">
>>>
==============================================================================<br class="">
>>> --- llvm/trunk/lib/CodeGen/LiveRangeEdit.cpp
(original)<br class="">
>>> +++ llvm/trunk/lib/CodeGen/LiveRangeEdit.cpp Fri
Jul 8 16:08:09 2016<br class="">
>>> @@ -234,7 +234,8 @@ bool
LiveRangeEdit::useIsKill(const Live<br class="">
>>> }<br class="">
>>><br class="">
>>> /// Find all live intervals that need to shrink,
then remove the<br class="">
>>> instruction.<br class="">
>>> -void LiveRangeEdit::eliminateDeadDef(MachineInstr
*MI, ToShrinkSet<br class="">
>>> &ToShrink) {<br class="">
>>> +void LiveRangeEdit::eliminateDeadDef(MachineInstr
*MI, ToShrinkSet<br class="">
>>> &ToShrink,<br class="">
>>> +
AliasAnalysis *AA) {<br class="">
>>> assert(MI->allDefsAreDead() &&
"Def isn't really dead");<br class="">
>>> SlotIndex Idx =
LIS.getInstructionIndex(*MI).getRegSlot();<br class="">
>>><br class="">
>>> @@ -327,11 +328,12 @@ void
LiveRangeEdit::eliminateDeadDef(Mac<br class="">
>>> }<br class="">
>>> DEBUG(dbgs() << "Converted
physregs to:\t" << *MI);<br class="">
>>> } else {<br class="">
>>> - // If the dest of MI is an original
reg, don't delete the inst.<br class="">
>>> Replace<br class="">
>>> - // the dest with a new reg, keep the
inst for remat of other<br class="">
>>> siblings.<br class="">
>>> - // The inst is saved in
LiveRangeEdit::DeadRemats and will be deleted<br class="">
>>> - // after all the allocations of the
func are done.<br class="">
>>> - if (isOrigDef) {<br class="">
>>> + // If the dest of MI is an original reg
and MI is reMaterializable,<br class="">
>>> + // don't delete the inst. Replace the
dest with a new reg, and keep<br class="">
>>> + // the inst for remat of other
siblings. The inst is saved in<br class="">
>>> + // LiveRangeEdit::DeadRemats and will
be deleted after all the<br class="">
>>> + // allocations of the func are
done.<br class="">
>>> + if (isOrigDef && DeadRemats
&& TII.isTriviallyReMaterializable(*MI,<br class="">
>>> AA)) {<br class="">
>>> LiveInterval &NewLI =
createEmptyIntervalFrom(Dest);<br class="">
>>> VNInfo *VNI =
NewLI.getNextValue(Idx, LIS.getVNInfoAllocator());<br class="">
>>>
NewLI.addSegment(LiveInterval::Segment(Idx,
Idx.getDeadSlot(),<br class="">
>>> VNI));<br class="">
>>> @@ -361,13 +363,14 @@ void
LiveRangeEdit::eliminateDeadDef(Mac<br class="">
>>> }<br class="">
>>><br class="">
>>> void
LiveRangeEdit::eliminateDeadDefs(SmallVectorImpl<MachineInstr
*><br class="">
>>> &Dead,<br class="">
>>> -
ArrayRef<unsigned><br class="">
>>> RegsBeingSpilled) {<br class="">
>>> +
ArrayRef<unsigned><br class="">
>>> RegsBeingSpilled,<br class="">
>>> +
AliasAnalysis *AA) {<br class="">
>>> ToShrinkSet ToShrink;<br class="">
>>><br class="">
>>> for (;;) {<br class="">
>>> // Erase all dead defs.<br class="">
>>> while (!Dead.empty())<br class="">
>>> -
eliminateDeadDef(Dead.pop_back_val(), ToShrink);<br class="">
>>> +
eliminateDeadDef(Dead.pop_back_val(), ToShrink, AA);<br class="">
>>><br class="">
>>> if (ToShrink.empty())<br class="">
>>> break;<br class="">
>>><br class="">
>>> Modified:
llvm/trunk/lib/CodeGen/RegAllocGreedy.cpp<br class="">
>>> URL:<br class="">
>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegAllocGreedy.cpp?rev=274928&r1=274927&r2=274928&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/RegAllocGreedy.cpp?rev=274928&r1=274927&r2=274928&view=diff</a><br class="">
>>><br class="">
>>>
==============================================================================<br class="">
>>> --- llvm/trunk/lib/CodeGen/RegAllocGreedy.cpp
(original)<br class="">
>>> +++ llvm/trunk/lib/CodeGen/RegAllocGreedy.cpp Fri
Jul 8 16:08:09 2016<br class="">
>>> @@ -129,6 +129,7 @@ class RAGreedy : public
MachineFunctionP<br class="">
>>> EdgeBundles *Bundles;<br class="">
>>> SpillPlacement *SpillPlacer;<br class="">
>>> LiveDebugVariables *DebugVars;<br class="">
>>> + AliasAnalysis *AA;<br class="">
>>><br class="">
>>> // state<br class="">
>>> std::unique_ptr<Spiller>
SpillerInstance;<br class="">
>>> @@ -2592,6 +2593,7 @@ bool
RAGreedy::runOnMachineFunction(Mach<br class="">
>>> Bundles =
&getAnalysis<EdgeBundles>();<br class="">
>>> SpillPlacer =
&getAnalysis<SpillPlacement>();<br class="">
>>> DebugVars =
&getAnalysis<LiveDebugVariables>();<br class="">
>>> + AA =
&getAnalysis<AAResultsWrapperPass>().getAAResults();<br class="">
>>><br class="">
>>> initializeCSRCost();<br class="">
>>><br class="">
>>> @@ -2600,7 +2602,7 @@ bool
RAGreedy::runOnMachineFunction(Mach<br class="">
>>> DEBUG(LIS->dump());<br class="">
>>><br class="">
>>> SA.reset(new SplitAnalysis(*VRM, *LIS,
*Loops));<br class="">
>>> - SE.reset(new SplitEditor(*SA, *LIS, *VRM,
*DomTree, *MBFI));<br class="">
>>> + SE.reset(new SplitEditor(*SA, *AA, *LIS, *VRM,
*DomTree, *MBFI));<br class="">
>>> ExtraRegInfo.clear();<br class="">
>>>
ExtraRegInfo.resize(MRI->getNumVirtRegs());<br class="">
>>> NextCascade = 1;<br class="">
>>><br class="">
>>> Modified:
llvm/trunk/lib/CodeGen/SplitKit.cpp<br class="">
>>> URL:<br class="">
>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SplitKit.cpp?rev=274928&r1=274927&r2=274928&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SplitKit.cpp?rev=274928&r1=274927&r2=274928&view=diff</a><br class="">
>>><br class="">
>>>
==============================================================================<br class="">
>>> --- llvm/trunk/lib/CodeGen/SplitKit.cpp
(original)<br class="">
>>> +++ llvm/trunk/lib/CodeGen/SplitKit.cpp Fri Jul
8 16:08:09 2016<br class="">
>>> @@ -338,11 +338,13 @@ void
SplitAnalysis::analyze(const LiveIn<br class="">
>>><br class="">
>>>
//===----------------------------------------------------------------------===//<br class="">
>>><br class="">
>>> /// Create a new SplitEditor for editing the
LiveInterval analyzed by SA.<br class="">
>>> -SplitEditor::SplitEditor(SplitAnalysis &sa,
LiveIntervals &lis,<br class="">
>>> VirtRegMap &vrm,<br class="">
>>> +SplitEditor::SplitEditor(SplitAnalysis &sa,
AliasAnalysis &aa,<br class="">
>>> +
LiveIntervals &lis,
VirtRegMap &vrm,<br class="">
>>>
MachineDominatorTree
&mdt,<br class="">
>>>
MachineBlockFrequencyInfo
&mbfi)<br class="">
>>> - : SA(sa), LIS(lis), VRM(vrm),<br class="">
>>> MRI(vrm.getMachineFunction().getRegInfo()),<br class="">
>>> - MDT(mdt),<br class="">
>>>
TII(*vrm.getMachineFunction().getSubtarget().getInstrInfo()),<br class="">
>>> + : SA(sa), AA(aa), LIS(lis),
VRM(vrm),<br class="">
>>> +
MRI(vrm.getMachineFunction().getRegInfo()), MDT(mdt),<br class="">
>>> +
TII(*vrm.getMachineFunction().getSubtarget().getInstrInfo()),<br class="">
>>>
TRI(*vrm.getMachineFunction().getSubtarget().getRegisterInfo()),<br class="">
>>> MBFI(mbfi), Edit(nullptr),
OpenIdx(0), SpillMode(SM_Partition),<br class="">
>>> RegAssign(Allocator)
{}<br class="">
>>> @@ -1130,7 +1132,7 @@ void
SplitEditor::deleteRematVictims() {<br class="">
>>> if (Dead.empty())<br class="">
>>> return;<br class="">
>>><br class="">
>>> - Edit->eliminateDeadDefs(Dead);<br class="">
>>> + Edit->eliminateDeadDefs(Dead, None,
&AA);<br class="">
>>> }<br class="">
>>><br class="">
>>> void
SplitEditor::finish(SmallVectorImpl<unsigned> *LRMap)
{<br class="">
>>><br class="">
>>> Modified: llvm/trunk/lib/CodeGen/SplitKit.h<br class="">
>>> URL:<br class="">
>>> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SplitKit.h?rev=274928&r1=274927&r2=274928&view=diff" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SplitKit.h?rev=274928&r1=274927&r2=274928&view=diff</a><br class="">
>>><br class="">
>>>
==============================================================================<br class="">
>>> --- llvm/trunk/lib/CodeGen/SplitKit.h
(original)<br class="">
>>> +++ llvm/trunk/lib/CodeGen/SplitKit.h Fri Jul 8
16:08:09 2016<br class="">
>>> @@ -235,6 +235,7 @@ public:<br class="">
>>> ///<br class="">
>>> class LLVM_LIBRARY_VISIBILITY SplitEditor
{<br class="">
>>> SplitAnalysis &SA;<br class="">
>>> + AliasAnalysis &AA;<br class="">
>>> LiveIntervals &LIS;<br class="">
>>> VirtRegMap &VRM;<br class="">
>>> MachineRegisterInfo &MRI;<br class="">
>>> @@ -380,8 +381,9 @@ private:<br class="">
>>> public:<br class="">
>>> /// Create a new SplitEditor for editing
the LiveInterval analyzed by<br class="">
>>> SA.<br class="">
>>> /// Newly created intervals will be
appended to newIntervals.<br class="">
>>> - SplitEditor(SplitAnalysis &SA,
LiveIntervals&, VirtRegMap&,<br class="">
>>> -
MachineDominatorTree&, MachineBlockFrequencyInfo
&);<br class="">
>>> + SplitEditor(SplitAnalysis &SA,
AliasAnalysis &AA, LiveIntervals&,<br class="">
>>> +
VirtRegMap&, MachineDominatorTree&,<br class="">
>>> +
MachineBlockFrequencyInfo &);<br class="">
>>><br class="">
>>> /// reset - Prepare for a new
split.<br class="">
>>> void reset(LiveRangeEdit&,
ComplementSpillMode = SM_Partition);<br class="">
>>><br class="">
>>><br class="">
>>>
_______________________________________________<br class="">
>>> llvm-commits mailing list<br class="">
>>> <a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class="">
>>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="">
>><br class="">
>><br class=""></div>
</div>
</blockquote>
</div>
<br class=""></div>
</div>
</blockquote>
</div>
<br class=""></div>
</div></div></span></blockquote></body></html>