> Hi all, > This patch adds a new pass to consolidate lowering of complex > backend-specific code patterns, such as `MacroLogicV` and the optimization > proposed by #21244. Moving these optimizations to backend code can simplify > shared code, while also making it easier to develop more in-depth > optimizations. The linked bug has an example of a new optimization this could > enable. The new phase does GVN to de-duplicate nodes and calls nodes' > `Value()` method, but it does not call `Identity()` or `Ideal()` to avoid > undoing any changes done during lowering. It also reuses the IGVN worklist to > avoid needing to re-create the notification mechanism. > > In this PR only the skeleton code for the pass is added, moving `MacroLogicV` > to this system will be done separately in a future patch. Tier 1 tests pass > on my linux x64 machine. Feedback on this patch would be greatly appreciated!
Jasmine Karthikeyan has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision: - Merge branch 'master' into phase-lowering - Remove platform-dependent node definitions, rework PhaseLowering implementation - Address some changes from code review - Implement PhaseLowering ------------- Changes: - all: https://git.openjdk.org/jdk/pull/21599/files - new: https://git.openjdk.org/jdk/pull/21599/files/7fbc4509..c7ceec71 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=21599&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=21599&range=01-02 Stats: 292301 lines in 2840 files changed: 243768 ins; 34360 del; 14173 mod Patch: https://git.openjdk.org/jdk/pull/21599.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/21599/head:pull/21599 PR: https://git.openjdk.org/jdk/pull/21599