/art/test/530-checker-peel-unroll/smali/ |
D | PeelUnroll.smali | 20 ## CHECK-DAG: <<Array:l\d+>> ParameterValue loop:none 21 ## CHECK-DAG: <<Const0:i\d+>> IntConstant 0 loop:none 22 ## CHECK-DAG: <<Const1:i\d+>> IntConstant 1 loop:none 23 ## CHECK-DAG: <<Const2:i\d+>> IntConstant 2 loop:none 24 ## CHECK-DAG: <<Const128:i\d+>> IntConstant 128 loop:none 25 ## CHECK-DAG: <<Limit:i\d+>> IntConstant 4094 loop:none 26 ## CHECK-DAG: <<PhiI:i\d+>> Phi [<<Const0>>,{{i\d+}}] loop:<<Loop:B\d+>> outer_… 27 ## CHECK-DAG: <<PhiS:i\d+>> Phi [<<Const128>>,{{i\d+}}] loop:<<Loop>> outer_… 28 ## CHECK-DAG: <<AddI:i\d+>> Add [<<PhiI>>,<<Const1>>] loop:<<Loop>> outer_… 29 ## CHECK-DAG: <<Check:z\d+>> GreaterThanOrEqual [<<PhiI>>,<<Limit>>] loop:<<Loop>> outer_… [all …]
|
/art/test/656-checker-simd-opt/smali/ |
D | Smali.smali | 19 ## CHECK-DAG: <<PAR3:i\d+>> ParameterValue loop:none 20 ## CHECK-DAG: <<CP1:i\d+>> IntConstant 1 loop:none 21 ## CHECK-DAG: <<Sub1:i\d+>> Sub [<<PAR3>>,<<CP1>>] loop:none 22 ## CHECK-DAG: <<Phi:i\d+>> Phi loop:<<Loop:B\d+>> outer_loop:none 23 ## CHECK-DAG: <<Sub2:i\d+>> Sub [<<Phi>>,<<CP1>>] loop:<<Loop>> outer_loop:none 24 ## CHECK-DAG: <<Get1:i\d+>> ArrayGet [{{l\d+}},<<Sub2>>] loop:<<Loop>> outer_loop:none 25 ## CHECK-DAG: <<Get2:i\d+>> ArrayGet [{{l\d+}},<<Phi>>] loop:<<Loop>> outer_loop:none 26 ## CHECK-DAG: <<Add1:i\d+>> Add [<<Get1>>,<<Get2>>] loop:<<Loop>> outer_loop:none 27 ## CHECK-DAG: <<Add2:i\d+>> Add [<<Phi>>,<<CP1>>] loop:<<Loop>> outer_loop:none 28 ## CHECK-DAG: <<Get3:i\d+>> ArrayGet [{{l\d+}},<<Add2>>] loop:<<Loop>> outer_loop:none [all …]
|
/art/test/485-checker-dce-loop-update/smali/ |
D | TestCase.smali | 32 ## CHECK-DAG: <<PhiX:i\d+>> Phi [<<ArgX>>,<<Add5:i\d+>>,<<Add7:i\d+>>] loop:<<HeaderY:B\d+>> 33 ## CHECK-DAG: If [<<ArgY>>] loop:<<HeaderY>> 34 ## CHECK-DAG: If [<<Cst1>>] loop:<<HeaderY>> 35 ## CHECK-DAG: <<Add5>> Add [<<PhiX>>,<<Cst5>>] loop:<<HeaderY>> 36 ## CHECK-DAG: <<Add7>> Add [<<PhiX>>,<<Cst7>>] loop:<<HeaderY>> 37 ## CHECK-DAG: Return [<<PhiX>>] loop:none 43 ## CHECK-DAG: <<PhiX:i\d+>> Phi [<<ArgX>>,<<AddX:i\d+>>] loop:<<HeaderY:B\d+>> 44 ## CHECK-DAG: If [<<ArgY>>] loop:<<HeaderY>> 45 ## CHECK-DAG: <<AddX>> Add [<<PhiX>>,<<Cst7>>] loop:<<HeaderY>> 46 ## CHECK-DAG: Return [<<PhiX>>] loop:none [all …]
|
/art/compiler/optimizing/ |
D | induction_var_analysis.cc | 28 static void RotateEntryPhiFirst(HLoopInformation* loop, in RotateEntryPhiFirst() argument 32 const HInstructionList& phis = loop->GetHeader()->GetPhis(); in RotateEntryPhiFirst() 99 static bool IsGuardedBy(HLoopInformation* loop, in IsGuardedBy() argument 112 HBasicBlock* guard = loop->GetPreHeader(); in IsGuardedBy() 113 HBasicBlock* entry = loop->GetHeader(); in IsGuardedBy() 146 HInstruction* FindFirstLoopHeaderPhiUse(HLoopInformation* loop, HInstruction* instruction) { in FindFirstLoopHeaderPhiUse() argument 148 if (use.GetUser()->GetBlock() == loop->GetHeader() && in FindFirstLoopHeaderPhiUse() 160 bool FixOutsideUse(HLoopInformation* loop, in FixOutsideUse() argument 170 if (user->GetBlock()->GetLoopInformation() != loop) { in FixOutsideUse() 184 if (user->GetHolder()->GetBlock()->GetLoopInformation() != loop) { in FixOutsideUse() [all …]
|
D | induction_var_analysis.h | 155 void VisitLoop(HLoopInformation* loop); 156 void VisitNode(HLoopInformation* loop, HInstruction* instruction); 157 uint32_t VisitDescendant(HLoopInformation* loop, HInstruction* instruction); 158 void ClassifyTrivial(HLoopInformation* loop, HInstruction* instruction); 159 void ClassifyNonTrivial(HLoopInformation* loop); 163 InductionInfo* TransferPhi(HLoopInformation* loop, 174 InductionInfo* SolvePhiAllInputs(HLoopInformation* loop, 177 InductionInfo* SolveAddSub(HLoopInformation* loop, 184 InductionInfo* SolveOp(HLoopInformation* loop, 190 InductionInfo* SolveTest(HLoopInformation* loop, [all …]
|
D | bounds_check_elimination.cc | 909 HLoopInformation* loop = bounds_check->GetBlock()->GetLoopInformation(); in VisitBoundsCheck() local 912 if (DynamicBCESeemsProfitable(loop, bounds_check->GetBlock()) && in VisitBoundsCheck() 915 CanHandleInfiniteLoop(loop, index, needs_finite_test) && in VisitBoundsCheck() 917 CanHandleLength(loop, array_length, needs_taken_test)) { in VisitBoundsCheck() 918 TransformLoopForDeoptimizationIfNeeded(loop, needs_taken_test); in VisitBoundsCheck() 919 TransformLoopForDynamicBCE(loop, bounds_check); in VisitBoundsCheck() 1247 HLoopInformation* loop = array_get->GetBlock()->GetLoopInformation(); in VisitArrayGet() local 1248 if (loop->IsDefinedOutOfTheLoop(array_get->InputAt(0)) && in VisitArrayGet() 1249 loop->IsDefinedOutOfTheLoop(array_get->InputAt(1))) { in VisitArrayGet() 1250 SideEffects loop_effects = side_effects_.GetLoopEffects(loop->GetHeader()); in VisitArrayGet() [all …]
|
D | induction_var_range.h | 138 void ReVisit(HLoopInformation* loop) { in ReVisit() argument 139 induction_analysis_->induction_.erase(loop); in ReVisit() 140 for (HInstructionIterator it(loop->GetHeader()->GetPhis()); !it.Done(); it.Advance()) { in ReVisit() 143 induction_analysis_->VisitLoop(loop); in ReVisit() 167 bool IsFinite(HLoopInformation* loop, /*out*/ int64_t* trip_count) const; 172 bool HasKnownTripCount(HLoopInformation* loop, /*out*/ int64_t* trip_count) const; 190 HInstruction* GenerateTripCount(HLoopInformation* loop, HGraph* graph, HBasicBlock* block); 206 bool CheckForFiniteAndConstantProps(HLoopInformation* loop, 221 /*out*/ HLoopInformation** loop,
|
D | linear_order.cc | 63 HLoopInformation* loop = header->GetLoopInformation(); in IsLinearOrderWellFormed() local 64 size_t num_blocks = loop->GetBlocks().NumSetBits(); in IsLinearOrderWellFormed() 67 if (loop->Contains(*block)) { in IsLinearOrderWellFormed() 72 } else if (found_blocks == num_blocks && !loop->IsBackEdge(*block)) { in IsLinearOrderWellFormed()
|
/art/test/624-checker-stringops/smali/ |
D | Smali.smali | 84 …G: <<New:l\d+>> NewInstance loop:none 85 …ng1:l\d+>> LoadString loop:<<Loop:B\d+>> 86 …<Null1:l\d+>> NullCheck [<<New>>] loop:<<Loop>> 87 …<Append1:l\d+>> InvokeVirtual [<<Null1>>,<<String1>>] intrinsic:StringBufferAppend loop:<<Loop>> 88 …<String2:l\d+>> LoadString loop:<<Loop>> 89 …<Append2:l\d+>> InvokeVirtual [<<Append1>>,<<String2>>] intrinsic:StringBufferAppend loop:<<Loop>> 90 …<String3:l\d+>> LoadString loop:<<Loop>> 91 …<Append3:l\d+>> InvokeVirtual [<<Append2>>,<<String3>>] intrinsic:StringBufferAppend loop:<<Loop>> 92 …G: <<Null4:l\d+>> NullCheck [<<New>>] loop:none 93 …G: InvokeVirtual [<<Null4>>] intrinsic:StringBufferLength loop:none [all …]
|
/art/test/547-regression-trycatch-critic-edge/smali/ |
D | TestCase.smali | 19 # the outer loop would have a smaller liveness position than the two back edges 20 # of the inner loop. This was caused by a bug which did not split the critical 21 # edge between TryBoundary and outer loop header (b/25493695). 29 move v2, p0 # v2 = outer loop counter 36 move v3, p1 # v3 = inner loop counter 39 if-eqz v3, :outer_loop # back edge of outer loop 44 goto :inner_loop # back edge of inner loop 52 goto :inner_loop # back edge of inner loop
|
/art/test/478-checker-inline-noreturn/ |
D | info.txt | 1 Tests inlining a function with a no-exit loop into a loop. LinearOrder 3 a loop without an exit.
|
/art/test/565-checker-irreducible-loop/smali/ |
D | IrreducibleLoop.smali | 19 # Check that both the irreducible loop and the other loop entry 23 ## CHECK-DAG: ParallelMove {{.*84->.*}} loop:none 24 ## CHECK-DAG: ParallelMove {{.*84->.*}} loop:{{B\d+}} irreducible:true 35 # The then part: beginning of the irreducible loop. 43 # The other block branching to the irreducible loop. 57 ## CHECK-DAG: ParallelMove {{.*84->.*}} loop:none 58 ## CHECK-DAG: ParallelMove {{.*84->.*}} loop:{{B\d+}} irreducible:true 70 # The then part: beginning of the irreducible loop. 78 # The other block branching to the irreducible loop. 91 # Last use of v2 before the irreducible loop, that
|
/art/test/652-deopt-intrinsic/src/ |
D | Main.java | 20 loop(); in main() 22 loop(); in main() 25 public static void loop() { in loop() method in Main
|
/art/test/596-checker-dead-phi/smali/ |
D | IrreducibleLoop.smali | 19 # Test case where liveness analysis produces linear order where loop blocks are 20 # not adjacent. This revealed a bug in our SSA builder, where a dead loop phi would 23 # Check that the outer loop suspend check environment only has the parameter vreg. 25 ## CHECK-DAG: <<Phi:i\d+>> Phi reg:4 loop:{{B\d+}} irreducible:false 26 ## CHECK-DAG: SuspendCheck env:[[_,_,_,_,<<Phi>>]] loop:{{B\d+}} irreducible:false 28 # Check that the linear order has non-adjacent loop blocks. 53 # Add a marker on the irreducible loop entry. 64 # Add a marker on the outer loop back edge.
|
/art/test/530-checker-loops3/ |
D | info.txt | 1 Test on loop optimizations, in particular around loop-based dynamic bce.
|
/art/test/478-checker-inliner-nested-loop/ |
D | info.txt | 1 Tests inlining into a nested loop. SSAChecker should verify that 2 loop information was updated correctly.
|
/art/test/696-loop/ |
D | info.txt | 1 Regression test for the loop pass of the compiler, which used 2 to run loop unrolling without updating the induction variable analysis.
|
/art/test/485-checker-dce-loop-update/ |
D | info.txt | 1 Tests loop information update after DCE because block removal can disconnect loops, leaving other 2 live blocks outside the loop they had been a member of.
|
/art/test/090-loop-formation/ |
D | info.txt | 1 Test loop formation heuristics and code generation. Basically the problem to 3 in the loop region, and the JIT compiler won't choke on unresolved fields.
|
/art/test/800-smali/smali/ |
D | b_17790197.smali | 10 :loop 13 goto :loop
|
/art/test/109-suspend-check/src/ |
D | Main.java | 39 for (SimpleLoopThread loop : simpleLoops) { in main() 40 loop.start(); in main() 48 for (SimpleLoopThread loop : simpleLoops) { in main() 49 loop.stopNow(); in main()
|
/art/test/599-checker-irreducible-loop/smali/ |
D | IrreducibleLoop.smali | 20 ## CHECK-DAG: LoadClass loop:none 21 ## CHECK-DAG: LoadClass loop:{{B\d+}} outer_loop:none 24 ## CHECK-DAG: LoadClass loop:none 25 ## CHECK-DAG: LoadClass loop:{{B\d+}} outer_loop:none
|
/art/test/559-checker-irreducible-loop/smali/ |
D | IrreducibleLoop.smali | 21 # Test that we support a simple irreducible loop. 48 # SSA level, since we create redundant phis for irreducible loop headers, lse 128 # Check that a dex register only used in the loop header remains live thanks 129 # to the (redundant) Phi created at the loop header for it. 263 # Check that we don't LICM in a natural loop that contains an irreducible loop: 284 ## CHECK: LoadClass loop:<<OuterLoop:B\d+>> irreducible:false 310 # Check a loop within an irreducible loop 327 ## CHECK-DAG: Goto loop:<<OuterLoop:B\d+>> outer_loop:none irreducible:true 356 # Check than a loop before an irreducible loop is not part of the 357 # irreducible loop. [all …]
|
/art/test/1339-dead-reference-safe/src/ |
D | DeadReferenceUnsafeTest.java | 25 private static void $noinline$loop() { in $noinline$loop() 63 $noinline$loop(); in runTest()
|
/art/test/594-checker-irreducible-linorder/smali/ |
D | IrreducibleLoop.smali | 18 # Test case where liveness analysis produces linear order where loop blocks are 22 ## CHECK-DAG: Add loop:none 23 ## CHECK-DAG: Mul loop:<<Loop:B\d+>> 24 ## CHECK-DAG: Not loop:<<Loop>> 72 ## CHECK-DAG: Mul loop:<<Loop:B\d+>> 73 ## CHECK-DAG: Not loop:<<Loop>>
|