Searched defs:loop (Results 1 - 19 of 19) sorted by relevance

/art/test/652-deopt-intrinsic/src/
H A DMain.java20 loop();
22 loop();
25 public static void loop() { method in class:Main
/art/compiler/optimizing/
H A Dinduction_var_range.h64 * to protect the range evaluation inside its loop. The parameter chase_hint defines an
78 * are needed to protect the range evaluation inside its loop.
89 * upper, respectively. For a loop invariant, lower is not set.
108 * Generates explicit taken-test for the loop in the given context. Code is generated in
117 * the given instruction inside the closest enveloping loop.
122 * Generates last value of the given instruction in the closest enveloping loop.
136 * Incrementally updates induction information for just the given loop.
138 void ReVisit(HLoopInformation* loop) { argument
139 induction_analysis_->induction_.erase(loop);
140 for (HInstructionIterator it(loop
[all...]
H A Dlinear_order.cc63 HLoopInformation* loop = header->GetLoopInformation(); local
64 size_t num_blocks = loop->GetBlocks().NumSetBits();
67 if (loop->Contains(*block)) {
72 } else if (found_blocks == num_blocks && !loop->IsBackEdge(*block)) {
89 // - Blocks in a loop are consecutive,
90 // - Back-edge is the last block before loop exits.
H A Dinduction_var_analysis.cc26 * classification, the lexicographically first loop-phi is rotated to the front.
28 static void RotateEntryPhiFirst(HLoopInformation* loop, argument
31 // Find very first loop-phi.
32 const HInstructionList& phis = loop->GetHeader()->GetPhis();
44 // If found, bring that loop-phi to front.
97 * Returns true if loop is guarded by "a cmp b" on entry.
99 static bool IsGuardedBy(HLoopInformation* loop, argument
112 HBasicBlock* guard = loop->GetPreHeader();
113 HBasicBlock* entry = loop->GetHeader();
145 /* Finds first loop heade
146 FindFirstLoopHeaderPhiUse(HLoopInformation* loop, HInstruction* instruction) argument
160 FixOutsideUse(HLoopInformation* loop, HInstruction* instruction, HInstruction* replacement, bool rewrite) argument
200 RewriteBreakLoopBody(HLoopInformation* loop, HBasicBlock* body, HInstruction* cond, HInstruction* index, HInstruction* upper, bool rewrite) argument
258 VisitLoop(HLoopInformation* loop) argument
293 VisitNode(HLoopInformation* loop, HInstruction* instruction) argument
337 VisitDescendant(HLoopInformation* loop, HInstruction* instruction) argument
355 ClassifyTrivial(HLoopInformation* loop, HInstruction* instruction) argument
392 ClassifyNonTrivial(HLoopInformation* loop) argument
544 TransferPhi(HLoopInformation* loop, HInstruction* phi, size_t input_index, size_t adjust_input_size) argument
694 SolvePhiAllInputs( HLoopInformation* loop, HInstruction* entry_phi, HInstruction* phi) argument
723 SolveAddSub(HLoopInformation* loop, HInstruction* entry_phi, HInstruction* instruction, HInstruction* x, HInstruction* y, InductionOp op, bool is_first_call) argument
784 SolveOp(HLoopInformation* loop, HInstruction* entry_phi, HInstruction* instruction, HInstruction* x, HInstruction* y, InductionOp op) argument
843 SolveTest(HLoopInformation* loop, HInstruction* entry_phi, HInstruction* instruction, int64_t opposite_value) argument
859 SolveConversion( HLoopInformation* loop, HInstruction* entry_phi, HTypeConversion* conversion) argument
891 VisitControl(HLoopInformation* loop) argument
919 VisitCondition(HLoopInformation* loop, HBasicBlock* body, InductionInfo* a, InductionInfo* b, DataType::Type type, IfCondition cmp) argument
976 VisitTripCount(HLoopInformation* loop, InductionInfo* lower_expr, InductionInfo* upper_expr, InductionInfo* stride_expr, int64_t stride_value, DataType::Type type, IfCondition cmp) argument
1128 RewriteBreakLoop(HLoopInformation* loop, HBasicBlock* body, int64_t stride_value, DataType::Type type) argument
1191 AssignInfo(HLoopInformation* loop, HInstruction* instruction, InductionInfo* info) argument
1204 LookupInfo(HLoopInformation* loop, HInstruction* instruction) argument
1294 GetShiftConstant(HLoopInformation* loop, HInstruction* instruction, InductionInfo* initial) argument
[all...]
H A Dinduction_var_range.cc188 /** Obtains loop's control instruction. */
189 static HInstruction* GetLoopControl(HLoopInformation* loop) { argument
190 DCHECK(loop != nullptr);
191 return loop->GetHeader()->GetLastInstruction();
210 HLoopInformation* loop = nullptr; local
213 if (!HasInductionInfo(context, instruction, &loop, &info, &trip)) {
231 bool in_body = context->GetBlock() != loop->GetHeader();
358 for (HLoopInformation* lp = instruction->GetBlock()->GetLoopInformation(); // closest enveloping loop
363 // Update loop's trip-count information.
368 bool InductionVarRange::IsFinite(HLoopInformation* loop, /*ou argument
382 HLoopInformation* loop = nullptr; local
405 GenerateTripCount(HLoopInformation* loop, HGraph* graph, HBasicBlock* block) argument
464 HasInductionInfo( HInstruction* context, HInstruction* instruction, HLoopInformation** loop, HInductionVarAnalysis::InductionInfo** info, HInductionVarAnalysis::InductionInfo** trip) const argument
981 HLoopInformation* loop = nullptr; local
[all...]
H A Dbounds_check_elimination.cc286 * of an existing value range, NewArray or a loop phi corresponding to an
487 const int32_t increment_; // Increment for each loop iteration.
505 // Added blocks for loop body entry test.
563 // Clear the loop data structures.
615 // Make sure the comparison is in the loop header so each increment is
635 // Comparison needs to be in loop header to make sure it's done after each
711 // if it's not defined in the loop header.
906 // Try loop-based dynamic elimination.
907 HLoopInformation* loop = bounds_check->GetBlock()->GetLoopInformation(); variable
910 if (DynamicBCESeemsProfitable(loop, bounds_chec
1245 HLoopInformation* loop = array_get->GetBlock()->GetLoopInformation(); variable
1421 TransformLoopForDynamicBCE(HLoopInformation* loop, HBoundsCheck* bounds_check) argument
1551 DynamicBCESeemsProfitable(HLoopInformation* loop, HBasicBlock* block) argument
1584 IsEarlyExitLoop(HLoopInformation* loop) argument
1610 CanHandleLength(HLoopInformation* loop, HInstruction* length, bool needs_taken_test) argument
1626 CanHandleNullCheck(HLoopInformation* loop, HInstruction* check, bool needs_taken_test) argument
1653 CanHandleInfiniteLoop(HLoopInformation* loop, HInstruction* index, bool needs_infinite_test) argument
1684 GetPreHeader(HLoopInformation* loop, HInstruction* instruction) argument
1703 InsertDeoptInLoop(HLoopInformation* loop, HBasicBlock* block, HInstruction* condition, bool is_null_check = false) argument
1734 HoistToPreHeaderOrDeoptBlock(HLoopInformation* loop, HInstruction* instruction) argument
1776 TransformLoopForDeoptimizationIfNeeded(HLoopInformation* loop, bool needs_taken_test) argument
[all...]
H A Dintrinsics_mips64.cc408 // A(n unrolled) loop-based algorithm requires 25 instructions.
411 // to a(n unrolled) loop based algorithm which requires 38 instructions.
1671 Mips64Label loop; local
1740 __ Bind(&loop);
1748 __ Bgtzc(temp1, &loop);
1751 // If loop does not result in returning false, we return true.
1992 Mips64Label loop; local
2019 // Copy loop for compressed src, copying 1 character (8-bit) to (16-bit) at a time.
2037 __ Bind(&loop);
2043 __ Bnezc(numChrs, &loop);
2165 Mips64Label loop; local
[all...]
H A Dintrinsics_arm64.cc157 // Slow path implementing the SystemArrayCopy intrinsic copy loop with read barriers.
206 // TODO: Load the entrypoint once before the loop, instead of
1326 vixl::aarch64::Label loop; local
1371 // Check if both strings using same compression style to use this comparison loop.
1378 // Store offset of string value in preparation for comparison loop.
1400 __ Bind(&loop);
1408 __ B(&loop, hi);
1468 // will allow `subs temp0, #2; bhi different_compression_loop` to serve as the loop condition.
1505 // The cut off for unrolling the loop in String.equals() intrinsic for const strings.
1506 // The normal loop plu
1567 vixl::aarch64::Label loop; local
2105 vixl::aarch64::Label loop; local
2368 vixl::aarch64::Label loop, done; local
2870 vixl::aarch64::Label loop; local
2895 vixl::aarch64::Label loop; local
[all...]
H A Dintrinsics_arm_vixl.cc171 // Slow path implementing the SystemArrayCopy intrinsic copy loop with read barriers.
205 vixl32::Label loop; variable
206 __ Bind(&loop); variable
227 // TODO: Load the entrypoint once before the loop, instead of
236 __ B(ne, &loop, /* far_target */ false);
1103 // Potentially need temps for ldrexd-strexd loop.
1541 // Check if both strings using same compression style to use this comparison loop.
1585 vixl32::Label loop; local
1589 // Store offset of string value in preparation for comparison loop.
1595 "String data must be 8-byte aligned for unrolled CompareTo loop
1808 vixl32::Label loop; local
2557 vixl32::Label loop; local
2579 vixl32::Label loop; local
3145 vixl32::Label loop, remainder; local
[all...]
H A Dintrinsics_mips.cc631 // A(n unrolled) loop-based algorithm required 25 instructions.
637 // instructions compared to a loop-based algorithm which required 47
2096 MipsLabel loop; local
2170 __ Bind(&loop);
2178 __ Bgtz(temp1, &loop);
2181 // If loop does not result in returning false, we return true.
2685 MipsLabel loop; local
2712 // Copy loop for compressed src, copying 1 character (8-bit) to (16-bit) at a time.
2730 __ Bind(&loop);
2736 __ Bnez(numChrs, &loop);
3063 MipsLabel loop; local
[all...]
H A Dintrinsics_x86.cc81 // Slow path implementing the SystemArrayCopy intrinsic copy loop with read barriers.
119 // - the loop index (`i`);
126 NearLabel loop; variable
127 __ Bind(&loop); variable
162 // if (i != length) goto loop
164 __ j(kNotEqual, &loop);
1460 // If loop does not result in returning false, we return true.
1809 // Start the loop to copy String's value to Array of Char.
3172 // If it is needed (in the case of the fast-path loop), the base
3208 NearLabel loop, don local
3263 NearLabel loop, done; local
[all...]
H A Dintrinsics_x86_64.cc74 // Slow path implementing the SystemArrayCopy intrinsic copy loop with read barriers.
100 NearLabel loop; variable
101 __ Bind(&loop); variable
117 __ j(kNotEqual, &loop);
1437 NearLabel loop, done; local
1439 // Don't enter copy loop if `length == 0`.
1470 __ Bind(&loop);
1476 __ j(kNotEqual, &loop);
1485 NearLabel loop, done; local
1488 __ Bind(&loop);
[all...]
H A Dnodes.cc207 // set the loop information on each block.
382 // Make sure that the first predecessor of a loop header is the incoming block.
400 // Transform control flow of the loop to a single preheader format (don't touch the data flow).
514 // Make sure the loop has only one pre header. This simplifies SSA building by having
516 // loop. Also, don't allow the entry block to be a pre header: this simplifies inlining
562 // NOTE: We're appending new blocks inside the loop, so we need to use index because iterators
595 // a loop got dismantled. Just remove the suspend check.
603 // `PopulateRecursive` needs this guarantee to know whether a natural loop
604 // contains an irreducible loop.
629 os << " in loop
2683 HLoopInformation* loop = header->GetLoopInformation(); local
[all...]
H A Dcode_generator_arm64.cc2609 // data offset constant generation out of the loop and reduce the critical path length in the
2610 // loop.
3940 vixl::aarch64::Label loop, success; local
3941 __ Bind(&loop);
3951 __ B(ne, &loop);
3970 vixl::aarch64::Label loop, success; local
3971 __ Bind(&loop);
3980 __ Cbnz(out, &loop);
4165 vixl::aarch64::Label loop; local
4166 __ Bind(&loop);
4193 vixl::aarch64::Label loop; local
[all...]
H A Dcode_generator_arm_vixl.cc7523 vixl32::Label loop; local
7524 __ Bind(&loop);
7534 __ B(ne, &loop, /* far_target */ false);
7550 vixl32::Label loop, success; local
7551 __ Bind(&loop);
7561 // proper value for the code that follows the loop, i.e. not `eq`.
7563 __ B(hs, &loop, /* far_target */ false);
7777 vixl32::Label loop; local
7778 __ Bind(&loop);
7792 __ B(ne, &loop, /* far_targe
7806 vixl32::Label loop; local
[all...]
H A Dcode_generator_mips.cc682 // the compare-and-set (CAS) loop below would abort, leaving the
3352 MipsLabel loop; local
3353 __ Bind(&loop);
3364 __ Bne(temp, cls, &loop);
3377 MipsLabel loop; local
3378 __ Bind(&loop);
3387 // exception. Otherwise, jump to the beginning of the loop.
3388 __ Bnez(temp, &loop);
3452 MipsLabel loop; local
3453 __ Bind(&loop);
7473 MipsLabel loop; local
7499 MipsLabel loop, success; local
[all...]
H A Dcode_generator_x86.cc6525 NearLabel loop; local
6526 __ Bind(&loop);
6542 __ j(kNotEqual, &loop);
6560 NearLabel loop, success; local
6561 __ Bind(&loop);
6576 __ j(kNotEqual, &loop);
6702 // Require a register for the interface check since there is a loop that compares the class to
6780 NearLabel loop; local
6781 __ Bind(&loop);
6801 __ j(kNotEqual, &loop);
6814 NearLabel loop; local
[all...]
H A Dcode_generator_x86_64.cc5920 NearLabel loop, success; local
5921 __ Bind(&loop);
5937 __ j(kNotEqual, &loop);
5955 NearLabel loop, success; local
5956 __ Bind(&loop);
5971 __ j(kNotEqual, &loop);
6097 // Require a register for the interface check since there is a loop that compares the class to
6177 NearLabel loop; local
6178 __ Bind(&loop);
6197 __ j(kNotEqual, &loop);
6209 NearLabel loop; local
[all...]
/art/runtime/arch/mips/
H A Dquick_entrypoints_mips.S1021 loop: label
1090 LOAD_WORD_TO_REG a2, t8, t6, loop # a2 = current argument, gpr_index += 16
1091 LOAD_WORD_TO_REG a3, t8, t6, loop # a3 = current argument, gpr_index += 16
1092 LOAD_WORD_TO_REG t0, t8, t6, loop # t0 = current argument, gpr_index += 16
1093 LOAD_WORD_TO_REG t1, t8, t6, loop # t1 = current argument, gpr_index += 16
1094 LOAD_END t6, 4*16, loop # no more GPR args, gpr_index = 4*16
1096 LOAD_LONG_TO_REG a2, a3, t8, t6, 2*16, loop # a2_a3 = curr_arg, gpr_index = 2*16
1097 LOAD_LONG_TO_REG t0, t1, t8, t6, 4*16, loop # t0_t1 = curr_arg, gpr_index = 4*16
1098 LOAD_LONG_TO_REG t0, t1, t8, t6, 4*16, loop # t0_t1 = curr_arg, gpr_index = 4*16
1099 LOAD_END t6, 4*16, loop # n
[all...]

Completed in 8076 milliseconds