summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp4
-rw-r--r--llvm/lib/Target/PowerPC/PPCInstrInfo.td2
2 files changed, 2 insertions, 4 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
index 252de5ee51c..9ed7de49809 100644
--- a/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
+++ b/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
@@ -873,6 +873,7 @@ SDOperand PPCDAGToDAGISel::Select(SDOperand Op) {
switch (N->getOpcode()) {
default: break;
+ case ISD::BasicBlock: return CodeGenMap[Op] = Op;
case ISD::DYNAMIC_STACKALLOC: return SelectDYNAMIC_STACKALLOC(Op);
case ISD::ADD_PARTS: return SelectADD_PARTS(Op);
case ISD::SUB_PARTS: return SelectSUB_PARTS(Op);
@@ -1219,9 +1220,6 @@ SDOperand PPCDAGToDAGISel::Select(SDOperand Op) {
// Finally, select this to a blr (return) instruction.
return CurDAG->SelectNodeTo(N, PPC::BLR, MVT::Other, Chain);
}
- case ISD::BR:
- return CurDAG->SelectNodeTo(N, PPC::B, MVT::Other, N->getOperand(1),
- Select(N->getOperand(0)));
case ISD::BR_CC:
case ISD::BRTWOWAY_CC: {
SDOperand Chain = Select(N->getOperand(0));
diff --git a/llvm/lib/Target/PowerPC/PPCInstrInfo.td b/llvm/lib/Target/PowerPC/PPCInstrInfo.td
index 48ac98176b4..ad8f91e06ba 100644
--- a/llvm/lib/Target/PowerPC/PPCInstrInfo.td
+++ b/llvm/lib/Target/PowerPC/PPCInstrInfo.td
@@ -190,7 +190,7 @@ let isTerminator = 1 in {
let Defs = [LR] in
def MovePCtoLR : Pseudo<(ops piclabel:$label), "bl $label", []>;
-let isBranch = 1, isTerminator = 1 in {
+let isBranch = 1, isTerminator = 1, hasCtrlDep = 1 in {
def COND_BRANCH : Pseudo<(ops CRRC:$crS, u16imm:$opc,
target:$true, target:$false),
"; COND_BRANCH", []>;
OpenPOWER on IntegriCloud