[PATCH] D22103: [ARM] Skip inline asm memory operands in DAGToDAGISel

Eric Christopher via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 18 12:22:28 PDT 2016


Go ahead and revert.

On Mon, Jul 18, 2016, 12:02 PM Vitaly Buka <vitalybuka at google.com> wrote:

> The patch is probably causing
> http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/12458
>
> FAIL: LLVM :: CodeGen/ARM/inlineasm3.ll (4451 of 17333)
> ******************** TEST 'LLVM :: CodeGen/ARM/inlineasm3.ll' FAILED ********************
> Script:
> --
> /mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm_build_msan/./bin/llc -mtriple=arm-eabi -float-abi=soft -mattr=+neon,+v6t2 -no-integrated-as /mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/ARM/inlineasm3.ll -o -   | /mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm_build_msan/./bin/FileCheck /mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/ARM/inlineasm3.ll
> --
> Exit Code: 1
>
> Command Output (stderr):
> --
> /mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm/test/CodeGen/ARM/inlineasm3.ll:10:10: error: expected string not found in input
> ; CHECK: vmov.I64 q15, #0
>          ^
> <stdin>:1:4: note: scanning from here
>  .text
>    ^
> <stdin>:8:8: note: possible intended match here
>  .eabi_attribute 17, 1 @ Tag_ABI_PCS_GOT_use
>        ^
>
> --
>
>
>
> On Mon, Jul 18, 2016 at 12:42 AM Diana Picus via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> This revision was automatically updated to reflect the committed changes.
>> Closed by commit rL275776: [ARM] Skip inline asm memory operands in
>> DAGToDAGISel (authored by rovka).
>>
>> Changed prior to commit:
>>   https://reviews.llvm.org/D22103?vs=63102&id=64281#toc
>>
>> Repository:
>>   rL LLVM
>>
>> https://reviews.llvm.org/D22103
>>
>> Files:
>>   llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp
>>   llvm/trunk/test/CodeGen/ARM/inlineasm3.ll
>>
>> Index: llvm/trunk/test/CodeGen/ARM/inlineasm3.ll
>> ===================================================================
>> --- llvm/trunk/test/CodeGen/ARM/inlineasm3.ll
>> +++ llvm/trunk/test/CodeGen/ARM/inlineasm3.ll
>> @@ -121,3 +121,14 @@
>>    %0 = tail call <4 x i32> asm "vld1.s32 {${0:e}[], ${0:f}[]}, [$1]",
>> "=w,r"(i32* %p) nounwind
>>    ret <4 x i32> %0
>>  }
>> +
>> +; Bugzilla PR26038
>> +
>> +define i32 @fn1() local_unnamed_addr nounwind {
>> +; CHECK-LABEL: fn1
>> +entry:
>> +; CHECK: mov [[addr:r[0-9]+]], #5
>> +; CHECK: ldrh {{.*}}[[addr]]
>> +  %0 = tail call i32 asm "ldrh  $0, $1", "=r,*Q"(i8* inttoptr (i32 5 to
>> i8*)) nounwind
>> +  ret i32 %0
>> +}
>> Index: llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp
>> ===================================================================
>> --- llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp
>> +++ llvm/trunk/lib/Target/ARM/ARMISelDAGToDAG.cpp
>> @@ -4264,6 +4264,17 @@
>>      if (Changed && InlineAsm::isUseOperandTiedToDef(Flag, DefIdx))
>>        IsTiedToChangedOp = OpChanged[DefIdx];
>>
>> +    // Memory operands to inline asm in the SelectionDAG are modeled
>> with two
>> +    // operands: a constant of value InlineAsm::Kind_Mem followed by the
>> input
>> +    // operand. If we get here and we have a Kind_Mem, skip the next
>> operand (so
>> +    // it doesn't get misinterpreted), and continue. We do this here
>> because
>> +    // it's important to update the OpChanged array correctly before
>> moving on.
>> +    if (Kind == InlineAsm::Kind_Mem) {
>> +      SDValue op = N->getOperand(++i);
>> +      AsmNodeOperands.push_back(op);
>> +      continue;
>> +    }
>> +
>>      if (Kind != InlineAsm::Kind_RegUse && Kind != InlineAsm::Kind_RegDef
>>          && Kind != InlineAsm::Kind_RegDefEarlyClobber)
>>        continue;
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160718/ddf791c9/attachment.html>


More information about the llvm-commits mailing list