HomeSort by relevance Sort by last modified time
    Searched refs:PHI (Results 1 - 25 of 75) sorted by null

1 2 3

  /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 660 // Get the input data dependencies of a PHI instruction, using Pred as the
670 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 65 static bool IsEquivalentPHI(PHINode *PHI,
67 unsigned PHINumValues = PHI->getNumIncomingValues();
71 // Scan the phi to see if it matches.
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
    [all...]
FlattenCFG.cpp 125 PHINode *PHI = dyn_cast<PHINode>(BB->begin());
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)
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));
88 /// addIncomingPHIValuesFor - Add incoming-PHI values to the unwind
98 PHINode *phi = cast<PHINode>(I); local
99 phi->addIncoming(UnwindDestPHIValues[i], src);
130 // Create a PHI for the exception values.
173 /// it rewrites them to be invokes that jump to InvokeDest and fills in the PHI
222 // Update any PHI nodes in the exceptional block to indicate that there i
    [all...]
SimplifyCFG.cpp 53 PHINodeFoldingThreshold("phi-node-folding-threshold", cl::Hidden, cl::init(1),
54 cl::desc("Control the amount of phi node folding to perform (default = 1)"));
124 // successor, and if that successor has a PHI node, and if *that* PHI node has
145 /// unconditional branch. PhiNodes will store all PHI nodes in common
155 // We fold the unconditional branch if we can easily update all PHI nodes in
184 /// AddPredecessorToBlock - Update PHI nodes in Succ to indicate that there will
186 /// flowing into the PHI nodes will be the same as those coming in from
598 // Remove PHI node entries for the dead edge.
672 // Remove PHI node entries for dead edges
    [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/Transforms/ObjCARC/
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);
  /external/llvm/lib/Target/R600/
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
112 // The Reg parameter to the function must always be defined by either a PHI
141 if (MI.getOpcode() != AMDGPU::PHI) {
AMDGPUIndirectAddressing.cpp 179 // We don't need to insert a Phi instruction, so we can just add the
184 // We need to insert a PHI, because we have the same address being
189 MachineInstrBuilder Phi = BuildMI(MBB, MBB.begin(),
191 TII->get(AMDGPU::PHI), PhiDstReg);
200 Phi.addReg(Reg);
201 Phi.addMBB(RegBlock);
216 if (MI.getOpcode() == AMDGPU::PHI) {
328 if (DefInstr->getOpcode() == AMDGPU::PHI) {
  /external/llvm/lib/Analysis/
CaptureTracking.cpp 146 case Instruction::PHI:
MemoryBuiltins.cpp 734 SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitPHINode(PHINode &PHI) {
736 PHINode *SizePHI = Builder.CreatePHI(IntTy, PHI.getNumIncomingValues());
737 PHINode *OffsetPHI = Builder.CreatePHI(IntTy, PHI.getNumIncomingValues());
740 CacheMap[&PHI] = std::make_pair(SizePHI, OffsetPHI);
742 // compute offset/size for each PHI incoming pointer
743 for (unsigned i = 0, e = PHI.getNumIncomingValues(); i != e; ++i) {
744 Builder.SetInsertPoint(PHI.getIncomingBlock(i)->getFirstInsertionPt());
745 SizeOffsetEvalType EdgeData = compute_(PHI.getIncomingValue(i));
754 SizePHI->addIncoming(EdgeData.first, PHI.getIncomingBlock(i));
755 OffsetPHI->addIncoming(EdgeData.second, PHI.getIncomingBlock(i))
    [all...]
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/CodeGen/SelectionDAG/
SelectionDAGISel.cpp 131 STATISTIC(NumFastIselFailPHI,"Fast isel fails on PHI");
311 /// SplitCriticalSideEffectEdges - Look for critical edges with a PHI value that
313 /// through the predecessor block that doesn't go to the phi block doesn't
319 // Loop for blocks with phi nodes.
325 // For each block with a PHI node, check to see if any of the input values
328 // PHI.
335 // Since this block has a PHI Node, we assume it has multiple input
721 // 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.
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;
  /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. *)

Completed in 597 milliseconds

1 2 3