RFR: 8333684: C2 SuperWord: multiple smaller refactorings in preparation for JDK-8332163

Emanuel Peter epeter at openjdk.org
Sat Jun 8 16:06:40 UTC 2024


In preparation for https://github.com/openjdk/jdk/pull/19261, I made some smaller refactorings / moving code around:

- `SuperWord::same_input` -> `PackSet::isa_unique_input_or_null`
- Rename print-method tags: `SUPERWORD1_BEFORE_SCHEDULE` -> `AUTO_VECTORIZATION1_BEFORE_APPLY` etc.
- Refactored `SuperWord::schedule / output` -> `SuperWord::schedule_and_apply`:
  - Reorganize so that we can separate out all methods that change the C2 graph into `SuperWord::apply`.
  - Move all `phase()->C->print_method` to `SuperWord::apply`.
  - Rename `SuperWord::schedule_reorder_memops` -> `SuperWord::apply_memops_reordering_with_schedule`.
  - Rename `SuperWord::output` -> `SuperWord::apply_vectorization`.
- Move `SuperWord::vectors_should_be_aligned` -> `VLoop::vectors_should_be_aligned`.
- Move `SuperWord::requires_long_to_int_conversion` -> `VectorNode::is_scalar_op_that_returns_int_but_vector_op_returns_long`, and move comments.
- Move `VectorNode::can_transform_shift_op` -> `VectorNode::can_use_RShiftI_instead_of_URShiftI`, and move comments.
- Extract out `PackSet::get_bool_test` from `SuperWord::output / apply_vectorization`.
- Extract opcode check to `VectorNode::is_scalar_unary_op_with_equal_input_and_output_types`.

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

Commit messages:
 - rm a TODO
 - fix bad merge
 - manual merge
 - improve variable name
 - style fix
 - PackSet::get_bool_test
 - rename and move comments for can_use_RShiftI_instead_of_URShiftI
 - move SuperWord::requires_long_to_int_conversion -> VectorNode::is_scalar_op_that_returns_int_but_vector_op_returns_long
 - rm code left from last commit
 - moved vectors_should_be_aligned
 - ... and 5 more: https://git.openjdk.org/jdk/compare/b4beda21...f1ec0fcc

Changes: https://git.openjdk.org/jdk/pull/19573/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19573&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8333684
  Stats: 325 lines in 6 files changed: 145 ins; 107 del; 73 mod
  Patch: https://git.openjdk.org/jdk/pull/19573.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19573/head:pull/19573

PR: https://git.openjdk.org/jdk/pull/19573


More information about the hotspot-compiler-dev mailing list