diff options
author | Chris Lattner <sabre@nondot.org> | 2004-10-16 18:13:47 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-10-16 18:13:47 +0000 |
commit | 289a49ab7de9eef5d0ede1f07272a4c390174613 (patch) | |
tree | f60d2ccec3f359db1faaa27ac2ebab664a06bf16 /lib | |
parent | 30483b0c8473dbdc0a09ae8a44034200799d67ec (diff) |
ADd support for undef and unreachable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17050 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/PowerPC/PPC32ISelSimple.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/Target/PowerPC/PPC32ISelSimple.cpp b/lib/Target/PowerPC/PPC32ISelSimple.cpp index fd5f671ac4..247da627aa 100644 --- a/lib/Target/PowerPC/PPC32ISelSimple.cpp +++ b/lib/Target/PowerPC/PPC32ISelSimple.cpp @@ -237,9 +237,10 @@ namespace { // Visitation methods for various instructions. These methods simply emit // fixed PowerPC code for each instruction. - // Control flow operators + // Control flow operators. void visitReturnInst(ReturnInst &RI); void visitBranchInst(BranchInst &BI); + void visitUnreachableInst(UnreachableInst &UI) {} struct ValueRecord { Value *Val; @@ -575,6 +576,10 @@ void PPC32ISel::copyGlobalBaseToRegister(MachineBasicBlock *MBB, void PPC32ISel::copyConstantToRegister(MachineBasicBlock *MBB, MachineBasicBlock::iterator IP, Constant *C, unsigned R) { + if (isa<UndefValue>(C)) { + BuildMI(*MBB, IP, PPC::IMPLICIT_DEF, 0, R); + return; + } if (C->getType()->isIntegral()) { unsigned Class = getClassB(C->getType()); @@ -2117,9 +2122,8 @@ void PPC32ISel::emitBinaryConstOperation(MachineBasicBlock *MBB, // xor X, -1 -> not X if (Opcode == 4) { - ConstantSInt *CSI = dyn_cast<ConstantSInt>(Op1); - ConstantUInt *CUI = dyn_cast<ConstantUInt>(Op1); - if ((CSI && CSI->isAllOnesValue()) || (CUI && CUI->isAllOnesValue())) { + ConstantInt *CI = dyn_cast<ConstantSInt>(Op1); + if (CI && CI->isAllOnesValue()) { BuildMI(*MBB, IP, PPC::NOR, 2, DestReg).addReg(Op0Reg).addReg(Op0Reg); return; } |