RFR: 8264954: unified handling for VectorMask object re-materialization during de-optimization [v3]
Jatin Bhateja
jbhateja at openjdk.java.net
Mon Apr 12 09:33:14 UTC 2021
> Following flow describes object reconstruction for de-optimization:-
> 1) PhaseVector::scalarize_vbox_node() creates SafePointScalarObjectNode to captures the box type information, also it connects to node holding the boxed value.
> 2) During code emit phase (PhaseOutput) C2 process above information to dumps ObjectValue holding the box information and LocationValue to holding the value information into ScopeDescriptor corresponding to Safepoint PC.
> 3) De-optimization blobs dump the value held in registers to the stack locations using RegisterSave::save_live_registers() and a mapping b/w register and its stack location is added to RegisterMap.
> 4) During de-optimization, compiled frame objects are re-allocated using identity information held in ObjectValue and their fields are initialized using values held in the stack locations accessed through register-stack mappings.
>
> By inserting a VectorStoreMaskNode before stitching the mask holding node to Safepoint we make sure that value held in opmask/vector register is transferred to a byte vector. Thus rest of the flow works as it is, stack location will hold the value in the form of a byte array irrespective of the box shape.
>
> tier1-tier3 regressions are clean with UseAVX=2/3.
Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
8264954: Incorporating closing comments.
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/3408/files
- new: https://git.openjdk.java.net/jdk/pull/3408/files/239923fd..98b4778d
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3408&range=02
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3408&range=01-02
Stats: 13 lines in 2 files changed: 1 ins; 4 del; 8 mod
Patch: https://git.openjdk.java.net/jdk/pull/3408.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/3408/head:pull/3408
PR: https://git.openjdk.java.net/jdk/pull/3408
More information about the hotspot-compiler-dev
mailing list