From 3f631b82faaf9c506acdb34321f8083a81cc66cd Mon Sep 17 00:00:00 2001 From: Tim Northover Date: Mon, 6 Mar 2017 18:36:40 +0000 Subject: [PATCH] GlobalISel: add buildUndef method to MachineIRBuilder. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297044 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h | 3 +++ lib/CodeGen/GlobalISel/IRTranslator.cpp | 2 +- lib/CodeGen/GlobalISel/MachineIRBuilder.cpp | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h b/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h index 7d148cf2e9a..4eafe88831a 100644 --- a/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h +++ b/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h @@ -451,6 +451,9 @@ public: MachineInstrBuilder buildExtract(ArrayRef Results, ArrayRef Indices, unsigned Src); + /// Build and insert \p Res = IMPLICIT_DEF. + MachineInstrBuilder buildUndef(unsigned Dst); + /// Build and insert \p Res = G_SEQUENCE \p Op0, \p Idx0... /// /// G_SEQUENCE inserts each element of Ops into an IMPLICIT_DEF register, diff --git a/lib/CodeGen/GlobalISel/IRTranslator.cpp b/lib/CodeGen/GlobalISel/IRTranslator.cpp index c78de71a0e2..6c403a8212a 100644 --- a/lib/CodeGen/GlobalISel/IRTranslator.cpp +++ b/lib/CodeGen/GlobalISel/IRTranslator.cpp @@ -986,7 +986,7 @@ bool IRTranslator::translate(const Constant &C, unsigned Reg) { else if (auto CF = dyn_cast(&C)) EntryBuilder.buildFConstant(Reg, *CF); else if (isa(C)) - EntryBuilder.buildInstr(TargetOpcode::IMPLICIT_DEF).addDef(Reg); + EntryBuilder.buildUndef(Reg); else if (isa(C)) EntryBuilder.buildConstant(Reg, 0); else if (auto GV = dyn_cast(&C)) diff --git a/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp b/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp index 5eea7268c5e..08f29f4621c 100644 --- a/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp +++ b/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp @@ -416,6 +416,10 @@ MachineIRBuilder::buildSequence(unsigned Res, return MIB; } +MachineInstrBuilder MachineIRBuilder::buildUndef(unsigned Res) { + return buildInstr(TargetOpcode::IMPLICIT_DEF).addDef(Res); +} + MachineInstrBuilder MachineIRBuilder::buildMerge(unsigned Res, ArrayRef Ops) { -- 2.50.1