<div dir="ltr">Sanjoy,<div><br></div><div>I think this breaks ubsan build:</div><div><br></div><div><a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/1281/steps/check-llvm%20ubsan/logs/stdio">http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/1281/steps/check-llvm%20ubsan/logs/stdio</a><br></div><div><div>/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/include/llvm/IR/ValueHandle.h:212:39: runtime error: downcast of misaligned address 0xfffffffffffffffc for type 'llvm::PHINode', which requires 8 byte alignment</div><div>0xfffffffffffffffc: note: pointer points here</div><div><memory cannot be printed></div><div>    #0 0x25cf100 in llvm::AssertingVH<llvm::PHINode>::getValPtr() const /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/include/llvm/IR/ValueHandle.h:212:39</div><div>    #1 0x25cea20 in llvm::AssertingVH<llvm::PHINode>::operator=(llvm::AssertingVH<llvm::PHINode> const&) /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/include/llvm/IR/ValueHandle.h:234:19</div><div>    #2 0x25d0092 in llvm::DenseMapBase<llvm::DenseMap<llvm::AssertingVH<llvm::PHINode>, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::AssertingVH<llvm::PHINode> >, llvm::detail::DenseSetPair<llvm::AssertingVH<llvm::PHINode> > >, llvm::AssertingVH<llvm::PHINode>, llvm::detail::DenseSetEmpty, llvm::DenseMapInfo<llvm::AssertingVH<llvm::PHINode> >, llvm::detail::DenseSetPair<llvm::AssertingVH<llvm::PHINode> > >::clear() /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/include/llvm/ADT/DenseMap.h:113:23</div><div>    #3 0x2595c19 in (anonymous namespace)::LSRInstance::ImplementSolution(llvm::SmallVectorImpl<(anonymous namespace)::Formula const*> const&) /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:4807:12</div><div>    #4 0x258eeb1 in (anonymous namespace)::LSRInstance::LSRInstance(llvm::Loop*, llvm::IVUsers&, llvm::ScalarEvolution&, llvm::DominatorTree&, llvm::LoopInfo&, llvm::TargetTransformInfo const&) /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:4918:3</div><div>    #5 0x258dce7 in ReduceLoopStrength(llvm::Loop*, llvm::IVUsers&, llvm::ScalarEvolution&, llvm::DominatorTree&, llvm::LoopInfo&, llvm::TargetTransformInfo const&) /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp:5021:14</div><div>    #6 0x2bd4647 in llvm::LPPassManager::runOnFunction(llvm::Function&) /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/lib/Analysis/LoopPass.cpp:201:23</div><div>    #7 0x236965e in llvm::FPPassManager::runOnFunction(llvm::Function&) /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/lib/IR/LegacyPassManager.cpp:1513:27</div><div>    #8 0x2369a3b in llvm::FPPassManager::runOnModule(llvm::Module&) /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/lib/IR/LegacyPassManager.cpp:1534:16</div><div>    #9 0x236a4b3 in (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/lib/IR/LegacyPassManager.cpp:1590:27</div><div>    #10 0x2369e73 in llvm::legacy::PassManagerImpl::run(llvm::Module&) /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/lib/IR/LegacyPassManager.cpp:1693:44</div><div>    #11 0x8d9163 in compileModule(char**, llvm::LLVMContext&) /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/llc/llc.cpp:525:8</div><div>    #12 0x8d7f0a in main /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/llc/llc.cpp:283:22</div><div>    #13 0x7efcf3e8ef44 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21f44)</div><div>    #14 0x8b175d in _start (/mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/bin/llc+0x8b175d)</div><div><br></div><div>FileCheck error: '-' is empty.</div><div>FileCheck command line:  /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm_build_ubsan/./bin/FileCheck -check-prefix=GCN -check-prefix=CI /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/test/CodeGen/AMDGPU/drop-mem-operand-move-smrd.ll</div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Dec 9, 2016 at 6:52 AM Sanjoy Das via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: sanjoy<br class="gmail_msg">
Date: Fri Dec  9 08:42:11 2016<br class="gmail_msg">
New Revision: 289215<br class="gmail_msg">
<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=289215&view=rev" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project?rev=289215&view=rev</a><br class="gmail_msg">
Log:<br class="gmail_msg">
[SCEVExpander] Use llvm data structures; NFC<br class="gmail_msg">
<br class="gmail_msg">
Modified:<br class="gmail_msg">
    llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpander.h<br class="gmail_msg">
<br class="gmail_msg">
Modified: llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpander.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpander.h?rev=289215&r1=289214&r2=289215&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpander.h?rev=289215&r1=289214&r2=289215&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpander.h (original)<br class="gmail_msg">
+++ llvm/trunk/include/llvm/Analysis/ScalarEvolutionExpander.h Fri Dec  9 08:42:11 2016<br class="gmail_msg">
@@ -14,13 +14,14 @@<br class="gmail_msg">
 #ifndef LLVM_ANALYSIS_SCALAREVOLUTIONEXPANDER_H<br class="gmail_msg">
 #define LLVM_ANALYSIS_SCALAREVOLUTIONEXPANDER_H<br class="gmail_msg">
<br class="gmail_msg">
+#include "llvm/ADT/DenseMap.h"<br class="gmail_msg">
+#include "llvm/ADT/DenseSet.h"<br class="gmail_msg">
 #include "llvm/ADT/Optional.h"<br class="gmail_msg">
 #include "llvm/Analysis/ScalarEvolutionExpressions.h"<br class="gmail_msg">
 #include "llvm/Analysis/ScalarEvolutionNormalization.h"<br class="gmail_msg">
 #include "llvm/Analysis/TargetFolder.h"<br class="gmail_msg">
 #include "llvm/IR/IRBuilder.h"<br class="gmail_msg">
 #include "llvm/IR/ValueHandle.h"<br class="gmail_msg">
-#include <set><br class="gmail_msg">
<br class="gmail_msg">
 namespace llvm {<br class="gmail_msg">
   class TargetTransformInfo;<br class="gmail_msg">
@@ -43,11 +44,12 @@ namespace llvm {<br class="gmail_msg">
     const char* IVName;<br class="gmail_msg">
<br class="gmail_msg">
     // InsertedExpressions caches Values for reuse, so must track RAUW.<br class="gmail_msg">
-    std::map<std::pair<const SCEV *, Instruction *>, TrackingVH<Value> ><br class="gmail_msg">
-      InsertedExpressions;<br class="gmail_msg">
+    DenseMap<std::pair<const SCEV *, Instruction *>, TrackingVH<Value>><br class="gmail_msg">
+        InsertedExpressions;<br class="gmail_msg">
+<br class="gmail_msg">
     // InsertedValues only flags inserted instructions so needs no RAUW.<br class="gmail_msg">
-    std::set<AssertingVH<Value> > InsertedValues;<br class="gmail_msg">
-    std::set<AssertingVH<Value> > InsertedPostIncValues;<br class="gmail_msg">
+    DenseSet<AssertingVH<Value>> InsertedValues;<br class="gmail_msg">
+    DenseSet<AssertingVH<Value>> InsertedPostIncValues;<br class="gmail_msg">
<br class="gmail_msg">
     /// A memoization of the "relevant" loop for a given SCEV.<br class="gmail_msg">
     DenseMap<const SCEV *, const Loop *> RelevantLoops;<br class="gmail_msg">
@@ -68,7 +70,7 @@ namespace llvm {<br class="gmail_msg">
     Instruction *IVIncInsertPos;<br class="gmail_msg">
<br class="gmail_msg">
     /// \brief Phis that complete an IV chain. Reuse<br class="gmail_msg">
-    std::set<AssertingVH<PHINode> > ChainedPhis;<br class="gmail_msg">
+    DenseSet<AssertingVH<PHINode>> ChainedPhis;<br class="gmail_msg">
<br class="gmail_msg">
     /// \brief When true, expressions are expanded in "canonical" form. In<br class="gmail_msg">
     /// particular, addrecs are expanded as arithmetic based on a canonical<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
llvm-commits mailing list<br class="gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="gmail_msg">
</blockquote></div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature"><div dir="ltr">Mike<br>Sent from phone</div></div>