RFR: 8324775: C2 SuperWord: refactor visited sets

Vladimir Kozlov kvn at openjdk.org
Fri Jan 26 19:42:35 UTC 2024


On Fri, 26 Jan 2024 16:53:46 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

> Subtask of https://github.com/openjdk/jdk/pull/16620
> 
> Currently, the visited set is a "global" set that is reused all through SuperWord:
> `_visited`, `_post_visited`, and also `_stk`.
> 
> This makes other refactorings difficult. I am refactoring all related code to make the visited sets local, with use of ResourceMark.
> 
> I am also refactoring the `independent` queries: from using recursive function calls to iterative. This is necessary, unless we want to pass the visited set around into the recursive calls (I think not!)
> 
> At the same time, I wanted the code of `find_dependence` to become easier, and closer to `independent`, hence I re-defined it to `mutually_independent`, and had to slightly adapt also its usages.

Good refactoring. Thank you for replacing recursion in `independent_path()`.

src/hotspot/share/opto/superword.cpp line 1110:

> 1108: }
> 1109: 
> 1110: // Are all nodes in nodes mutually independent?

// Are all nodes in nodes list

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

PR Review: https://git.openjdk.org/jdk/pull/17594#pullrequestreview-1846429616
PR Review Comment: https://git.openjdk.org/jdk/pull/17594#discussion_r1468074515


More information about the hotspot-compiler-dev mailing list