diff options
author | Quentin Colombet <qcolombet@apple.com> | 2016-03-11 17:27:58 +0000 |
---|---|---|
committer | Quentin Colombet <qcolombet@apple.com> | 2016-03-11 17:27:58 +0000 |
commit | f9b4934d1d38414ca378371632bfa235d4327123 (patch) | |
tree | a2fe51eb741432ff306e9fcbb3a65b0607fa04b1 /llvm/lib/CodeGen | |
parent | e225e2541b59f77bec8585a58dad848295395f43 (diff) | |
download | bcm5719-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.cpp | 46 |
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); +} |