RFR: 8270848: Redundant unsafe opmask register allocation in some instruction patterns.

Jatin Bhateja jbhateja at openjdk.java.net
Fri Jul 16 15:58:15 UTC 2021


- 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.
- Also existing platform dependent routine Matcher::has_predicated_vector() check the existence of AVX512VL feature which is not required.

-------------

Commit messages:
 - 8270848: Redundant unsafe opmask register allocation in some instruction patterns.

Changes: https://git.openjdk.java.net/jdk/pull/4813/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4813&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8270848
  Stats: 41 lines in 3 files changed: 0 ins; 0 del; 41 mod
  Patch: https://git.openjdk.java.net/jdk/pull/4813.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/4813/head:pull/4813

PR: https://git.openjdk.java.net/jdk/pull/4813


More information about the hotspot-compiler-dev mailing list