507 Commits

Author SHA1 Message Date
Tobias Hartmann
976a5c6166 8229219: C2 compilation fails with assert: Bad graph detected in build_loop_late
Backed out JDK-8173196.

Reviewed-by: shade, rbackman
2019-08-08 07:05:17 +02:00
Tobias Hartmann
ac2ea95788 8229016: C2 scalarization crashes with assert(node->Opcode() == Op_CastP2X) failed: ConvP2XNode required
Detect array copy to self to avoid emitting another load to the to-be-removed allocation.

Reviewed-by: kvn
2019-08-07 12:09:55 +02:00
Christian Hagedorn
a3c85f810c 6394013: C2: Remove VerifyOpto
Removed the VerifyOpto flag.

Reviewed-by: kvn, thartmann
2019-08-05 08:03:25 +02:00
Mikael Vidstedt
ce4c42b376 Merge 2019-08-01 09:23:21 -07:00
Coleen Phillimore
ab9aab646b 8228630: Remove always true parameter to NoSafepointVerifier
Also remove NoGCVerifier since NoSafepointVerifier covers GC checking when not already at a safepoint and is a stronger check.

Reviewed-by: kbarrett, dholmes
2019-07-31 06:54:50 -04:00
Mikael Vidstedt
895db11053 Merge 2019-07-29 09:59:04 -07:00
Erik Österlund
a42636d34b 8227407: ZGC: C2 loads and load barriers can get separated by safepoints
Reviewed-by: neliasso, smonteith, roland
2019-07-29 13:57:54 +02:00
Christian Hagedorn
b2a9f90a94 8223769: Assert triggers with -XX:+StressReflectiveCode
Fixed too strong assert.

Reviewed-by: kvn, thartmann
2019-07-29 09:34:07 +02:00
Coleen Phillimore
04b98fd1df 8222446: assert(C->env()->system_dictionary_modification_counter_changed()) failed: Must invalidate if TypeFuncs differ
Remove SystemDictionary::modification_counter optimization

Reviewed-by: dlong, eosterlund
2019-07-10 07:58:24 -04:00
Mikael Vidstedt
15bde6d32d Merge 2019-07-05 11:01:31 -07:00
Jamsheed Mohammed C M
259a0b4a7b 8226627: assert(t->singleton()) failed: must be a constant
Implemented constant folding for MaxFD, MinFD.

Reviewed-by: thartmann, bsrbnd, pli
2019-07-05 00:24:54 -07:00
Roman Kennke
36bb50bad5 8226823: Adjust BarrierSetC2 for C2 runtime calls
Reviewed-by: neliasso, roland
2019-07-04 17:02:19 +02:00
Tobias Hartmann
e844e34e81 8227173: Minor cleanup of unused code in compile.hpp
Removed unused code.

Reviewed-by: kvn
2019-07-04 09:12:21 +02:00
Mikael Vidstedt
c200fc1f34 Merge 2019-07-03 07:56:41 -07:00
Nils Eliasson
37a2e72937 8226287: Make process_users_of_allocation handle gc barriers
Reviewed-by: kvn, roland
2019-07-01 10:49:58 +02:00
Tobias Hartmann
b1692c1eaa 8226879: Memory leak in Type::hashcons
Call delete on xdual type.

Reviewed-by: kvn
2019-06-28 09:12:49 +02:00
Jamsheed Mohammed C M
aedbb75803 8191278: MappedByteBuffer bulk access memory failures are not handled gracefully
Unsafe.copy*Memory access failures are handled gracefully.

Co-authored-by: Harold Seigel <harold.seigel@oracle.com>
Reviewed-by: kvn, dcubed, thartmann, coleenp, aph
2019-06-24 11:37:56 -07:00
Jesper Wilhelmsson
dc82364e05 Merge 2019-06-18 22:48:27 +02:00
Rahul Raghavan
28f3ab8596 8226198: use of & instead of && in LibraryCallKit::arraycopy_restore_alloc_state
Used logical operator correctly

Reviewed-by: kvn, thartmann
2019-06-18 10:00:35 +05:30
Aleksey Shipilev
5370654910 8225743: Remove ShenandoahBarrierSetC2::escape_is_barrier_node and related GC interface
Reviewed-by: roland, eosterlund
2019-06-14 16:47:58 +02:00
Tobias Hartmann
813a9cf6cb 8225783: Incorrect use of binary operators on booleans in type.cpp
Use logical operators instead.

Reviewed-by: roland
2019-06-14 13:26:52 +02:00
Erik Österlund
a8842c9f59 8225642: ZGC: Crash due to bad oops being spilled to stack in load barriers
Co-authored-by: Stuart Monteith <stuart.monteith@linaro.org>
Reviewed-by: neliasso, pliden
2019-07-02 11:33:05 +02:00
Tobias Hartmann
8f7206a674 8228710: Disable AggressiveUnboxing until JDK-8224957 is fixed
Disabled AggressiveUnboxing.

Reviewed-by: roland, kvn
2019-07-30 07:22:05 +02:00
Tobias Hartmann
31d261dda2 8224658: Unsafe access C2 compile fails with assert(flat != TypePtr::BOTTOM) failed: cannot alias-analyze an untyped ptr: adr_type = NULL
Handle unsafe off-heap access with constant zero address.

Reviewed-by: vlivanov, roland
2019-06-12 14:06:16 +02:00
Rahul Raghavan
2f25526470 8225567: Wrong file headers with 8202414 fix changeset
Corrected source file headers

Reviewed-by: thartmann
2019-06-11 14:33:34 +05:30
Patric Hedlin
ca29203cac 8225475: Node budget asserts on x86_32/64
Make the (ad-hoc) loop cloning size estimate more pessimistic.

Reviewed-by: shade
2019-06-25 11:43:36 +02:00
Nils Eliasson
ccbc87cc31 8226287: Make process_users_of_allocation handle gc barriers
Reviewed-by: kvn, roland
2019-07-01 10:49:58 +02:00
Nils Eliasson
75e9d0a290 8224675: Late GC barrier insertion for ZGC
Reviewed-by: roland, eosterlund, pliden
2019-02-14 14:54:05 +01:00
Vladimir Ivanov
6346d77b03 8225106: C2: Parse::clinit_deopt asserts when holder klass is in error state
Reviewed-by: mdoerr
2019-06-06 13:46:01 +03:00
Roland Westrelin
04c0750041 8224580: Matcher can cause oop field/array element to be reloaded
Reviewed-by: neliasso, rkennke, dlong
2019-05-21 09:08:01 +02:00
Roland Westrelin
98b1d8c798 8173196: [REDO] C2 does not optimize redundant memory operations with G1
Reviewed-by: thartmann, kvn
2019-05-21 15:46:09 +02:00
Patric Hedlin
d222b01dee 8223363: Bad node estimate assertion failure
8223502: Node estimate for loop unswitching is not correct: assert(delta <= 2 * required) failed: Bad node estimate
8224648: assert(!exceeding_node_budget()) failed: Too many NODES required! failure with ctw

Tighten the node estimates. New est_loop_clone_sz() implementation that will compute a "fan-out" complexity estimate as part of the size estimate (to better estimate complex loop body size after cloning). New est_loop_unroll_sz() function, used to estimate the size of a loop body att full/maximal unrolling. Correction to node budget final tests and asserts.

Reviewed-by: neliasso, kvn
2019-05-28 14:56:58 +02:00
Sergey Kuksenko
145f06a155 8223504: Improve performance of forall loops by better inlining of "iterator()" methods
Reviewed-by: vlivanov, shade
2019-05-30 12:45:02 -07:00
Vladimir Ivanov
5db82de14b 8223216: C2: Unify class initialization checks between new, getstatic, and putstatic
Reviewed-by: kvn, dlong
2019-05-30 19:12:11 +03:00
Vladimir Ivanov
e72bfe15ad 8223213: Implement fast class initialization checks on x86-64
Reviewed-by: kvn, redestad, dholmes, mdoerr, coleenp
2019-05-30 13:39:13 +03:00
Rahul Raghavan
da85e43f56 8213416: Replace some enums with static const members in hotspot/compiler
Changes to fix enumeral and non-enumeral type in conditional expression warnings with -Wextra for gcc on hotspot

Reviewed-by: kvn, thartmann
2019-05-28 12:01:52 +05:30
Tobias Hartmann
4ea77d3e78 8223581: C2 compilation failed with assert(!q->is_MergeMem())
Aggressively remove MergeMems feeding into other MergeMems during incremental inlining.

Reviewed-by: vlivanov
2019-05-23 09:46:49 +02:00
Tobias Hartmann
abe90da665 8224539: C2 compilation fails during ArrayCopyNode optimizations with assert(i < _max) failed: oob: i=1, _max=1
Bail out if src_offset or dst_offset is top.

Reviewed-by: roland, vlivanov, kvn
2019-05-23 08:57:37 +02:00
Stefan Karlsson
c9846fce19 8224201: Simplify JVM flag macro expansions
Reviewed-by: rehn, kvn, stuefe, tschatzl, coleenp, gziemski
2019-05-22 13:05:37 +02:00
Lutz Schmidt
b730805159 8213084: Rework and enhance Print[Opto]Assembly output
Reviewed-by: kvn, thartmann
2019-05-21 15:51:35 +02:00
Aleksey Shipilev
c6307aec19 8223911: Disable bad node budget verification until the fix
Reviewed-by: kvn, thartmann
2019-05-15 11:53:47 +02:00
Stefan Karlsson
c90f3ee68b 8223624: Cleanup includes of universe.hpp
Reviewed-by: coleenp, lkorinth
2019-05-09 14:28:30 +02:00
Stefan Karlsson
5a8ba256df 8223136: Move compressed oops functions to CompressedOops class
Reviewed-by: coleenp, lkorinth
2019-05-09 14:26:03 +02:00
Sandhya Viswanathan
707c30fae6 8222074: Enhance auto vectorization for x86
Reviewed-by: kvn, vlivanov
2019-05-07 13:33:27 -07:00
Jie Fu
0ff8db34ca 8221542: ~15% performance degradation due to less optimized inline decision
Reviewed-by: vlivanov, coleenp
2019-05-06 12:17:54 -07:00
Vladimir Ivanov
2e0c5db11d 8219902: C2: MemNode::can_see_stored_value() ignores casts which carry control dependency
Reviewed-by: kvn
2019-05-06 12:15:55 -07:00
Vladimir Ivanov
75d4f24c97 8223171: Redundant nmethod dependencies for effectively final methods
Reviewed-by: dlong
2019-05-06 12:15:49 -07:00
Patric Hedlin
e08506e683 8216137: assert failed: Live node limit exceeded
8219520: assert failed: Live node limit exceeded

Adding simplistic node budget support for loop-transformations. This /should/attempts to/ resolve most cases of: "assert(Compile::current()->live_nodes() < Compile::current()->max_node_limit()) failed: Live Node limit exceeded limit".

Reviewed-by: vlivanov, neliasso
2019-04-17 14:57:53 +02:00
Patric Hedlin
8088ed8317 8223143: Restructure/clean-up for 'loopexit_or_null()'
Minor restructure and clean-up for 'loopexit_or_null()' and its use.

Reviewed-by: vlivanov
2019-04-17 14:56:45 +02:00
Patric Hedlin
7bb9062f84 8223142: Clean-up WS and CB
Reviewed-by: vlivanov
2019-04-17 14:55:37 +02:00