diff options
author | Jessica Paquette <jpaquette@apple.com> | 2018-10-05 21:02:46 +0000 |
---|---|---|
committer | Jessica Paquette <jpaquette@apple.com> | 2018-10-05 21:02:46 +0000 |
commit | b328d95333e08cbcd70ead2ebbfd00cfc97000df (patch) | |
tree | 78c80ff6b5518da13732d13e616cb913975ae891 /llvm/lib/CodeGen | |
parent | fdada09fa4351b270df0cbfe5ef72aa2853b9f26 (diff) | |
download | bcm5719-llvm-b328d95333e08cbcd70ead2ebbfd00cfc97000df.tar.gz bcm5719-llvm-b328d95333e08cbcd70ead2ebbfd00cfc97000df.zip |
[GlobalIsel] Add llvm.invariant.start and llvm.invariant.end
Port over the implementation in SelectionDAGBuilder.cpp into the IRTranslator
and update the arm64-irtranslator test.
These were causing fallbacks in CTMark/Bullet (-Rpass-missed=gisel-select),
and this patch fixes that.
https://reviews.llvm.org/D52945
llvm-svn: 343885
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp index ff1ad712f93..709965ba151 100644 --- a/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -955,6 +955,14 @@ bool IRTranslator::translateKnownIntrinsic(const CallInst &CI, Intrinsic::ID ID, .addUse(getOrCreateVReg(*CI.getArgOperand(0))); return true; } + case Intrinsic::invariant_start: { + LLT PtrTy = getLLTForType(*CI.getArgOperand(0)->getType(), *DL); + unsigned Undef = MRI->createGenericVirtualRegister(PtrTy); + MIRBuilder.buildUndef(Undef); + return true; + } + case Intrinsic::invariant_end: + return true; } return false; } |