OSDN Git Service

[TargetLowering] Handle multi depth GEPs w/ inline asm constraints
authorNick Desaulniers <ndesaulniers@google.com>
Mon, 13 May 2019 17:27:44 +0000 (17:27 +0000)
committerNick Desaulniers <ndesaulniers@google.com>
Mon, 13 May 2019 17:27:44 +0000 (17:27 +0000)
commitf90dd6af95b0cb17226636830c9137583983eee0
tree119fe9393e8cc320473e5dde642097804e35340d
parentb5d252509b24d9b48fc7c1a4bb367c574fc658fb
[TargetLowering] Handle multi depth GEPs w/ inline asm constraints

Summary:
X86TargetLowering::LowerAsmOperandForConstraint had better support than
TargetLowering::LowerAsmOperandForConstraint for arbitrary depth
getelementpointers for "i", "n", and "s" extended inline assembly
constraints. Hoist its support from the derived class into the base
class.

Link: https://github.com/ClangBuiltLinux/linux/issues/469
Reviewers: echristo, t.p.northover

Reviewed By: t.p.northover

Subscribers: t.p.northover, E5ten, kees, jyknight, nemanjai, javed.absar, eraman, hiraditya, jsji, llvm-commits, void, craig.topper, nathanchance, srhines

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D61560

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360604 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/TargetLowering.cpp
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/AArch64/inline-asm-multilevel-gep.ll [new file with mode: 0644]
test/CodeGen/ARM/inline-asm-multilevel-gep.ll [new file with mode: 0644]
test/CodeGen/PowerPC/inline-asm-multilevel-gep.ll [new file with mode: 0644]
test/CodeGen/X86/inline-asm-multilevel-gep.ll [new file with mode: 0644]