[llvm-commits] Fixing Bug 13662: paired register for inline asm with 64-bit data on ARM
Jakob Stoklund Olesen
stoklund at 2pi.dk
Thu Jan 3 12:57:51 PST 2013
On Jan 3, 2013, at 12:03 PM, Weiming Zhao <weimingz at codeaurora.org> wrote:
> Yes, I tried to use CopyToReg/CopyFromReg to enforce the order. The issue is “Untyped” data type.
> The REG_SEQUENCE and EXTRACT_SUBREG has to use “Untyped” data type. However, CopyToReg/CopyFromReg doesn’t support such data type.
Why not?
> And I explicitly add a glue edge between the Extract_subreg and inline asm:
> SDValue E0 = SDValue(CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG,
> dl, MVT::i32, MVT::Glue, PairedReg,
> CurDAG->getTargetConstant(ARM::gsub_0, MVT::i32),
> Chain.getValue(1) è Guarantees that this node is emitted after the linlineasm
> ), 0);
>
> In other words, this node has the same effect as CopyFromReg.
Your DAG may work, but your changes still allow bad DAGs to be emitted. Plus, as I said, it's not necessary.
/jakob
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130103/d2e97c5d/attachment.html>
More information about the llvm-commits
mailing list