<html><body><p><font size="2">Mikael,</font><br><br><font size="2">Thank you so much for the report.</font><br><font size="2">I will investigate the issue.</font><br><font size="2"><br>-----<br>Hiroshi Inoue <inouehrs@jp.ibm.com><br>IBM Research - Tokyo<br></font><br><br><tt><font size="2">"Mikael Holmén" <mikael.holmen@ericsson.com> wrote on 2018/04/27 21:35:47:<br><br>> From: "Mikael Holmén" <mikael.holmen@ericsson.com></font></tt><br><tt><font size="2">> To: Hiroshi Inoue <inouehrs@jp.ibm.com></font></tt><br><tt><font size="2">> Cc: <llvm-commits@lists.llvm.org></font></tt><br><tt><font size="2">> Date: 2018/04/27 21:37</font></tt><br><tt><font size="2">> Subject: Re: [llvm] r322533 - [SROA] fix assetion failure</font></tt><br><tt><font size="2">> <br>> Hi Hiroshi,<br>> <br>> I found a case where we hit an assert with this commit:<br>> <br>> opt -S -o - tr15934_sparc.ll -sroa<br>> <br>> gives<br>> <br>> opt: ../lib/Transforms/Scalar/SROA.cpp:2567: bool <br>> llvm::sroa::AllocaSliceRewriter::rewriteIntegerStore(llvm::Value *, <br>> llvm::StoreInst &, llvm::AAMDNodes): Assertion `BeginOffset >= <br>> NewAllocaBeginOffset && "Out of bounds offset"' failed.<br>> Stack dump:<br>> 0.      Program arguments: ../llvm-patch/build-all/bin/opt -S -o - <br>> tr15934_sparc.ll -sroa<br>> 1.      Running pass 'Function Pass Manager' on module 'tr15934_sparc.ll'.<br>> 2.      Running pass 'SROA' on function '@f2'<br>> #0 0x0000000001f3f5d4 PrintStackTraceSignalHandler(void*) <br>> (../llvm-patch/build-all/bin/opt+0x1f3f5d4)<br>> #1 0x0000000001f3fd46 SignalHandler(int) <br>> (../llvm-patch/build-all/bin/opt+0x1f3fd46)<br>> #2 0x00007fc25d381330 __restore_rt <br>> (/lib/x86_64-linux-gnu/libpthread.so.0+0x10330)<br>> #3 0x00007fc25bf70c37 gsignal <br>> /build/eglibc-ripdx6/eglibc-2.19/signal/../nptl/sysdeps/unix/sysv/<br>> linux/raise.c:56:0<br>> #4 0x00007fc25bf74028 abort <br>> /build/eglibc-ripdx6/eglibc-2.19/stdlib/abort.c:91:0<br>> #5 0x00007fc25bf69bf6 __assert_fail_base <br>> /build/eglibc-ripdx6/eglibc-2.19/assert/assert.c:92:0<br>> #6 0x00007fc25bf69ca2 (/lib/x86_64-linux-gnu/libc.so.6+0x2fca2)<br>> #7 0x0000000001e67547 (../llvm-patch/build-all/bin/opt+0x1e67547)<br>> #8 0x0000000001e669b1 <br>> llvm::sroa::AllocaSliceRewriter::visitStoreInst(llvm::StoreInst&) <br>> (../llvm-patch/build-all/bin/opt+0x1e669b1)<br>> #9 0x0000000001e5e169 llvm::InstVisitor<llvm::sroa::AllocaSliceRewriter, <br>> bool>::visit(llvm::Instruction&) (../llvm-patch/build-all/bin/opt+0x1e5e169)<br>> #10 0x0000000001e4f1ba llvm::sroa::AllocaSliceRewriter::visit((anonymous <br>> namespace)::Slice const*) (../llvm-patch/build-all/bin/opt+0x1e4f1ba)<br>> #11 0x0000000001e4da3f llvm::SROA::rewritePartition(llvm::AllocaInst&, <br>> llvm::sroa::AllocaSlices&, llvm::sroa::Partition&) <br>> (../llvm-patch/build-all/bin/opt+0x1e4da3f)<br>> #12 0x0000000001e4f991 llvm::SROA::splitAlloca(llvm::AllocaInst&, <br>> llvm::sroa::AllocaSlices&) (../llvm-patch/build-all/bin/opt+0x1e4f991)<br>> #13 0x0000000001e51588 llvm::SROA::runOnAlloca(llvm::AllocaInst&) <br>> (../llvm-patch/build-all/bin/opt+0x1e51588)<br>> #14 0x0000000001e5324b llvm::SROA::runImpl(llvm::Function&, <br>> llvm::DominatorTree&, llvm::AssumptionCache&) <br>> (../llvm-patch/build-all/bin/opt+0x1e5324b)<br>> #15 0x0000000001e5bb2e <br>> llvm::sroa::SROALegacyPass::runOnFunction(llvm::Function&) <br>> (../llvm-patch/build-all/bin/opt+0x1e5bb2e)<br>> #16 0x00000000019ea708 <br>> llvm::FPPassManager::runOnFunction(llvm::Function&) <br>> (../llvm-patch/build-all/bin/opt+0x19ea708)<br>> #17 0x00000000019ea948 llvm::FPPassManager::runOnModule(llvm::Module&) <br>> (../llvm-patch/build-all/bin/opt+0x19ea948)<br>> #18 0x00000000019eae25 llvm::legacy::PassManagerImpl::run(llvm::Module&) <br>> (../llvm-patch/build-all/bin/opt+0x19eae25)<br>> #19 0x0000000000735055 main (../llvm-patch/build-all/bin/opt+0x735055)<br>> #20 0x00007fc25bf5bf45 __libc_start_main <br>> /build/eglibc-ripdx6/eglibc-2.19/csu/libc-start.c:321:0<br>> #21 0x000000000071eb1d _start (../llvm-patch/build-all/bin/opt+0x71eb1d)<br>> Abort<br>> <br>> I wrote PR37267 about it:<br>>   <a href="https://urldefense.proofpoint.com/v2/url?">https://urldefense.proofpoint.com/v2/url?</a><br>> u=https-3A__bugs.llvm.org_show-5Fbug.cgi-3Fid-3D37267&d=DwICaQ&c=jf_iaSHvJObTbx-<br>> siA1ZOg&r=m0X4DAZw5Qh-99BsgZP4_s5n1wQ8Sz4aTCPvRS-<br>> YkVI&m=oRzmGwpRd_6OjcsNdKBJyVaoBQrDzEOfynNZwSRiE30&s=PI0tP_ivU0dt6o0X9kJBcGopuZEW17gxel7WOe8jyDs&e=<br>> <br>> Regards,<br>> Mikael<br>> <br></font></tt><BR>
</body></html>