RFR: 8263164: assert(_base >= VectorA && _base <= VectorZ) failed: Not a Vector while calling StoreVectorNode::memory_size()
Jie Fu
jiefu at openjdk.java.net
Tue Mar 9 23:31:06 UTC 2021
On Mon, 8 Mar 2021 17:34:52 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
> I don't think it is correct place to fix it. Why checks in StoreNode(and LoadNode)::Value() does not work for vectors?:
> https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/memnode.cpp#L2702
>
> Did we forgot to put this nodes on IGVN worklist somewhere?
Hi @vnkozlov ,
Thanks for your review.
After more investigation, I found the same issue for non-vector store nodes.
For example, StoreN was also observed with in(MemNode::ValueIn)->bottom_type() == Type::TOP during PhaseIterGVN::optimize().
The nodes should have been pushed on the IGVN worklist since it happened when StoreN was popped from the IGVN worklist.
So I think StoreVectorNode::memory_size() should also work when in(MemNode::ValueIn)->bottom_type() == Type::TOP during PhaseIterGVN::optimize().
By the way, I'm not clear why you say the checks in StoreNode(and LoadNode)::Value() does not work for vectors?
Could you make it more clearer?
Thanks.
Best regards,
Jie
-------------
PR: https://git.openjdk.java.net/jdk/pull/2867
More information about the hotspot-compiler-dev
mailing list