History log of /openjdk10/hotspot/src/share/vm/opto/memnode.cpp
Revision Date Author Comments
# 13378:fe7fdd0fc266 03-Jul-2017 roland

8182036: Load from initializing arraycopy uses wrong memory state
Reviewed-by: kvn


# 13359:3b1f322a8582 01-Aug-2017 kvn

Merge


# 13254:c044f8d03932 05-Jul-2017 jwilhelm

8182299: Enable disabled clang warnings, build on OSX 10 + Xcode 8
8182656: Make the required changes in GC code to build on OSX 10 + Xcode 8
8182657: Make the required changes in Runtime code to build on OSX 10 + Xcode 8
8182658: Make the required changes in Compiler code to build on OSX 10 + Xcode 8
Reviewed-by: jwilhelm, ehelin, phh
Contributed-by: phh <hohensee@amazon.com>, jwilhelm <jesper.wilhelmsson@oracle.com>


# 13249:a2753984d2c1 05-Jul-2017 stefank

8183552: Move align functions to align.hpp
Reviewed-by: stuefe, pliden


# 13243:7235bc30c0d7 04-Jul-2017 stefank

8178499: Remove _ptr_ and _size_ infixes from align functions
Reviewed-by: rehn, tschatzl


# 13213:4358b7205556 28-Jun-2017 coleenp

8182848: Some functions misplaced in debug.hpp
Summary: moved to vmError.hpp,cpp where they seemed more appropriate
Reviewed-by: stefank, stuefe


# 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


# 12820:3ee42d818496 02-Jun-2017 roland

8179678: ArrayCopy with same src and dst can cause incorrect execution or compiler crash
Summary: Replacing load on dst with load on src only valid if copy doesn't modify src element to load
Reviewed-by: kvn, thartmann


# 12805:31c842513336 22-May-2017 thartmann

8180575: Null pointer dereference in LoadNode::Identity()
Summary: Fixed a missing null check on the return value of AddPNode::Ideal_base_and_offset() found by Parfait.
Reviewed-by: kvn


# 12802:0b218e675429 22-May-2017 thartmann

8180617: Null pointer dereference in InitializeNode::complete_stores
Summary: Fixed a missing null check on the return value of InitializeNode::allocation() found by Parfait.
Reviewed-by: zmajo


# 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


# 12254:c1715eaaa820 22-Sep-2016 goetz

8166561: [s390] Adaptions needed for s390 port in C1 and C2.
Reviewed-by: kvn


# 11894:2629b100a7e3 23-Aug-2016 thartmann

8038348: Instance field load is replaced by wrong data Phi
Summary: Store additional information in PhiNodes corresponding to known instance field values to avoid incorrect reusage.
Reviewed-by: kvn, vlivanov


# 11695:4be0cada20ad 06-Jul-2016 vlivanov

8160360: Mismatched field loads are folded in LoadNode::Value
Reviewed-by: kvn, thartmann


# 11440:0408af2f2f5f 02-Jun-2016 thartmann

8156760: VM crashes if -XX:-ReduceInitialCardMarks is set
Summary: Fixed several compiler crashes with disabled ReduceInitialCardMarks.
Reviewed-by: roland, minqi, dlong, tschatzl, kvn


# 11309:6e0056d7769d 12-May-2016 thartmann

8155241: Crash with assert in Xcomp mode and with disabled ReduceBulkZeroing
Summary: We should not assume that a CloneBasic arraycopy sets array initialization to complete.
Reviewed-by: kvn, roland


# 11006:70e16990581f 22-Apr-2016 amurillo

Merge


# 10979:89883d363528 12-Apr-2016 bharadwaj

Merge


# 10976:e6abce3c8763 11-Apr-2016 vlivanov

8152590: C2: @Stable support doesn't always work w/ incremental inlining
Reviewed-by: kvn


# 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>


# 10885:4b425192636c 13-Oct-2015 coleenp

8132051: Better byte behavior
Reviewed-by: bdelsart, roland, kvn, jrose, ahgross
Contributed-by: coleen.phillimore@oracle.com, roland.westerlin@oracle.com, vladimir.kozlov@oracle.com, john.r.rose@oracle.com


# 10781:20b66ba124e9 07-Apr-2016 dcubed

Merge


# 10762:ea81fe138932 03-Apr-2016 jprovino

8132524: Missing includes to resourceArea.hpp
Summary: Files that use ResourceMark are missing the include of resourceArea.hpp
Reviewed-by: tschatzl, jwilhelm


# 10540:cfcee2a74225 29-Mar-2016 vlivanov

8152972: C2 crashes with SIGSEGV in LoadNode::make
Reviewed-by: kvn


# 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


# 10354:1b6fb1351811 01-Mar-2016 vlivanov

8150933: System::arraycopy intrinsic doesn't mark mismatched loads
Reviewed-by: kvn, shade


# 10349:d882a7c5753e 29-Feb-2016 vlivanov

8150543: Mismatched access detection is inaccurate
Reviewed-by: kvn, shade


# 10342:b71124b1ffab 25-Feb-2016 vlivanov

8150186: Folding mismatched accesses with @Stable is incorrect
Reviewed-by: kvn, jrose, shade


# 10239:9cf33e51c2d4 15-Feb-2016 shade

8149813: Move trusted final field handling from C2 LoadNode::Value to shared code
Reviewed-by: thartmann, kvn


# 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


# 10003:b8fbbc5bab85 12-Jan-2016 zmajo

8086053: Address inconsistencies regarding ZeroTLAB
Summary: Add zero-initialization to C1 for fast TLAB refills; strenghten C2 conditions for skipping zero-initialization.
Reviewed-by: kvn, thartmann


# 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


# 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


# 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


# 9080:00e5743fd189 06-Oct-2015 jwilhelm

Merge


# 9056:dc9930a04ab0 29-Sep-2015 david

8080775: Better argument formatting for assert() and friends
Reviewed-by: kbarrett, pliden


# 9028:6cc606e29b74 21-Sep-2015 roland

8136596: Remove aarch64: MemBarRelease when final field's allocation is NoEscape or ArgEscape
Summary: elide MemBar when AllocateNode _is_non_escaping
Reviewed-by: kvn, roland
Contributed-by: hui.shi@linaro.org


# 8902:c530a118f715 01-Sep-2015 shade

8134758: Final String field values should be trusted as stable
Reviewed-by: kvn, thartmann


# 8860:fe311de64c61 29-Jul-2015 roland

8080289: Intermediate writes in a loop not eliminated by optimizer
Summary: Move Stores out of loop (after or before) when possible
Reviewed-by: kvn, vlivanov


# 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


# 8517:fe9f9e33fe95 12-Jun-2015 roland

8086046: escape analysis generates incorrect code as of B67
Summary: load bypasses arraycopy that sets the value after the ArrayCopyNode is expanded
Reviewed-by: kvn


# 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


# 7864:6a5be7f00868 13-Feb-2015 stefank

8072911: Remove includes of oop.inline.hpp from .hpp files
Reviewed-by: brutisso, coleenp, jwilhelm, simonis, dholmes


# 7733:f1340404713a 19-Jan-2015 zmajo

8066312: Add new Node* Node::find_out(int opc) method.
Summary: Added methods find_user_with() and has_user_with() for searching for a particular out type.
Reviewed-by: kvn, jrose


# 7590:fd55c0f2c200 19-Dec-2014 vlivanov

8067338: compiler/debug/TraceIterativeGVN.java segfaults
Reviewed-by: kvn


# 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


# 7281:7723d5b0fca3 24-Oct-2014 vlivanov

8058847: C2: EliminateAutoBox regression after 8042786
Reviewed-by: kvn, roland


# 7005:624c017f6d94 04-Sep-2014 kvn

Merge


# 6998:4b78b9dddd05 29-Aug-2014 roland

8055910: closed/java/util/Collections/CheckedCollections.java failed with ClassCastException not thrown
Summary: missing subtype check for Arrays.copyOf intrinsic
Reviewed-by: kvn, iveresov


# 6975:4acab3118361 28-Aug-2014 coleenp

8049105: Move array component mirror to instance of java/lang/Class (hotspot part 2)
Summary: This removes component mirrors from arrayKlass metadata and the C2 intrinsic for them.
Reviewed-by: kvn, twisti, mgerdin


# 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


# 6820:c1d7ba5b5d45 25-Jul-2014 thartmann

8040213: C2 does not put all modified nodes on IGVN worklist
Summary: 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


# 6546:3533da0f7728 02-Jun-2014 thartmann

8034812: remove IDX_INIT macro hack in Node class
Summary: 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


# 6412:53a41e7cbe05 09-May-2014 drchase

8037816: Fix for 8036122 breaks build with Xcode5/clang
Summary: Repaired or selectively disabled offending formats; future-proofed with additional checking
Reviewed-by: kvn, jrose, stefank


# 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>


# 6393:bd1a985905ed 02-May-2014 kvn

8039298: assert(base == NULL || t_adr->isa_rawptr() || !phase->type(base)->higher_equal(TypePtr::NULL_PTR))
Summary: Convert the assert into the runtime check to skip IGVN optimizations for problematic memory nodes. Eliminate dead nodes more aggressively.
Reviewed-by: twisti, iveresov


# 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


# 6107:bd2220947c1e 06-Mar-2014 vlivanov

8036667: "assert(adr->is_AddP() && adr->in(AddPNode::Offset)->is_Con()) failed: offset is a constant" with FoldStableValues on
Reviewed-by: kvn


# 6011:45467c53f178 28-Jan-2014 kvn

Merge


# 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


# 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


# 5937:5ec7dace41a6 24-Jan-2014 roland

8027422: assert(_gvn.type(obj)->higher_equal(tjp)) failed: cast_up is no longer needed
Summary: type methods shouldn't always operate on speculative part
Reviewed-by: kvn, twisti


# 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


# 5766:6c4c27c5cc9a 06-Dec-2013 twisti

8029366: ShouldNotReachHere error when creating an array with component type of void
Reviewed-by: kvn


# 5275:884ed7a10f09 16-Sep-2013 tschatzl

Merge


# 5259:7944aba7ba41 12-Aug-2013 ehelin

8015107: NPG: Use consistent naming for metaspace concepts
Reviewed-by: coleenp, mgerdin, hseigel


# 5223:edb5ab0f3fe5 10-Sep-2013 vlivanov

8001107: @Stable annotation for constant folding of lazily evaluated variables
Reviewed-by: rbackman, twisti, kvn
Contributed-by: john.r.rose@oracle.com, vladimir.x.ivanov@oracle.com


# 4882:3aa636f2a743 25-Jun-2013 adlertz

8017243: 8001345 is incomplete
Summary: Replaces unused decodeN at MemBarAcquire with its corresponding loadN if loadN is used at more than one place.
Reviewed-by: kvn, twisti


# 4857:b88209cf98c0 20-Jun-2013 kvn

Merge


# 4856:08d35fd1b599 18-Jun-2013 adlertz

8001345: VM crashes with assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc
Summary: Remove unnecessary LoadN / DecodeN nodes at MemBarAcquire nodes.
Reviewed-by: kvn, roland


# 4824:ef57c43512d6 13-Jun-2013 ccheung

8014431: cleanup warnings indicated by the -Wunused-value compiler option on linux
Reviewed-by: dholmes, coleenp
Contributed-by: jeremymanson@google.com, calvin.cheung@oracle.com


# 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


# 4260:ff55877839bc 06-Mar-2013 kvn

8009472: Print additional information for 8004640 failure
Summary: dump nodes and types in 8004640 case.
Reviewed-by: roland


# 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


# 3975:00af3a3a8df4 03-Jan-2013 kvn

8005522: use fast-string instructions on x86 for zeroing
Summary: use 'rep stosb' instead of 'rep stosq' when fast-string operations are available.
Reviewed-by: twisti, roland


# 3729:d804e148cff8 12-Oct-2012 kvn

Merge


# 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


# 3707:d8ce2825b193 29-Sep-2012 coleenp

8000213: NPG: Should have renamed arrayKlass and typeArrayKlass
Summary: Capitalize these metadata types (and objArrayKlass)
Reviewed-by: stefank, twisti, kvn


# 3680:e626685e9f6c 27-Sep-2012 kvn

7193318: C2: remove number of inputs requirement from Node's new operator
Summary: Deleted placement new operator of Node - node(size_t, Compile *, int).
Reviewed-by: kvn, twisti
Contributed-by: bharadwaj.yadavalli@oracle.com


# 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


# 3602:da91efe96a93 01-Sep-2012 coleenp

6964458: Reimplement class meta-data storage to use native memory
Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>


# 3447:8c92982cbbc4 15-Jun-2012 kvn

7119644: Increase superword's vector size up to 256 bits
Summary: Increase vector size up to 256-bits for YMM AVX registers on x86.
Reviewed-by: never, twisti, roland


# 3407:0919b2e7895d 11-Jun-2012 kvn

7174510: 19 JCK compiler tests fail with C2 error: memNode.cpp:812 - ShouldNotReachHere
Summary: Add missing check for EncodeP node in MemNode::Ideal_common_DU_postCCP() method.
Reviewed-by: twisti


# 3013:52474ec73861 24-Jan-2012 kvn

7132936: guarantee(t != NULL) failed: must be con
Summary: Use !higher_equal() check to skip top and values which fit.
Reviewed-by: never


# 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


# 2972:35acf8f0a2e4 10-Jan-2012 kvn

7128352: assert(obj_node == obj) failed
Summary: Compare uncasted object nodes.
Reviewed-by: never


# 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


# 2956:069ab3f976d3 07-Dec-2011 stefank

7118863: Move sizeof(klassOopDesc) into the *Klass::*_offset_in_bytes() functions
Summary: Moved sizeof(klassOopDesc), changed the return type to ByteSize and removed the _in_bytes suffix.
Reviewed-by: never, bdelsart, coleenp, jrose


# 2885:f745b2be3737 02-Dec-2011 kvn

7117282: assert(base == NULL || t_adr->isa_rawptr() || !phase->type(base)
Summary: Delay memory node transformation until the memory is processed.
Reviewed-by: iveresov, never


# 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


# 2825:670a74b863fc 09-Nov-2011 kvn

7107042: assert(no_dead_loop) failed: dead loop detected
Summary: Use dead nodes elimination code in PhaseIdealLoop before executing EA.
Reviewed-by: never, twisti


# 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


# 2667:11a4af030e4b 02-Sep-2011 twisti

7071709: JSR 292: switchpoint invalidation should be pushed not pulled
Reviewed-by: never


# 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


# 2381:286c498ae0d4 29-Apr-2011 kvn

Merge


# 2375:66b0e2371912 20-Apr-2011 kvn

7026700: regression in 6u24-rev-b23: Crash in C2 compiler in PhaseIdealLoop::build_loop_late_post
Summary: memory slices should be always created for non-static fields after allocation
Reviewed-by: never


# 2349:92add02409c9 08-Apr-2011 jmasa

Merge


# 2345:e6beb62de02d 05-Apr-2011 never

7032963: StoreCM shouldn't participate in store elimination
Reviewed-by: kvn


# 2264:cb162b348743 31-Mar-2011 kvn

7032696: Fix for 7029152 broke VM
Summary: StrIntrinsicNode::Ideal() should not optimize memory during Parse.
Reviewed-by: jrose, never


# 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


# 2226:b099aaf51bf8 22-Mar-2011 jcoomes

6962931: move interned strings out of the perm gen
Reviewed-by: never, coleenp, ysr, jwilhelm


# 2167:41d4973cf100 26-Feb-2011 kvn

6942326: x86 code in string_indexof() could read beyond reserved heap space
Summary: copy small (<8) strings on stack if str+16 crosses a page boundary and load from stack into XMM. Back up pointer when loading string's tail.
Reviewed-by: never


# 2164:5a41a201d08c 24-Feb-2011 kvn

6812217: Base memory of MergeMem node violates assert during killing expanded AllocateArray node
Summary: The assert in MergeMemNode::memory_at() misses the case when address is TOP.
Reviewed-by: never


# 1911:4da76e32c0be 01-Dec-2010 never

7002666: eclipse CDT projects crash with compressed oops
Reviewed-by: kvn, twisti


# 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


# 1746:56601ef83436 30-Sep-2010 kvn

6916062: assert(_inserts <= _insert_limit,"hash table overflow") in NodeHash::hash_insert
Summary: Missing check for not empty worklist when puting memory node back on worklist and expecting address type update.
Reviewed-by: never


# 1735:5867d89c129b 22-Sep-2010 never

6982537: Crash in Node*step_through_mergemem
Reviewed-by: kvn


# 1686:02f0a9b6f654 30-Aug-2010 never

6969586: OptimizeStringConcat: SIGSEGV in LoadNode::Value()
Reviewed-by: kvn


# 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


# 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


# 1080:7c57aead6d3e 12-Nov-2009 never

6892658: C2 should optimize some stringbuilder patterns
Reviewed-by: kvn, twisti


# 1062:dcdcc8c16e20 04-Nov-2009 kvn

6896352: CTW fails hotspot/src/share/vm/opto/escape.cpp:1155
Summary: Always call C->get_alias_index(phase->type(address)) during parsing.
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


# 708:f2049ae95c3d 07-Apr-2009 kvn

6711117: Assertion in 64bit server vm (flat != TypePtr::BOTTOM,"cannot alias-analyze an untyped ptr")
Summary: Delay a memory node transformation if its control or address on IGVN worklist.
Reviewed-by: 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


# 583:5d75ab5f6698 18-Feb-2009 kvn

6807084: AutoBox elimination is broken with compressed oops
Summary: Add checks for DecodeN nodes into AutoBox elimination code.
Reviewed-by: 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


# 570:dca06e7f503d 17-Feb-2009 kvn

Merge


# 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


# 553:041fe019d769 13-Jan-2009 never

6791132: bad control in autobox split code
Reviewed-by: kvn


# 544:82a980778b92 05-Feb-2009 never

6793828: G1: invariant: queues are empty when activated
Reviewed-by: jrose, 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


# 305:ab075d07f1ba 27-Aug-2008 kvn

6736417: Fastdebug C2 crashes in StoreBNode::Ideal
Summary: The result of step_through_mergemem() and remove_dead_region() is not checked in some cases.
Reviewed-by: never


# 293:c3e045194476 01-Aug-2008 kvn

6731641: assert(m->adr_type() == mach->adr_type(),"matcher should not change adr type")
Summary: fixed few addP node type and narrow oop type problems.
Reviewed-by: rasbold, never


# 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


# 247:02a35ad4adf8 16-Jul-2008 kvn

6723160: Nightly failure: Error: meet not symmetric
Summary: Add missing _instance_id settings and other EA fixes.
Reviewed-by: rasbold


# 235:9c2ecc2ffb12 11-Jul-2008 trims

Merge


# 223:1dd146f17531 26-Jun-2008 kvn

6716441: error in meet with +DoEscapeAnalysis
Summary: Set instance_id to InstanceBot for InstPtr->meet(AryPtr) when types are not related.
Reviewed-by: jrose, never


# 221:1e026f8da827 24-Jun-2008 kvn

6710487: More than half of JDI Regression tests hang with COOPs in -Xcomp mode
Summary: Remove DecodeNNode::decode() and EncodePNode::encode() methods.
Reviewed-by: rasbold, never


# 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


# 193:44a553b2809d 13-Jun-2008 kvn

6714406: Node::dominates() does not always check for TOP
Summary: Add missed checks for TOP and missed checks for non-dominating cases
Reviewed-by: rasbold, jrose, never


# 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


# 168:7793bd37a336 29-May-2008 kvn

6705887: Compressed Oops: generate x64 addressing and implicit null checks with narrow oops
Summary: Generate addresses and implicit null checks with narrow oops to avoid decoding.
Reviewed-by: jrose, 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


# 155:723be81c1212 15-May-2008 kvn

6701887: JDK7 server VM in endless loop in Node::dominates
Summary: The method Node::dominates loops in the dead code which does not have a Region node.
Reviewed-by: jrose, never


# 128:a76240c8b133 28-Apr-2008 rasbold

Merge


# 124:b130b98db9cf 23-Apr-2008 kvn

6689060: Escape Analysis does not work with Compressed Oops
Summary: 64-bits VM crashes with -XX:+AggresiveOpts (Escape Analysis + Compressed Oops)
Reviewed-by: never, sgoldman


# 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


# 82:de93acbb64fc 31-Mar-2008 kvn

6682236: C2 hits ideal nodes limit during IGVN optimization with EA
Summary: missing check in LoadNode::Ideal() causes infinite generation of a value Phi.
Reviewed-by: jrose, never


# 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


# 68:daf38130e60d 19-Mar-2008 never

6676841: ClearArrayNode::Identity is incorrect for 64-bit
Summary: ClearArrayNode::Identity should use TypeX instead of TypeInt
Reviewed-by: jrose, kvn, sgoldman


# 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


# 43:d821d920b465 11-Mar-2008 kvn

6623167: C2 crashed in StoreCMNode::Value
Summary: C2 crashed in StoreCMNode::Value because n->in(MemNode::OopStore) is 0.
Reviewed-by: rasbold, never


# 36:f34d9da7acb2 29-Feb-2008 kvn

6667618: disable LoadL->ConvL2I ==> LoadI optimization
Summary: this optimization causes problems (sizes of Load and Store nodes do not match) for objects initialization code and Escape Analysis
Reviewed-by: jrose, never


# 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