diff options
author | Tim Northover <tnorthover@apple.com> | 2016-07-29 22:32:36 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2016-07-29 22:32:36 +0000 |
commit | 5fb414d87051004410a42096b23cb7a58e2ed881 (patch) | |
tree | 6808f68a2cb07e36ed307b2d08d9e498a449ff3c /llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp | |
parent | 31b07f14451454847a79f84f220976e753a38ed8 (diff) | |
download | bcm5719-llvm-5fb414d87051004410a42096b23cb7a58e2ed881.tar.gz bcm5719-llvm-5fb414d87051004410a42096b23cb7a58e2ed881.zip |
GlobalISel: support translation of intrinsic calls.
These come in two variants for now: G_INTRINSIC and G_INTRINSIC_W_SIDE_EFFECTS.
We may decide to split the latter up with finer-grained restrictions later, if
necessary.
llvm-svn: 277224
Diffstat (limited to 'llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp')
-rw-r--r-- | llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp b/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp index 426de444d88..5e737d5e2bb 100644 --- a/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp +++ b/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp @@ -143,3 +143,17 @@ MachineInstrBuilder MachineIRBuilder::buildSequence(LLT Ty, unsigned Res, MIB.addUse(Op); return MIB; } + +MachineInstrBuilder MachineIRBuilder::buildIntrinsic(ArrayRef<LLT> Tys, + Intrinsic::ID ID, + unsigned Res, + bool HasSideEffects) { + auto MIB = + buildInstr(HasSideEffects ? TargetOpcode::G_INTRINSIC_W_SIDE_EFFECTS + : TargetOpcode::G_INTRINSIC, + Tys); + if (Res) + MIB.addDef(Res); + MIB.addIntrinsicID(ID); + return MIB; +} |