<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Sure. The first failure looked like a glitch so I forced a new build. Now there is actually error in the new build, I’m taking a look.</div><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 17, 2015, at 8:32 PM, Zachary Turner <<a href="mailto:zturner@google.com" class="">zturner@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">Hi adam, one of these changes has broken the lldb bot, can you ptal?<br class=""><br class=""><a href="http://lab.llvm.org:8011/builders/lldb-x86-windows-msvc" class="">http://lab.llvm.org:8011/builders/lldb-x86-windows-msvc</a><br class=""><div class="gmail_quote">On Tue, Feb 17, 2015 at 8:05 PM Adam Nemet <<a href="mailto:anemet@apple.com" class="">anemet@apple.com</a>> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: anemet<br class="">
Date: Tue Feb 17 21:44:33 2015<br class="">
New Revision: 229634<br class="">
<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=229634&view=rev" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project?rev=229634&view=rev</a><br class="">
Log:<br class="">
[LoopAccesses] Change LAA:getInfo to return a constant reference<br class="">
<br class="">
As expected, this required a few more const-correctness fixes.<br class="">
<br class="">
Based on Hal's feedback on D7684.<br class="">
<br class="">
Modified:<br class="">
llvm/trunk/include/llvm/<u class=""></u>Analysis/LoopAccessAnalysis.h<br class="">
llvm/trunk/lib/Analysis/<u class=""></u>LoopAccessAnalysis.cpp<br class="">
llvm/trunk/lib/Transforms/<u class=""></u>Vectorize/LoopVectorize.cpp<br class="">
<br class="">
Modified: llvm/trunk/include/llvm/<u class=""></u>Analysis/LoopAccessAnalysis.h<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/LoopAccessAnalysis.h?rev=229634&r1=229633&r2=229634&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/include/<u class=""></u>llvm/Analysis/<u class=""></u>LoopAccessAnalysis.h?rev=<u class=""></u>229634&r1=229633&r2=229634&<u class=""></u>view=diff</a><br class="">
==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
--- llvm/trunk/include/llvm/<u class=""></u>Analysis/LoopAccessAnalysis.h (original)<br class="">
+++ llvm/trunk/include/llvm/<u class=""></u>Analysis/LoopAccessAnalysis.h Tue Feb 17 21:44:33 2015<br class="">
@@ -153,9 +153,11 @@ public:<br class="">
<br class="">
/// Return true we can analyze the memory accesses in the loop and there are<br class="">
/// no memory dependence cycles.<br class="">
- bool canVectorizeMemory() { return CanVecMem; }<br class="">
+ bool canVectorizeMemory() const { return CanVecMem; }<br class="">
<br class="">
- RuntimePointerCheck *getRuntimePointerCheck() { return &PtrRtCheck; }<br class="">
+ const RuntimePointerCheck *getRuntimePointerCheck() const {<br class="">
+ return &PtrRtCheck;<br class="">
+ }<br class="">
<br class="">
/// Return true if the block BB needs to be predicated in order for the loop<br class="">
/// to be vectorized.<br class="">
@@ -163,7 +165,7 @@ public:<br class="">
DominatorTree *DT);<br class="">
<br class="">
/// Returns true if the value V is uniform within the loop.<br class="">
- bool isUniform(Value *V);<br class="">
+ bool isUniform(Value *V) const;<br class="">
<br class="">
unsigned getMaxSafeDepDistBytes() const { return MaxSafeDepDistBytes; }<br class="">
unsigned getNumStores() const { return NumStores; }<br class="">
@@ -174,11 +176,12 @@ public:<br class="">
/// Returns a pair of instructions where the first element is the first<br class="">
/// instruction generated in possibly a sequence of instructions and the<br class="">
/// second value is the final comparator value or NULL if no check is needed.<br class="">
- std::pair<Instruction *, Instruction *> addRuntimeCheck(Instruction *Loc);<br class="">
+ std::pair<Instruction *, Instruction *><br class="">
+ addRuntimeCheck(Instruction *Loc) const;<br class="">
<br class="">
/// \brief The diagnostics report generated for the analysis. E.g. why we<br class="">
/// couldn't analyze the loop.<br class="">
- Optional<LoopAccessReport> &getReport() { return Report; }<br class="">
+ const Optional<LoopAccessReport> &getReport() const { return Report; }<br class="">
<br class="">
/// \brief Print the information about the memory accesses in the loop.<br class="">
void print(raw_ostream &OS, unsigned Depth = 0) const;<br class="">
@@ -258,7 +261,7 @@ public:<br class="">
/// of symbolic strides, \p Strides provides the mapping (see<br class="">
/// replaceSymbolicStrideSCEV). If there is no cached result available run<br class="">
/// the analysis.<br class="">
- LoopAccessInfo &getInfo(Loop *L, ValueToValueMap &Strides);<br class="">
+ const LoopAccessInfo &getInfo(Loop *L, ValueToValueMap &Strides);<br class="">
<br class="">
void releaseMemory() override {<br class="">
// Invalidate the cache when the pass is freed.<br class="">
<br class="">
Modified: llvm/trunk/lib/Analysis/<u class=""></u>LoopAccessAnalysis.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/LoopAccessAnalysis.cpp?rev=229634&r1=229633&r2=229634&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/lib/<u class=""></u>Analysis/LoopAccessAnalysis.<u class=""></u>cpp?rev=229634&r1=229633&r2=<u class=""></u>229634&view=diff</a><br class="">
==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
--- llvm/trunk/lib/Analysis/<u class=""></u>LoopAccessAnalysis.cpp (original)<br class="">
+++ llvm/trunk/lib/Analysis/<u class=""></u>LoopAccessAnalysis.cpp Tue Feb 17 21:44:33 2015<br class="">
@@ -1173,7 +1173,7 @@ void LoopAccessInfo::emitAnalysis(<u class=""></u>LoopAc<br class="">
Report = Message;<br class="">
}<br class="">
<br class="">
-bool LoopAccessInfo::isUniform(<u class=""></u>Value *V) {<br class="">
+bool LoopAccessInfo::isUniform(<u class=""></u>Value *V) const {<br class="">
return (SE->isLoopInvariant(SE-><u class=""></u>getSCEV(V), TheLoop));<br class="">
}<br class="">
<br class="">
@@ -1189,7 +1189,7 @@ static Instruction *getFirstInst(Instruc<br class="">
}<br class="">
<br class="">
std::pair<Instruction *, Instruction *><br class="">
-LoopAccessInfo::<u class=""></u>addRuntimeCheck(Instruction *Loc) {<br class="">
+LoopAccessInfo::<u class=""></u>addRuntimeCheck(Instruction *Loc) const {<br class="">
Instruction *tnullptr = nullptr;<br class="">
if (!PtrRtCheck.Need)<br class="">
return std::pair<Instruction *, Instruction *>(tnullptr, tnullptr);<br class="">
@@ -1301,7 +1301,8 @@ void LoopAccessInfo::print(raw_<u class=""></u>ostream &<br class="">
OS << "\n";<br class="">
}<br class="">
<br class="">
-LoopAccessInfo &LoopAccessAnalysis::getInfo(<u class=""></u>Loop *L, ValueToValueMap &Strides) {<br class="">
+const LoopAccessInfo &LoopAccessAnalysis::getInfo(<u class=""></u>Loop *L,<br class="">
+ ValueToValueMap &Strides) {<br class="">
auto &LAI = LoopAccessInfoMap[L];<br class="">
<br class="">
#ifndef NDEBUG<br class="">
<br class="">
Modified: llvm/trunk/lib/Transforms/<u class=""></u>Vectorize/LoopVectorize.cpp<br class="">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp?rev=229634&r1=229633&r2=229634&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-<u class=""></u>project/llvm/trunk/lib/<u class=""></u>Transforms/Vectorize/<u class=""></u>LoopVectorize.cpp?rev=229634&<u class=""></u>r1=229633&r2=229634&view=diff</a><br class="">
==============================<u class=""></u>==============================<u class=""></u>==================<br class="">
--- llvm/trunk/lib/Transforms/<u class=""></u>Vectorize/LoopVectorize.cpp (original)<br class="">
+++ llvm/trunk/lib/Transforms/<u class=""></u>Vectorize/LoopVectorize.cpp Tue Feb 17 21:44:33 2015<br class="">
@@ -756,11 +756,11 @@ public:<br class="">
bool isUniformAfterVectorization(<u class=""></u>Instruction* I) { return Uniforms.count(I); }<br class="">
<br class="">
/// Returns the information that we collected about runtime memory check.<br class="">
- LoopAccessInfo::<u class=""></u>RuntimePointerCheck *getRuntimePointerCheck() {<br class="">
+ const LoopAccessInfo::<u class=""></u>RuntimePointerCheck *getRuntimePointerCheck() const {<br class="">
return LAI->getRuntimePointerCheck();<br class="">
}<br class="">
<br class="">
- LoopAccessInfo *getLAI() {<br class="">
+ const LoopAccessInfo *getLAI() const {<br class="">
return LAI;<br class="">
}<br class="">
<br class="">
@@ -877,7 +877,7 @@ private:<br class="">
LoopAccessAnalysis *LAA;<br class="">
// And the loop-accesses info corresponding to this loop. This pointer is<br class="">
// null until canVectorizeMemory sets it up.<br class="">
- LoopAccessInfo *LAI;<br class="">
+ const LoopAccessInfo *LAI;<br class="">
<br class="">
// --- vectorization state --- //<br class="">
<br class="">
<br class="">
<br class="">
______________________________<u class=""></u>_________________<br class="">
llvm-commits mailing list<br class="">
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank" class="">llvm-commits@cs.uiuc.edu</a><br class="">
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank" class="">http://lists.cs.uiuc.edu/<u class=""></u>mailman/listinfo/llvm-commits</a><br class="">
</blockquote></div>
</div></blockquote></div><br class=""></body></html>