/external/llvm/lib/CodeGen/ |
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: " << *InsertedPHI << "\n") [all...] |
EarlyIfConversion.cpp | 108 /// Information about each phi in the Tail block. 110 MachineInstr *PHI; 115 PHIInfo(MachineInstr *phi) 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 [all...] |
StrongPHIElimination.cpp | 1 //===- StrongPHIElimination.cpp - Eliminate PHI nodes by inserting copies -===// 10 // This pass eliminates PHI instructions by aggressively coalescing the copies 13 // registers appearing in a PHI instruction do not interfere. It then eliminates 72 /// PHI with that register as its destination has been isolated. 112 /// Get the color of a PHI. The color of a PHI is 0 if the PHI has been 117 /// Isolate a PHI. 135 // Lowers a PHI instruction, inserting copies of the source and destination 153 // Maps a basic block to a list of its defs of registers that appear as PHI [all...] |
MachineTraceMetrics.cpp | 567 // Get the input data dependencies of a PHI instruction, using Pred as the 577 assert(UseMI->isPHI() && UseMI->getNumOperands() % 2 && "Bad PHI"); [all...] |
/external/llvm/include/llvm/Target/ |
TargetOpcodes.h | 26 PHI = 0,
|
/prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6/lib/gcc/arm-eabi/4.6.x-google/plugin/include/ |
tree-ssa-operands.h | 88 #define PHI_RESULT_PTR(PHI) gimple_phi_result_ptr (PHI) 89 #define PHI_RESULT(PHI) DEF_FROM_PTR (PHI_RESULT_PTR (PHI)) 90 #define SET_PHI_RESULT(PHI, V) SET_DEF (PHI_RESULT_PTR (PHI), (V)) 92 #define PHI_ARG_DEF_PTR(PHI, I) gimple_phi_arg_imm_use_ptr ((PHI), (I)) 93 #define PHI_ARG_DEF(PHI, I) USE_FROM_PTR (PHI_ARG_DEF_PTR ((PHI), (I)) [all...] |
/prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6/lib/gcc/arm-linux-androideabi/4.6.x-google/plugin/include/ |
tree-ssa-operands.h | 88 #define PHI_RESULT_PTR(PHI) gimple_phi_result_ptr (PHI) 89 #define PHI_RESULT(PHI) DEF_FROM_PTR (PHI_RESULT_PTR (PHI)) 90 #define SET_PHI_RESULT(PHI, V) SET_DEF (PHI_RESULT_PTR (PHI), (V)) 92 #define PHI_ARG_DEF_PTR(PHI, I) gimple_phi_arg_imm_use_ptr ((PHI), (I)) 93 #define PHI_ARG_DEF(PHI, I) USE_FROM_PTR (PHI_ARG_DEF_PTR ((PHI), (I)) [all...] |
/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/lib/gcc/arm-eabi/4.6.x-google/plugin/include/ |
tree-ssa-operands.h | 88 #define PHI_RESULT_PTR(PHI) gimple_phi_result_ptr (PHI) 89 #define PHI_RESULT(PHI) DEF_FROM_PTR (PHI_RESULT_PTR (PHI)) 90 #define SET_PHI_RESULT(PHI, V) SET_DEF (PHI_RESULT_PTR (PHI), (V)) 92 #define PHI_ARG_DEF_PTR(PHI, I) gimple_phi_arg_imm_use_ptr ((PHI), (I)) 93 #define PHI_ARG_DEF(PHI, I) USE_FROM_PTR (PHI_ARG_DEF_PTR ((PHI), (I)) [all...] |
/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/lib/gcc/arm-linux-androideabi/4.6.x-google/plugin/include/ |
tree-ssa-operands.h | 88 #define PHI_RESULT_PTR(PHI) gimple_phi_result_ptr (PHI) 89 #define PHI_RESULT(PHI) DEF_FROM_PTR (PHI_RESULT_PTR (PHI)) 90 #define SET_PHI_RESULT(PHI, V) SET_DEF (PHI_RESULT_PTR (PHI), (V)) 92 #define PHI_ARG_DEF_PTR(PHI, I) gimple_phi_arg_imm_use_ptr ((PHI), (I)) 93 #define PHI_ARG_DEF(PHI, I) USE_FROM_PTR (PHI_ARG_DEF_PTR ((PHI), (I)) [all...] |
/external/llvm/lib/Transforms/Utils/ |
SSAUpdater.cpp | 46 /// updates with type 'Ty'. PHI nodes get a name based on 'Name'. 71 /// IsEquivalentPHI - Check if PHI has the same incoming value as specified 73 static bool IsEquivalentPHI(PHINode *PHI, 75 unsigned PHINumValues = PHI->getNumIncomingValues(); 79 // Scan the phi to see if it matches. 81 if (ValueMapping[PHI->getIncomingBlock(i)] != 82 PHI->getIncomingValue(i)) { 112 /// a block. Because of this, we need to insert a new PHI node in SomeBB to 127 // is relatively slow. If we already have PHI nodes in this block, walk one 165 // Otherwise, we do need a PHI: check to see if we already have one availabl [all...] |
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); 64 UnwindDestPHIValues.push_back(PHI->getIncomingValueForBlock(InvokeBB)); 87 /// addIncomingPHIValuesFor - Add incoming-PHI values to the unwind 97 PHINode *phi = cast<PHINode>(I); local 98 phi->addIncoming(UnwindDestPHIValues[i], src); 129 // Create a PHI for the exception values. 160 /// it rewrites them to be invokes that jump to InvokeDest and fills in the PHI 209 // Update any PHI nodes in the exceptional block to indicate that there i [all...] |
SimplifyCFG.cpp | 51 PHINodeFoldingThreshold("phi-node-folding-threshold", cl::Hidden, cl::init(1), 52 cl::desc("Control the amount of phi node folding to perform (default = 1)")); 119 // successor, and if that successor has a PHI node, and if *that* PHI node has 140 /// unconditional branch. PhiNodes will store all PHI nodes in common 150 // We fold the unconditional branch if we can easily update all PHI nodes in 179 /// AddPredecessorToBlock - Update PHI nodes in Succ to indicate that there will 181 /// flowing into the PHI nodes will be the same as those coming in from 195 /// least one PHI node in it), check to see if the merge at this block is due 658 // Remove PHI node entries for the dead edge [all...] |
/external/llvm/include/llvm/Transforms/Utils/ |
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 [all...] |
/external/llvm/lib/Analysis/ |
MemoryBuiltins.cpp | 575 SizeOffsetType ObjectSizeOffsetVisitor::visitPHINode(PHINode &PHI) { 576 if (PHI.getNumIncomingValues() == 0) 579 SizeOffsetType Ret = compute(PHI.getIncomingValue(0)); 583 // Verify that all PHI incoming pointers have the same size and offset. 584 for (unsigned i = 1, e = PHI.getNumIncomingValues(); i != e; ++i) { 585 SizeOffsetType EdgeData = compute(PHI.getIncomingValue(i)); 762 SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitPHINode(PHINode &PHI) { 764 PHINode *SizePHI = Builder.CreatePHI(IntTy, PHI.getNumIncomingValues()); 765 PHINode *OffsetPHI = Builder.CreatePHI(IntTy, PHI.getNumIncomingValues()); 768 CacheMap[&PHI] = std::make_pair(SizePHI, OffsetPHI) [all...] |
CaptureTracking.cpp | 146 case Instruction::PHI:
|
IVUsers.cpp | 152 // Do not infinitely recurse on PHI nodes. 159 // A phi's use is live out of its predecessor block. 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. 241 // them by stride. Start by finding all of the PHI nodes in the header for
|
ScalarEvolution.cpp | 21 // if there is a cycle in the dataflow for an expression (ie, a PHI node). If 22 // the PHI node is one of the idioms that we can represent (e.g., a polynomial 32 // higher-level code, such as the code that recognizes PHI nodes of various [all...] |
/external/llvm/lib/Transforms/ObjCARC/ |
ObjCARCContract.cpp | 26 // TODO: ObjCARCContract could insert PHI nodes when uses aren't 486 if (PHINode *PHI = dyn_cast<PHINode>(U.getUser())) { 487 // For PHI nodes, insert the bitcast in the predecessor block. 489 BasicBlock *BB = PHI->getIncomingBlock(ValNo); 493 // While we're here, rewrite all edges for this PHI, rather 496 for (unsigned i = 0, e = PHI->getNumIncomingValues(); i != e; ++i) 497 if (PHI->getIncomingBlock(i) == BB) { 499 if (&PHI->getOperandUse( 503 PHI->setIncomingValue(i, Replacement);
|
/external/llvm/lib/Target/R600/ |
AMDGPUIndirectAddressing.cpp | 177 // We don't need to insert a Phi instruction, so we can just add the 182 // We need to insert a PHI, because we have the same address being 187 MachineInstrBuilder Phi = BuildMI(MBB, MBB.begin(), 189 TII->get(AMDGPU::PHI), PhiDstReg); 198 Phi.addReg(Reg); 199 Phi.addMBB(RegBlock); 214 if (MI.getOpcode() == AMDGPU::PHI) { 326 if (DefInstr->getOpcode() == AMDGPU::PHI) {
|
/external/llvm/lib/CodeGen/SelectionDAG/ |
SelectionDAGISel.cpp | 126 STATISTIC(NumFastIselFailPHI,"Fast isel fails on PHI"); 306 /// SplitCriticalSideEffectEdges - Look for critical edges with a PHI value that 308 /// through the predecessor block that doesn't go to the phi block doesn't 314 // Loop for blocks with phi nodes. 320 // For each block with a PHI node, check to see if any of the input values 323 // PHI. 330 // Since this block has a PHI Node, we assume it has multiple input 710 // update PHI nodes later on. [all...] |
/external/llvm/include/llvm/CodeGen/ |
MachineTraceMetrics.h | 92 /// Doesn't count PHI and COPY instructions that are likely to be removed. 206 /// This does not include PHI uses in the current block, but it does 207 /// include PHI uses in deeper blocks. 276 /// Return the Depth of a PHI instruction in a trace center block successor. 277 /// The PHI does not have to be part of the trace. 278 unsigned getPHIDepth(const MachineInstr *PHI) const;
|
/external/llvm/examples/OCaml-Kaleidoscope/Chapter5/ |
codegen.ml | 67 * phi. We create a new name because one is used for the phi node, and the 77 * phi. *) 84 let phi = build_phi incoming "iftmp" builder in var 98 phi 116 (* Start the PHI node with an entry for start. *) 119 (* Within the loop, the variable is defined equal to the PHI node. If it 159 (* Add a new entry to the PHI node for the backedge. *)
|
/external/llvm/examples/OCaml-Kaleidoscope/Chapter6/ |
codegen.ml | 85 * phi. We create a new name because one is used for the phi node, and the 95 * phi. *) 102 let phi = build_phi incoming "iftmp" builder in var 116 phi 134 (* Start the PHI node with an entry for start. *) 137 (* Within the loop, the variable is defined equal to the PHI node. If it 177 (* Add a new entry to the PHI node for the backedge. *)
|
/external/clang/lib/CodeGen/ |
CGVTables.cpp | 189 llvm::PHINode *PHI = CGF.Builder.CreatePHI(ReturnValue->getType(), 2); 190 PHI->addIncoming(ReturnValue, AdjustNotNull); 191 PHI->addIncoming(llvm::Constant::getNullValue(ReturnValue->getType()), 193 ReturnValue = PHI; [all...] |
/external/llvm/include/llvm/Analysis/ |
MemoryBuiltins.h | 271 SizeOffsetEvalType visitPHINode(PHINode &PHI);
|