Searched defs:loop (Results 1 - 21 of 21) 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.cc59 HLoopInformation* loop = header->GetLoopInformation(); local
60 size_t num_blocks = loop->GetBlocks().NumSetBits();
63 if (loop->Contains(*block)) {
68 } else if (found_blocks == num_blocks && !loop->IsBackEdge(*block)) {
87 // - Blocks in a loop are consecutive,
88 // - 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.
113 // range analysis on outer loop while visiting inner loops.
122 void HInductionVarAnalysis::VisitLoop(HLoopInformation* loop) { argument
123 // Find strongly connected components (SSCs) in the SSA graph of this loop using Tarjan's
129 for (HBlocksInLoopIterator it_loop(*loop); !it_loop.Done(); it_loop.Advance()) {
132 if (loop_block->GetLoopInformation() != loop) {
157 VisitNode(HLoopInformation* loop, HInstruction* instruction) argument
201 VisitDescendant(HLoopInformation* loop, HInstruction* instruction) argument
219 ClassifyTrivial(HLoopInformation* loop, HInstruction* instruction) argument
256 ClassifyNonTrivial(HLoopInformation* loop) argument
407 TransferPhi(HLoopInformation* loop, HInstruction* phi, size_t input_index, size_t adjust_input_size) argument
557 SolvePhiAllInputs( HLoopInformation* loop, HInstruction* entry_phi, HInstruction* phi) argument
586 SolveAddSub(HLoopInformation* loop, HInstruction* entry_phi, HInstruction* instruction, HInstruction* x, HInstruction* y, InductionOp op, bool is_first_call) argument
647 SolveOp(HLoopInformation* loop, HInstruction* entry_phi, HInstruction* instruction, HInstruction* x, HInstruction* y, InductionOp op) argument
706 SolveTest(HLoopInformation* loop, HInstruction* entry_phi, HInstruction* instruction, int64_t opposite_value) argument
722 SolveConversion( HLoopInformation* loop, HInstruction* entry_phi, HTypeConversion* conversion) argument
750 VisitControl(HLoopInformation* loop) argument
778 VisitCondition(HLoopInformation* loop, InductionInfo* a, InductionInfo* b, Primitive::Type type, IfCondition cmp) argument
828 VisitTripCount(HLoopInformation* loop, InductionInfo* lower_expr, InductionInfo* upper_expr, InductionInfo* stride_expr, int64_t stride_value, Primitive::Type type, IfCondition cmp) argument
980 AssignInfo(HLoopInformation* loop, HInstruction* instruction, InductionInfo* info) argument
993 LookupInfo(HLoopInformation* loop, HInstruction* instruction) argument
1083 GetShiftConstant(HLoopInformation* loop, HInstruction* instruction, InductionInfo* initial) argument
[all...]
H A Dinduction_var_range.cc185 /** Obtains loop's control instruction. */
186 static HInstruction* GetLoopControl(HLoopInformation* loop) { argument
187 DCHECK(loop != nullptr);
188 return loop->GetHeader()->GetLastInstruction();
207 HLoopInformation* loop = nullptr; local
210 if (!HasInductionInfo(context, instruction, &loop, &info, &trip)) {
227 bool in_body = context->GetBlock() != loop->GetHeader();
354 for (HLoopInformation* lp = instruction->GetBlock()->GetLoopInformation(); // closest enveloping loop
359 // Update loop's trip-count information.
364 bool InductionVarRange::IsFinite(HLoopInformation* loop, /*ou argument
377 HLoopInformation* loop = nullptr; local
399 GenerateTripCount(HLoopInformation* loop, HGraph* graph, HBasicBlock* block) argument
457 HasInductionInfo( HInstruction* context, HInstruction* instruction, HLoopInformation** loop, HInductionVarAnalysis::InductionInfo** info, HInductionVarAnalysis::InductionInfo** trip) const argument
965 HLoopInformation* loop = nullptr; local
[all...]
H A Dbounds_check_elimination.cc285 * of an existing value range, NewArray or a loop phi corresponding to an
486 const int32_t increment_; // Increment for each loop iteration.
504 // Added blocks for loop body entry test.
564 // 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.
885 // Try loop-based dynamic elimination.
886 HLoopInformation* loop = bounds_check->GetBlock()->GetLoopInformation(); variable
889 if (DynamicBCESeemsProfitable(loop, bounds_chec
1165 HLoopInformation* loop = array_get->GetBlock()->GetLoopInformation(); variable
1340 TransformLoopForDynamicBCE(HLoopInformation* loop, HBoundsCheck* bounds_check) argument
1467 DynamicBCESeemsProfitable(HLoopInformation* loop, HBasicBlock* block) argument
1500 IsEarlyExitLoop(HLoopInformation* loop) argument
1526 CanHandleLength(HLoopInformation* loop, HInstruction* length, bool needs_taken_test) argument
1542 CanHandleNullCheck(HLoopInformation* loop, HInstruction* check, bool needs_taken_test) argument
1569 CanHandleInfiniteLoop(HLoopInformation* loop, HInstruction* index, bool needs_infinite_test) argument
1600 GetPreHeader(HLoopInformation* loop, HInstruction* instruction) argument
1619 InsertDeoptInLoop(HLoopInformation* loop, HBasicBlock* block, HInstruction* condition, bool is_null_check = false) argument
1647 HoistToPreHeaderOrDeoptBlock(HLoopInformation* loop, HInstruction* instruction) argument
1689 TransformLoopForDeoptimizationIfNeeded(HLoopInformation* loop, bool needs_taken_test) argument
[all...]
H A Dintrinsics_mips64.cc409 // A(n unrolled) loop-based algorithm requires 25 instructions.
412 // to a(n unrolled) loop based algorithm which requires 38 instructions.
1713 Mips64Label loop; local
1782 __ Bind(&loop);
1790 __ Bgtzc(temp1, &loop);
1793 // If loop does not result in returning false, we return true.
2040 Mips64Label loop; local
2067 // Copy loop for compressed src, copying 1 character (8-bit) to (16-bit) at a time.
2085 __ Bind(&loop);
2091 __ Bnezc(numChrs, &loop);
2213 Mips64Label loop; local
[all...]
H A Doptimizing_compiler.cc776 HLoopOptimization* loop = new (arena) HLoopOptimization(graph, driver, induction); local
813 loop,
H A Dintrinsics_arm.cc99 // Slow path implementing the SystemArrayCopy intrinsic copy loop with read barriers.
133 Label loop; variable
134 __ Bind(&loop); variable
155 // TODO: Load the entrypoint once before the loop, instead of
164 __ b(&loop, NE);
783 // Potentially need temps for ldrexd-strexd loop.
1138 Label loop; local
1184 // Check if both strings using same compression style to use this comparison loop.
1195 // Store offset of string value in preparation for comparison loop.
1201 "String data must be 8-byte aligned for unrolled CompareTo loop
1368 Label loop; local
2065 Label loop; local
2083 Label loop; local
2535 Label loop, remainder; local
[all...]
H A Dintrinsics_arm64.cc156 // Slow path implementing the SystemArrayCopy intrinsic copy loop with read barriers.
205 // TODO: Load the entrypoint once before the loop, instead of
1281 vixl::aarch64::Label loop; local
1326 // Check if both strings using same compression style to use this comparison loop.
1333 // Store offset of string value in preparation for comparison loop.
1355 __ Bind(&loop);
1363 __ B(&loop, hi);
1423 // will allow `subs temp0, #2; bhi different_compression_loop` to serve as the loop condition.
1460 // The cut off for unrolling the loop in String.equals() intrinsic for const strings.
1461 // The normal loop plu
1516 vixl::aarch64::Label loop; local
2055 vixl::aarch64::Label loop; local
2318 vixl::aarch64::Label loop, done; local
2819 vixl::aarch64::Label loop; local
2844 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);
1119 // Potentially need temps for ldrexd-strexd loop.
1488 vixl32::Label loop; local
1544 // Check if both strings using same compression style to use this comparison loop.
1560 // Store offset of string value in preparation for comparison loop.
1566 "String data must be 8-byte aligned for unrolled CompareTo loop
1748 vixl32::Label loop; local
2443 vixl32::Label loop; local
2465 vixl32::Label loop; local
2903 vixl32::Label loop, remainder; local
[all...]
H A Dintrinsics_mips.cc632 // A(n unrolled) loop-based algorithm required 25 instructions.
638 // instructions compared to a loop-based algorithm which required 47
2093 MipsLabel loop; local
2167 __ Bind(&loop);
2175 __ Bgtz(temp1, &loop);
2178 // If loop does not result in returning false, we return true.
2689 MipsLabel loop; local
2716 // Copy loop for compressed src, copying 1 character (8-bit) to (16-bit) at a time.
2734 __ Bind(&loop);
2740 __ Bnez(numChrs, &loop);
3060 MipsLabel loop; local
[all...]
H A Dintrinsics_x86.cc80 // Slow path implementing the SystemArrayCopy intrinsic copy loop with read barriers.
118 // - the loop index (`i`);
125 NearLabel loop; variable
126 __ Bind(&loop); variable
162 // if (i != length) goto loop
164 __ j(kNotEqual, &loop);
1465 // If loop does not result in returning false, we return true.
1820 // Start the loop to copy String's value to Array of Char.
3239 // If it is needed (in the case of the fast-path loop), the base
3275 NearLabel loop, don local
3330 NearLabel loop, done; local
[all...]
H A Dintrinsics_x86_64.cc73 // Slow path implementing the SystemArrayCopy intrinsic copy loop with read barriers.
99 NearLabel loop; variable
100 __ Bind(&loop); variable
117 __ j(kNotEqual, &loop);
1443 NearLabel loop, done; local
1445 // Don't enter copy loop if `length == 0`.
1476 __ Bind(&loop);
1482 __ j(kNotEqual, &loop);
1491 NearLabel loop, done; local
1494 __ Bind(&loop);
[all...]
H A Dnodes.cc169 // set the loop information on each block.
334 // Make sure the loop has only one pre header. This simplifies SSA building by having
336 // loop. Also, don't allow the entry block to be a pre header: this simplifies inlining
354 // Make sure the first predecessor of a loop header is the incoming block.
404 // NOTE: We're appending new blocks inside the loop, so we need to use index because iterators
437 // a loop got dismantled. Just remove the suspend check.
445 // `PopulateRecursive` needs this guarantee to know whether a natural loop
446 // contains an irreducible loop.
470 os << " in loop: " << idx << std::endl;
595 // If `block` is in `finalized`, we know its membership in the loop ha
2337 HLoopInformation* loop = header->GetLoopInformation(); local
[all...]
H A Dcode_generator_arm64.cc3936 vixl::aarch64::Label loop, success; local
3937 __ Bind(&loop);
3947 __ B(ne, &loop);
3964 vixl::aarch64::Label loop, success; local
3965 __ Bind(&loop);
3974 __ Cbnz(out, &loop);
4185 vixl::aarch64::Label loop; local
4186 __ Bind(&loop);
4199 __ B(ne, &loop);
4213 vixl::aarch64::Label loop; local
[all...]
H A Dcode_generator_arm.cc7127 Label loop; local
7128 __ Bind(&loop);
7138 __ b(&loop, NE);
7152 Label loop, success; local
7153 __ Bind(&loop);
7163 // proper value for the code that follows the loop, i.e. not `EQ`.
7165 __ b(&loop, HS);
7393 Label loop; local
7394 __ Bind(&loop);
7408 __ b(&loop, N
7422 Label loop; local
[all...]
H A Dcode_generator_arm_vixl.cc7183 vixl32::Label loop; local
7184 __ Bind(&loop);
7194 __ B(ne, &loop, /* far_target */ false);
7208 vixl32::Label loop, success; local
7209 __ Bind(&loop);
7219 // proper value for the code that follows the loop, i.e. not `eq`.
7221 __ B(hs, &loop, /* far_target */ false);
7461 vixl32::Label loop; local
7462 __ Bind(&loop);
7476 __ B(ne, &loop, /* far_targe
7490 vixl32::Label loop; local
[all...]
H A Dcode_generator_x86.cc6508 NearLabel loop; local
6509 __ Bind(&loop);
6525 __ j(kNotEqual, &loop);
6541 NearLabel loop, success; local
6542 __ Bind(&loop);
6557 __ j(kNotEqual, &loop);
6701 // Require a register for the interface check since there is a loop that compares the class to
6784 NearLabel loop; local
6785 __ Bind(&loop);
6805 __ j(kNotEqual, &loop);
6818 NearLabel loop; local
[all...]
H A Dcode_generator_x86_64.cc5889 NearLabel loop, success; local
5890 __ Bind(&loop);
5906 __ j(kNotEqual, &loop);
5922 NearLabel loop, success; local
5923 __ Bind(&loop);
5938 __ j(kNotEqual, &loop);
6082 // Require a register for the interface check since there is a loop that compares the class to
6166 NearLabel loop; local
6167 __ Bind(&loop);
6186 __ j(kNotEqual, &loop);
6198 NearLabel loop; local
[all...]
/art/runtime/arch/mips/
H A Dquick_entrypoints_mips.S963 loop: label
1031 LOAD_WORD_TO_REG a2, t8, t6, loop # a2 = current argument, gpr_index += 16
1032 LOAD_WORD_TO_REG a3, t8, t6, loop # a3 = current argument, gpr_index += 16
1033 LOAD_WORD_TO_REG t0, t8, t6, loop # t0 = current argument, gpr_index += 16
1034 LOAD_WORD_TO_REG t1, t8, t6, loop # t1 = current argument, gpr_index += 16
1035 LOAD_END t6, 4*16, loop # no more GPR args, gpr_index = 4*16
1037 LOAD_LONG_TO_REG a2, a3, t8, t6, 2*16, loop # a2_a3 = curr_arg, gpr_index = 2*16
1038 LOAD_LONG_TO_REG t0, t1, t8, t6, 4*16, loop # t0_t1 = curr_arg, gpr_index = 4*16
1039 LOAD_LONG_TO_REG t0, t1, t8, t6, 4*16, loop # t0_t1 = curr_arg, gpr_index = 4*16
1040 LOAD_END t6, 4*16, loop # n
[all...]

Completed in 394 milliseconds