-
Bug
-
Resolution: Fixed
-
P4
-
17, 18
-
b09
-
x86
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8298923 | 17.0.7-oracle | Tobias Hartmann | P4 | Resolved | Fixed | b01 |
JDK-8293704 | 17.0.6 | Boris Ulasevich | P4 | Resolved | Fixed | b01 |
- Some string compare/array equality patters in x86_[32/64].ad files accept the temporary opmark register operands, instructions using these registers are guarded by target feature checks.
- Even if control path leading to these instructions is not chosen, RA will still allocate physical registers to these temporary operands.
- Pulling out the feature checks upto the instruction level can save redundant allocations which may effect spilling decisions.
- Existing platform dependent routine Matcher::has_predicated_vector() check the existence of AVX512VL feature which is not required.
- Even if control path leading to these instructions is not chosen, RA will still allocate physical registers to these temporary operands.
- Pulling out the feature checks upto the instruction level can save redundant allocations which may effect spilling decisions.
- Existing platform dependent routine Matcher::has_predicated_vector() check the existence of AVX512VL feature which is not required.
- backported by
-
JDK-8293704 Redundant unsafe opmask register allocation in some instruction patterns.
- Resolved
-
JDK-8298923 Redundant unsafe opmask register allocation in some instruction patterns.
- Resolved
- links to
-
Commit openjdk/jdk17u-dev/36dd0a71
-
Commit openjdk/jdk/71ca0c08
-
Review openjdk/jdk17u-dev/657
-
Review openjdk/jdk/4813
(1 links to)