[llvm-bugs] [Bug 24613] New: Incorrect motion of tailcall|readnone
via llvm-bugs
llvm-bugs at lists.llvm.org
Fri Aug 28 05:33:46 PDT 2015
https://llvm.org/bugs/show_bug.cgi?id=24613
Bug ID: 24613
Summary: Incorrect motion of tailcall|readnone
Product: libraries
Version: trunk
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P
Component: Common Code Generator Code
Assignee: unassignedbugs at nondot.org
Reporter: geek4civic at gmail.com
CC: david.majnemer at gmail.com, llvm-bugs at lists.llvm.org
Classification: Unclassified
Created attachment 14787
--> https://llvm.org/bugs/attachment.cgi?id=14787&action=edit
llvm::yaml::Input::setError(llvm::Twine const&)
http://reviews.llvm.org/rL246232 unveiled this.
Unfortunately, seems none of llvmlab hasn't found this.
>From YAMLTraits.cpp, (See also attached.ll)
%call.i.i.i = tail call dereferenceable(8) %"class.std::error_category"*
@_ZSt16generic_categoryv() #4 { nounwind readnone }
%ref.tmp.sroa.0.0..sroa_idx.i.i = getelementptr inbounds
%"class.llvm::yaml::Input", %"class.llvm::yaml::Input"* %this, i64 0, i32 4,
i32 0
store i32 22, i32* %ref.tmp.sroa.0.0..sroa_idx.i.i, align 8
%ref.tmp.sroa.23.0..sroa_idx4.i.i = getelementptr inbounds
%"class.llvm::yaml::Input", %"class.llvm::yaml::Input"* %this, i64 0, i32 4,
i32 1
store %"class.std::error_category"* %call.i.i.i,
%"class.std::error_category"** %ref.tmp.sroa.23.0..sroa_idx4.i.i, align 8
ret void
Before r246232;
callq _ZSt16generic_categoryv
movl $22, 104(%rbx)
movq %rax, 112(%rbx)
popq %rbx
retq
After;
popq %rax
jmp _ZSt16generic_categoryv # TAILCALL
A couple of store(s) are disappearing.
I guess something would be wrong in llvm::isInTailCallPosition(), user of
llvm::isSafeToSpeculativelyExecute().
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20150828/8fe9db6e/attachment.html>
More information about the llvm-bugs
mailing list