[LLVMbugs] [Bug 21443] [PPC64] Wrong register generated for inline assembler

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Dec 3 15:49:34 PST 2014


Hal Finkel <hfinkel at anl.gov> changed:

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

--- Comment #6 from Hal Finkel <hfinkel at anl.gov> ---
I ended up spending just about all day looking at this, in part because I was
hoping to be able to improve our memory operand handling, generally speaking,
in addition to just fixing this bug. To make a long story short, to really
improve things we'll need to have access to the original memory constraint type
('m', 'Z', etc.) in SelectInlineAsmMemoryOperand, and we don't. The calling
code always passes 'm' because it does not have access to the original either.
The code in SelectionDAGBuilder::visitInlineAsm does not save this information
in the SDAG INLINEASM nodes, opting instead for some collection of flags and an
optional register-class constraint -- which is obviously functional, but far
from optimal. I suspect we'll end up giving INLINEASM its own SDNode subclass,
and redo the way that its operands are setup in order to make progress here.
Thus, general improvements will have to wait for another day.

In short, this bug has been fixed in r223318 -- no other improvements yet.

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/20141203/90f0e5bb/attachment.html>

More information about the llvm-bugs mailing list