diff options
author | Chris Lattner <sabre@nondot.org> | 2007-02-25 18:40:32 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-02-25 18:40:32 +0000 |
commit | 251db1890c1fe03d02ee878ada8129537844d031 (patch) | |
tree | 66eda786db3fcf317b582e7829d698567e23c084 | |
parent | ce74de46dd2b1ca040bc5d2e17af64832bc0b633 (diff) |
optimize duplicate ValueMap lookups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34599 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index 99136ec160..bf3fa0ecd3 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -661,17 +661,14 @@ SDOperand SelectionDAGLowering::getValue(const Value *V) { return DAG.getFrameIndex(SI->second, TLI.getPointerTy()); } - DenseMap<const Value*, unsigned>::iterator VMI = - FuncInfo.ValueMap.find(V); - assert(VMI != FuncInfo.ValueMap.end() && "Value not in map!"); - - unsigned InReg = VMI->second; + unsigned InReg = FuncInfo.ValueMap[V]; + assert(InReg && "Value not in map!"); // If this type is not legal, make it so now. if (VT != MVT::Vector) { if (TLI.getTypeAction(VT) == TargetLowering::Expand) { // Source must be expanded. This input value is actually coming from the - // register pair VMI->second and VMI->second+1. + // register pair InReg and InReg+1. MVT::ValueType DestVT = TLI.getTypeToExpandTo(VT); unsigned NumVals = TLI.getNumElements(VT); N = DAG.getCopyFromReg(DAG.getEntryNode(), InReg, DestVT); @@ -4189,9 +4186,9 @@ LowerArguments(BasicBlock *LLVMBB, SelectionDAGLowering &SDL, // If this argument is live outside of the entry block, insert a copy from // whereever we got it to the vreg that other BB's will reference it as. - if (FuncInfo.ValueMap.count(AI)) { - SDOperand Copy = - SDL.CopyValueToVirtualRegister(AI, FuncInfo.ValueMap[AI]); + DenseMap<const Value*, unsigned>::iterator VMI=FuncInfo.ValueMap.find(AI); + if (VMI != FuncInfo.ValueMap.end()) { + SDOperand Copy = SDL.CopyValueToVirtualRegister(AI, VMI->second); UnorderedChains.push_back(Copy); } } |