<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi,<br class=""><br class=""><blockquote type="cite" class="">On Jun 29, 2021, at 09:14, David Sherwood via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a>> wrote:<br class=""><br class=""><br class="">Author: David Sherwood<br class="">Date: 2021-06-29T09:14:35+01:00<br class="">New Revision: dcfc2c3fac980b137415c17f2f19c06c3e2bd7fb<br class=""><br class="">URL: <a href="https://github.com/llvm/llvm-project/commit/dcfc2c3fac980b137415c17f2f19c06c3e2bd7fb" class="">https://github.com/llvm/llvm-project/commit/dcfc2c3fac980b137415c17f2f19c06c3e2bd7fb</a><br class="">DIFF: <a href="https://github.com/llvm/llvm-project/commit/dcfc2c3fac980b137415c17f2f19c06c3e2bd7fb.diff" class="">https://github.com/llvm/llvm-project/commit/dcfc2c3fac980b137415c17f2f19c06c3e2bd7fb.diff</a><br class=""><br class="">LOG: [NFC] Remove shadowed variable in InnerLoopVectorizer::createInductionVariable<br class=""><br class="">Avoid creating a IRBuilder stack variable with the same name as the<br class="">class member.<br class=""><br class=""></blockquote><br class="">It looks like this may be responsible for an ASAN failure (<a href="https://lab.llvm.org/buildbot/#/builders/168/builds/1061/steps/10/logs/stdio" class="">https://lab.llvm.org/buildbot/#/builders/168/builds/1061/steps/10/logs/stdio</a>):<br class=""><br class="">=================================================================<br class="">==35296==ERROR: AddressSanitizer: heap-use-after-free on address 0x608000002258 at pc 0x000005b74936 bp 0x7fff798eadb0 sp 0x7fff798eada8<br class="">READ of size 8 at 0x608000002258 thread T0<br class="">    #0 0x5b74935 in getInt /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:61:57<br class="">    #1 0x5b74935 in isSentinel /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/ADT/ilist_node_base.h:45:52<br class="">    #2 0x5b74935 in isKnownSentinel /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/ADT/ilist_node_base.h:46:41<br class="">    #3 0x5b74935 in operator* /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/ADT/ilist_iterator.h:138:5<br class="">    #4 0x5b74935 in operator-> /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/ADT/ilist_iterator.h:141:40<br class="">    #5 0x5b74935 in SetInsertPoint /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/IRBuilder.h:204:31<br class="">    #6 0x5b74935 in restoreIP /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/IRBuilder.h:285:7<br class="">    #7 0x5b74935 in llvm::IRBuilderBase::InsertPointGuard::~InsertPointGuard() /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/IRBuilder.h:382:15<br class="">    #8 0xc4e362b in llvm::InnerLoopVectorizer::createInductionVariable(llvm::Loop*, llvm::Value*, llvm::Value*, llvm::Value*, llvm::Instruction*) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:3104:1<br class="">    #9 0xc4ee14c in llvm::InnerLoopVectorizer::createVectorizedLoopSkeleton() /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:3712:7<br class="">    #10 0xc56139c in llvm::LoopVectorizationPlanner::executePlan(llvm::InnerLoopVectorizer&, llvm::DominatorTree*) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:8089:26<br class="">    #11 0xc59464e in llvm::LoopVectorizePass::processLoop(llvm::Loop*) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:10212:13<br class="">    #12 0xc5a165c in llvm::LoopVectorizePass::runImpl(llvm::Function&, llvm::ScalarEvolution&, llvm::LoopInfo&, llvm::TargetTransformInfo&, llvm::DominatorTree&, llvm::BlockFrequencyInfo&, llvm::TargetLibraryInfo*, llvm::DemandedBits&, llvm::AAResults&, llvm::AssumptionCache&, std::__1::function<llvm::LoopAccessInfo const& (llvm::Loop&)>&, llvm::OptimizationRemarkEmitter&, llvm::ProfileSummaryInfo*) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:10311:30<br class="">    #13 0xc5a3310 in llvm::LoopVectorizePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:10345:9<br class="">    #14 0xc8f9f41 in llvm::detail::PassModel<llvm::Function, llvm::LoopVectorizePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:85:17<br class="">    #15 0xa653120 in llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/PassManager.h:509:21<br class="">    #16 0x59b6ca1 in llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:85:17<br class="">    #17 0xa66285d in llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/PassManager.cpp:117:22<br class="">    #18 0x4c7f481 in llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:85:17<br class="">    #19 0xa64fa41 in llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/PassManager.h:509:21<br class="">    #20 0x4c627bf in llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/tools/opt/NewPMDriver.cpp:457:7<br class="">    #21 0x4c99c0a in main /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/tools/opt/opt.cpp:830:12<br class="">    #22 0x7f3868a4d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)<br class="">    #23 0x4b783f9 in _start (/b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm_build_asan/bin/opt+0x4b783f9)<br class="">0x608000002258 is located 56 bytes inside of 96-byte region [0x608000002220,0x608000002280)<br class="">freed by thread T0 here:<br class="">    #0 0x4c522a0 in operator delete(void*) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/compiler-rt/lib/asan/asan_new_delete.cpp:152:3<br class="">    #1 0xa4fc3e3 in deleteNode /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/Instruction.h:859:6<br class="">    #2 0xa4fc3e3 in erase /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/ADT/ilist.h:268:5<br class="">    #3 0xa4fc3e3 in llvm::Instruction::eraseFromParent() /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/Instruction.cpp:79:37<br class="">    #4 0xc4e3622 in llvm::InnerLoopVectorizer::createInductionVariable(llvm::Loop*, llvm::Value*, llvm::Value*, llvm::Value*, llvm::Instruction*) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:3101:27<br class="">    #5 0xc4ee14c in llvm::InnerLoopVectorizer::createVectorizedLoopSkeleton() /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:3712:7<br class="">    #6 0xc56139c in llvm::LoopVectorizationPlanner::executePlan(llvm::InnerLoopVectorizer&, llvm::DominatorTree*) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:8089:26<br class="">    #7 0xc59464e in llvm::LoopVectorizePass::processLoop(llvm::Loop*) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:10212:13<br class="">    #8 0xc5a165c in llvm::LoopVectorizePass::runImpl(llvm::Function&, llvm::ScalarEvolution&, llvm::LoopInfo&, llvm::TargetTransformInfo&, llvm::DominatorTree&, llvm::BlockFrequencyInfo&, llvm::TargetLibraryInfo*, llvm::DemandedBits&, llvm::AAResults&, llvm::AssumptionCache&, std::__1::function<llvm::LoopAccessInfo const& (llvm::Loop&)>&, llvm::OptimizationRemarkEmitter&, llvm::ProfileSummaryInfo*) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:10311:30<br class="">    #9 0xc5a3310 in llvm::LoopVectorizePass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:10345:9<br class="">    #10 0xc8f9f41 in llvm::detail::PassModel<llvm::Function, llvm::LoopVectorizePass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:85:17<br class="">    #11 0xa653120 in llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/PassManager.h:509:21<br class="">    #12 0x59b6ca1 in llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function> >, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Function> >::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:85:17<br class="">    #13 0xa66285d in llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/lib/IR/PassManager.cpp:117:22<br class="">    #14 0x4c7f481 in llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:85:17<br class="">    #15 0xa64fa41 in llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/include/llvm/IR/PassManager.h:509:21<br class="">    #16 0x4c627bf in llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::StringRef>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool) /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/tools/opt/NewPMDriver.cpp:457:7<br class="">    #17 0x4c99c0a in main /b/sanitizer-x86_64-linux-bootstrap-asan/build/llvm-project/llvm/tools/opt/opt.cpp:830:12<br class="">    #18 0x7f3868a4d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)<br class=""><br class=""><br class=""></body></html>