53 Commits

Author SHA1 Message Date
Claes Redestad
f55ae9595e 8256858: C2: Devirtualize PhaseIterGVN-specific methods
Reviewed-by: kvn, thartmann
2020-11-24 14:33:47 +00:00
Tobias Hartmann
15805741f1 8255672: Replace PhaseTransform::eqv by pointer equality check
Reviewed-by: chagedorn, redestad, kvn
2020-11-03 07:17:58 +00:00
Vladimir Ivanov
83a91bfaed 8253734: C2: Optimize Move nodes
Reviewed-by: thartmann, neliasso, kvn
2020-10-26 17:24:08 +00:00
Paul Sandoz
0c99b19258 8223347: Integration of Vector API (Incubator)
Co-authored-by: Vivek Deshpande <vdeshpande@openjdk.org>
Co-authored-by: Qi Feng <qfeng@openjdk.org>
Co-authored-by: Ian Graves <igraves@openjdk.org>
Co-authored-by: Jean-Philippe Halimi <jphalimi@openjdk.org>
Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Co-authored-by: Ningsheng Jian <njian@openjdk.org>
Co-authored-by: Razvan Lupusoru <rlupusoru@openjdk.org>
Co-authored-by: Smita Kamath <svkamath@openjdk.org>
Co-authored-by: Rahul Kandu <rkandu@openjdk.org>
Co-authored-by: Kishor Kharbas <kkharbas@openjdk.org>
Co-authored-by: Eric Liu <Eric.Liu2@arm.com>
Co-authored-by: Aaloan Miftah <someusername3@gmail.com>
Co-authored-by: John R Rose <jrose@openjdk.org>
Co-authored-by: Shravya Rukmannagari <srukmannagar@openjdk.org>
Co-authored-by: Paul Sandoz <psandoz@openjdk.org>
Co-authored-by: Sandhya Viswanathan <sviswanathan@openjdk.org>
Co-authored-by: Lauren Walkowski <lauren.walkowski@arm.com>
Co-authored-by: Yang Zang <Yang.Zhang@arm.com>
Co-authored-by: Joshua Zhu <jzhu@openjdk.org>
Co-authored-by: Wang Zhuo <wzhuo@openjdk.org>
Co-authored-by: Jatin Bhateja <jbhateja@openjdk.org>
Reviewed-by: erikj, chegar, kvn, darcy, forax, briangoetz, aph, epavlova, coleenp
2020-10-14 20:02:46 +00:00
Roberto Castaneda Lozano
f3ea0d362f 8252583: Clean up unused phi-to-copy degradation mechanism
Remove unused notion of 'PhiNode-to-copy degradation', where PhiNodes can be
degraded to copies by setting their RegionNode to NULL. Remove corresponding
PhiNode::is_copy() test, which always returned NULL (false). Assert that
PhiNodes have an associated RegionNode in PhiNode::Ideal().

Reviewed-by: thartmann, kvn
2020-09-24 08:10:56 +00:00
Christian Hagedorn
552a73301c 8248791: sun/util/resources/cldr/TimeZoneNamesTest.java fails with -XX:-ReduceInitialCardMarks -XX:-ReduceBulkZeroing
Fix wrong replacement of loads by zero for non-completed InitializationNodes belonging to a clone when ReduceBulkZeroing is disabled.

Reviewed-by: kvn, thartmann
2020-08-14 10:30:51 +02:00
Coleen Phillimore
0c9e0c2e7f 8244997: Convert the JavaThread::_threadObj oop to use OopStorage
Move the oop and handle releasing it in the service thread.  Remove Universe::oops_do from callers.

Co-authored-by: Erik Osterlund <erik.osterlund@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: dholmes, zgu, eosterlund, cjplummer
2020-08-07 07:53:26 -04:00
Christian Hagedorn
a6cf325152 8248226: TestCloneAccessStressGCM fails with -XX:-ReduceBulkZeroing
Taking GC barriers into account in LoadNode::find_previous_arraycopy() when ReduceInitialCardMarks is disabled.

Reviewed-by: kvn, roland
2020-07-07 13:00:46 +02:00
Ioi Lam
3d1b1a6bc9 8248170: Excessive include of compiledMethod, codeCache, javaClasses and systemDictionary
Reviewed-by: dholmes, kvn, coleenp, stefank
2020-07-06 23:11:37 -07:00
Jesper Wilhelmsson
e58423796e Merge 2020-07-07 03:12:11 +02:00
Yong Zhou
79ad5512cf 8243670: Unexpected test result caused by C2 MergeMemNode::Ideal
Reviewed-by: thartmann, roland
2020-07-04 08:18:17 +08: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
Tobias Hartmann
a25bacdd13 8248234: Disabling UseExactTypes crashes C2
Remove the flag since it is broken, untested and hasn't been used in many years.

Reviewed-by: kvn, redestad, neliasso
2020-06-29 08:21:42 +02:00
Coleen Phillimore
5314d28f84 8245289: Clean up offset code in JavaClasses
Make offset member names consistent and private, move static initializations near owning classes

Reviewed-by: fparain, lfoltan
2020-05-29 15:00:19 -04:00
Tobias Hartmann
3d36ef14b3 8241997: Scalar replacement of cloned array is broken after JDK-8238759
Replacement code still expected ArrayCopyNode::Dest to be an AddPNode.

Reviewed-by: roland, neliasso
2020-04-06 09:52:28 +02: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
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
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
Nils Eliasson
e1b94b1635 8235653: Clean-up BarrierSetC2
Reviewed-by: redestad, rkennke, thartmann
2019-12-11 14:08:20 +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
Aleksey Shipilev
bbc4e0d999 8232882: GCC 4.8.5 build failure after JDK-8211073
Reviewed-by: thartmann
2019-10-23 17:35:32 +02:00
Christian Hagedorn
465f4c1200 8231412: C2: InitializeNode::detect_init_independence() bails out on simple IR shapes
Avoids early bailout of capturing a field store to remove unnecessary zeroing in simple methods containing only non-escaping objects.

Reviewed-by: roland, thartmann
2019-10-23 12:21:32 +02:00
Erik Österlund
42885307f6 8230565: ZGC: Redesign C2 load barrier to expand on the MachNode level
Co-authored-by: Per Liden <per.liden@oracle.com>
Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Nils Eliasson <nils.eliasson@oracle.com>
Reviewed-by: pliden, stefank, neliasso
2019-10-09 12:30:06 +00:00
Roland Westrelin
2f2ec624a2 8227384: C2 compilation fails with "graph should be schedulable" when running with -XX:-EliminateLocks
Reviewed-by: thartmann, kvn
2019-07-16 08:56:08 +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
Tobias Hartmann
da43cb5e46 8224957: C2 compilation fails with assert: Bad graph detected in build_loop_late
Disable walking up the dominator chain for regions with more than 2 input paths.

Reviewed-by: roland, kvn
2019-08-13 09:56:13 +02: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
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
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
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
Rahul Raghavan
fee481d5a2 8202414: Unsafe write after primitive array creation may result in array length change
Avoided collecting unaligned stores in Initialize node by making can_capture_store return false for same

Reviewed-by: dlong, kvn, vlivanov
2019-05-01 22:02:48 +05:30
Derek Thomson
7a4b473edd 8157372: C2: Node::cmp() should return bool
The method Node::cmp() should return a boolean

Reviewed-by: vlivanov, kvn
2019-03-28 11:06:00 -07:00
Nils Eliasson
1057f7e2a7 8219517: assert(false) failed: infinite loop in PhaseIterGVN::optimize
Reviewed-by: kvn, thartmann
2019-03-13 15:22:28 +01:00
Vladimir Ivanov
d41611ebeb 8161334: C2: Cast nodes hinder memory alias analysis
Reviewed-by: kvn, thartmann
2019-02-14 15:27:46 -08:00
Vladimir Ivanov
521039cc35 8218879: Keep track of memory accesses originated from Unsafe
Reviewed-by: thartmann
2019-02-14 15:27:12 -08:00
Jamsheed Mohammed C M
25bd20f5d9 8213825: assert(false) failed: Non-balanced monitor enter/exit! Likely JNI locking
Skip sfpt optimization for Load is removed for Java Object's Markword Load.

Reviewed-by: kvn, dlong
2019-01-23 23:24:10 -08:00
Roland Westrelin
136295d845 8214857: "bad trailing membar" assert failure at memnode.cpp:3220
Reviewed-by: adinn, thartmann
2018-12-03 10:51:03 +01:00
Roman Kennke
bb792b0337 8213371: GC/C2 abstraction and cleanup to handle custom offset for GC memory accesses
Reviewed-by: kvn, roland
2018-11-07 20:21:35 +01:00
Roman Kennke
9ba72c0c2c 8213381: Hook to allow GC to inject Node::Ideal() calls
Reviewed-by: kvn, eosterlund, roland
2018-11-06 23:03:05 +01:00
Roland Westrelin
b4c401fa37 8212611: Small collection of simple changes from shenandoah
Reviewed-by: thartmann, kvn, eosterlund
2018-10-17 10:19:13 +02:00
Roland Westrelin
2ab522db78 8211233: MemBarNode::trailing_membar() and MemBarNode::leading_membar() need to handle dying subgraphs better
Reviewed-by: kvn, thartmann
2018-09-27 17:46:01 +02:00
Erik Österlund
ce61e39060 8208601: Introduce native oop barriers in C2 for OopHandle
Reviewed-by: neliasso, kvn
2018-08-22 13:06:33 +02:00
Roland Westrelin
f3e518394b 8209420: Track membars for volatile accesses so they can be properly optimized
Reviewed-by: adinn, aph, thartmann
2018-08-14 16:54:47 +02:00
Thomas Schatzl
e98c176026 8208670: Compiler changes to allow enabling -Wreorder
Reviewed-by: kvn
2018-08-08 15:31:06 +02:00
Goetz Lindenmaier
2e682fa3cd 8207049: Minor improvements of compiler code
Reviewed-by: kvn, mdoerr
2018-07-12 16:31:28 +02:00
Tobias Hartmann
69438af9ec 8205940: LoadNode::find_previous_arraycopy fails with "broken allocation" assert
Removed assert which is too strong.

Reviewed-by: roland
2018-06-29 11:10:47 +02:00
Per Lidén
e7af7a4aef 8204210: Implementation: JEP 333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)
Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Erik Osterlund <erik.osterlund@oracle.com>
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Kim Barrett <kim.barrett@oracle.com>
Co-authored-by: Nils Eliasson <nils.eliasson@oracle.com>
Co-authored-by: Rickard Backman <rickard.backman@oracle.com>
Co-authored-by: Roland Westrelin <rwestrel@redhat.com>
Co-authored-by: Coleen Phillimore <coleen.phillimore@oracle.com>
Co-authored-by: Robbin Ehn <robbin.ehn@oracle.com>
Co-authored-by: Gerard Ziemski <gerard.ziemski@oracle.com>
Co-authored-by: Hugh Wilkinson <hugh.wilkinson@intel.com>
Co-authored-by: Sandhya Viswanathan <sandhya.viswanathan@intel.com>
Co-authored-by: Bill Wheeler <bill.npo.wheeler@intel.com>
Co-authored-by: Vinay K. Awasthi <vinay.k.awasthi@intel.com>
Co-authored-by: Yasumasa Suenaga <yasuenag@gmail.com>
Reviewed-by: pliden, stefank, eosterlund, ehelin, sjohanss, rbackman, coleenp, ihse, jgeorge, lmesnik, rkennke
2018-06-12 17:40:28 +02:00
Coleen Phillimore
1ee531afe9 8200555: OopHandle should use Access API
Add RootAccess<> to OopHandle.resolve() in runtime and interpreter code.  Add comments for compiler code for later.

Reviewed-by: eosterlund, stefank
2018-04-18 10:39:40 -04:00