/freebsd-9.3-release/contrib/llvm/lib/CodeGen/ |
H A D | MachineSSAUpdater.cpp | 49 /// updates. ProtoValue is the value used to name PHI nodes. 108 /// InsertNewDef - Insert an empty PHI or IMPLICIT_DEF instruction which define 137 /// a block. Because of this, we need to insert a new PHI node in SomeBB to 179 // If an identical PHI is already in BB, just reuse it. 184 // Otherwise, we do need a PHI: insert one now. 186 MachineInstrBuilder InsertedPHI = InsertNewDef(TargetOpcode::PHI, BB, 189 // Fill in all the predecessors of the PHI. 193 // See if the PHI node can be merged to a single value. This can happen in 194 // loop cases when we get a PHI of itself and one other value. 203 DEBUG(dbgs() << " Inserted PHI 260 MachineInstr *PHI; member in class:llvm::SSAUpdaterTraits::PHI_iterator 277 PHI_begin(PhiT *PHI) argument 278 PHI_end(PhiT *PHI) argument 308 MachineInstr *PHI = InsertNewDef(TargetOpcode::PHI, BB, Loc, local 316 AddPHIOperand(MachineInstr *PHI, unsigned Val, MachineBasicBlock *Pred) argument 338 MachineInstr *PHI = ValueIsPHI(Val, Updater); local 346 GetPHIValue(MachineInstr *PHI) argument [all...] |
H A D | EarlyIfConversion.cpp | 110 MachineInstr *PHI; member in struct:__anon2116::SSAIfConv::PHIInfo 116 : PHI(phi), TReg(0), FReg(0), CondCycles(0), TCycles(0), FCycles(0) {} 146 /// Replace PHI instructions in Tail with selects. 149 /// Insert selects and rewrite PHI operands to use them. 411 // Find PHI operands corresponding to TPred and FPred. 412 for (unsigned i = 1; i != PI.PHI->getNumOperands(); i += 2) { 413 if (PI.PHI->getOperand(i+1).getMBB() == TPred) 414 PI.TReg = PI.PHI->getOperand(i).getReg(); 415 if (PI.PHI->getOperand(i+1).getMBB() == FPred) 416 PI.FReg = PI.PHI [all...] |
H A D | MachineTraceMetrics.cpp | 660 // Get the input data dependencies of a PHI instruction, using Pred as the 670 assert(UseMI->isPHI() && UseMI->getNumOperands() % 2 && "Bad PHI"); 1060 const MachineInstr *PHI = I; 1062 getPHIDeps(PHI, Deps, MBB, MTM.MRI); 1064 // Loop header PHI heights are all 0. 1065 unsigned Height = TBI.Succ ? Cycles.lookup(PHI).Height : 0; 1066 DEBUG(dbgs() << "pred\t" << Height << '\t' << *PHI); 1067 if (pushDepHeight(Deps.front(), PHI, Height, 1089 // Don't process PHI deps. They depend on the specific predecessor, and 1162 MachineTraceMetrics::Trace::getPHIDepth(const MachineInstr *PHI) cons [all...] |
/freebsd-9.3-release/contrib/llvm/include/llvm/Target/ |
H A D | TargetOpcodes.h | 26 PHI = 0, enumerator in enum:llvm::TargetOpcode::__anon2021
|
/freebsd-9.3-release/contrib/llvm/lib/Transforms/Utils/ |
H A D | SSAUpdater.cpp | 65 static bool IsEquivalentPHI(PHINode *PHI, argument 67 unsigned PHINumValues = PHI->getNumIncomingValues(); 73 if (ValueMapping[PHI->getIncomingBlock(i)] != 74 PHI->getIncomingValue(i)) { 98 // is relatively slow. If we already have PHI nodes in this block, walk one 136 // Otherwise, we do need a PHI: check to see if we already have one available 153 // Fill in all the predecessors of the PHI. 157 // See if the PHI node can be merged to a single value. This can happen in 158 // loop cases when we get a PHI of itself and one other value. 164 // Set the DebugLoc of the inserted PHI, i 220 PHINode *PHI; member in class:llvm::SSAUpdaterTraits::PHI_iterator 236 PHI_begin(PhiT *PHI) argument 237 PHI_end(PhiT *PHI) argument 267 PHINode *PHI = PHINode::Create(Updater->ProtoType, NumPreds, local 274 AddPHIOperand(PHINode *PHI, Value *Val, BasicBlock *Pred) argument 293 PHINode *PHI = ValueIsPHI(Val, Updater); local 301 GetPHIValue(PHINode *PHI) argument [all...] |
H A D | FlattenCFG.cpp | 125 PHINode *PHI = dyn_cast<PHINode>(BB->begin()); local 126 if (PHI) 127 return false; // For simplicity, avoid cases containing PHI nodes. 260 // PS2 should not contain PHI node. 261 PHI = dyn_cast<PHINode>(PS2->begin()); 262 if (PHI)
|
H A D | InlineFunction.cpp | 49 PHINode *InnerEHValuesPHI; ///< PHI for EH values from landingpad insts. 56 // If there are PHI nodes in the unwind destination block, we need to keep 63 PHINode *PHI = cast<PHINode>(I); local 64 UnwindDestPHIValues.push_back(PHI->getIncomingValueForBlock(InvokeBB)); 88 /// addIncomingPHIValuesFor - Add incoming-PHI values to the unwind 130 // Create a PHI for the exception values. 173 /// it rewrites them to be invokes that jump to InvokeDest and fills in the PHI 223 // Update any PHI nodes in the exceptional block to indicate that there is 268 // Now that everything is happy, we have one final detail. The PHI nodes in 271 // PHI nod 832 PHINode *PHI = 0; local [all...] |
H A D | SimplifyCFG.cpp | 125 // successor, and if that successor has a PHI node, and if *that* PHI node has 146 /// unconditional branch. PhiNodes will store all PHI nodes in common 156 // We fold the unconditional branch if we can easily update all PHI nodes in 185 /// AddPredecessorToBlock - Update PHI nodes in Succ to indicate that there will 187 /// flowing into the PHI nodes will be the same as those coming in from 603 // Remove PHI node entries for the dead edge. 677 // Remove PHI node entries for dead edges. 924 // sure we update the number of entries in the PHI nodes for these 1094 // Unfortunately, the successors of the if/else blocks may have PHI node 3282 PHINode *PHI = FindPHIForConditionForwarding(CaseValue, CaseDest, local 3732 PHINode *PHI = DefaultResultsList[I].first; local 3781 PHINode *PHI = PHIs[I]; local [all...] |
/freebsd-9.3-release/contrib/gcc/ |
H A D | tree-ssa-operands.h | 139 #define PHI_RESULT_PTR(PHI) get_phi_result_ptr (PHI) 140 #define PHI_RESULT(PHI) DEF_FROM_PTR (PHI_RESULT_PTR (PHI)) 141 #define SET_PHI_RESULT(PHI, V) SET_DEF (PHI_RESULT_PTR (PHI), (V)) 143 #define PHI_ARG_DEF_PTR(PHI, I) get_phi_arg_def_ptr ((PHI), (I)) 144 #define PHI_ARG_DEF(PHI, I) USE_FROM_PTR (PHI_ARG_DEF_PTR ((PHI), ( [all...] |
/freebsd-9.3-release/contrib/llvm/include/llvm/Transforms/Utils/ |
H A D | SSAUpdaterImpl.h | 279 /// dominating definitions for non-PHI blocks. 289 // If this block already needs a PHI, there is nothing to do here. 297 // Need a PHI here. 312 /// FindAvailableVal - If this block requires a PHI, first check if an 313 /// existing PHI matches the PHI placement and reaching definitions computed 314 /// earlier, and if not, create a new PHI. Visit all the block's 316 /// the incoming values for a new PHI. 324 // Check if there needs to be a PHI in BB. 328 // Look for an existing PHI 333 ValT PHI = Traits::CreateEmptyPHI(Info->BB, Info->NumPreds, Updater); local 353 PhiT *PHI = Traits::ValueIsNewPHI(Info->AvailableVal, Updater); local 395 CheckIfPHIMatches(PhiT *PHI) argument [all...] |
/freebsd-9.3-release/contrib/llvm/lib/Transforms/ObjCARC/ |
H A D | ObjCARCContract.cpp | 26 // TODO: ObjCARCContract could insert PHI nodes when uses aren't 465 if (PHINode *PHI = dyn_cast<PHINode>(U.getUser())) { 466 // For PHI nodes, insert the bitcast in the predecessor block. 468 BasicBlock *BB = PHI->getIncomingBlock(ValNo); 472 // While we're here, rewrite all edges for this PHI, rather 475 for (unsigned i = 0, e = PHI->getNumIncomingValues(); i != e; ++i) 476 if (PHI->getIncomingBlock(i) == BB) { 478 if (&PHI->getOperandUse( 482 PHI->setIncomingValue(i, Replacement);
|
H A D | ObjCARCUtil.cpp | 212 case Instruction::Select: case Instruction::PHI:
|
/freebsd-9.3-release/contrib/llvm/lib/Analysis/ |
H A D | CaptureTracking.cpp | 146 case Instruction::PHI:
|
H A D | MemoryBuiltins.cpp | 745 SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitPHINode(PHINode &PHI) { argument 747 PHINode *SizePHI = Builder.CreatePHI(IntTy, PHI.getNumIncomingValues()); 748 PHINode *OffsetPHI = Builder.CreatePHI(IntTy, PHI.getNumIncomingValues()); 751 CacheMap[&PHI] = std::make_pair(SizePHI, OffsetPHI); 753 // compute offset/size for each PHI incoming pointer 754 for (unsigned i = 0, e = PHI.getNumIncomingValues(); i != e; ++i) { 755 Builder.SetInsertPoint(PHI.getIncomingBlock(i)->getFirstInsertionPt()); 756 SizeOffsetEvalType EdgeData = compute_(PHI.getIncomingValue(i)); 765 SizePHI->addIncoming(EdgeData.first, PHI.getIncomingBlock(i)); 766 OffsetPHI->addIncoming(EdgeData.second, PHI [all...] |
H A D | IVUsers.cpp | 152 // Do not infinitely recurse on PHI nodes. 160 if (PHINode *PHI = dyn_cast<PHINode>(User)) { 163 UseBB = PHI->getIncomingBlock(ValNo); 168 // Descend recursively, but not into PHI nodes outside the current loop. 260 // them by stride. Start by finding all of the PHI nodes in the header for
|
/freebsd-9.3-release/contrib/llvm/include/llvm/CodeGen/ |
H A D | MachineTraceMetrics.h | 92 /// Doesn't count PHI and COPY instructions that are likely to be removed. 213 /// This does not include PHI uses in the current block, but it does 214 /// include PHI uses in deeper blocks. 286 /// Return the Depth of a PHI instruction in a trace center block successor. 287 /// The PHI does not have to be part of the trace. 288 unsigned getPHIDepth(const MachineInstr *PHI) const;
|
H A D | MachineInstr.h | 648 bool isPHI() const { return getOpcode() == TargetOpcode::PHI; } 696 case TargetOpcode::PHI: 930 /// isConstantValuePHI - If the specified instruction is a PHI that always
|
/freebsd-9.3-release/contrib/llvm/lib/CodeGen/SelectionDAG/ |
H A D | SelectionDAGISel.cpp | 131 STATISTIC(NumFastIselFailPHI,"Fast isel fails on PHI"); 349 /// SplitCriticalSideEffectEdges - Look for critical edges with a PHI value that 363 // For each block with a PHI node, check to see if any of the input values 366 // PHI. 373 // Since this block has a PHI Node, we assume it has multiple input 777 // update PHI nodes later on. 975 case Instruction::PHI: NumFastIselFailPHI++; return; 1301 // PHI nodes in successors. 1304 MachineInstrBuilder PHI(*MF, FuncInfo->PHINodesToUpdate[i].first); 1305 assert(PHI [all...] |
/freebsd-9.3-release/contrib/llvm/include/llvm/Analysis/ |
H A D | MemoryBuiltins.h | 266 SizeOffsetEvalType visitPHINode(PHINode &PHI);
|
/freebsd-9.3-release/contrib/llvm/lib/Target/R600/ |
H A D | SIFixSGPRCopies.cpp | 25 /// %vreg4 <vsrc> = PHI %vreg1 <vsrc>, <BB#0>, %vreg3 <vrsc>, <BB#1> 40 /// %vreg4 <sgpr> = PHI %vreg0 <sgpr>, <BB#0>, %vreg3 <vsrc>, <BB#1> 43 /// Now that the result of the PHI instruction is an SGPR, the register 55 /// %vreg4 <sgpr> = PHI %vreg0 <sgpr>, <BB#0>, %vreg3 <sgpr>, <BB#1> 60 /// In order to avoid this problem, this pass searches for PHI instructions 62 /// <vgpr> if the user of the PHI's definition register is a vector instruction. 63 /// If the PHI's definition class is constrained to <vgpr> then the coalescer 137 // The Reg parameter to the function must always be defined by either a PHI 216 case AMDGPU::PHI: { 217 DEBUG(dbgs() << " Fixing PHI [all...] |
/freebsd-9.3-release/contrib/llvm/lib/Transforms/Scalar/ |
H A D | CorrelatedValuePropagation.cpp | 120 DEBUG(dbgs() << "CVP: Threading PHI over " << *SI << '\n'); 258 // The condition can be modified by removePredecessor's PHI simplification 296 case Instruction::PHI:
|
H A D | IndVarSimplify.cpp | 188 /// loop. For PHI nodes, there may be multiple uses, so compute the nearest 192 PHINode *PHI = dyn_cast<PHINode>(User); local 193 if (!PHI) 197 for (unsigned i = 0, e = PHI->getNumIncomingValues(); i != e; ++i) { 198 if (PHI->getIncomingValue(i) != Def) 201 BasicBlock *InsertBB = PHI->getIncomingBlock(i); 259 // If this is not an add of the PHI with a constantfp, or if the constant fp 485 // Because of LCSSA, these values will only occur in LCSSA PHI Nodes. Scan 490 // If there are no PHI nodes in this exit block, then no values defined 497 // Iterate over all of the PHI node [all...] |
/freebsd-9.3-release/contrib/llvm/tools/clang/lib/CodeGen/ |
H A D | CGVTables.cpp | 148 llvm::PHINode *PHI = CGF.Builder.CreatePHI(ReturnValue->getType(), 2); local 149 PHI->addIncoming(ReturnValue, AdjustNotNull); 150 PHI->addIncoming(llvm::Constant::getNullValue(ReturnValue->getType()), 152 ReturnValue = PHI;
|
H A D | CGClass.cpp | 221 llvm::PHINode *PHI = Builder.CreatePHI(BasePtrTy, 2, "cast.result"); local 222 PHI->addIncoming(Value, notNullBB); 223 PHI->addIncoming(llvm::Constant::getNullValue(BasePtrTy), origBB); 224 Value = PHI; 278 llvm::PHINode *PHI = Builder.CreatePHI(Value->getType(), 2); local 279 PHI->addIncoming(Value, CastNotNull); 280 PHI->addIncoming(llvm::Constant::getNullValue(Value->getType()), 282 Value = PHI;
|
H A D | CGExprCXX.cpp | 1268 llvm::PHINode *PHI = Builder.CreatePHI(result->getType(), 2); local 1269 PHI->addIncoming(result, notNullBB); 1270 PHI->addIncoming(llvm::Constant::getNullValue(result->getType()), 1273 result = PHI; 1848 llvm::PHINode *PHI = Builder.CreatePHI(Value->getType(), 2); local 1849 PHI->addIncoming(Value, CastNotNull); 1850 PHI->addIncoming(llvm::Constant::getNullValue(Value->getType()), CastNull); 1852 Value = PHI;
|