diff options
| author | Chris Lattner <sabre@nondot.org> | 2006-09-16 00:21:44 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2006-09-16 00:21:44 +0000 | 
| commit | 1b63391fdfb4ec3bd02c9fd6cd9e9e85dc9b76f5 (patch) | |
| tree | 92f9bb94718f06ef35fa582693c2445e5a0b9a2c /llvm | |
| parent | fbadbda6ba2a9a4620a4de11f2ed2d902d181c07 (diff) | |
| download | bcm5719-llvm-1b63391fdfb4ec3bd02c9fd6cd9e9e85dc9b76f5.tar.gz bcm5719-llvm-1b63391fdfb4ec3bd02c9fd6cd9e9e85dc9b76f5.zip  | |
simplify control flow, no functionality change
llvm-svn: 30403
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 18 | 
1 files changed, 12 insertions, 6 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index 8eddebd01aa..7c7dc437b9e 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -4723,22 +4723,28 @@ void SelectionDAGLegalize::ExpandOp(SDOperand Op, SDOperand &Lo, SDOperand &Hi){            LH.getOpcode() == ISD::SRA && LH.getOperand(0) == LL &&            LH.getOperand(1).getOpcode() == ISD::Constant &&            cast<ConstantSDNode>(LH.getOperand(1))->getValue() == SH) { +        // FIXME: Move this to the dag combiner. +         +        // Low part: +        Lo = DAG.getNode(ISD::MUL, NVT, LL, RL); +        // High part:          Hi = DAG.getNode(ISD::MULHS, NVT, LL, RL); -        UseLibCall = false; +        break;        } else if (HasMULHU) { +        // Low part: +        Lo = DAG.getNode(ISD::MUL, NVT, LL, RL); +         +        // High part:          Hi = DAG.getNode(ISD::MULHU, NVT, LL, RL);          RH = DAG.getNode(ISD::MUL, NVT, LL, RH);          LH = DAG.getNode(ISD::MUL, NVT, LH, RL);          Hi = DAG.getNode(ISD::ADD, NVT, Hi, RH);          Hi = DAG.getNode(ISD::ADD, NVT, Hi, LH); -        UseLibCall = false; +        break;        } -      if (!UseLibCall) -        Lo = DAG.getNode(ISD::MUL, NVT, LL, RL);      } -    if (UseLibCall) -      Lo = ExpandLibCall("__muldi3" , Node, Hi); +    Lo = ExpandLibCall("__muldi3" , Node, Hi);      break;    }    case ISD::SDIV: Lo = ExpandLibCall("__divdi3" , Node, Hi); break;  | 

