Ioi Lam
d4282b0cfc
8257731: Remove excessive include of stubRoutines.hpp
...
Reviewed-by: coleenp, kvn
2020-12-10 23:57:35 +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
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
Roland Westrelin
3d460bd295
8256655: rework long counted loop handling
...
Reviewed-by: kvn, thartmann, vlivanov
2020-12-01 07:30:51 +00:00
Roland Westrelin
ea576ddbd4
8254887: C2: assert(cl->trip_count() > 0) failed: peeling a fully unrolled loop
...
Reviewed-by: chagedorn, thartmann
2020-11-13 08:19:33 +00:00
Aleksey Shipilev
69188188f4
8255265: IdealLoopTree::iteration_split_impl does not use should_align
...
Reviewed-by: thartmann, kvn
2020-10-26 07:16:10 +00:00
Tobias Hartmann
afd852ccb8
8241114: Better range handling
...
Reviewed-by: kvn, vlivanov, rhalade, ahgross
2020-10-20 14:58:37 -07:00
Ioi Lam
0a1dc50f54
8253271: vm_version_x86.hpp should not include globals_extension.hpp
...
Reviewed-by: dholmes
2020-09-17 21:32:22 +00:00
Xiaohong Gong
23ed3a9e91
8250808: Re-associate loop invariants with other associative operations
...
Reviewed-by: kvn, thartmann
2020-08-11 06:00:43 +00:00
Christian Hagedorn
31368cd1f0
8249602: C2: assert(cnt == _outcnt) failed: no insertions allowed
...
Use DUIterator instead of DUIterator_Fast due to legit insertions.
Reviewed-by: kvn, thartmann
2020-07-28 16:05:30 +02:00
Mikael Vidstedt
1f5e21a16e
Merge
2020-07-15 21:24:39 -07:00
Roland Westrelin
b67814941f
8229495: SIGILL in C2 generated OSR compilation
...
Reviewed-by: kvn, chagedorn
2020-07-01 17:28:49 +02:00
Christian Hagedorn
840867efa6
8247218: Add default constructor to VectorSet to use Thread::current()->resource_area() as arena by default
...
Add a default construction to VectorSet and clean up uses of the old constructor.
Reviewed-by: kvn, thartmann
2020-06-29 17:14:19 +02:00
Pengfei Li
ac4f14c386
8247307: C2: Loop array fill stub routines are not called
...
Ignore safepoint polling use of CountedLoopNode when matching loop array fill pattern.
Reviewed-by: kvn, thartmann
2020-06-28 06:15:31 +00:00
Christian Hagedorn
c01e986cc9
8237859: C2: Crash when loads float above range check
...
Fix control edges of predicates to data nodes when creating pre/main/post loops.
Reviewed-by: neliasso, thartmann, roland
2020-03-25 14:41:52 +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
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
Huang Wang
4fb2bb554d
8231988: Unexpected test result caused by C2 IdealLoopTree::do_remove_empty_loop
...
Duplicate cmp node in empty loop if it has other users
Co-authored-by: Tuo Xie <xietuo@huawei.com>
Reviewed-by: neliasso, thartmann
2019-10-11 16:52:18 +08:00
Patric Hedlin
8275b17b07
8229499: Node budget assert in fuzzed test
...
Reviewed-by: thartmann, neliasso
2019-09-12 11:44:51 +02:00
Christian Hagedorn
2c3973af9b
8225653: Provide more information when hitting SIGILL from HaltNode
...
Add information string for each HaltNode which is printed if hit at runtime.
Reviewed-by: vlivanov, thartmann
2019-09-10 08:43:33 +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
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
7bb9062f84
8223142: Clean-up WS and CB
...
Reviewed-by: vlivanov
2019-04-17 14:55:37 +02:00
Patric Hedlin
55e3cc8f6f
8223141: Change (count) suffix _ct into _cnt
...
Reviewed-by: vlivanov
2019-04-17 14:55:29 +02:00
Patric Hedlin
ceef0f69dc
8223139: Rename mandatory policy-do routines
...
Rename 'policy_do_remove_empty_loop' to 'do_remove_empty_loop', 'policy_do_one_iteration_loop' to 'do_one_iteration_loop'.
Reviewed-by: vlivanov, dl
2019-04-17 14:55:01 +02:00
Patric Hedlin
205085d8d5
8223138: Small clean-up in loop-tree support
...
Rename predicate 'is_inner()' to 'is_innermost()' to be accurate. Added 'is_root()' predicate for root parent test in loop-tree. Changed definition of 'is_loop()' to always lazy-read the tail, since it should never be NULL. Cleanup of 'tail()' definition.
Reviewed-by: vlivanov, neliasso
2019-05-02 11:05:47 +02:00
Patric Hedlin
fcbca82247
8223137: Rename predicate 'do_unroll_only()' to 'is_unroll_only()'
...
Reviewed-by: vlivanov
2019-04-17 14:52:25 +02:00
Jatin Bhateja
c2ec1085e1
8217561: X86: Add floating-point Math.min/max intrinsics
...
Implementation taking care of +/-0.0 and NaN which uses a specific pattern for reductions
Reviewed-by: aph, kvn, neliasso, sviswanathan, adinn
2019-03-07 15:27:42 +01:00
Roland Westrelin
6bbfc1d2a8
8216135: C2 assert(!had_error) failed: bad dominance
...
Reviewed-by: thartmann, kvn
2019-01-14 15:07:22 +01:00
Roland Westrelin
103c8dc608
8215265: C2: range check elimination may allow illegal out of bound access
...
Reviewed-by: thartmann, kvn
2018-12-14 11:22:26 +01:00
Roland Westrelin
326c6997a0
8215044: C2 crash in loopTransform.cpp with assert(cl->trip_count() > 0) failed: peeling a fully unrolled loop
...
Reviewed-by: thartmann, kvn
2018-12-13 17:57:11 +01:00
Rahul Raghavan
5a6385b363
8211698: Crash in C2 compiled code during execution of double array heavy processing code
...
Correctly registered new Opaque4Node in add_range_check_predicate
Reviewed-by: roland, thartmann
2018-12-18 19:13:54 +05:30
Roman Kennke
8b62a2ee9d
8214259: Implementation: JEP 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
...
Co-authored-by: Christine Flood <chf@redhat.com>
Co-authored-by: Aleksey Shipilev <shade@redhat.com>
Co-authored-by: Roland Westrelin <rwestrel@redhat.com>
Co-authored-by: Zhenygu Gu <zgu@redhat.com>
Co-authored-by: Andrew Haley <aph@redhat.com>
Co-authored-by: Andrew Dinn <adinn@redhat.com>
Co-authored-by: Mario Torre <mtorre@redhat.com>
Reviewed-by: kvn, roland, shade, coleenp, lmesnik, pliden, jgeorge, ihse, erikj
2018-12-10 15:47:44 +01:00
Roland Westrelin
8f4456e77a
8211451: ~2.5% regression on compression benchmark starting with 12-b11
...
Reviewed-by: kvn, thartmann
2018-11-08 10:20:04 +01:00
Goetz Lindenmaier
2e682fa3cd
8207049: Minor improvements of compiler code
...
Reviewed-by: kvn, mdoerr
2018-07-12 16:31:28 +02:00
Vivek Deshpande
29cd9fe2ea
8194740: UseSubwordForMaxVector causes performance regression
...
Reviewed-by: kvn, thartmann
2018-07-09 13:25:08 -07:00
Tobias Hartmann
d2f70d7052
8205033: [REDO] Induction variable of over-unrolled loop conflicts with range checks
...
Update skeleton predicates before main loop during unrolling to remove dead code.
Reviewed-by: kvn, roland
2018-06-19 12:25:42 +02:00
Roland Westrelin
97dd8bf743
8203197: C2: consider all paths in loop body for loop predication
...
Reviewed-by: kvn, neliasso
2018-06-19 09:08:39 +02:00
Tobias Hartmann
d01224d43e
8205034: [BACKOUT] Induction variable of over-unrolled loop conflicts with range checks
...
Backout fix for JDK-8203915 because it causes SIGILL failures.
Reviewed-by: shade
2018-06-14 11:22:04 +02:00
Tobias Hartmann
c9c8cc68de
8203915: Induction variable of over-unrolled loop conflicts with range checks
...
Update skeleton predicates before main loop during unrolling to remove dead code.
Reviewed-by: kvn, roland
2018-06-14 09:04:55 +02:00
Tobias Hartmann
2d00538d92
8202949: C2: assert(false) failed: Bad graph detected in build_loop_late
...
Fixed trip count computation for counted loop with negative stride to prevent over-unrolling.
Reviewed-by: roland
2018-05-25 09:05:42 +02:00
Roland Westrelin
c450333748
8197931: Null pointer dereference in Unique_Node_List::push of node.hpp:1510
...
Reviewed-by: dlong, thartmann
2018-03-20 15:38:00 +01:00
Roland Westrelin
98db6d11f3
8193130: Bad graph when unrolled loop bounds conflicts with range checks
...
Reviewed-by: kvn, thartmann
2018-03-22 20:21:19 -07:00
Dean Long
4f496a5786
8194992: Null pointer dereference in MultiNode::proj_out related to loopexit()
...
Reviewed-by: kvn, thartmann
2018-01-18 10:05:32 -08:00
Dean Long
4714dab4cb
8194988: 8 Null pointer dereference defect groups related to MultiNode::proj_out()
...
Reviewed-by: kvn
2018-01-17 14:25:47 -08:00
Roland Westrelin
386e258e20
8186027: C2: loop strip mining
...
Reviewed-by: kvn, neliasso
2017-11-28 11:59:16 +01:00
Coleen Phillimore
e908052a71
8189610: Reconcile jvm.h and all jvm_md.h between java.base and hotspot
...
Removed hotspot version of jvm*h and jni*h files.
Reviewed-by: ihse, mchung, dholmes
2017-10-31 11:55:09 -04:00
Zhongwei Yao
2990ce8012
8187601: Unrolling more when SLP auto-vectorization failed
...
Reviewed-by: kvn
2017-09-20 18:30:32 +08:00
Erik Joelsson
3789983e89
8187443: Forest Consolidation: Move files to unified layout
...
Reviewed-by: darcy, ihse
2017-09-12 19:03:39 +02:00