summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorQuentin Colombet <qcolombet@apple.com>2016-03-11 17:27:58 +0000
committerQuentin Colombet <qcolombet@apple.com>2016-03-11 17:27:58 +0000
commitf9b4934d1d38414ca378371632bfa235d4327123 (patch)
treea2fe51eb741432ff306e9fcbb3a65b0607fa04b1 /llvm/lib/CodeGen
parente225e2541b59f77bec8585a58dad848295395f43 (diff)
downloadbcm5719-llvm-f9b4934d1d38414ca378371632bfa235d4327123.tar.gz
bcm5719-llvm-f9b4934d1d38414ca378371632bfa235d4327123.zip
[MachineIRBuilder] Rework buildInstr API to maximize code reuse.
llvm-svn: 263264
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp46
1 files changed, 24 insertions, 22 deletions
diff --git a/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp b/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
index d79c8188fb4..2a828d76b07 100644
--- a/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
+++ b/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
@@ -53,16 +53,11 @@ MachineBasicBlock::iterator MachineIRBuilder::getInsertPt() {
return Before ? getMBB().begin() : getMBB().end();
}
-MachineInstr *MachineIRBuilder::buildInstr(unsigned Opcode, unsigned Res,
- unsigned Op0, unsigned Op1) {
- return buildInstr(Opcode, nullptr, Res, Op0, Op1);
-}
-
-MachineInstr *MachineIRBuilder::buildInstr(unsigned Opcode, Type *Ty,
- unsigned Res, unsigned Op0,
- unsigned Op1) {
- MachineInstr *NewMI =
- BuildMI(getMF(), DL, getTII().get(Opcode), Res).addReg(Op0).addReg(Op1);
+//------------------------------------------------------------------------------
+// Build instruction variants.
+//------------------------------------------------------------------------------
+MachineInstr *MachineIRBuilder::buildInstr(unsigned Opcode, Type *Ty) {
+ MachineInstr *NewMI = BuildMI(getMF(), DL, getTII().get(Opcode));
if (Ty) {
assert(isPreISelGenericOpcode(Opcode) &&
"Only generic instruction can have a type");
@@ -75,21 +70,28 @@ MachineInstr *MachineIRBuilder::buildInstr(unsigned Opcode, Type *Ty,
}
MachineInstr *MachineIRBuilder::buildInstr(unsigned Opcode, unsigned Res,
- unsigned Op0) {
- assert(!isPreISelGenericOpcode(Opcode) &&
- "Generic instruction must have a type");
+ unsigned Op0, unsigned Op1) {
+ return buildInstr(Opcode, nullptr, Res, Op0, Op1);
+}
- MachineInstr *NewMI =
- BuildMI(getMF(), DL, getTII().get(Opcode), Res).addReg(Op0);
- getMBB().insert(getInsertPt(), NewMI);
+MachineInstr *MachineIRBuilder::buildInstr(unsigned Opcode, Type *Ty,
+ unsigned Res, unsigned Op0,
+ unsigned Op1) {
+ MachineInstr *NewMI = buildInstr(Opcode, Ty);
+ MachineInstrBuilder(getMF(), NewMI)
+ .addReg(Res, RegState::Define)
+ .addReg(Op0)
+ .addReg(Op1);
return NewMI;
}
-MachineInstr *MachineIRBuilder::buildInstr(unsigned Opcode) {
- assert(!isPreISelGenericOpcode(Opcode) &&
- "Generic instruction must have a type");
-
- MachineInstr *NewMI = BuildMI(getMF(), DL, getTII().get(Opcode));
- getMBB().insert(getInsertPt(), NewMI);
+MachineInstr *MachineIRBuilder::buildInstr(unsigned Opcode, unsigned Res,
+ unsigned Op0) {
+ MachineInstr *NewMI = buildInstr(Opcode, nullptr);
+ MachineInstrBuilder(getMF(), NewMI).addReg(Res, RegState::Define).addReg(Op0);
return NewMI;
}
+
+MachineInstr *MachineIRBuilder::buildInstr(unsigned Opcode) {
+ return buildInstr(Opcode, nullptr);
+}
OpenPOWER on IntegriCloud