Zoltan Majo
dfa6539a6a
8086053: Address inconsistencies regarding ZeroTLAB
...
Add zero-initialization to C1 for fast TLAB refills; strenghten C2 conditions for skipping zero-initialization.
Reviewed-by: kvn, thartmann
2016-01-12 09:19:09 +01:00
Hui Shi
3767315e75
8144993: Elide redundant memory barrier after AllocationNode
...
Elide memory barrier for AllocationNode when it doesn't escape in initializer and has an MemBarRelease node at exit of initializer method.
Reviewed-by: aph, mdoerr, goetz, kvn, asiebenborn
2015-12-27 05:15:14 -08:00
Kim Barrett
e8c5bc2024
8143014: Access PtrQueue member offsets through derived classes
...
Moved accessors to derived classes and updated callers.
Reviewed-by: tschatzl, jmasa, twisti
2015-11-17 16:40:52 -05:00
Nils Eliasson
3307d0f163
Merge
2015-11-06 11:34:03 +01:00
Tobias Hartmann
7af927f9c1
8141132: JEP 254: Compact Strings
...
Adopt a more space-efficient internal representation for strings.
Co-authored-by: Brent Christian <brent.christian@oracle.com>
Co-authored-by: Vivek Deshpande <vivek.r.deshpande@intel.com>
Co-authored-by: Charlie Hunt <charlie.hunt@oracle.com>
Co-authored-by: Vladimir Kozlov <vladimir.kozlov@oracle.com>
Co-authored-by: Roger Riggs <roger.riggs@oracle.com>
Co-authored-by: Xueming Shen <xueming.shen@oracle.com>
Co-authored-by: Aleksey Shipilev <aleksey.shipilev@oracle.com>
Co-authored-by: Sandhya Viswanathan <sandhya.viswanathan@intel.com>
Reviewed-by: alanb, bdelsart, coleenp, iklam, jiangli, jrose, kevinw, naoto, pliden, roland, smarks, twisti
2015-11-03 09:41:03 +01:00
Goetz Lindenmaier
83b3b21342
8139040: Fix initializations before ShouldNotReachHere() etc. and enable -Wuninitialized on linux
...
Reviewed-by: stuefe, coleenp, roland
2015-10-22 13:07:10 -04:00
Hui Shi
0f4b248b18
8136596: Remove aarch64: MemBarRelease when final field's allocation is NoEscape or ArgEscape
...
Elide MemBar when AllocateNode _is_non_escaping
Reviewed-by: kvn, roland
2015-09-21 10:51:33 +02:00
Roland Westrelin
8942ef410f
8134321: tools/pack200/Pack200Test.java crashes in the VM PIT jdk9 b79
...
Code that capture field values of eliminated allocation at a safepoint when there's an arraycopy behind a Phi is broken
Reviewed-by: kvn
2015-08-26 09:49:37 +02:00
Roland Westrelin
0baf2f7e8a
8130847: Cloned object's fields observed as null after C2 escape analysis
...
Eliminated instance/array written to by an array copy variant must be correctly initialized when reallocated at a deopt
Reviewed-by: kvn, vlivanov
2015-08-15 02:54:18 +02:00
Roland Westrelin
a9cdbd0407
8076188: Optimize arraycopy out for non escaping destination
...
If the destination of an arraycopy is non escaping, the arraycopy may be optimized out
Reviewed-by: kvn, vlivanov
2015-05-12 10:27:50 +02:00
Calvin Cheung
7bb3af5d16
Merge
2015-04-17 14:37:20 -07:00
Daniel D. Daugherty
884f0d320f
8073165: Contended Locking fast exit bucket
...
JEP-143/JDK-8073165 Contended Locking fast exit bucket
Co-authored-by: Dave Dice <dave.dice@oracle.com>
Co-authored-by: Karen Kinnear <karen.kinnear@oracle.com>
Reviewed-by: dholmes, acorn, dice, dcubed
2015-04-16 08:23:26 -07:00
Roland Westrelin
71e31ee0b9
8073480: C2 should optimize explicit range checks
...
Explicit range checks should be recognized by C2
Reviewed-by: kvn, vlivanov
2015-03-17 10:06:31 +01:00
David Chase
46fa321d63
8069412: Locks need better debug-printing support
...
Added better debug-printing support and enhanced LogCompilation tool
Reviewed-by: kvn, roland, dholmes
2015-02-17 13:54:53 -05:00
Zoltan Majo
eb5be4c2fe
8066312: Add new Node* Node::find_out(int opc) method
...
Added methods find_user_with() and has_user_with() for searching for a particular out type.
Reviewed-by: kvn, jrose
2015-01-19 09:32:40 +01:00
Roland Westrelin
15dcd41e87
6898462: The escape analysis with G1 cause crash assertion src/share/vm/runtime/vframeArray.cpp:94
...
OOM during reallocation of scalar replaced objects in deoptimization causes crashes
Reviewed-by: kvn, jrose
2014-11-25 17:33:59 +01:00
David Chase
f454e5e02c
Merge
2014-11-13 11:35:15 -05:00
Zoltan Majo
49b224a4f7
8057622: java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest: SEGV inside compiled code (sparc)
...
In Parse::array_store_check(), add control edge FROM IfTrue branch of runtime type check of the destination array TO loading _element_klass from destination array.
Reviewed-by: kvn, roland, anoll
2014-11-06 09:40:58 +01:00
Bengt Rutisson
4601eb634a
8061308: Remove iCMS
...
Reviewed-by: mgerdin, jmasa
2014-10-31 09:10:51 +01:00
Roland Westrelin
400f0f7a8f
8055153: nsk/stress/jck60/jck60014 crashes on sparc
...
Missing control for LoadRange and LoadKlass nodes created during arraycopy node expansion
Reviewed-by: kvn, iveresov
2014-08-19 17:23:38 +02:00
Roland Westrelin
a56ade07c7
7173584: Implement arraycopy as a macro node
...
Delay the conversion of arraycopy to stub calls to macro expansion
Reviewed-by: kvn, iveresov
2014-08-11 14:12:51 +02:00
Roland Westrelin
355f6eb4ae
8046698: assert(false) failed: only Initialize or AddP expected macro.cpp:943
...
PhiNode inserted between AllocateNode and Initialization node confuses allocation elimination
Reviewed-by: kvn
2014-08-02 07:06:08 +02:00
Tobias Hartmann
efc7daaf82
8054081: Crashes with assert "modified node is not on IGVN._worklist"
...
Modified safepoint nodes are not added to the IGVN worklist by 'PhaseMacroExpand::scalar_replacement()'
Reviewed-by: kvn, roland
2014-08-05 08:25:10 +02:00
Tobias Hartmann
11eb4553c9
8040213: C2 does not put all modified nodes on IGVN worklist
...
Verification code is added that checks if modified nodes are put on the IGVN worklist and modified nodes are processed by 'PhaseIterGVN::transform_old()'
Reviewed-by: kvn, jrose
2014-07-25 10:06:17 +02:00
Tobias Hartmann
2a0815a55e
8034812: remove IDX_INIT macro hack in Node class
...
The IDX_INIT macro used by Node::Node(...) to retrieve the Compile object is removed and replaced by a call to Compile::current(). The Node constructor, new operator and all calls to it are adapted accordingly.
Reviewed-by: kvn, jrose, iveresov, goetz
2014-06-02 08:07:29 +02:00
Morris Meyer
6db303a301
8001532: C2 node files refactoring
...
Split C2 node files into cast, convert, countbits, intrinsic, move, narrowptr and opaquenode classes
Reviewed-by: kvn, morris
2014-04-01 09:05:20 -07:00
Vladimir Kozlov
97a51c5c2a
8031320: Use Intel RTM instructions for locks
...
Use RTM for inflated locks and stack locks.
Reviewed-by: iveresov, twisti, roland, dcubed
2014-03-20 17:49:27 -07:00
Vladimir Kozlov
c3a0e80e0b
Merge
2014-01-28 12:25:34 -08:00
Mikael Vidstedt
a0da47fd66
8029233: Update copyright year to match last edit in jdk8 hotspot repository for 2013
...
Copyright year updated for files modified during 2013
Reviewed-by: twisti, iveresov
2013-12-24 11:48:39 -08:00
Goetz Lindenmaier
13b13f5259
8024921: PPC64 (part 113): Extend Load and Store nodes to know about memory ordering
...
Add a field to C2 LoadNode and StoreNode classes which indicates whether the load/store should do an acquire/release on platforms which support it.
Reviewed-by: kvn
2013-11-15 11:05:32 -08:00
Erik Helin
30f059b5fc
8015107: NPG: Use consistent naming for metaspace concepts
...
Reviewed-by: coleenp, mgerdin, hseigel
2013-08-12 17:37:02 +02:00
Vladimir Kozlov
ccfb92c6a9
8012972: Incremental Inlining should support scalar replaced object in debug info
...
Store in _first_index not absolute index but an index relative to the last (youngest) jvms->_scloff value
Reviewed-by: roland, twisti
2013-08-23 11:41:37 -07:00
Vladimir Kozlov
d7176bf7f8
8014189: JVM crash with SEGV in ConnectionGraph::record_for_escape_analysis()
...
Add NULL checks and asserts for Type::make_ptr() returned value.
Reviewed-by: twisti
2013-05-09 17:28:04 -07:00
Vladimir Kozlov
b4977e887a
6934604: enable parts of EliminateAutoBox by default
...
Resurrected autobox elimination code and enabled part of it by default.
Reviewed-by: roland, twisti
2013-05-08 15:08:01 -07:00
Roland Westrelin
748083843a
8009460: C2compiler crash in machnode::in_regmask(unsigned int)
...
7121140 may not correctly break the Allocate -> MemBarStoreStore link
Reviewed-by: kvn
2013-03-06 10:28:38 +01:00
Vladimir Kozlov
9e0c61f822
6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86
...
Use SSE4.2 and AVX2 instructions for encodeArray intrinsic.
Reviewed-by: roland
2013-01-22 15:34:16 -08:00
Bharadwaj Yadavalli
2d2532e740
7092905: C2: Keep track of the number of dead nodes
...
Keep an (almost) accurate running count of the reachable (live) flow graph nodes.
Reviewed-by: kvn, twisti, jrose, vlivanov
2012-11-27 17:24:15 -08:00
Roland Westrelin
61eb5a0549
7054512: Compress class pointers after perm gen removal
...
Support of compress class pointers in the compilers.
Reviewed-by: kvn, twisti
2012-10-09 10:11:38 +02:00
Bharadwaj Yadavalli
d5d2e78faa
7193318: C2: remove number of inputs requirement from Node's new operator
...
Deleted placement new operator of Node - node(size_t, Compile *, int).
Reviewed-by: kvn, twisti
2012-09-27 09:38:42 -07:00
Jon Masamitsu
5c58d27aac
6964458: Reimplement class meta-data storage to use native memory
...
Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
2012-09-01 13:25:18 -04:00
Zhengyu Gu
a39b17624a
6995781: Native Memory Tracking (Phase 1)
...
7151532: DCmd for hotspot native memory tracking
Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd
Reviewed-by: acorn, coleenp, fparain
2012-06-28 17:03:16 -04:00
Vlaidmir Ivanov
dd85e2f356
7173340: C2: code cleanup: use PhaseIterGVN::replace_edge(Node*, int, Node*) where applicable
...
Replace frequent C2 optimizer code patterns with new methods calls
Reviewed-by: kvn, twisti
2012-06-12 16:23:31 -07:00
Vladimir Kozlov
e6015c7c26
7143491: G1 C2 CTW: assert(p2x->outcnt() == 2) failed: expects 2 users: Xor and URShift nodes
...
Adjust the assert and code in eliminate_card_mark() method for case when stored value is NULL.
Reviewed-by: iveresov, never
2012-02-07 16:33:43 -08:00
Vladimir Kozlov
b9cba282ee
7129618: assert(obj_node->eqv_uncast(obj),"");
...
Relax verification and locks elimination checks for new implementation (EliminateNestedLocks).
Reviewed-by: iveresov
2012-01-13 12:58:26 -08:00
Vladimir Kozlov
337666a80c
7128355: assert(!nocreate) failed: Cannot build a phi for a block already parsed
...
Do not common BoxLock nodes and avoid creating phis of boxes.
Reviewed-by: never
2012-01-12 14:45:04 -08:00
Vladimir Kozlov
791afc42da
7128352: assert(obj_node == obj) failed
...
Compare uncasted object nodes.
Reviewed-by: never
2012-01-10 18:05:38 -08:00
Vladimir Kozlov
94927c382b
7125896: Eliminate nested locks
...
Nested locks elimination done before lock nodes expansion by looking for outer locks of the same object.
Reviewed-by: never, twisti
2012-01-07 13:26:43 -08:00
Vladimir Kozlov
05ec1c0816
7125879: assert(proj != NULL) failed: must be found
...
Leave i_o attached to slow allocation call when there are no i_o users after the call.
Reviewed-by: iveresov, twisti
2011-12-30 11:43:06 -08:00
Vladimir Kozlov
f96f3e5e85
7123954: Some CTW test crash with SIGSEGV
...
Correct Allocate expansion code to preserve i_o when only slow call is generated.
Reviewed-by: iveresov
2011-12-27 15:08:43 -08:00
Roland Westrelin
97439fb4ff
7121140: Allocation paths require explicit memory synchronization operations for RMO systems
...
Adds store store barrier after initialization of header and body of objects.
Reviewed-by: never, kvn
2011-12-20 16:56:50 +01:00