History log of /openjdk10/hotspot/src/share/vm/opto/memnode.hpp
Revision Date Author Comments
# 12854:2ab74e5dbdc2 23-Jun-2017 roland

8181742: Load that bypasses arraycopy has wrong memory state
Summary: Set load memory edge to the memory state right before the arraycopy.
Reviewed-by: kvn, thartmann


# 12766:b7690ac63aa5 19-Apr-2017 iveresov

8178047: Aliasing problem with raw memory accesses
Summary: Require equal bases when unaliasing offsets for raw accesses
Reviewed-by: kvn


# 11515:aa5cd232c161 15-Jun-2016 shade

8157726: VarHandles/Unsafe should support sub-word atomic ops
Reviewed-by: psandoz, vlivanov, lagergren


# 10963:a7aa11177232 30-Mar-2016 ikrylov

8147844: new method j.l.Runtime.onSpinWait() and the corresponding x86 hotspot instrinsic
Summary: adds c1 & c2 x86 intrinsics for j.l.Runtime.onSpinWait() that utilize the PAUSE instruction
Reviewed-by: iveresov, kvn
Contributed-by: Ivan Krylov <ivan@azul.com>, Yuri Gaevsky <ygaevsky@azul.com>


# 10531:c36eb416cc8b 28-Mar-2016 vlivanov

8152179: C2: Folding of unsigned loads is broken w/ @Stable
Reviewed-by: jrose, kvn


# 10530:b79c4762e270 28-Mar-2016 vlivanov

8152773: C2: LoadNode properties aren't preserved when converting between signed/unsigned variants
Reviewed-by: jrose, kvn


# 10428:a66bdd827fcb 03-Mar-2016 shade

8146801: Allocating short arrays of non-constant size is slow
Reviewed-by: kvn, twisti, vlivanov


# 10328:8b9fdaeb8c57 23-Feb-2016 shade

8148146: Integrate new internal Unsafe entry points, and basic intrinsic support for VarHandles
Reviewed-by: psandoz, kvn, jrose, adinn, simonis, coleenp


# 10006:d9d0a63499ce 11-Jan-2016 thartmann

8146629: Make phase->is_IterGVN() accessible from Node::Identity and Node::Value
Summary: Change arguments of Node::Identity() and Node::Value() from PhaseTransform* to PhaseGVN*.
Reviewed-by: kvn, roland


# 9477:0abc78fcf184 16-Nov-2015 roland

8142386: Octane crashes with assert(is_Load())
Summary: Unsafe access to an array is wrongly marked as mismatched
Reviewed-by: vlivanov, thartmann


# 9473:5132864a5d5f 13-Nov-2015 neliasso

Merge


# 9445:4bee38ba018c 28-Oct-2015 roland

8140309: [REDO] failed: no mismatched stores, except on raw memory: StoreB StoreI
Summary: Mismatched stores on same slice possible with Unsafe.Put*Unaligned methods
Reviewed-by: kvn, thartmann


# 9281:e33baf2cad34 05-Nov-2015 jwilhelm

Merge


# 9261:9319d5be1bfb 27-Oct-2015 chegar

8139891: Prepare Unsafe for true encapsulation
Reviewed-by: alanb, dholmes, jrose, psandoz, twisti


# 9199:d80d1084cfdc 21-Oct-2015 dlong

8140267: assert(is_native_ptr || alias_type->adr_type() == TypeOopPtr::BOTTOM || alias_type->field() != __null || alias_type->element() != __null) failed: field, array element or unknown
Summary: back out 8136473
Reviewed-by: twisti


# 9189:9108fab781a4 16-Oct-2015 roland

8136473: failed: no mismatched stores, except on raw memory: StoreB StoreI
Summary: Mismatched stores on same slice possible with Unsafe.Put*Unaligned methods
Reviewed-by: kvn, thartmann


# 8858:78c4bc2839bf 14-Aug-2015 roland

8130847: Cloned object's fields observed as null after C2 escape analysis
Summary: Eliminated instance/array written to by an array copy variant must be correctly initialized when reallocated at a deopt
Reviewed-by: kvn, vlivanov


# 8482:ed9cc6871da2 21-May-2015 roland

8077504: Unsafe load can loose control dependency and cause crash
Summary: Node::depends_only_on_test() should return false for Unsafe loads
Reviewed-by: kvn, adinn


# 8384:c78f961f7edb 12-May-2015 roland

8076188: Optimize arraycopy out for non escaping destination
Summary: if the destination of an arraycopy is non escaping, the arraycopy may be optimized out
Reviewed-by: kvn, vlivanov


# 8285:d11fb4e8a82e 24-Mar-2015 roland

8069191: moving predicate out of loops may cause array accesses to bypass null check
Summary: Remove CastPP nodes only during final graph reshape
Reviewed-by: kvn, jrose


# 7890:f83851ae258e 26-Feb-2015 kvn

Merge


# 7878:7bce4e135976 11-Dec-2014 kvn

Merge


# 7877:cc8363b030d5 11-Dec-2014 aph

8064611: AARCH64: Changes to HotSpot shared code
Summary: Everything except cpu/ and os_cpu/
Reviewed-by: dholmes, goetz, dlong, coleenp, kvn


# 7844:ce2c731bb770 10-Feb-2015 psandoz

8068977: Remove unused sun.misc.Unsafe prefetch intrinsic support
Reviewed-by: kvn, vlivanov


# 7438:269dae261504 17-Nov-2014 vlivanov

8062258: compiler/debug/TraceIterativeGVN.java segfaults in trace_PhaseIterGVN
Reviewed-by: kvn


# 7378:e2441a0d98f3 06-Nov-2014 zmajo

8057622: java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest: SEGV inside compiled code (sparc)
Summary: 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


# 6837:ae45df3285c9 05-Aug-2014 thartmann

8054033: Remove unused references to Compile*
Summary: Removed unused references to Compile* missed by JDK-8034812.
Reviewed-by: kvn, roland


# 6396:446bb44e5367 06-May-2014 anoll

8036851: volatile double accesses are not explicitly atomic in C2
Summary: The C2 structure is adapted to distinguish between volatile and non-volatile double accesses.
Reviewed-by: twisti, kvn
Contributed-by: Tobias Hartmann <tobias.hartmann@oracle.com>


# 6219:12cd03f831d8 01-Apr-2014 morris

8001532: C2 node files refactoring
Summary: Split C2 node files into cast, convert, countbits, intrinsic, move, narrowptr and opaquenode classes
Reviewed-by: kvn, morris


# 6010:abec000618bf 28-Jan-2014 kvn

Merge


# 5993:50fdb38839eb 26-Nov-2013 goetz

8028515: PPPC64 (part 113.2): opto: Introduce LoadFence/StoreFence.
Summary: Use new nodes for loadFence/storeFence intrinsics in C2.
Reviewed-by: kvn, dholmes


# 5989:da862781b584 21-Nov-2013 kvn

Merge


# 5983:2113136690bc 15-Nov-2013 goetz

8024921: PPC64 (part 113): Extend Load and Store nodes to know about memory ordering
Summary: 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


# 5776:de6a9e811145 24-Dec-2013 mikael

8029233: Update copyright year to match last edit in jdk8 hotspot repository for 2013
Summary: Copyright year updated for files modified during 2013
Reviewed-by: twisti, iveresov


# 5635:94a83e0f9ce1 05-Nov-2013 iveresov

8017065: C2 allows safepoint checks to leak into G1 pre-barriers
Summary: Make all raw loads strictly respect control dependencies, make sure RCE doesn't move raw loads, add verification of G1 pre-barriers.
Reviewed-by: kvn, roland


# 4675:6f3fd5150b67 08-May-2013 kvn

6934604: enable parts of EliminateAutoBox by default
Summary: Resurrected autobox elimination code and enabled part of it by default.
Reviewed-by: roland, twisti


# 4222:6931f425c517 25-Feb-2013 roland

8007294: ReduceFieldZeroing doesn't check for dependent load and can lead to incorrect execution
Summary: InitializeNode::can_capture_store() must check that the captured store doesn't overwrite a memory location that is loaded before the store.
Reviewed-by: kvn


# 4044:b30b3c2a0cf2 22-Jan-2013 kvn

6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86
Summary: Use SSE4.2 and AVX2 instructions for encodeArray intrinsic.
Reviewed-by: roland


# 3729:d804e148cff8 12-Oct-2012 kvn

Merge


# 3725:f6badecb7ea7 09-Oct-2012 vlivanov

7199654: Remove LoadUI2LNode
Summary: Removed LoadUI2L node from Ideal nodes, use match rule in .ad files instead.
Reviewed-by: kvn


# 3724:8e47bac5643a 09-Oct-2012 roland

7054512: Compress class pointers after perm gen removal
Summary: support of compress class pointers in the compilers.
Reviewed-by: kvn, twisti


# 3718:b9a9ed0f8eeb 09-Oct-2012 mikael

7197424: update copyright year to match last edit in jdk8 hotspot repository
Summary: Update copyright year to 2012 for relevant files
Reviewed-by: dholmes, coleenp


# 3671:7eca5de9e0b6 20-Sep-2012 roland

7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
Summary: use shorter instruction sequences for atomic add and atomic exchange when possible.
Reviewed-by: kvn, jrose


# 3411:8b0a4867acf0 12-Jun-2012 twisti

7174218: remove AtomicLongCSImpl intrinsics
Reviewed-by: kvn, twisti
Contributed-by: Krystal Mok <sajia@taobao.com>


# 3007:53a127075045 20-Jan-2012 kvn

7131302: connode.cpp:205 Error: ShouldNotReachHere()
Summary: Add Value() methods to short and byte Load nodes to truncate constants which does not fit.
Reviewed-by: jrose


# 2957:1dc233a8c7fe 20-Dec-2011 roland

7121140: Allocation paths require explicit memory synchronization operations for RMO systems
Summary: adds store store barrier after initialization of header and body of objects.
Reviewed-by: never, kvn


# 2876:1bd45abaa507 16-Nov-2011 kvn

6890673: Eliminate allocations immediately after EA
Summary: Try to eliminate allocations and related locks immediately after escape analysis.
Reviewed-by: never


# 2722:a92cdbac8b9e 26-Sep-2011 kvn

7081933: Use zeroing elimination optimization for large array
Summary: Don't zero new typeArray during runtime call if the allocation is followed by arraycopy into it.
Reviewed-by: twisti


# 2617:1af104d6cf99 16-Aug-2011 kvn

7079329: Adjust allocation prefetching for T4
Summary: on T4 2 BIS instructions should be issued to prefetch 64 bytes
Reviewed-by: iveresov, phh, twisti


# 2612:f1c12354c3f7 02-Aug-2011 roland

7074017: Introduce MemBarAcquireLock/MemBarReleaseLock nodes for monitor enter/exit code paths
Summary: replace MemBarAcquire/MemBarRelease nodes on the monitor enter/exit code paths with new MemBarAcquireLock/MemBarReleaseLock nodes
Reviewed-by: kvn, twisti


# 2273:1d1603768966 05-Apr-2011 trims

7010070: Update all 2010 Oracle-changed OpenJDK files to have the proper copyright dates - second pass
Summary: Update the copyright to be 2010 on all changed files in OpenJDK
Reviewed-by: ohair


# 2259:f9424955eb18 30-Mar-2011 kvn

7029152: Ideal nodes for String intrinsics miss memory edge optimization
Summary: In Ideal() method of String intrinsics nodes look for TypeAryPtr::CHARS memory slice if memory is MergeMem. Do not unroll a loop with String intrinsics code.
Reviewed-by: never


# 1879:f95d63e2154a 23-Nov-2010 stefank

6989984: Use standard include model for Hospot
Summary: Replaced MakeDeps and the includeDB files with more standardized solutions.
Reviewed-by: coleenp, kvn, kamg


# 1529:4311f23817fd 15-Jun-2010 kvn

6959430: Make sure raw loads have control edge
Summary: check that raw loads have control edge
Reviewed-by: never, twisti


# 1472:c18cbe5936b8 27-May-2010 trims

6941466: Oracle rebranding changes for Hotspot repositories
Summary: Change all the Sun copyrights to Oracle copyright
Reviewed-by: ohair


# 1367:9e321dcfa5b7 07-Apr-2010 kvn

6940726: Use BIS instruction for allocation prefetch on Sparc
Summary: Use BIS instruction for allocation prefetch on Sparc
Reviewed-by: twisti


# 1198:8d9bfe6a446b 28-Jan-2010 never

6920346: G1: "must avoid base_memory and AliasIdxTop"
Reviewed-by: kvn


# 1100:f96a1a986f7b 09-Dec-2009 kvn

6895383: JCK test throws NPE for method compiled with Escape Analysis
Summary: Add missing checks for MemBar nodes in EA.
Reviewed-by: never


# 986:62001a362ce9 14-Sep-2009 kvn

6827605: new String intrinsics may prevent EA scalar replacement
6875866: Intrinsic for String.indexOf() is broken on x86 with SSE4.2
Summary: Modify String intrinsic methods to pass char[] pointers instead of string oops.
Reviewed-by: never


# 985:685e959d09ea 14-Sep-2009 cfang

6877254: Server vm crashes with no branches off of store slice" when run with CMS and UseSuperWord(default)
Summary: design StoreCMNode::Ideal to promote its oopStore input if the input is a MergeMem node
Reviewed-by: kvn, never


# 681:fbde8ec322d0 31-Mar-2009 cfang

6761600: Use sse 4.2 in intrinsics
Summary: Use SSE 4.2 in intrinsics for String.{compareTo/equals/indexOf} and Arrays.equals.
Reviewed-by: kvn, never, jrose


# 628:7bb995fbd3c0 12-Mar-2009 trims

Merge


# 624:337400e7a5dd 09-Mar-2009 twisti

6797305: Add LoadUB and LoadUI opcode class
Summary: Add a LoadUB (unsigned byte) and LoadUI (unsigned int) opcode class so we have these load optimizations in the first place and do not need to handle them in the matcher.
Reviewed-by: never, kvn


# 605:98cb887364d3 27-Feb-2009 twisti

6810672: Comment typos
Summary: I have collected some typos I have found while looking at the code.
Reviewed-by: kvn, never


# 579:0fbdb4381b99 09-Mar-2009 xdono

6814575: Update copyright year
Summary: Update copyright for files that have been modified in 2009, up to 03/09
Reviewed-by: katleman, tbell, ohair


# 558:3b5ac9e7e6ea 26-Jan-2009 twisti

6796746: rename LoadC (char) opcode class to LoadUS (unsigned short)
Summary: Renaming LoadC to LoadUS would round up the planned introduction of LoadUB and LoadUI.
Reviewed-by: phh, kvn


# 420:a1980da045cc 07-Nov-2008 kvn

6462850: generate biased locking code in C2 ideal graph
Summary: Inline biased locking code in C2 ideal graph during macro nodes expansion
Reviewed-by: never


# 366:8261ee795323 17-Sep-2008 rasbold

6711100: 64bit fastdebug server vm crashes with assert(_base == Int,"Not an Int")
Summary: insert CastII nodes to narrow type of load_array_length() node
Reviewed-by: never, kvn


# 253:b0fe4deeb9fb 28-Jul-2008 kvn

6726999: nsk/stress/jck12a/jck12a010 assert(n != null,"Bad immediate dominator info.")
Summary: Escape Analysis fixes.
Reviewed-by: never, rasbold


# 196:d1605aabd0a1 02-Jul-2008 xdono

6719955: Update copyright year
Summary: Update copyright year for files that have been modified in 2008
Reviewed-by: ohair, tbell


# 169:9148c65abefc 29-May-2008 rasbold

6695049: (coll) Create an x86 intrinsic for Arrays.equals
Summary: Intrinsify java/util/Arrays.equals(char[], char[])
Reviewed-by: kvn, never


# 164:c436414a719e 21-May-2008 kvn

6703890: Compressed Oops: add LoadNKlass node to generate narrow oops (32-bits) compare instructions
Summary: Add LoadNKlass and CMoveN nodes, use CmpN and ConN nodes to generate narrow oops compare instructions.
Reviewed-by: never, rasbold


# 163:885ed790ecf0 21-May-2008 kvn

6695810: null oop passed to encode_heap_oop_not_null
Summary: fix several problems in C2 related to Escape Analysis and Compressed Oops.
Reviewed-by: never, jrose


# 122:ec73d88d5b43 23-Apr-2008 kamg

Merge


# 119:d1a5218d7eaf 16-Apr-2008 kvn

6686791: Side effect in NumberFormat tests with -server -Xcomp
Summary: Optimization in CmpPNode::sub() removed the valid compare instruction because of false positive answer from detect_dominating_control().
Reviewed-by: jrose, sgoldman


# 113:ba764ed4b6f2 13-Apr-2008 coleenp

6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv
Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold


# 85:f3b3fe64f59f 15-Apr-2008 kvn

6692301: Side effect in NumberFormat tests with -server -Xcomp
Summary: Optimization in CmpPNode::sub() removed the valid compare instruction because of false positive answer from detect_dominating_control().
Reviewed-by: jrose, sgoldman


# 74:2a9af0b9cb1c 20-Mar-2008 kvn

6674600: (Escape Analysis) Optimize memory graph for instance's fields
Summary: EA gives opportunite to do more aggressive memory optimizations.
Reviewed-by: never, jrose


# 64:b8f5ba577b02 13-Mar-2008 kvn

6673473: (Escape Analysis) Add the instance's field information to PhiNode
Summary: Avoid an infinite generation of instance's field values Phi nodes.
Reviewed-by: never


# 33:3288958bf319 29-Feb-2008 kvn

6667580: Optimize CmpP for allocations
Summary: CmpP could be optimized out if it compares new allocated objects.
Reviewed-by: jrose, never, rasbold


# 29:d5fc211aea19 25-Feb-2008 kvn

6633953: type2aelembytes{T_ADDRESS} should be 8 bytes in 64 bit VM
Summary: T_ADDRESS size is defined as 'int' size (4 bytes) but C2 use it for raw pointers and as memory type for StoreP and LoadP nodes.
Reviewed-by: jrose


# 17:ff5961f4c095 05-Dec-2007 never

6395208: Elide autoboxing for calls to HashMap.get(int) and HashMap.get(long)
Reviewed-by: kvn, rasbold


# 0:a61af66fc99e 30-Nov-2007 duke

Initial load