Tobias Hartmann
cb2eeb7d9a
8239142: C2's UseUniqueSubclasses optimization is broken for array accesses
...
Avoid resetting the elemtype for array accesses.
Reviewed-by: vlivanov, eosterlund
2020-02-18 08:28:02 +01:00
Christian Hagedorn
74bee68872
8239069: C2: SIGSEGV in IdealGraphPrinter::walk_nodes due to C->root() being NULL
...
Fix NULL pointer dereference when trying to print the ideal graph when Compile::record_failure() is called twice.
Reviewed-by: neliasso, thartmann
2020-02-17 12:29:24 +01:00
Christian Hagedorn
b369aefc79
8238765: PhaseCFG::schedule_pinned_nodes cannot handle precedence edges from unmatched CFG nodes correctly
...
Fix PhaseCFG::schedule_pinned_nodes to correctly handle precedence edges from unmatched CFG nodes.
Reviewed-by: roland, neliasso, kvn
2020-02-17 12:29:03 +01:00
Roland Westrelin
52d46c314b
8238691: C2: turn subtype check into macro node
...
Reviewed-by: vlivanov, thartmann
2020-02-14 10:31:34 +01:00
Stefan Karlsson
e4b27a48a0
8183574: Unify the is_power_of_2 functions
...
Reviewed-by: kbarrett, redestad
2020-02-17 10:03:17 +01:00
Roland Westrelin
3bb62dc0d8
8236759: ShouldNotReachHere in PhaseIdealLoop::verify_strip_mined_scheduling
...
Reviewed-by: thartmann, neliasso
2020-01-13 10:00:30 +01:00
Christian Hagedorn
2ac2d590c2
8238811: C2: assert(i >= req() || i == 0 || is_Region() || is_Phi()) with -XX:+VerifyGraphEdges
...
Fix -XX:+VerifyGraphEdges by additionally handling ArrayCopyNodes and UnlockNodes and add some basic flag testing.
Reviewed-by: roland, neliasso
2020-02-13 15:08:08 +01:00
Christian Hagedorn
3ea92e735b
8238756: C2: assert(((n) == __null || !VerifyIterativeGVN || !((n)->is_dead()))) failed: can not use dead node
...
Fix -XX:+VerifyIterativeGVN due to a dead node and add some basic flag testing.
Reviewed-by: roland, neliasso
2020-02-13 15:07:45 +01:00
Christian Hagedorn
e2829b7b87
8237945: CTW: C2 compilation fails with assert(just_allocated_object(alloc_ctl) == ptr) failed: most recent allo
...
Removing too strong assertion about array allocation in LibraryCallKit::tightly_coupled_allocation().
Reviewed-by: thartmann, neliasso
2020-02-13 15:07:21 +01:00
Vladimir Ivanov
5e9dc46d21
8238683: C2: Remove Use24BitFP and Use24BitFPMode flags
...
Reviewed-by: thartmann, neliasso
2020-02-11 14:55:44 +03:00
Vladimir Ivanov
74e68b4092
8238690: C2: Handle vector shifts by constant and non-constant scalar uniformly
...
Reviewed-by: thartmann, sviswanathan
2020-02-11 14:55:43 +03:00
Vladimir Ivanov
590f5996c6
8136414: Large performance penalty declaring a method strictfp on strict-only platforms
...
Reviewed-by: thartmann
2020-02-11 14:55:39 +03:00
Roland Westrelin
1af059d4cb
8231291: C2: loop opts before EA should maximally unroll loops
...
Reviewed-by: kvn, vlivanov
2019-12-20 17:17:37 +01:00
Roland Westrelin
1745ae28b9
8237086: assert(is_MachReturn()) running CTW with fix for JDK-8231291
...
Reviewed-by: kvn, vlivanov
2020-01-14 14:58:17 +01:00
Nils Eliasson
b59f630249
8237581: Improve allocation expansion
...
Reviewed-by: vlivanov, redestad
2020-02-06 11:21:39 +01:00
Roland Westrelin
f2b7509d5a
8237951: CTW: C2 compilation fails with "malformed control flow"
...
Reviewed-by: vlivanov, kvn
2020-01-28 13:36:30 +01:00
Christian Hagedorn
b940e17c9e
8235332: TestInstanceCloneAsLoadsStores.java fails with -XX:+StressGCM
...
Account for GC barriers when skipping a cloned ArrayCopyNode in ConnectionGraph::find_inst_mem()
Reviewed-by: roland, neliasso
2020-01-31 09:32:00 +01:00
Stefan Karlsson
46423b0f70
8237637: Remove dubious type conversions from oop
...
Reviewed-by: kbarrett, dholmes, mdoerr
2020-01-24 09:27:07 +01:00
Jesper Wilhelmsson
b936939454
Merge
2020-01-20 18:05:07 +01:00
Roland Westrelin
995fae6d4b
8235584: UseProfiledLoopPredicate fails with assert(_phase->get_loop(c) == loop) failed: have to be in the same loop
...
Reviewed-by: thartmann, neliasso
2020-01-10 17:50:51 +01:00
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