Lines Matching defs:phi

87         // There is a phi use of this value from a phi that is not yet
105 // There is a phi use of this value from a phi that is not yet
118 // Check if all operands to the given phi are marked with kUint32 flag.
119 bool HUint32AnalysisPhase::CheckPhiOperands(HPhi* phi) {
120 if (!phi->CheckFlag(HInstruction::kUint32)) {
121 // This phi is not uint32 safe. No need to check operands.
125 for (int j = 0; j < phi->OperandCount(); j++) {
126 HValue* operand = phi->OperandAt(j);
135 // This phi is not safe, some operands are not uint32 values.
144 // Remove kUint32 flag from the phi itself and its operands. If any operand
145 // was a phi marked with kUint32 place it into a worklist for
147 void HUint32AnalysisPhase::UnmarkPhi(HPhi* phi, ZoneList<HPhi*>* worklist) {
148 phi->ClearFlag(HInstruction::kUint32);
149 for (int j = 0; j < phi->OperandCount(); j++) {
150 HValue* operand = phi->OperandAt(j);
174 // are unsafe. When unmarking phi unmark its operands
175 // and add it to the worklist if it is a phi as well.
180 HPhi* phi = phis_[i];
182 if (CheckPhiOperands(phi) && Uint32UsesAreSafe(phi)) {
183 phis_[phi_count++] = phi;
185 UnmarkPhi(phi, &worklist);
190 // non-phi uses. Start transitively clearing kUint32 flag
191 // from phi operands of discovered non-safe phis until
195 HPhi* phi = worklist.RemoveLast();
196 UnmarkPhi(phi, &worklist);
200 // turning a safe phi into unsafe. The same value
204 HPhi* phi = phis_[i];
206 if (CheckPhiOperands(phi)) {
207 phis_[new_phi_count++] = phi;
209 UnmarkPhi(phi, &worklist);
235 // from some non-phi operations that are used as operands to unsafe phis.