RFR: 8286104: use aggressive liveness for unstable_if traps [v13]

Xin Liu xliu at openjdk.org
Thu Jun 23 22:43:09 UTC 2022


On Thu, 23 Jun 2022 12:31:23 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:

>> Xin Liu 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 29 additional commits since the last revision:
>> 
>>  - update per reviewer's feedback.
>>    
>>    also changed the option from AggressiveLivenessForUnstableIf to
>>    OptimizeUnstableIf.
>>  - Merge branch 'master' into JDK-8286104
>>  - monior change for code style.
>>  - Bail out if fold-compares sees that a unstable_if trap has modified.
>>    
>>    Also add a regression test
>>  - Merge branch 'master' into JDK-8286104
>>  - Remame all methods to _unstable_if_trap(s) and group them.
>>  - move preprocess() after remove Useless.
>>  - Refactor per reviewer's feedback.
>>  - Remove useless flag. if jdwp is on, liveness_at_bci() marks all local
>>    variables live.
>>  - support option AggressiveLivessForUnstableIf
>>  - ... and 19 more: https://git.openjdk.org/jdk/compare/500b937a...e5c8e559
>
> src/hotspot/share/opto/parse.hpp line 613:
> 
>> 611:   // Parse::_blocks outlive Parse object itself.
>> 612:   // They are reclaimed by ResourceMark in CompileBroker::invoke_compiler_on_method().
>> 613:   Parse::Block* const _path; // the pruned path
> 
> Do we really need to keep track of the entire Block? Looks like we could just save next_bci as int.

good point. 
I used path() in the second patch.  now I store those traps in their basic blocks. I don't need to remember them.

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

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


More information about the hotspot-compiler-dev mailing list