Details
-
Enhancement
-
Status: Resolved
-
P4
-
Resolution: Fixed
-
16
-
b27
Description
1- recognize the counted loop shape and build the loop nest
2- transform the inner loop into a counted loop
I propose changing this to a 3 steps process:
1- recognize the counted loop shape (transform the loop into a LongCountedLoop)
2- build the loop nest
3- transform the inner loop into a counted loop
The benefits are:
- the logic is cleaner because step 1 and 2 are now separated
- simple optimizations (loop iv type, empty loop elimination, parallel iv) can be implemented for LongCountedLoop by refactoring existing code
Attachments
Issue Links
- relates to
-
JDK-8298851 C2: ConvL2I nodes should not be split through phis
-
- Open
-
-
JDK-8261308 C2: assert(inner->is_valid_counted_loop(T_INT) && inner->is_strip_mined()) failed: OuterStripMinedLoop should have been removed
-
- Resolved
-
-
JDK-8299259 C2: Div/Mod nodes without zero check could be split through iv phi of loop resulting in SIGFPE
-
- Resolved
-
-
JDK-8263189 C2: assert(!had_error) failed: bad dominance
-
- Closed
-
-
JDK-8271203 C2: assert(iff->Opcode() == Op_If || iff->Opcode() == Op_CountedLoopEnd || iff->Opcode() == Op_RangeCheck) failed: Check this code when new subtype is added
-
- Resolved
-
-
JDK-8275854 C2: assert(stride_con != 0) failed: missed some peephole opt
-
- Resolved
-
-
JDK-8277906 Incorrect type for IV phi of long counted loops after CCP
-
- Resolved
-
-
JDK-8278790 Inner loop of long loop nest runs for too few iterations
-
- Resolved
-
-
JDK-8223051 support loops with long (64b) trip counts
-
- Resolved
-