Lines Matching defs:check
13 * It is used to check if, inside one loop, all execution paths contain
14 * a bounds check for a particular [index, length] combination.
16 * executing a check then the check cannot be hoisted out of the loop (it
18 * We also check is there are paths that exit the loop early, and if yes we
22 * some cases they could cause a deopt if we hoist the check so this is a
114 * where the check is not performed, but hoisting the check has the same
116 * unnecessary check failures (which would mean unnecessary deoptimizations).
118 * (loop back to the header) without meeting a check, or UNSAFE is set if
132 // We found a check or we reached a dominated block out of the loop,
150 // check, therefore hoisting checks would be likely to cause
188 // Tries to hoist a check out of its induction loop.
190 InductionVariableData::InductionVariableCheck* check,
192 HValue* length = check->check()->length();
193 check->set_processed();
197 // Check that the limit is defined in the loop preheader.
205 // Check that the length and limit have compatible representations.
211 // Check that the length is defined in the loop preheader.
212 if (check->check()->length()->block() != pre_header &&
213 !check->check()->length()->block()->Dominates(pre_header)) {
218 for (InductionVariableData::InductionVariableCheck* current_check = check;
221 if (current_check->check()->length() != length) continue;
223 AddCheckAt(current_check->check()->block());
227 // Check that we will not cause unwanted deoptimizations.
236 // all checks are done on constants: if all check are done against the same
240 check->HasUpperLimit() ? check->upper_limit() : 0;
241 for (InductionVariableData::InductionVariableCheck* current_check = check;
248 current_check->check()->set_skip_check();
274 graph()->isolate(), zone, context, limit, check->check()->length());
298 HBoundsCheck* check = HBoundsCheck::cast(i);
300 InductionVariableData::DecomposeBitwise(check->index(), &decomposition);
311 // TODO(mmassi): skip OSR values for check->length().
312 if (check->length() == data->limit() ||
313 check->length() == data->additional_upper_limit()) {
315 check->set_skip_check();
323 phi->induction_variable_data()->AddCheck(check, limit);