The current escape analysis mechanism is all-or-nothing: either the object does not escape, or it does. If the object escapes, we lose the ability to analyse the values of its fields completely, even if the object only escapes at return.
This issue proposes trying to decide if a newly allocated object has escaped at a load from it. And if it has not escaped, we can fold the load aggressively across calls and memory barriers.
This issue proposes trying to decide if a newly allocated object has escaped at a load from it. And if it has not escaped, we can fold the load aggressively across calls and memory barriers.
- relates to
-
JDK-8373680 C2: Improve load folding to look through memory Phi
-
- Open
-
-
JDK-8375532 C2: Improve load folding to look through a pointer Phi
-
- Open
-
-
JDK-8375533 C2: Make local escape analysis work with nested objects
-
- Open
-
-
JDK-8376220 C2: Refactor the logic to in MemNode::find_previous_store
-
- Open
-
- links to
-
Review(master)
openjdk/jdk/28764
-
Review(master)
openjdk/jdk/28812
(1 links to)