[jdk16] RFR: 8260339: JVM crashes when executing PhaseIdealLoop::match_fill_loop [v2]
Wang Huang
whuang at openjdk.java.net
Tue Jan 26 07:14:57 UTC 2021
> The reason is :
>
> BasicType t = store->as_Mem()->memory_type();
> const char* fill_name;
> if (msg == NULL &&
> StubRoutines::select_fill_function(t, false, fill_name) == NULL) {
> msg = "unsupported store";
> msg_node = store;
> }
>
> If the `store` is a `StoreVectorNode` ,the `BasicType` is `T_VOID`. We should get the basic type from `vect_type()->element_basic_type()` .
>
> - BasicType t = store->as_Mem()->memory_type();
> + BasicType t;
> + if (store->is_StoreVector()) {
> + t = store->as_StoreVector()->vect_type()->element_basic_type();
> + } else {
> + t = store->as_Mem()->memory_type();
> + }
>
> I fix this bug by adding new virtual method `elem_memory_type()` in memnode, for `StoreVectorNode` , it returns the basic type of elements; It will return memory_type() in other types of memnode.
Wang Huang has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision:
8260339: JVM crashes when executing PhaseIdealLoop::match_fill_loop
-------------
Changes:
- all: https://git.openjdk.java.net/jdk16/pull/132/files
- new: https://git.openjdk.java.net/jdk16/pull/132/files/c1a93016..4a503063
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk16&pr=132&range=01
- incr: https://webrevs.openjdk.java.net/?repo=jdk16&pr=132&range=00-01
Stats: 12 lines in 3 files changed: 4 ins; 5 del; 3 mod
Patch: https://git.openjdk.java.net/jdk16/pull/132.diff
Fetch: git fetch https://git.openjdk.java.net/jdk16 pull/132/head:pull/132
PR: https://git.openjdk.java.net/jdk16/pull/132
More information about the hotspot-compiler-dev
mailing list