# assert(!n->pinned() || n->is_SafePointScalarObject()) failed: only SafePointScalarObject pinned node is expected here
Vladimir Kozlov
vladimir.kozlov at oracle.com
Wed Jul 21 19:24:29 PDT 2010
Here what I said during this code review:
"I looked which nodes are pinned and all of them are CFG nodes
except Phi and SafePointScalarObject.
The block projection control edge of CFG nodes will be replaced
with new Region nodes during PhaseCFG::build_cfg() before GCM.
And Phi node can not have block projection control - only Region.
Which leaves only SafePointScalarObject node we need to patch.
I can add additional assert to verify this:"
Christian, why you need to pin it and why you need control edge for it (what dependancy it has with control graph)?
Vladimir
Christian Thalinger wrote:
> http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/diff/523ded093c31/src/share/vm/opto/gcm.cpp
>
> Can you explain to me why the assert in
> PhaseCFG::replace_block_proj_ctrl checks for:
>
> !n->pinned() || n->is_SafePointScalarObject()
>
> I want to pin my new MachConstantBaseNode (which represents the base of
> the constant table) but I hit this assert.
>
> -- Christian
>
More information about the hotspot-compiler-dev
mailing list