650 Commits

Author SHA1 Message Date
Tobias Hartmann
fe407cf1b6 8260420: C2 compilation fails with assert(found_sfpt) failed: no node in loop that's not input to safepoint
Reviewed-by: kvn, roland, chagedorn
2021-02-02 07:23:55 +00:00
bobpengxie
54e7a642bb 8260576: Typo in compiler/runtime/safepoints/TestRegisterRestoring.java
Reviewed-by: thartmann, jiefu
2021-02-02 02:16:46 +00:00
Vladimir Kozlov
02d586e13e 8259398: Super word not applied to a loop with byteArrayViewVarHandle
Reviewed-by: vlivanov, thartmann, chagedorn
2021-02-01 15:48:10 +00:00
Igor Veresov
1519632597 8251462: Simplify compilation policy
Reviewed-by: cjplummer, kvn
2021-01-28 20:51:12 +00:00
Roland Westrelin
11d6467c50 8260407: cmp != __null && cmp->Opcode() == Op_CmpL failure with -XX:StressLongCountedLoop=200000000 in lucene
Reviewed-by: thartmann, kvn
2021-01-28 12:27:40 +00:00
Jesper Wilhelmsson
c52212b146 Merge 2021-01-27 20:56:26 +00:00
Roberto Castañeda Lozano
f353fcf256 8258894: C2: Forbid GCM to move stores into loops
Prevent GCM from placing memory-writing nodes (such as stores) into loops deeper
than their home loop (determined by their control input). Such placements are
invalid, as they cause memory definitions to interfere, and risk causing
miscompilations. This change complements JDK-8255763, which only addresses
invalid placements in irreducible CFGs.

Add control input to stores in generated stubs to ensure that all memory-writing
nodes have control inputs from which their home block can be derived.

Add a battery of simplified fuzzer test cases where, before this change, GCM
moves stores into deeper loops.

Reviewed-by: thartmann, kvn
2021-01-27 15:08:39 +00:00
Christian Hagedorn
c5ab7c3214 8260284: C2: assert(_base == Int) failed: Not an Int
Reviewed-by: thartmann, kvn
2021-01-25 17:09:52 +00:00
Jesper Wilhelmsson
6f2a394314 Merge 2021-01-23 03:15:43 +00:00
Jie Fu
d90e06af7b 8259775: [Vector API] Incorrect code-gen for VectorReinterpret operation
Reviewed-by: rbackman, neliasso, kvn
2021-01-22 00:13:58 +00:00
Jesper Wilhelmsson
133bcb0995 Merge 2021-01-21 05:23:42 +00:00
Igor Ignatyev
0408b23bcf 8259757: add a regression test for 8259353 and 8259601
Co-authored-by: Xiaohong Gong <xgong@openjdk.org>
Co-authored-by: Igor Ignatyev <iignatyev@openjdk.org>
Reviewed-by: kvn, jiefu
2021-01-20 18:48:10 +00:00
Jesper Wilhelmsson
a1a851b6db Merge 2021-01-19 05:43:27 +00:00
Roland Westrelin
d5ca3b3fd5 8259641: C2: assert(early->dominates(LCA)) failed: early is high enough
Reviewed-by: chagedorn, thartmann
2021-01-18 07:54:48 +00:00
Jesper Wilhelmsson
51e14f2e2a Merge 2021-01-14 01:29:47 +00:00
Nils Eliasson
5567530916 8258272: LoadVectorMaskedNode can't be replaced by zero con
Reviewed-by: chagedorn, vlivanov
2021-01-13 09:16:08 +00:00
Christian Hagedorn
a3561ae8a4 8258243: C2: assert failed ("Bad derived pointer") with -XX:+VerifyRegisterAllocator
Reviewed-by: kvn, thartmann
2021-01-12 08:18:45 +00:00
Aleksey Shipilev
9d4e84fd41 8259565: Zero: compiler/runtime/criticalnatives fails because CriticalJNINatives is not supported
Reviewed-by: coleenp, zgu
2021-01-12 07:49:21 +00:00
Jesper Wilhelmsson
56a354eb55 Merge 2021-01-07 23:51:21 +00:00
Jesper Wilhelmsson
555641ede5 Merge 2021-01-07 21:17:35 +00:00
Roberto Castañeda Lozano
bc56541424 8256535: C2: randomize CCP processing order for stress testing
Add 'StressCCP' option to randomize the selection of the node to be examined in
each CCP iteration.

Reviewed-by: chagedorn, kvn, thartmann
2021-01-07 20:43:48 +00:00
Christian Hagedorn
c1fb521694 8259227: C2 crashes with SIGFPE due to a division that floats above its zero check
Reviewed-by: kvn, thartmann
2021-01-07 15:02:45 +00:00
Tobias Hartmann
0e6de4eb57 8259339: AllocateUninitializedArray C2 intrinsic fails with void.class input
Reviewed-by: kvn, chagedorn
2021-01-07 12:15:23 +00:00
Aleksey Shipilev
ad45678719 8258558: Revert changes for JDK-8252505 and related issues
Reviewed-by: kvn
2021-01-06 13:27:57 +00:00
Aleksey Shipilev
db6f39302b 8251944: Add Shenandoah test config to compiler/gcbarriers/UnsafeIntrinsicsTest.java
Reviewed-by: rkennke, adityam
2021-01-05 08:37:06 +00:00
Jesper Wilhelmsson
f2bad3a0be Merge 2020-12-22 21:16:59 +00:00
Roberto Castañeda Lozano
3df6ec2fbc 8258682: compiler/intrinsics/mathexact/sanity tests fail with RepeatCompilation
Normalize match and suspect counts in the verify() method by the number of
compilation repetitions, if the RepeatCompilation option is used.

Reviewed-by: kvn, chagedorn
2020-12-22 10:04:00 +00:00
Roberto Castañeda Lozano
4e8338eb13 8255763: C2: OSR miscompilation caused by invalid memory instruction placement
Disable GCM hoisting of memory-writing nodes for irreducible CFGs. This prevents
GCM from wrongly "hoisting" stores into descendants of their original loop. Such
an "inverted hoisting" can happen due to CFGLoop::compute_freq()'s inaccurate
estimation of frequencies for irreducible CFGs.

Extend CFG verification code by checking that memory-writing nodes are placed in
either their original loop or an ancestor.

Add tests for the reducible and irreducible cases. The former was already
handled correctly before the change (the frequency estimation model prevents
"inverted hoisting" for reducible CFGs), and is just added for coverage.

This change addresses the specific miscompilation issue in a conservative way,
for simplicity and safety. Future work includes investigating if only the
illegal blocks can be discarded as candidates for GCM hoisting, and refining
frequency estimation for irreducible CFGs.

Reviewed-by: kvn, chagedorn
2020-12-21 13:04:24 +00:00
Jesper Wilhelmsson
d234388042 Merge 2020-12-21 09:09:05 +00:00
Christian Hagedorn
8e42efaada 8257513: C2: assert((constant_addr - _masm.code()->consts()->start()) == con.offset())
Reviewed-by: kvn, thartmann
2020-12-21 08:06:48 +00:00
Mikael Vidstedt
64644a1072 8253881: Hotspot/Serviceability Terminology Refresh
Reviewed-by: kbarrett, tschatzl, dholmes, lfoltan, dcubed
2020-12-19 02:47:28 +00:00
Xin Liu
adf0e23aa2 8257800: CompileCommand TypedMethodOptionMatcher::parse_method_pattern() may over consume
Reviewed-by: thartmann, chagedorn, phh
2020-12-18 20:35:38 +00:00
Nils Eliasson
7320e051ea 8258647: TestCharVect2 is very slow
Reviewed-by: vlivanov, kvn
2020-12-17 22:43:00 +00:00
Jesper Wilhelmsson
f15528eb64 Merge 2020-12-17 20:41:37 +00:00
Nils Eliasson
cb5a6b1a7d 8258225: compiler/c2/cr6340864/TestIntVect.java runs faster in interpreter
Reviewed-by: vlivanov, thartmann, kvn
2020-12-17 17:50:53 +00:00
Xin Liu
83be8a902c 8247732: validate user-input intrinsic_ids in ControlIntrinsic
renew webrev to the latest jdk. fixed a typo and a bug.  Add constraints for both DisableIntrinsic and ControlIntrinsics.  Add tests to cover different use cases of them.

Reviewed-by: neliasso, thartmann
2020-12-17 10:05:09 +00:00
Christian Hagedorn
04a1e5b75b 8258505: [TESTBUG] TestDivZeroWithSplitIf.java fails due to missing UnlockDiagnosticVMOptions
Reviewed-by: thartmann, kvn, dcubed
2020-12-17 08:09:19 +00:00
Christian Hagedorn
ce36aeaac3 8257822: C2 crashes with SIGFPE due to a division that floats above its zero check
Reviewed-by: kvn, thartmann
2020-12-15 15:14:34 +00:00
Roland Westrelin
d93293f31b 8256730: Code that uses Object.checkIndex() range checks doesn't optimize well
Reviewed-by: vlivanov, thartmann
2020-12-10 08:09:08 +00:00
Aleksey Shipilev
35e81536e7 8257848: -XX:CompileCommand=blackhole,* should be diagnostic
Reviewed-by: vlivanov
2020-12-08 10:11:01 +00:00
Christian Hagedorn
1d0adbb812 8253644: C2: assert(skeleton_predicate_has_opaque(iff)) failed: unexpected
Reviewed-by: roland, kvn
2020-12-08 08:48:58 +00:00
Jie Fu
c43c224ef9 8257796: [TESTBUG] TestUseSHA512IntrinsicsOptionOnSupportedCPU.java fails on x86_32
Reviewed-by: kvn
2020-12-07 22:59:51 +00:00
Roland Westrelin
f5a582c287 8257575: C2: "failed: only phis" assert failure in loop strip mining verification
Reviewed-by: thartmann, neliasso
2020-12-07 09:38:22 +00:00
Aleksey Shipilev
05dac03f36 8257803: Add -Xbatch to compiler/blackhole tests
Reviewed-by: dholmes
2020-12-07 06:43:34 +00:00
Aleksey Shipilev
e590618962 8252505: C1/C2 compiler support for blackholes
Reviewed-by: vlivanov, aph
2020-12-06 17:43:34 +00:00
Vladimir Kozlov
dd0b9454a2 8257531: Super word not applied to a loop of simple Buffer operations
Reviewed-by: roland, psandoz
2020-12-04 19:23:52 +00:00
Roland Westrelin
86b65756cb 8257574: C2: "failed: parsing found no loops but there are some" assert failure
Reviewed-by: thartmann, neliasso, chagedorn
2020-12-04 12:01:53 +00:00
Christian Hagedorn
4a85514963 8257182: JCK test failures in integer / long rotation tests
Reviewed-by: mdoerr, vlivanov, thartmann, kvn
2020-12-04 08:10:31 +00:00
Volker Simonis
d3f3c32282 8255742: PrintInlining as compiler directive doesn't print virtual calls
Reviewed-by: thartmann, kvn
2020-12-03 18:02:05 +00:00
Tobias Hartmann
129c37700f 8257594: C2 compiled checkcast of non-null object triggers endless deoptimization/recompilation cycle
Reviewed-by: roland, vlivanov
2020-12-03 13:42:19 +00:00