RFR: 8342662: C2: Add new phase for backend-specific lowering

Jatin Bhateja jbhateja at openjdk.org
Tue Oct 22 03:24:15 UTC 2024


On Mon, 21 Oct 2024 04:11:03 GMT, Jasmine Karthikeyan <jkarthikeyan at openjdk.org> wrote:

> 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!

@jaskarth , Being MacroLogic optimization pass author, I volenteer to move it to lowering phase once this patch gets integrated.

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

PR Comment: https://git.openjdk.org/jdk/pull/21599#issuecomment-2428128710


More information about the build-dev mailing list