[llvm-bugs] [Bug 36313] [AArch64] Incorrect RETURN_ADDRESS in tests

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Feb 9 13:34:35 PST 2018


https://bugs.llvm.org/show_bug.cgi?id=36313

Amara Emerson <aemerson at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |WONTFIX
             Status|NEW                         |RESOLVED

--- Comment #16 from Amara Emerson <aemerson at apple.com> ---
Ok this isn't really a bug, this is a code generation difference between using
SelectionDAG and FastISel. GlobalISel is only involved indirectly, since at -O0
GISel replaces FastISel and falls back to SelectionDAG, whereas before FastISel
would handle the block with the inline ASM and not fall back to SDAG.

FastISel has some specialized code in FastISel.cpp:fastEmitBranch() that will
check if the successor block is the target of the unconditional branch, in
which case it will not emit anything. SelectionDAG doesn't do that, so when
GlobalISel gives up on the block, instead of trying FastISel, we fall back to
SDAG and end up with the extra branch.

This is expected behavior in terms of falling back to SDAG, so I think the test
needs to be updated to handle this new codegen.

-- 
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/20180209/de6a8c8b/attachment.html>


More information about the llvm-bugs mailing list