541 Commits

Author SHA1 Message Date
Roland Westrelin
43e0165eea 8240794: [BACKOUT] 8238384 CTW: C2 compilation fails with "assert(store != load->find_exact_control(load->in(0))) failed: dependence cycle found"
Reviewed-by: thartmann
2020-03-10 10:45:01 +01:00
Dongbo He
aa2be1141d 8240576: JVM crashes after transformation in C2 IdealLoopTree::merge_many_backedges
Reviewed-by: kvn
2020-03-09 22:31:12 +08:00
Roland Westrelin
b58c8601bb 8239335: C2: assert((Value(phase) == t) || (t != TypeInt::CC_GT && t != TypeInt::CC_EQ)) failed: missing Value() optimization
Reviewed-by: kvn, thartmann
2020-03-05 15:56:49 +01:00
Claes Redestad
78982f7c11 8240528: OopMap cleanup
Reviewed-by: kvn, thartmann
2020-03-05 13:14:31 +01:00
Roland Westrelin
86ad195099 8238384: CTW: C2 compilation fails with "assert(store != load->find_exact_control(load->in(0))) failed: dependence cycle found"
Reviewed-by: vlivanov, thartmann
2020-02-20 16:41:05 +01:00
Roland Westrelin
1e796eae8f 8239367: RunThese30M.java failed due to "assert(false) failed: graph should be schedulable"
Reviewed-by: thartmann, vlivanov, neliasso
2020-02-21 15:01:22 +01:00
Nils Eliasson
908a933131 8238759: Clones should always keep the base pointer
Reviewed-by: rkennke, thartmann
2020-03-03 10:29:05 +01:00
Stefan Karlsson
1491340708 8240223: Use consistent predicate order in and with PhaseIdealLoop::find_predicate
Reviewed-by: thartmann, neliasso, chagedorn
2020-03-02 12:30:59 +01:00
Stefan Karlsson
ac60e4b98e 8240220: IdealLoopTree::dump_head predicate printing is broken
Reviewed-by: thartmann, neliasso, chagedorn
2020-03-02 12:30:57 +01:00
Christian Hagedorn
d7b122ed69 8238438: SuperWord::co_locate_pack picks memory state of first instead of last load
Fix selection of first and last memory state in SuperWord::co_locate_pack

Reviewed-by: thartmann, kvn
2020-03-02 10:23:08 +01:00
Christian Hagedorn
bd25c0e01a 8239852: java/util/concurrent tests fail with -XX:+VerifyGraphEdges: assert(!VerifyGraphEdges) failed: verification should have failed
Remove an assertion which was too strong for some valid IRs when running with -XX:+VerifyGraphEdges

Reviewed-by: neliasso, thartmann
2020-02-28 15:33:44 +01:00
Nils Eliasson
2ba0575cea 8239878: Bug in PrintEliminateAllocations code causes TestClhsdbJstackLock.java to fail
Reviewed-by: shade
2020-02-27 13:11:06 +01:00
Erik Österlund
ccdde49728 8234160: Enable optimized mitigation for Intel jcc erratum in C2
Reviewed-by: thartmann, vlivanov, pliden
2020-02-24 14:37:30 +00:00
Nils Eliasson
38a57e8bed 8238723: yank_alloc_node must remove membar
Reviewed-by: vlivanov, thartmann, roland
2020-02-24 11:31:07 +01:00
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