Home | History | Annotate | Download | only in crankshaft

Lines Matching defs:phi

83         // There is a phi use of this value from a phi that is not yet
101 // There is a phi use of this value from a phi that is not yet
114 // Check if all operands to the given phi are marked with kUint32 flag.
115 bool HUint32AnalysisPhase::CheckPhiOperands(HPhi* phi) {
116 if (!phi->CheckFlag(HInstruction::kUint32)) {
117 // This phi is not uint32 safe. No need to check operands.
121 for (int j = 0; j < phi->OperandCount(); j++) {
122 HValue* operand = phi->OperandAt(j);
131 // This phi is not safe, some operands are not uint32 values.
140 // Remove kUint32 flag from the phi itself and its operands. If any operand
141 // was a phi marked with kUint32 place it into a worklist for
143 void HUint32AnalysisPhase::UnmarkPhi(HPhi* phi, ZoneList<HPhi*>* worklist) {
144 phi->ClearFlag(HInstruction::kUint32);
145 for (int j = 0; j < phi->OperandCount(); j++) {
146 HValue* operand = phi->OperandAt(j);
165 // Phi can be used as a uint32 value if and only if
170 // are unsafe. When unmarking phi unmark its operands
171 // and add it to the worklist if it is a phi as well.
176 HPhi* phi = phis_[i];
178 if (CheckPhiOperands(phi) && Uint32UsesAreSafe(phi)) {
179 phis_[phi_count++] = phi;
181 UnmarkPhi(phi, &worklist);
186 // non-phi uses. Start transitively clearing kUint32 flag
187 // from phi operands of discovered non-safe phis until
191 HPhi* phi = worklist.RemoveLast();
192 UnmarkPhi(phi, &worklist);
196 // turning a safe phi into unsafe. The same value
200 HPhi* phi = phis_[i];
202 if (CheckPhiOperands(phi)) {
203 phis_[new_phi_count++] = phi;
205 UnmarkPhi(phi, &worklist);
231 // from some non-phi operations that are used as operands to unsafe phis.