Details
Description
- 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.