507 Commits

Author SHA1 Message Date
Fei Yang
e3eb6dbd1f 8235762: JVM crash in SWPointer during C2 compilation
Reviewed-by: thartmann, chagedorn, neliasso
2020-01-09 19:12:16 +08:00
Jatin Bhateja
eccf39b295 8236443: Issues with specializing vector register type for phi operand with generic operands
Fix special handling for operand resolution of vectorshift and shiftcount nodes. Fix for crash in the resolution algorithm due to non-machine type nodes.

Reviewed-by: vlivanov
2020-01-14 10:55:11 +05:30
Patric Hedlin
9549cd2877 8235870: C2 crashes in IdealLoopTree::est_loop_flow_merge_sz()
Reviewed-by: thartmann
2020-01-13 11:26:44 +01:00
Tobias Hartmann
ea152dcd9b 8229855: C2 fails with assert(false) failed: bad AD file
Strengthen the check to ensure that both control and data paths die consistently.

Reviewed-by: vlivanov, roland
2020-01-13 13:37:01 +01:00
Christian Hagedorn
863f741611 8236140: assert(!VerifyHashTableKeys || _hash_lock == 0) failed: remove node from hash table before modifying it
Add missing rehashing for modified node in InitializeNode::complete_stores().

Reviewed-by: neliasso, thartmann
2020-01-09 16:14:14 +01:00
Roman Kennke
49b1cc8ee6 8236181: C2: Remove useless step_over_gc_barrier() in int->bool conversion
Reviewed-by: thartmann, roland
2020-01-07 13:45:10 +01:00
Christian Hagedorn
3e9a17c53e 8235984: C2: assert(out->in(PhiNode::Region) == head || out->in(PhiNode::Region) == slow_head) failed: phi must be either part of the slow or the fast loop
Bailout from loop unswitching if loop predicates have a control dependency to partially peeled statements.

Reviewed-by: neliasso, thartmann
2020-01-07 17:06:10 +01:00
Sandhya Viswanathan
45e4c4c4dc 8236364: TEMP vector registers could be incorrectly assigned upper bank xmm registers after Generic Operands (JDK-8234391)
Reviewed-by: kvn, vlivanov
2019-12-24 16:49:37 +03:00
Tobias Hartmann
34b08ed2a5 8233164: C2 fails with assert(phase->C->get_alias_index(t) == phase->C->get_alias_index(t_adr)) failed: correct memory chain
Use _src_type/_dest_type as address types for the loads and stores.

Reviewed-by: vlivanov, roland
2019-12-23 09:44:35 +01:00
Goetz Lindenmaier
51abf67ce1 8235998: [c2] Memory leaks during tracing after '8224193: stringStream should not use Resource Area'
Reviewed-by: dholmes, kvn
2019-12-16 14:10:20 +01:00
Jatin Bhateja
079db54d51 8230185: assert(is_Loop()) failed: invalid node class
Adding missing check for a counted loop.

Reviewed-by: kvn, thartmann
2019-12-18 10:04:53 +01:00
Jatin Bhateja
31e075b019 8234392: C2: Extend Matcher::match_rule_supported_vector() with element type information
Reviewed-by: vlivanov, sviswanathan, kvn, jrose
2019-12-12 13:09:16 +03:00
Roman Kennke
3f7ecfb5b1 8235729: Shenandoah: Remove useless casting to non-constant
Reviewed-by: roland
2019-12-11 16:43:02 +01:00
Claes Redestad
91de8b6c91 8235551: BitMap::count_one_bits should use population_count
Co-authored-by: Kim Barrett <kim.barrett@oracle.com>
Reviewed-by: kbarrett, neliasso
2019-12-11 16:24:10 +01:00
Christian Hagedorn
ba94936c80 8233033: C2 produces wrong result while unswitching a loop due to lost control dependencies
Adding missing control dependencies when cloning loop predicates at loop unswitching.

Reviewed-by: roland, vlivanov, thartmann
2019-12-11 14:33:32 +01:00
Nils Eliasson
e1b94b1635 8235653: Clean-up BarrierSetC2
Reviewed-by: redestad, rkennke, thartmann
2019-12-11 14:08:20 +01:00
Tobias Hartmann
642d2ddcbc 8235452: Strip mined loop verification fails with assert(is_OuterStripMinedLoop()) failed: invalid node class
Do not try to verify strip mining if the strip mined loop is malformed.

Reviewed-by: roland, vlivanov
2019-12-11 10:42:44 +01:00
Fei Yang
a86e196559 8235762: JVM crash in SWPointer during C2 compilation
Reviewed-by: thartmann, chagedorn, neliasso
2020-01-09 19:12:16 +08:00
Jesper Wilhelmsson
d34f561de0 Merge 2020-01-15 20:41:46 +01:00
Roland Westrelin
8d2e11397a 8237007: Shenandoah: assert(_base == Tuple) failure during C2 compilation
Reviewed-by: thartmann, rkennke
2020-01-09 17:26:26 +01:00
Tobias Hartmann
f243173a18 8236721: C2 should better optimize not-equal integer comparisons
Narrow the type if an integer value is found to be unequal to it's lower/upper boundary.

Reviewed-by: roland, neliasso
2020-01-15 08:44:53 +01:00
Jatin Bhateja
2b9fef7d7b 8236443: Issues with specializing vector register type for phi operand with generic operands
Fix special handling for operand resolution of vectorshift and shiftcount nodes. Fix for crash in the resolution algorithm due to non-machine type nodes.

Reviewed-by: vlivanov
2020-01-14 09:51:10 +05:30
Jesper Wilhelmsson
913b8702d1 Merge 2020-01-13 15:40:09 +01:00
Jesper Wilhelmsson
943b87ddde Merge 2020-01-09 20:21:53 +01:00
Jesper Wilhelmsson
257a1bb854 Merge 2020-01-08 16:03:32 +01:00
Ioi Lam
584db9818a 8236625: Remove writeable macro from JVM flags declaration
Reviewed-by: coleenp, hseigel, gziemski
2020-01-07 18:56:18 -08:00
Roman Kennke
ffe68bcb24 8236161: C2: Remove useless step_over_gc_barrier() in int->bool conversion
Reviewed-by: thartmann, roland
2020-01-07 13:45:10 +01:00
Smita Kamath
995da6eb2a 8167065: Add intrinsic support for double precision shifting on x86_64
Reviewed-by: kvn
2019-12-23 14:42:21 -08:00
Roland Westrelin
9d40ab91db 8234350: assert(mode == ControlAroundStripMined && (use == sfpt || !use->is_reachable_from_root())) failed: missed a node
Reviewed-by: thartmann, mdoerr
2019-12-09 15:37:04 +01:00
Christian Hagedorn
2ee7b9d3a0 8233032: assert(in_bb(n)) failed: must be
Find first and last memory state of a load pack without relying on bb indices.

Co-authored-by: Roland Westrelin <rwestrel@redhat.com>
Reviewed-by: roland, kvn, thartmann
2019-12-10 09:28:38 +01:00
Vladimir Ivanov
e8496cea83 8235143: C2: No memory state needed in Thread::currentThread() intrinsic
Reviewed-by: mdoerr, jrose
2019-12-09 19:29:39 +03:00
Vladimir Ivanov
eabb5cc21f 8226411: C2: Avoid memory barriers around off-heap unsafe accesses
Reviewed-by: kvn, thartmann, eosterlund, jrose, rkennke
2019-12-09 19:29:35 +03:00
Claes Redestad
06cb195865 8234331: Add robust and optimized utility for rounding up to next power of two
Reviewed-by: eosterlund, stuefe, jrose
2019-12-06 18:05:36 +01:00
Christian Hagedorn
fd8832f726 8229994: assert(false) failed: Bad graph detected in get_early_ctrl_for_expensive
Fixes wrong idom information set in loop peeling when a loop strip mined loop is involved.

Reviewed-by: vlivanov, thartmann
2019-12-06 10:00:16 +01:00
Jatin Bhateja
979cd452ab 8234391: C2: Generic vector operands
Reviewed-by: vlivanov, sviswanathan, thartmann, jrose
2019-12-05 12:56:46 +03:00
Tobias Hartmann
b0812b2802 8234616: assert(0 <= i && i < _len) failed: illegal index in PhaseMacroExpand::expand_macro_nodes()
Make sure the index into the macro node array is decremented on removal.

Reviewed-by: vlivanov, kvn
2019-12-04 07:07:21 +01:00
Vladimir Ivanov
a6daef527e 8234923: Missed call_site_target nmethod dependency for non-fully initialized ConstantCallSite instance
Reviewed-by: jrose
2019-12-03 20:13:21 +03:00
Vladimir Ivanov
c7bc0f7a12 8231430: C2: Memory stomp in max_array_length() for T_ILLEGAL type
Reviewed-by: kvn, thartmann
2019-12-03 20:13:16 +03:00
Nils Eliasson
6230791e9e 8234520: ZGC: C2: Oop instance cloning causing skipped compiles
Reviewed-by: pliden, vlivanov
2019-11-29 11:26:25 +01:00
Patric Hedlin
f054a79881 8220376: C2: Int >0 not recognized as !=0 for div by 0 check
Reviewed-by: neliasso, vlivanov, mdoerr
2019-11-15 16:39:08 +01:00
Vladimir Ivanov
b89d2fd169 8234403: C2: Enable CallSite.target updates in constructors
Reviewed-by: psandoz, kvn
2019-11-26 16:09:21 +03:00
Stefan Karlsson
0ad50c2b5c 8234740: Harmonize parameter order in Atomic - cmpxchg
Reviewed-by: rehn, dholmes
2019-11-25 12:33:15 +01:00
Thomas Schatzl
9915f88688 8233702: Introduce helper function to clamp value to range
Reviewed-by: sjohanss, kbarrett
2019-11-22 10:03:38 +01:00
Claes Redestad
6f1f675324 8234003: Improve IndexSet iteration
Reviewed-by: neliasso, thartmann
2019-11-14 15:24:35 +01:00
Leo Korinth
1fc67ab002 8232365: Implementation for JEP 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector
Reviewed-by: kbarrett, tschatzl, erikj, coleenp, dholmes
2019-11-13 11:37:29 +01:00
Tobias Hartmann
7ba4fc4722 8233656: assert(d->is_CFG() && n->is_CFG()) failed: must have CFG nodes
Explicitly handle ProjNodes with TOP input.

Reviewed-by: kvn, vlivanov
2019-11-13 08:43:35 +01:00
Erik Österlund
8a8b35154b 8233506: ZGC: the load for Reference.get() can be converted to a load for strong refs
Reviewed-by: thartmann, neliasso, pliden
2019-11-12 09:25:39 +00:00
Tobias Hartmann
1833584f92 8233529: loopTransform.cpp:2984: Error: assert(p_f->Opcode() == Op_IfFalse) failed
Strengthened asserts in locate_pre_from_main() and added a check for is_main_no_pre_loop().

Reviewed-by: kvn, vlivanov
2019-11-12 10:16:04 +01:00
Christian Hagedorn
173dae8bc6 8229694: JVM crash in SWPointer during C2 OSR compilation
Handle the case where there is only 1 pack and no operations left when calling SuperWord::find_align_to_ref() to find the best alignment again.

Reviewed-by: kvn, vlivanov, thartmann
2019-11-11 10:41:03 +01:00
Jorn Vernee
d405f6abb6 8233389: Add PrintIdeal to compiler directives
Add PrintIdeal as a compiler directive in order to enable PrintIdeal for only a single method.

Reviewed-by: roland, neliasso, vlivanov, thartmann
2019-11-08 10:55:14 +01:00