Code Review for hotspot

Prepared by:rkennke on Mon Jun 27 22:10:56 CEST 2016
Workspace:/home/rkennke/src/openjdk/jdk9-shenandoah/hotspot
Compare against: ssh://hg.openjdk.java.net/shenandoah/jdk9/hotspot
Compare against version:11430
Summary of changes: 15 lines changed: 0 ins; 0 del; 15 mod; 15569 unchg
Changeset: hotspot.changeset
Legend: Modified file
Deleted file
New file

Cdiffs Udiffs Sdiffs Frames Old New ----- Raw src/share/vm/opto/graphKit.cpp

rev 11431 : Make storeval read barriers use ctrl too, but no memory, and don't allow fromspace for them.
rev 11423 : Find dominating write barrier replacement during loop opts
rev 11403 : Don't update any GC roots at init-mark.
rev 11395 : C2 verification pass to locate missing shenandoah barriers
rev 11390 : Merge
rev 11104 : Merge
rev 11101 : 8152590: C2: @Stable support doesn't always work w/ incremental inlining
Reviewed-by: kvn
rev 11041 : Merge
rev 10930 : Merge
rev 10925 : 8151724: Remove -XX:GenerateCompilerNullChecks
Summary: Removed the broken GenerateCompilerNullChecks flag.
Reviewed-by: zmajo, kvn
rev 10921 : 8072422: Cleanup: Remove some unused flags/code in loop optimizations
Summary: Remove unused flags, change test using them.
Reviewed-by: kvn, twisti
rev 10909 : 8152172: PPC64: Support AES intrinsics
Reviewed-by: kvn, mdoerr, simonis
Contributed-by: horii@jp.ibm.com
rev 10882 : 8132524: Missing includes to resourceArea.hpp
Summary: Files that use ResourceMark are missing the include of resourceArea.hpp
Reviewed-by: tschatzl, jwilhelm
rev 10468 : 8150720: Cleanup code around PrintOptoStatistics
Reviewed-by: kvn, shade, vlivanov
rev 10440 : 8087341: C2 doesn't optimize redundant memory operations with G1
Summary: effect of memory barrier in post barrier is too wide
Reviewed-by: kvn, aph
Contributed-by: adinn <adinn@redhat.com>
rev 10173 : Backout
rev 10170 : Backout
rev 10167 : Make Shenandoah C2 barriers use the raw-idx memory slice, not its own set of slices. This avoids memory inconsistencies in TLAB allocations vs. evacuations.
rev 10158 : Improved memory dependencies and simplified optimizations in C2 barriers.
rev 10131 : Fix barrier optimization for strings and final/stable stuff.
rev 10130 : Merge
rev 10094 : 6675699: need comprehensive fix for unconstrained ConvI2L with narrowed type
Summary: Emit CastII to make narrow ConvI2L dependent on the corresponding range check.
Reviewed-by: kvn, roland
rev 10093 : 8144212: JDK 9 b93 breaks Apache Lucene due to compact strings
Summary: String compress/inflate intrinsics need to capture char and byte memory.
Reviewed-by: aph, roland, kvn
rev 10087 : 8140001: _allocateInstance intrinsic does not throw InstantiationException for abstract classes and interfaces
Reviewed-by: kvn, shade
rev 9967 : Optimize barriers on final and stable fields/arrays, especially Strings.
rev 9958 : Fix some missing barriers after merging from upstream.
rev 9957 : Merge
rev 9551 : Merge
rev 9544 : 8140390: Char stores/loads accessing byte arrays must be marked as unmatched
Summary: Mark unmatched char stores/loads emitted by CompactStrings.
Reviewed-by: roland, vlivanov, jrose
rev 9529 : 8142386: Octane crashes with assert(is_Load())
Summary: Unsafe access to an array is wrongly marked as mismatched
Reviewed-by: vlivanov, thartmann
rev 9497 : 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
rev 9488 : 8143014: Access PtrQueue member offsets through derived classes
Summary: Moved accessors to derived classes and updated callers.
Reviewed-by: tschatzl, jmasa, twisti
rev 9335 : 8141132: JEP 254: Compact Strings
Summary: Adopt a more space-efficient internal representation for strings.
Reviewed-by: alanb, bdelsart, coleenp, iklam, jiangli, jrose, kevinw, naoto, pliden, roland, smarks, twisti
Contributed-by: Brent Christian <brent.christian@oracle.com>, Vivek Deshpande <vivek.r.deshpande@intel.com>, Tobias Hartmann <tobias.hartmann@oracle.com>, Charlie Hunt <charlie.hunt@oracle.com>, Vladimir Kozlov <vladimir.kozlov@oracle.com>, Roger Riggs <roger.riggs@oracle.com>, Xueming Shen <xueming.shen@oracle.com>, Aleksey Shipilev <aleksey.shipilev@oracle.com>, Sandhya Viswanathan <sandhya.viswanathan@intel.com>
rev 9251 : 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
rev 9241 : 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
rev 9232 : Use original object in null-checked-write-barrier, rather than null(), fixes assert over flattened types.
rev 9210 : Merge
rev 9080 : 8080775: Better argument formatting for assert() and friends
Reviewed-by: kbarrett, pliden
rev 8961 : Initial import of Shenandoah sources.
rev 8925 : 8072817: CardTableExtension kind() should be BarrierSet::CardTableExtension
Summary: Use BarrierSet::CardTableForRS where needed, and update concrete bs tags.
Reviewed-by: jwilhelm, jmasa
rev 8567 : 8079315: UseCondCardMark broken in conjunction with CMS precleaning on x86
Summary: Add the necessary StoreLoad barrier in interpreter, C1 and C2 for x86
Reviewed-by: tschatzl
rev 8488 : Merge
rev 8482 : 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
rev 8413 : 8079792: GC directory structure cleanup
Reviewed-by: brutisso, stefank, david
rev 8193 : 8075921: assert assert(allocx == alloc) fails in library_call.cpp
Summary: control becomes top after arraycopy guards and confuses tighly coupled allocation logic
Reviewed-by: kvn, vlivanov
rev 8184 : Merge
rev 8170 : 8073866: Fix for 8064703 is not sufficient
Summary: side effects between allocation and arraycopy can be reexecuted, unreachable uninitialized array can be seen by GCs
Reviewed-by: kvn, vlivanov
rev 8033 : Merge
rev 8030 : 8067891: Remove vestigal G1SATBCT barrier set kind
Summary: Remove all case statements specifying G1SATBCT
Reviewed-by: tschatzl, kbarrett
rev 8003 : 8073315: Enable gcc -Wtype-limits and fix upcoming issues.
Summary: Relevant fixes in blockOffsetTable.cpp, os_linux.cpp, parCardTableModRefBS.cpp.
Reviewed-by: jwilhelm, kbarrett, simonis
rev 7960 : Merge
rev 7959 : Merge
rev 7939 : Merge
rev 7935 : 6912521: System.arraycopy works slower than the simple loop for little lengths
Summary: convert small array copies to series of loads and stores
Reviewed-by: kvn, vlivanov
rev 7923 : 8069016: Add BarrierSet downcast support
Summary: Add FakeRttiSupport utility and use to provide barrier_set_cast.
Reviewed-by: jmasa, sangheki
rev 7890 : Merge
rev 7878 : Merge
rev 7877 : 8064611: AARCH64: Changes to HotSpot shared code
Summary: Everything except cpu/ and os_cpu/
Reviewed-by: dholmes, goetz, dlong, coleenp, kvn
rev 7872 : Merge
rev 7869 : 8069412: Locks need better debug-printing support
Summary: Added better debug-printing support and enhanced LogCompilation tool
Reviewed-by: kvn, roland, dholmes
rev 7866 : Merge
rev 7864 : 8072911: Remove includes of oop.inline.hpp from .hpp files
Reviewed-by: brutisso, coleenp, jwilhelm, simonis, dholmes
rev 7824 : Merge
rev 7822 : 8072016: Array copy may cause infinite cycle of deoptimization/compilation
Summary: Infinite deoptimization/recompilation cycles in case of arraycopy with tightly coupled allocation
Reviewed-by: kvn, vlivanov
rev 7803 : 8068915: uncommon trap w/ Reason_speculate_class_check causes performance regression due to continuous deoptimizations
Reviewed-by: kvn, roland, jrose
rev 7795 : 8071805: BarrierSet::Other is not used and should be removed.
Summary: Remove all occurences of BarrierSet::Other because the barrier set kind is never set to Other.
Reviewed-by: tschatzl, kbarrett
rev 7503 : 8064703: crash running specjvm98's javac following 8060252
Summary: uncommon trap between arraycopy and initialization may leave array initialized
Reviewed-by: kvn, vlivanov, goetz
rev 7378 : 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
rev 7221 : 8057737: Avoid G1 write barriers on newly allocated objects
Reviewed-by: mgerdin, kvn, iveresov
Contributed-by: Staffan Friberg <staffan.friberg@oracle.com>
rev 6903 : 7173584: Implement arraycopy as a macro node
Summary: delay the conversion of arraycopy to stub calls to macro expansion
Reviewed-by: kvn, iveresov
rev 6837 : 8054033: Remove unused references to Compile*
Summary: Removed unused references to Compile* missed by JDK-8034812.
Reviewed-by: kvn, roland
rev 6818 : 8050860: Cleanup TypeTuple and TypeFunc
Summary: Declared fields TypeFunc::_domain, TypeFunc::_range, TypeTuple::_cnt and TypeTuple::_fields private, changed direct accesses to fields to use accessor methods.
Reviewed-by: kvn, vlivanov
Contributed-by: Zoltan Majo <zoltan.majo@oracle.com>
rev 6571 : 8035605: Expand functionality of PredictedIntrinsicGenerator
Summary: Allow several predicates and separate intrinsic methods per one intrinsified (virtual) method.
Reviewed-by: roland
rev 6569 : 8026796: Make replace_in_map() on parent maps generic
Summary: propagate node replacements along control flow edges to callers
Reviewed-by: kvn, vlivanov
rev 6568 : 8033626: assert(ex_map->jvms()->same_calls_as(_exceptions->jvms())) failed: all collected exceptions must come from the same place
Reviewed-by: kvn, roland
rev 6546 : 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
rev 6396 : 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>
rev 6219 : 8001532: C2 node files refactoring
Summary: Split C2 node files into cast, convert, countbits, intrinsic, move, narrowptr and opaquenode classes
Reviewed-by: kvn, morris
rev 6216 : 8031755: Type speculation should be used to optimize explicit null checks
Summary: feed profiling data about reference nullness to type speculation.
Reviewed-by: kvn, iveresov
rev 6186 : 6653795: C2 intrinsic for Unsafe.getAddress performs pointer sign extension on 32-bit systems
Summary: Native pointers less than 64 bits wide should be extended as an unsigned number.
Reviewed-by: kvn, kevinw
rev 6182 : 8031320: Use Intel RTM instructions for locks
Summary: Use RTM for inflated locks and stack locks.
Reviewed-by: iveresov, twisti, roland, dcubed
rev 6112 : 8025644: java/util/stream/test/org/openjdk/tests/java/util/stream/ToArrayOpTest.java fails with TestData$OfRef): failure java.lang.AssertionError: expected [true] but found [false]
Summary: In GraphKit::gen_checkcast() provide only exact superklass to GraphKit::maybe_cast_profiled_receiver()
Reviewed-by: kvn, roland
rev 6067 : Merge
rev 6066 : 8031754: Type speculation should favor profile data from outermost inlined method
Summary: favor profile data coming from outer most method
Reviewed-by: kvn, twisti
rev 6054 : 8031752: Failed speculative optimizations should be reattempted when root of compilation is different
Summary: support for speculative traps that keep track of the root of the compilation in which a trap occurs.
Reviewed-by: kvn, twisti
rev 6032 : Merge
rev 6031 : 8035493: JVMTI PopFrame capability must instruct compilers not to prune locals
Reviewed-by: kvn, sla, coleenp, sspitsyn
rev 6011 : Merge
rev 6010 : Merge
rev 5983 : 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
rev 5937 : 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
rev 5776 : 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
rev 5556 : 8024070: C2 needs some form of type speculation
Summary: record unused type profile information with type system, propagate and use it.
Reviewed-by: kvn, twisti
rev 5546 : 8024069: replace_in_map() should operate on parent maps
Summary: type information gets lost because replace_in_map() doesn't update parent maps
Reviewed-by: kvn, twisti
rev 5490 : 8026293: Schedule part of G1 pre-barrier late
Summary: move rare executed part of G1 write barrier from hot path.
Reviewed-by: kvn, twisti, roland
Contributed-by: staffan.friberg@oracle.com
rev 5487 : Merge
rev 5473 : 8024067: Missing replace_in_map() calls following null checks
Summary: add replace_in_map() calls following some null checks in type checks
Reviewed-by: kvn
rev 5430 : Merge
rev 5425 : 8014555: G1: Memory ordering problem with Conc refinement and card marking
Summary: Add a StoreLoad barrier in the G1 post-barrier to fix a race with concurrent refinement. Also-reviewed-by: martin.doerr@sap.com
Reviewed-by: iveresov, tschatzl, brutisso, roland, kvn
rev 5364 : 8025599: Missing store barrier with OptimizeStringConcat
Reviewed-by: kvn, twisti
Contributed-by: Axel Siebenborn <axel.siebenborn@sap.com>
rev 5223 : 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
rev 5202 : 8023597: Optimize G1 barriers code for unsafe load_store
Summary: Avoid loading old values in G1 pre-barriers for inlined unsafe load_store nodes.
Reviewed-by: kvn, tonyp
Contributed-by: Martin Doerr <martin.doerr@sap.com>
rev 5192 : 8023472: C2 optimization breaks with G1
Summary: set control edge for previous value load in G1 pre-barrier
Reviewed-by: twisti
rev 4916 : 8019247: SIGSEGV in compiled method c8e.e.t_.getArray(Ljava/lang/Class;)[Ljava/lang/Object
Summary: Undo recent changes (and add more comments) in Ideal_allocation().
Reviewed-by: roland
rev 4675 : 6934604: enable parts of EliminateAutoBox by default
Summary: Resurrected autobox elimination code and enabled part of it by default.
Reviewed-by: roland, twisti
rev 4582 : 8012715: G1: GraphKit accesses PtrQueue::_index as int but is size_t
Summary: In graphKit INT operations were generated to access PtrQueue::_index which has type size_t. This is 64 bit on 64-bit machines. No problems occur on little endian machines as long as the index fits into 32 bit, but on big endian machines the upper part is read, which is zero. This leads to unnecessary branches to the slow path in the runtime.
Reviewed-by: twisti, johnc
Contributed-by: Martin Doerr <martin.doerr@sap.com>
rev 4433 : 8004640: C2 assert failure in memnode.cpp: NULL+offs not RAW address
Summary: always transform AddP nodes in IdealKit by calling _gvn.transform().
Reviewed-by: roland, twisti
rev 3974 : 8005071: Incremental inlining for JSR 292
Summary: post parse inlining driven by number of live nodes.
Reviewed-by: twisti, kvn, jrose
rev 3929 : 8004741: Missing compiled exception handle table entry for multidimensional array allocation
Summary: Added missing exception path for multidimensional array allocation and use Throwable type instead of OutOfMemoryError for allocation's exception.
Reviewed-by: twisti
rev 3922 : 8005031: Some cleanup in c2 to prepare for incremental inlining support
Summary: collection of small changes to prepare for incremental inlining.
Reviewed-by: twisti, kvn
rev 3880 : 7092905: C2: Keep track of the number of dead nodes
Summary: keep an (almost) accurate running count of the reachable (live) flow graph nodes.
Reviewed-by: kvn, twisti, jrose, vlivanov
rev 3878 : 7172640: C2: instrinsic implementations in LibraryCallKit should use argument() instead of pop()
Reviewed-by: kvn, jrose
rev 3722 : 8000313: C2 should use jlong for 64bit values
Summary: Replace all occurrences of long with jlong in C2 code.
Reviewed-by: kvn, twisti
rev 3680 : 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
rev 3602 : 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>
rev 3586 : 7192406: JSR 292: C2 needs exact return type information for invokedynamic and invokehandle call sites
Reviewed-by: kvn
rev 3534 : 7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI
Summary: remove assembly code for JDK 7 chained method handles
Reviewed-by: jrose, twisti, kvn, mhaupt
Contributed-by: John Rose <john.r.rose@oracle.com>, Christian Thalinger <christian.thalinger@oracle.com>, Michael Haupt <michael.haupt@oracle.com>
rev 3325 : 6924259: Remove String.count/String.offset
Summary: Allow a version of String class that doesn't have count and offset fields.
Reviewed-by: never, coleenp
rev 3086 : 7143491: G1 C2 CTW: assert(p2x->outcnt() == 2) failed: expects 2 users: Xor and URShift nodes
Summary: Adjust the assert and code in eliminate_card_mark() method for case when stored value is NULL.
Reviewed-by: iveresov, never
rev 2957 : 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
rev 2956 : 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
rev 2612 : 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
rev 2442 : 5091921: Sign flip issues in loop optimizer
Summary: Fix integer overflow problem in the code generated by loop optimizer.
Reviewed-by: never
rev 2381 : Merge
rev 2379 : 7029167: add support for conditional card marks
Reviewed-by: iveresov, kvn
rev 2377 : 7030715: JSR 292 JRuby test/test_super_call_site_caching.rb asserts with +DoEscapeAnalysis
Reviewed-by: twisti
rev 2375 : 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
rev 2352 : Merge
rev 2349 : Merge
rev 2346 : 7009266: G1: assert(obj->is_oop_or_null(true )) failed: Error
Summary: A referent object that is only weakly reachable at the start of concurrent marking but is re-attached to the strongly reachable object graph during marking may not be marked as live. This can cause the reference object to be processed prematurely and leave dangling pointers to the referent object. Implement a read barrier for the java.lang.ref.Reference::referent field by intrinsifying the Reference.get() method, and intercepting accesses though JNI, reflection, and Unsafe, so that when a non-null referent object is read it is also logged in an SATB buffer.
Reviewed-by: kvn, iveresov, never, tonyp, dholmes
rev 2315 : Merge
rev 2291 : 7032314: Allow to generate CallLeafNoFPNode in IdealKit
Summary: Added CallLeafNoFPNode generation to IdealKit. Added i_o synchronization.
Reviewed-by: never
rev 2273 : 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
rev 2230 : 7008866: Missing loop predicate for loop with multiple entries
Summary: Add predicates when loop head bytecode is parsed instead of when back branch bytecode is parsed.
Reviewed-by: never
rev 1914 : 7003554: (tiered) assert(is_null_object() || handle() != NULL) failed: cannot embed null pointer
Summary: C1 with profiling doesn't check whether the MDO has been really allocated, which can silently fail if the perm gen is full. The solution is to check if the allocation failed and bailout out of inlining or compilation.
Reviewed-by: kvn, never
rev 1879 : 6989984: Use standard include model for Hospot
Summary: Replaced MakeDeps and the includeDB files with more standardized solutions.
Reviewed-by: coleenp, kvn, kamg
rev 1872 : 7000491: assert(false) failed: should be optimized out in SharedRuntime::g1_wb_pre
Summary: Wrong value type is used for NULL store when clearing the detail message of the preallocated exception object.
Reviewed-by: never, iveresov
rev 1706 : 6965815: OptimizeStringConcat: assert(!q->is_MergeMem()) failed with specjbb2000
Reviewed-by: kvn
rev 1668 : 6978355: renaming for 6961697
Summary: This is the renaming part of 6961697 to keep the actual changes small for review.
Reviewed-by: kvn, never
rev 1666 : 6912064: type profiles need to be exploited more for dynamic language support
Reviewed-by: kvn
rev 1529 : 6959430: Make sure raw loads have control edge
Summary: check that raw loads have control edge
Reviewed-by: never, twisti
rev 1514 : Merge
rev 1513 : 6953058: G1: A bigapp crashes with SIGSEGV in compiled code
Summary: In C2's G1 post write barrier, the loads of the buffer and index fields from the DirtyCardQueue structure may be moved across a safepoint. Use the current value of "control" in the C2 IR to limit how far these loads can move.
Reviewed-by: never, iveresov, kvn
rev 1472 : 6941466: Oracle rebranding changes for Hotspot repositories
Summary: Change all the Sun copyrights to Oracle copyright
Reviewed-by: ohair
rev 1397 : 6943485: JVMTI always on capabilities change code generation too much
Reviewed-by: twisti, dcubed
rev 1257 : Merge
rev 1252 : 6910605: C2: NullPointerException/ClassCaseException is thrown when C2 with DeoptimizeALot is used
Summary: Set the reexecute bit for runtime calls _new_array_Java when they used for _multianewarray bytecode.
Reviewed-by: never
rev 1213 : 6902182: 4/4 Starting with jdwp agent should not incur performance penalty
Summary: Rename can_post_exceptions support to can_post_on_exceptions. Add support for should_post_on_exceptions flag to permit per JavaThread optimizations.
Reviewed-by: never, kvn, dcubed
Contributed-by: tom.deneau@amd.com
rev 1166 : 6896647: card marks can be deferred too long
Summary: Deferred card marks are now flushed during the gc prologue. Parallel[Scavege,OldGC] and SerialGC no longer defer card marks generated by COMPILER2 as a result of ReduceInitialCardMarks. For these cases, introduced a diagnostic option to defer the card marks, only for the purposes of testing and diagnostics. CMS and G1 continue to defer card marks. Potential performance concern related to single-threaded flushing of deferred card marks in the gc prologue will be addressed in the future.
Reviewed-by: never, johnc
rev 1137 : 6829187: compiler optimizations required for JSR 292
Summary: C2 implementation for invokedynamic support.
Reviewed-by: kvn, never
rev 1099 : 6908167: jbb2005, OptimizeStringConcat causes assert in EA
Reviewed-by: kvn
rev 1080 : 6892658: C2 should optimize some stringbuilder patterns
Reviewed-by: kvn, twisti
rev 1027 : 6888898: CMS: ReduceInitialCardMarks unsafe in the presence of cms precleaning
6889757: G1: enable card mark elision for initializing writes from compiled code (ReduceInitialCardMarks)
Summary: Defer the (compiler-elided) card-mark upon a slow-path allocation until after the store  and before the next subsequent safepoint; G1 now answers yes to can_elide_tlab_write_barriers().
Reviewed-by: jcoomes, kvn, never
rev 985 : 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
rev 955 : 6880052: SIGSEGV in GraphKit::null_check_common()
Summary: Check that a klass is not NULL before the is_loaded() call.
Reviewed-by: never
rev 954 : 6875619: CTW fails with /hotspot/src/share/vm/opto/type.hpp
Summary: In load_array_length() cast array's type to TypeOopPtr when calling make_ideal_length() method.
Reviewed-by: never
rev 950 : 6875577: CTW fails with /hotspot/src/share/vm/opto/memnode.cpp
Summary: Fix do_null_check to check for unloaded klass for all oop pointers.
Reviewed-by: never, cfang
rev 900 : 6833129: specjvm98 fails with NullPointerException in the compiler with -XX:DeoptimizeALot
Summary: developed a reexecute logic for the interpreter to reexecute the bytecode when deopt happens
Reviewed-by: kvn, never, jrose, twisti
rev 851 : 6851742: (EA) allocation elimination doesn't work with UseG1GC
Summary: Fix eliminate_card_mark() to eliminate G1 pre/post barriers.
Reviewed-by: never
rev 827 : 6856025: assert(_base >= OopPtr && _base <= KlassPtr,"Not a Java pointer")
Reviewed-by: kvn
rev 825 : 6818666: G1: Type lost in g1 pre-barrier
Reviewed-by: kvn
rev 780 : 6788527: Server vm intermittently fails with assertion "live value must not be garbage" with fastdebug bits
Summary: Cache Jvmti and DTrace flags used by Compiler.
Reviewed-by: never
rev 730 : 6589834: deoptimization problem with -XX:+DeoptimizeALot
Summary: Relocate the stack pointer adjustment to where uncommon_trap is actually inserted for new_array.
Reviewed-by: kvn, jrose
rev 726 : 6655646: dynamic languages need dynamically linked call sites
Summary: invokedynamic instruction (JSR 292 RI)
Reviewed-by: twisti, never
rev 647 : Merge
rev 644 : 6813212: factor duplicated assembly code for general subclass check (for 6655638)
Summary: Code in interp_masm, stubGenerator, c1_LIRAssembler, and AD files moved into MacroAssembler.
Reviewed-by: kvn
rev 628 : Merge
rev 605 : 6810672: Comment typos
Summary: I have collected some typos I have found while looking at the code.
Reviewed-by: kvn, never
rev 579 : 6814575: Update copyright year
Summary: Update copyright for files that have been modified in 2009, up to 03/09
Reviewed-by: katleman, tbell, ohair
rev 570 : Merge
rev 565 : 6799693: Server compiler leads to data corruption when expression throws an Exception
Summary: Use merged memory state for an allocation's slow path.
Reviewed-by: never
rev 563 : 6442502: assert(bits,"Use TypePtr for NULL") on linux-x86
Reviewed-by: kvn
rev 544 : 6793828: G1: invariant: queues are empty when activated
Reviewed-by: jrose, kvn
rev 372 : Merge
rev 367 : 6384206: Phis which are later unneeded are impairing our ability to inline based on static types
Reviewed-by: rasbold, jrose
rev 366 : 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
rev 365 : Merge
rev 356 : Merge
rev 344 : Merge
rev 342 : 6711316: Open source the Garbage-First garbage collector
Summary: First mercurial integration of the code for the Garbage-First garbage collector.
Reviewed-by: apetrusenko, iveresov, jmasa, sgoldman, tonyp, ysr
rev 332 : 6746907: Improve implicit null check generation
Summary: add missing implicit null check cases.
Reviewed-by: never
rev 196 : 6719955: Update copyright year
Summary: Update copyright year for files that have been modified in 2008
Reviewed-by: ohair, tbell
rev 164 : 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
rev 113 : 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
rev 74 : 6674600: (Escape Analysis) Optimize memory graph for instance's fields
Summary: EA gives opportunite to do more aggressive memory optimizations.
Reviewed-by: never, jrose
rev 63 : 6671807: (Escape Analysis) Add new ideal node to represent the state of a scalarized object at a safepoint
Summary: Values of non-static fields of a scalarized object should be saved in debug info to reallocate the object during deoptimization.
Reviewed-by: never
rev 29 : 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
rev 23 : 6621098: "* HeapWordSize" for TrackedInitializationLimit is missing
Summary: '* HeapWordSize' is missing in GraphKit::set_output_for_allocation()
Reviewed-by: rasbold, jrose, never
rev 0 : Initial load
9 lines changed: 0 ins; 0 del; 9 mod; 4727 unchg

Cdiffs Udiffs Sdiffs Frames Old New ----- Raw src/share/vm/opto/graphKit.hpp

rev 11431 : Make storeval read barriers use ctrl too, but no memory, and don't allow fromspace for them.
rev 11390 : Merge
rev 11101 : 8152590: C2: @Stable support doesn't always work w/ incremental inlining
Reviewed-by: kvn
rev 11041 : Merge
rev 10440 : 8087341: C2 doesn't optimize redundant memory operations with G1
Summary: effect of memory barrier in post barrier is too wide
Reviewed-by: kvn, aph
Contributed-by: adinn <adinn@redhat.com>
rev 10130 : Merge
rev 10094 : 6675699: need comprehensive fix for unconstrained ConvI2L with narrowed type
Summary: Emit CastII to make narrow ConvI2L dependent on the corresponding range check.
Reviewed-by: kvn, roland
rev 10093 : 8144212: JDK 9 b93 breaks Apache Lucene due to compact strings
Summary: String compress/inflate intrinsics need to capture char and byte memory.
Reviewed-by: aph, roland, kvn
rev 9957 : Merge
rev 9497 : 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
rev 9335 : 8141132: JEP 254: Compact Strings
Summary: Adopt a more space-efficient internal representation for strings.
Reviewed-by: alanb, bdelsart, coleenp, iklam, jiangli, jrose, kevinw, naoto, pliden, roland, smarks, twisti
Contributed-by: Brent Christian <brent.christian@oracle.com>, Vivek Deshpande <vivek.r.deshpande@intel.com>, Tobias Hartmann <tobias.hartmann@oracle.com>, Charlie Hunt <charlie.hunt@oracle.com>, Vladimir Kozlov <vladimir.kozlov@oracle.com>, Roger Riggs <roger.riggs@oracle.com>, Xueming Shen <xueming.shen@oracle.com>, Aleksey Shipilev <aleksey.shipilev@oracle.com>, Sandhya Viswanathan <sandhya.viswanathan@intel.com>
rev 9251 : 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
rev 9241 : 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
rev 9210 : Merge
rev 9080 : 8080775: Better argument formatting for assert() and friends
Reviewed-by: kbarrett, pliden
rev 8961 : Initial import of Shenandoah sources.
rev 8482 : 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
rev 8170 : 8073866: Fix for 8064703 is not sufficient
Summary: side effects between allocation and arraycopy can be reexecuted, unreachable uninitialized array can be seen by GCs
Reviewed-by: kvn, vlivanov
rev 7866 : Merge
rev 7864 : 8072911: Remove includes of oop.inline.hpp from .hpp files
Reviewed-by: brutisso, coleenp, jwilhelm, simonis, dholmes
rev 7802 : 8063137: Never-taken branches should be pruned when GWT LambdaForms are shared
Reviewed-by: jrose, kvn
rev 7503 : 8064703: crash running specjvm98's javac following 8060252
Summary: uncommon trap between arraycopy and initialization may leave array initialized
Reviewed-by: kvn, vlivanov, goetz
rev 7221 : 8057737: Avoid G1 write barriers on newly allocated objects
Reviewed-by: mgerdin, kvn, iveresov
Contributed-by: Staffan Friberg <staffan.friberg@oracle.com>
rev 6903 : 7173584: Implement arraycopy as a macro node
Summary: delay the conversion of arraycopy to stub calls to macro expansion
Reviewed-by: kvn, iveresov
rev 6569 : 8026796: Make replace_in_map() on parent maps generic
Summary: propagate node replacements along control flow edges to callers
Reviewed-by: kvn, vlivanov
rev 6568 : 8033626: assert(ex_map->jvms()->same_calls_as(_exceptions->jvms())) failed: all collected exceptions must come from the same place
Reviewed-by: kvn, roland
rev 6546 : 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
rev 6216 : 8031755: Type speculation should be used to optimize explicit null checks
Summary: feed profiling data about reference nullness to type speculation.
Reviewed-by: kvn, iveresov
rev 6186 : 6653795: C2 intrinsic for Unsafe.getAddress performs pointer sign extension on 32-bit systems
Summary: Native pointers less than 64 bits wide should be extended as an unsigned number.
Reviewed-by: kvn, kevinw
rev 6054 : 8031752: Failed speculative optimizations should be reattempted when root of compilation is different
Summary: support for speculative traps that keep track of the root of the compilation in which a trap occurs.
Reviewed-by: kvn, twisti
rev 6010 : Merge
rev 5983 : 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
rev 5776 : 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
rev 5556 : 8024070: C2 needs some form of type speculation
Summary: record unused type profile information with type system, propagate and use it.
Reviewed-by: kvn, twisti
rev 5473 : 8024067: Missing replace_in_map() calls following null checks
Summary: add replace_in_map() calls following some null checks in type checks
Reviewed-by: kvn
rev 5223 : 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
rev 5202 : 8023597: Optimize G1 barriers code for unsafe load_store
Summary: Avoid loading old values in G1 pre-barriers for inlined unsafe load_store nodes.
Reviewed-by: kvn, tonyp
Contributed-by: Martin Doerr <martin.doerr@sap.com>
rev 3878 : 7172640: C2: instrinsic implementations in LibraryCallKit should use argument() instead of pop()
Reviewed-by: kvn, jrose
rev 3680 : 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
rev 3602 : 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>
rev 3534 : 7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI
Summary: remove assembly code for JDK 7 chained method handles
Reviewed-by: jrose, twisti, kvn, mhaupt
Contributed-by: John Rose <john.r.rose@oracle.com>, Christian Thalinger <christian.thalinger@oracle.com>, Michael Haupt <michael.haupt@oracle.com>
rev 3325 : 6924259: Remove String.count/String.offset
Summary: Allow a version of String class that doesn't have count and offset fields.
Reviewed-by: never, coleenp
rev 2381 : Merge
rev 2375 : 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
rev 2352 : Merge
rev 2349 : Merge
rev 2346 : 7009266: G1: assert(obj->is_oop_or_null(true )) failed: Error
Summary: A referent object that is only weakly reachable at the start of concurrent marking but is re-attached to the strongly reachable object graph during marking may not be marked as live. This can cause the reference object to be processed prematurely and leave dangling pointers to the referent object. Implement a read barrier for the java.lang.ref.Reference::referent field by intrinsifying the Reference.get() method, and intercepting accesses though JNI, reflection, and Unsafe, so that when a non-null referent object is read it is also logged in an SATB buffer.
Reviewed-by: kvn, iveresov, never, tonyp, dholmes
rev 2315 : Merge
rev 2291 : 7032314: Allow to generate CallLeafNoFPNode in IdealKit
Summary: Added CallLeafNoFPNode generation to IdealKit. Added i_o synchronization.
Reviewed-by: never
rev 2273 : 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
rev 2230 : 7008866: Missing loop predicate for loop with multiple entries
Summary: Add predicates when loop head bytecode is parsed instead of when back branch bytecode is parsed.
Reviewed-by: never
rev 1879 : 6989984: Use standard include model for Hospot
Summary: Replaced MakeDeps and the includeDB files with more standardized solutions.
Reviewed-by: coleenp, kvn, kamg
rev 1666 : 6912064: type profiles need to be exploited more for dynamic language support
Reviewed-by: kvn
rev 1472 : 6941466: Oracle rebranding changes for Hotspot repositories
Summary: Change all the Sun copyrights to Oracle copyright
Reviewed-by: ohair
rev 1213 : 6902182: 4/4 Starting with jdwp agent should not incur performance penalty
Summary: Rename can_post_exceptions support to can_post_on_exceptions. Add support for should_post_on_exceptions flag to permit per JavaThread optimizations.
Reviewed-by: never, kvn, dcubed
Contributed-by: tom.deneau@amd.com
rev 1080 : 6892658: C2 should optimize some stringbuilder patterns
Reviewed-by: kvn, twisti
rev 985 : 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
rev 900 : 6833129: specjvm98 fails with NullPointerException in the compiler with -XX:DeoptimizeALot
Summary: developed a reexecute logic for the interpreter to reexecute the bytecode when deopt happens
Reviewed-by: kvn, never, jrose, twisti
rev 851 : 6851742: (EA) allocation elimination doesn't work with UseG1GC
Summary: Fix eliminate_card_mark() to eliminate G1 pre/post barriers.
Reviewed-by: never
rev 825 : 6818666: G1: Type lost in g1 pre-barrier
Reviewed-by: kvn
rev 730 : 6589834: deoptimization problem with -XX:+DeoptimizeALot
Summary: Relocate the stack pointer adjustment to where uncommon_trap is actually inserted for new_array.
Reviewed-by: kvn, jrose
rev 579 : 6814575: Update copyright year
Summary: Update copyright for files that have been modified in 2009, up to 03/09
Reviewed-by: katleman, tbell, ohair
rev 563 : 6442502: assert(bits,"Use TypePtr for NULL") on linux-x86
Reviewed-by: kvn
rev 342 : 6711316: Open source the Garbage-First garbage collector
Summary: First mercurial integration of the code for the Garbage-First garbage collector.
Reviewed-by: apetrusenko, iveresov, jmasa, sgoldman, tonyp, ysr
rev 0 : Initial load
2 lines changed: 0 ins; 0 del; 2 mod; 970 unchg

Cdiffs Udiffs Sdiffs Frames Old New ----- Raw src/share/vm/opto/library_call.cpp

rev 11431 : Make storeval read barriers use ctrl too, but no memory, and don't allow fromspace for them.
rev 11423 : Find dominating write barrier replacement during loop opts
rev 11395 : C2 verification pass to locate missing shenandoah barriers
rev 11394 : compare and swap for c2 as a loop in ad file
rev 11391 : Added missing barriers in new intrinsics.
rev 11390 : Merge
rev 11358 : Merge
rev 11352 : 8155965: Unsafe.weakCompareAndSetVolatile entry points and intrinsics
Reviewed-by: psandoz, vlivanov
rev 11349 : 8156068: Unsafe.{get|set}Opaque should be single copy atomic
Reviewed-by: psandoz, vlivanov
rev 11317 : Merge
rev 11311 : 8155794: Move Objects.checkIndex BiFunction accepting methods to an internal package
Reviewed-by: shade, vlivanov
rev 11282 : 8150921: Update Unsafe getters/setters to use double-register variants
Reviewed-by: dholmes, shade, psandoz, jrose
rev 11202 : 8134918: C2: Type speculation produces mismatched unsafe accesses
Reviewed-by: kvn
rev 11104 : Merge
rev 11101 : 8152590: C2: @Stable support doesn't always work w/ incremental inlining
Reviewed-by: kvn
rev 11089 : 8152907: Update for x86 tan and log10 in the math lib
Summary: Optimize Math.tan() and log10() for 64 and 32 bit X86 architecture using Intel LIBM  implementation.
Reviewed-by: kvn, twisti
Contributed-by: shravya.rukmannagari@intel.com
rev 11088 : 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>
rev 11041 : Merge
rev 10930 : Merge
rev 10909 : 8152172: PPC64: Support AES intrinsics
Reviewed-by: kvn, mdoerr, simonis
Contributed-by: horii@jp.ibm.com
rev 10901 : Merge
rev 10882 : 8132524: Missing includes to resourceArea.hpp
Summary: Files that use ResourceMark are missing the include of resourceArea.hpp
Reviewed-by: tschatzl, jwilhelm
rev 10647 : 8152698: Remove obsolete Unsafe.putOrdered{X} methods, usages, runtime and compiler support
Reviewed-by: kvn, psandoz
rev 10609 : Merge
rev 10553 : Merge
rev 10547 : 8150465: Unsafe methods to produce uninitialized arrays
Reviewed-by: jrose, kvn, psandoz, aph, twisti, flar
rev 10545 : 8149159: Clean up Unsafe
Reviewed-by: jrose, kvn, stsmirno, chegar, aph, psandoz, redestad, twisti
rev 10540 : 8142968: Module System implementation
Summary: Initial integration of JEP 200, JEP 260, JEP 261, and JEP 282
Reviewed-by: acorn, ccheung, coleenp, ctornqvi, dholmes, dsimms, gtriantafill, iklam, jiangli, mgronlun, mseledtsov, cjplummer, sspitsyn, stefank, twisti, hseigel, lfoltan, alanb, mchung, dfazunen
Contributed-by: alan.bateman@oracle.com, alex.buckley@oracle.com, jonathan.gibbons@oracle.com, karen.kinnear@oracle.com, mandy.chung@oracle.com, mark.reinhold@oracle.com, harold.seigel@oracle.com, lois.foltan@oracle.com, calvin.cheung@oracle.com, christian.tornqvist@oracle.com, erik.joelsson@oracle.com, george.triantafillou@oracle.com, igor.ignatyev@oracle.com, ioi.lam@oracle.com, james.laskey@oracle.com, jean-francois.denise@oracle.com, jiangli.zhou@oracle.com, markus.gronlund@oracle.com, serguei.spitsyn@oracle.com, staffan.larsen@oracle.com, sundararajan.athijegannathan@oracle.com
rev 10536 : Merge
rev 10516 : 8143226: Minor updates to Event Based tracing
Reviewed-by: jbachorik, egahlin
rev 10469 : 8150543: Mismatched access detection is inaccurate
Reviewed-by: kvn, shade
rev 10448 : 8148146: Integrate new internal Unsafe entry points, and basic intrinsic support for VarHandles
Reviewed-by: psandoz, kvn, jrose, adinn, simonis, coleenp
rev 10446 : 8150180: String.value contents should be trusted
Reviewed-by: vlivanov, redestad, jrose, twisti
rev 10294 : Merge
rev 10280 : 8148047: Move the vtable length field to Klass
Reviewed-by: cjplummer, twisti, coleenp, kbarrett
rev 10252 : 8147461: Use byte offsets for vtable start and vtable length offsets
Reviewed-by: cjplummer, coleenp, dnsimon
rev 10131 : Fix barrier optimization for strings and final/stable stuff.
rev 10130 : Merge
rev 10101 : 8145336: PPC64: fix string intrinsics after CompactStrings change
Reviewed-by: mdoerr, aph, kvn
rev 10093 : 8144212: JDK 9 b93 breaks Apache Lucene due to compact strings
Summary: String compress/inflate intrinsics need to capture char and byte memory.
Reviewed-by: aph, roland, kvn
rev 10068 : 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
rev 10064 : 8133612: new clone logic added in 8042235 is missing from compiler intrinsics
Reviewed-by: roland
rev 10060 : 8143353: update for x86 sin and cos in the math lib
Summary: Optimize Math.sin() and cos() for 64 and 32 bit X86 architecture using Intel LIBM  implementation.
Reviewed-by: kvn
rev 9967 : Optimize barriers on final and stable fields/arrays, especially Strings.
rev 9966 : Optimize compare-and-swap-object in C2, such that it doesn't require write barriers or runtime calls.
rev 9959 : Initialize result field to NULL, to avoid compiler warning.
rev 9958 : Fix some missing barriers after merging from upstream.
rev 9957 : Merge
rev 9872 : 8143925: Enhancing CounterMode.crypt() for AES
Summary: Add intrinsic for CounterMode.crypt() to leverage the parallel nature of AES in Counter(CTR) Mode.
Reviewed-by: kvn, ascarpino
Contributed-by: kishor.kharbas@intel.com
rev 9864 : 8145688: Update for x86 pow in the math lib
Summary: Optimizes Math.pow() for 64 and 32 bit X86 architecture using Intel LIBM  implementation.
Reviewed-by: kvn
Contributed-by: vivek.r.deshpande@intel.com
rev 9828 : 8143355: Update for addition of vectorizedMismatch intrinsic for x86
Reviewed-by: kvn
Contributed-by: vivek.r.deshpande@intel.com, liqi.yi@intel.com
rev 9804 : 8072008: Emit direct call instead of linkTo* for recursive indy/MH.invoke* calls
Reviewed-by: jrose, dlong, aph, forax
rev 9663 : 8142303: C2 compilation fails with "bad AD file"
Summary: Move range checks into intrinsics for String methods.
Reviewed-by: kvn, aph
rev 9544 : 8140390: Char stores/loads accessing byte arrays must be marked as unmatched
Summary: Mark unmatched char stores/loads emitted by CompactStrings.
Reviewed-by: roland, vlivanov, jrose
rev 9529 : 8142386: Octane crashes with assert(is_Load())
Summary: Unsafe access to an array is wrongly marked as mismatched
Reviewed-by: vlivanov, thartmann
rev 9526 : Merge
rev 9525 : Merge
rev 9520 : 8042997: Make intrinsic some or all check index/range methods
Summary: Objects.checkIndex() intrinsic
Reviewed-by: vlivanov, shade
rev 9497 : 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
rev 9346 : 8141629: Hs-comp doesn't build with JDK-8139040
Summary: Fix benign uninitialized vars
Reviewed-by: roland
rev 9345 : Merge
rev 9335 : 8141132: JEP 254: Compact Strings
Summary: Adopt a more space-efficient internal representation for strings.
Reviewed-by: alanb, bdelsart, coleenp, iklam, jiangli, jrose, kevinw, naoto, pliden, roland, smarks, twisti
Contributed-by: Brent Christian <brent.christian@oracle.com>, Vivek Deshpande <vivek.r.deshpande@intel.com>, Tobias Hartmann <tobias.hartmann@oracle.com>, Charlie Hunt <charlie.hunt@oracle.com>, Vladimir Kozlov <vladimir.kozlov@oracle.com>, Roger Riggs <roger.riggs@oracle.com>, Xueming Shen <xueming.shen@oracle.com>, Aleksey Shipilev <aleksey.shipilev@oracle.com>, Sandhya Viswanathan <sandhya.viswanathan@intel.com>
rev 9333 : Merge
rev 9313 : 8139891: Prepare Unsafe for true encapsulation
Reviewed-by: alanb, dholmes, jrose, psandoz, twisti
rev 9296 : 8139040: Fix initializations before ShouldNotReachHere() etc. and enable -Wuninitialized on linux.
Reviewed-by: stuefe, coleenp, roland
rev 9257 : 8139575: Update for x86 log in the math lib
Summary: Add new java.lang.Math() intrinsics from x86
Reviewed-by: kvn, iveresov
Contributed-by: vivek.r.deshpande@intel.com
rev 9251 : 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
rev 9243 : 8137167: JEP165: Compiler Control: Implementation task
Summary: Compiler Control JEP
Reviewed-by: roland, twisti, zmajo, simonis
rev 9241 : 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
rev 9226 : Add and fix null-checks on barriers for Unsafe.put/get operations.
rev 9210 : Merge
rev 9173 : Merge
rev 9147 : 8139259: aarch64: jtreg test TestLogSum segvs after 8132207
Summary: Fix jump to 0 caused by uninitialised _dexp in 8132207
Reviewed-by: roland, kvn
rev 9130 : Merge
rev 9080 : 8080775: Better argument formatting for assert() and friends
Reviewed-by: kbarrett, pliden
rev 9064 : 8132207: update for x86 exp in the math lib
Summary: Add new java.lang.Math() intrinsics from x86
Reviewed-by: kvn, iveresov
Contributed-by: vivek.r.deshpande@intel.com
rev 8961 : Initial import of Shenandoah sources.
rev 8910 : 8132081: C2 support for Adler32 on SPARC
Summary: Add C2 instrinsic support for Adler32 checksum on SPARC.
Reviewed-by: kvn
Contributed-by: ahmed.khawaja@oracle.com
rev 8857 : 8019968: Reference CAS induces GC store barrier even on failure
Reviewed-by: kvn, adinn, roland
rev 8798 : 8132457: Unify command-line flags controlling the usage of compiler intrinsics
Summary: Cleanup processing of command-line flags controlling intrinsics.
Reviewed-by: kvn
rev 8745 : 8130832: Extend the WhiteBox API to provide information about the availability of compiler intrinsics
Summary: Add a new method, sun.hotspot.WhiteBox.isIntrinsicAvailable, that can be used to determine if an intrinsic is available.
Reviewed-by: kvn, jrose
rev 8733 : Merge
rev 8723 : 8078629: VM should constant fold Unsafe.get*() loads from final fields
Reviewed-by: kvn, jrose, psandoz
rev 8722 : 8075171: Contended Locking fast notify bucket
Summary: JEP-143/JDK-8073165 Contended Locking fast notify bucket
Reviewed-by: dholmes, acorn, dice, dcubed
Contributed-by: dave.dice@oracle.com, karen.kinnear@oracle.com, daniel.daugherty@oracle.com
rev 8633 : 8076112: Add @HotSpotIntrinsicCandidate annotation to indicate methods for which Java Runtime has intrinsics
Summary: Annotate possibly intrinsified methods with @HotSpotIntrinsicCandidate. Add checks omitted by intrinsics to the library code. Add CheckIntrinsics flags to check consistency of intrinsics.
Reviewed-by: jrose, kvn, thartmann, vlivanov, abuckley, darcy, ascarpino, briangoetz, alanb, aph, dnsimon
rev 8630 : Merge
rev 8629 : 8130150: Implement BigInteger.montgomeryMultiply intrinsic
Summary: Add montgomeryMultiply intrinsics
Reviewed-by: kvn
rev 8616 : 8073583: C2 support for CRC32C on SPARC
Reviewed-by: jrose, kvn
Contributed-by: james.cheng@oracle.com
rev 8602 : 8073108: Use x86 and SPARC CPU instructions for GHASH acceleration
Reviewed-by: kvn, jrose
rev 8514 : 8074551: GWT can be marked non-compilable due to deopt count pollution
Reviewed-by: kvn
rev 8504 : 8081778: Use Intel x64 CPU instructions for RSA acceleration
Summary: Add intrinsics for BigInteger squareToLen and mulAdd methods.
Reviewed-by: kvn, jrose
rev 8482 : 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
rev 8211 : 8074676: java.lang.invoke.PermuteArgsTest.java fails with "assert(is_Initialize()) failed: invalid node class"
Summary: after guards in Arrays.copyOf() intrinsic, control may become top
Reviewed-by: kvn, vlivanov
rev 8194 : 8026049: (bf) Intrinsify ByteBuffer.put{Int, Double, Float, ...} methods
Summary: Use unaligned Unsafe loads and stores for ByteBuffer access on platforms which support unaligned access. Add intrinsics for Unsafe.{get,put}-X-Unaligned methods.
Reviewed-by: dholmes, jrose, psandoz, kvn
rev 8193 : 8075921: assert assert(allocx == alloc) fails in library_call.cpp
Summary: control becomes top after arraycopy guards and confuses tighly coupled allocation logic
Reviewed-by: kvn, vlivanov
rev 8176 : Merge
rev 8175 : 8074548: Never-taken branches cause repeated deopts in MHs.GWT case
Reviewed-by: jrose, kvn
rev 8174 : 8075263: MHI::checkCustomized isn't eliminated for inlined MethodHandles
Reviewed-by: jrose, kvn
rev 8170 : 8073866: Fix for 8064703 is not sufficient
Summary: side effects between allocation and arraycopy can be reexecuted, unreachable uninitialized array can be seen by GCs
Reviewed-by: kvn, vlivanov
rev 7946 : 8073796: assert(check_obj_alignment(result)) failed: address not aligned: ...
Summary: Arrays.copyOf intrinsic can deoptimize with uninitialized new array
Reviewed-by: kvn
rev 7939 : Merge
rev 7935 : 6912521: System.arraycopy works slower than the simple loop for little lengths
Summary: convert small array copies to series of loads and stores
Reviewed-by: kvn, vlivanov
rev 7859 : 8068687: Remove meta-index support and cleanup hotspot code for rt.jar etc in non-modular jdk image
Summary: Remove the meta-index code and rt.jar code and comments
Reviewed-by: mchung, gtriantafill
rev 7847 : Merge
rev 7844 : 8068977: Remove unused sun.misc.Unsafe prefetch intrinsic support
Reviewed-by: kvn, vlivanov
rev 7822 : 8072016: Array copy may cause infinite cycle of deoptimization/compilation
Summary: Infinite deoptimization/recompilation cycles in case of arraycopy with tightly coupled allocation
Reviewed-by: kvn, vlivanov
rev 7802 : 8063137: Never-taken branches should be pruned when GWT LambdaForms are shared
Reviewed-by: jrose, kvn
rev 7747 : 8069580: String intrinsic related cleanups
Summary: Small cleanup of string intrinsic related code.
Reviewed-by: kvn, roland
rev 7646 : 6700100: optimize inline_native_clone() for small objects with exact klass
Summary: optimize small instance clones as loads/stores
Reviewed-by: kvn, iveresov
rev 7503 : 8064703: crash running specjvm98's javac following 8060252
Summary: uncommon trap between arraycopy and initialization may leave array initialized
Reviewed-by: kvn, vlivanov, goetz
rev 7378 : 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
rev 7315 : 8060252: JDK-7173584 compiler changes regress SPECjvm2008 on SPARC
Summary: arraycopy code misses opportunities to optimize copies to just allocated array.
Reviewed-by: kvn
rev 7310 : 8054492: Casting can result in redundant null checks in generated code
Summary: add C2 intrinsic for Class.cast() method and force inline it too.
Reviewed-by: jrose, roland, drchase, iignatyev
rev 7038 : 8057758: Tests run TypeProfileLevel=222 crash with guarantee(0) failed: must find derived/base pair
Summary: Use TypeAryPtr::INT type with offset 0 in inline_multiplyToLen().
Reviewed-by: kvn, iveresov
rev 7005 : Merge
rev 6998 : 8055910: closed/java/util/Collections/CheckedCollections.java failed with ClassCastException not thrown
Summary: missing subtype check for Arrays.copyOf intrinsic
Reviewed-by: kvn, iveresov
rev 6997 : 8055494: Add C2 x86 intrinsic for BigInteger::multiplyToLen() method
Summary: Add new C2 intrinsic for BigInteger::multiplyToLen() on x86 in 64-bit VM.
Reviewed-by: roland
rev 6975 : 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
rev 6917 : 8055153: nsk/stress/jck60/jck60014 crashes on sparc
Summary: missing control for LoadRange and LoadKlass nodes created during arraycopy node expansion
Reviewed-by: kvn, iveresov
rev 6908 : 8054927: Missing MemNode::acquire ordering in some volatile Load nodes
Summary: Fixed memory ordering parameter and added missing barriers for volatile loads.
Reviewed-by: roland, iveresov
rev 6903 : 7173584: Implement arraycopy as a macro node
Summary: delay the conversion of arraycopy to stub calls to macro expansion
Reviewed-by: kvn, iveresov
rev 6837 : 8054033: Remove unused references to Compile*
Summary: Removed unused references to Compile* missed by JDK-8034812.
Reviewed-by: kvn, roland
rev 6760 : 8049325: Introduce and clean up umbrella headers for the files in the cpu subdirectories.
Summary: Introduce and clean up umbrella headers for the files in the cpu subdirectories.
Reviewed-by: lfoltan, coleenp, dholmes
rev 6576 : 8035968: Leverage CPU Instructions to Improve SHA Performance on SPARC
Summary: Add C2 SHA intrinsics on SPARC
Reviewed-by: kvn, roland
Contributed-by: james.cheng@oracle.com
rev 6571 : 8035605: Expand functionality of PredictedIntrinsicGenerator
Summary: Allow several predicates and separate intrinsic methods per one intrinsified (virtual) method.
Reviewed-by: roland
rev 6569 : 8026796: Make replace_in_map() on parent maps generic
Summary: propagate node replacements along control flow edges to callers
Reviewed-by: kvn, vlivanov
rev 6568 : 8033626: assert(ex_map->jvms()->same_calls_as(_exceptions->jvms())) failed: all collected exceptions must come from the same place
Reviewed-by: kvn, roland
rev 6546 : 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
rev 6539 : 8011646: SEGV in compiled code with loop predication
Summary: Remove control edge of load node to ensure that castPP removal sets the control edge correctly
Reviewed-by: kvn, roland
rev 6444 : 8025580: Temporary flags: UseNewReflection and ReflectionWrapResolutionErrors
Summary: The fix removes all UseNewReflection/ReflectionWrapResolutionErrors occurrences/logic and adds them into the list of obsolete_jvm_flags in arguments.cpp.
Reviewed-by: coleenp, hseigel
Contributed-by: ygaevsky@azulsystems.com
rev 6395 : 8042052: assert(t != NULL) failed: must set before get
Summary: Added missing call to _gvn.transform to make sure the type of the PhiNode is recorded in the gvn.
Reviewed-by: kvn
Contributed-by: Tobias Hartmann <tobias.hartmann@oracle.com>
rev 6365 : 8029302: Performance regression in Math.pow intrinsic
Summary: Added special case for x^y where y == 2
Reviewed-by: kvn, roland
rev 6248 : 8007988: PrintInlining output is inconsistent with incremental inlining
Summary: fix duplicate and conflicting inlining output
Reviewed-by: kvn, vlivanov
rev 6219 : 8001532: C2 node files refactoring
Summary: Split C2 node files into cast, convert, countbits, intrinsic, move, narrowptr and opaquenode classes
Reviewed-by: kvn, morris
rev 6216 : 8031755: Type speculation should be used to optimize explicit null checks
Summary: feed profiling data about reference nullness to type speculation.
Reviewed-by: kvn, iveresov
rev 6186 : 6653795: C2 intrinsic for Unsafe.getAddress performs pointer sign extension on 32-bit systems
Summary: Native pointers less than 64 bits wide should be extended as an unsigned number.
Reviewed-by: kvn, kevinw
rev 6078 : 8036102: part of the fix for 6498581 lost in mismerge
Summary: Restore code lost in mis-merge
Reviewed-by: dcubed
rev 6076 : Merge
rev 6073 : 6498581: ThreadInterruptTest3 produces wrong output on Windows
Summary: There is race condition between os::interrupt and os::is_interrupted on Windows. In JVM_Sleep(Thread.sleep), check if thread gets interrupted, it may see interrupted but not really interrupted so cause spurious waking up (early return from sleep). Fix by checking if interrupt event really gets set thus prevent false return. For intrinsic of _isInterrupted, on Windows, go fastpath only on bit not set.
Reviewed-by: acorn, kvn
Contributed-by: david.holmes@oracle.com, yumin.qi@oracle.com
rev 6049 : 8027754: Enable loop optimizations for loops with MathExact inside
Reviewed-by: kvn, iveresov
rev 6017 : 8035394: PPC64: Make usage of intrinsic dsqrt depend on processor recognition.
Reviewed-by: kvn
rev 6010 : Merge
rev 6006 : 8029101: PPC64 (part 211): ordering of Independent Reads of Independent Writes
Reviewed-by: dholmes, kvn
Contributed-by: martin.doerr@sap.com
rev 5993 : 8028515: PPPC64 (part 113.2): opto: Introduce LoadFence/StoreFence.
Summary: Use new nodes for loadFence/storeFence intrinsics in C2.
Reviewed-by: kvn, dholmes
rev 5983 : 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
rev 5816 : 8002074: Support for AES on SPARC
Summary: Add intrinsics/stub routines support for single-block and multi-block (as used by Cipher Block Chaining mode) AES encryption and decryption operations on the SPARC platform.
Reviewed-by: kvn, roland
Contributed-by: shrinivas.joshi@oracle.com
rev 5613 : 8027353: Exact intrinsics: assert(n != NULL) failed: must not be null
Reviewed-by: kvn, roland
rev 5562 : 8026844: Various Math functions needs intrinsification
Reviewed-by: kvn, twisti
rev 5556 : 8024070: C2 needs some form of type speculation
Summary: record unused type profile information with type system, propagate and use it.
Reviewed-by: kvn, twisti
rev 5546 : 8024069: replace_in_map() should operate on parent maps
Summary: type information gets lost because replace_in_map() doesn't update parent maps
Reviewed-by: kvn, twisti
rev 5363 : 8014447: Object.hashCode intrinsic breaks inline caches
Summary: Try to inline as normal method first, then fall back to intrinsic.
Reviewed-by: kvn, twisti
rev 5356 : 8024924: Intrinsify java.lang.Math.addExact
Reviewed-by: kvn, twisti
rev 5328 : 8022585: VM crashes when ran with -XX:+PrintInlining
Summary: use adr_at() to access inline info structures in growableArray. Add ability to specify print inlining per method.
Reviewed-by: twisti
rev 5302 : Merge
rev 5297 : 8014013: CallInfo structure no longer accurately reports the result of a LinkResolver operation
Summary: Enhance method resolution and resulting data structures, plus some refactoring.
Reviewed-by: twisti, acorn, jrose
rev 5275 : Merge
rev 5259 : 8015107: NPG: Use consistent naming for metaspace concepts
Reviewed-by: coleenp, mgerdin, hseigel
rev 5223 : 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
rev 5202 : 8023597: Optimize G1 barriers code for unsafe load_store
Summary: Avoid loading old values in G1 pre-barriers for inlined unsafe load_store nodes.
Reviewed-by: kvn, tonyp
Contributed-by: Martin Doerr <martin.doerr@sap.com>
rev 5111 : 8022675: Redundant class init check
Reviewed-by: kvn, twisti
rev 4918 : 7088419: Use x86 Hardware CRC32 Instruction with java.util.zip.CRC32
Summary: add intrinsics using new instruction to interpreter, C1, C2, for suitable x86; add test
Reviewed-by: kvn, twisti
rev 4802 : 8005849: JEP 167: Event-Based JVM Tracing
Reviewed-by: acorn, coleenp, sla
Contributed-by: Karen Kinnear <karen.kinnear@oracle.com>, Bengt Rutisson <bengt.rutisson@oracle.com>, Calvin Cheung <calvin.cheung@oracle.com>, Erik Gahlin <erik.gahlin@oracle.com>, Erik Helin <erik.helin@oracle.com>, Jesper Wilhelmsson <jesper.wilhelmsson@oracle.com>, Keith McGuigan <keith.mcguigan@oracle.com>, Mattias Tobiasson <mattias.tobiasson@oracle.com>, Markus Gronlund <markus.gronlund@oracle.com>, Mikael Auno <mikael.auno@oracle.com>, Nils Eliasson <nils.eliasson@oracle.com>, Nils Loodin <nils.loodin@oracle.com>, Rickard Backman <rickard.backman@oracle.com>, Staffan Larsen <staffan.larsen@oracle.com>, Stefan Karlsson <stefan.karlsson@oracle.com>, Yekaterina Kantserova <yekaterina.kantserova@oracle.com>
rev 4676 : 8014189: JVM crash with SEGV in ConnectionGraph::record_for_escape_analysis()
Summary: Add NULL checks and asserts for Type::make_ptr() returned value.
Reviewed-by: twisti
rev 4675 : 6934604: enable parts of EliminateAutoBox by default
Summary: Resurrected autobox elimination code and enabled part of it by default.
Reviewed-by: roland, twisti
rev 4486 : Merge
rev 4485 : 8004336: Better handling of method handle intrinsic frames
Reviewed-by: kvn, jrose, ahgross
rev 4431 : 7198429: need checked categorization of caller-sensitive methods in the JDK
Reviewed-by: kvn, jrose
rev 4182 : 8007959: Use expensive node logic for more math nodes
Summary: use expensive node logic for other more math nodes.
Reviewed-by: kvn
rev 4154 : 7197327: 40% regression on 8 b41 comp 8 b40 on specjvm2008.mpegaudio on oob
Summary: Add support for expensive nodes.
Reviewed-by: kvn
rev 4044 : 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
rev 4010 : 8006127: remove printing code added with 8006031
Reviewed-by: kvn
rev 4005 : 8006031: LibraryCallKit::inline_array_copyOf disabled unintentionally with 7172640
Reviewed-by: kvn
rev 3932 : Merge
rev 3926 : 8004318: JEP-171: Support Unsafe fences intrinsics
Summary: Add three memory-ordering intrinsics to the sun.misc.Unsafe class.
Reviewed-by: twisti, kvn
Contributed-by: Aleksey Shipilev <aleksey.shipilev@oracle.com>
rev 3924 : Merge
rev 3923 : 8003135: HotSpot inlines and hoists the Thread.currentThread().isInterrupted() out of the loop
Summary: Make the load of TLS._osthread._interrupted flag in Thread.isInterrupted(Z)Z intrinsic effectively volatile.
Reviewed-by: kvn, jrose
rev 3922 : 8005031: Some cleanup in c2 to prepare for incremental inlining support
Summary: collection of small changes to prepare for incremental inlining.
Reviewed-by: twisti, kvn
rev 3911 : 8004898: library_call.cpp build error after 7172640 with GCC 4.7.2
Summary: fix opto/library_call.cpp compilation errors
Reviewed-by: twisti, coleenp
rev 3884 : 8004319: test/gc/7168848/HumongousAlloc.java fails after 7172640
Reviewed-by: kvn, johnc
rev 3878 : 7172640: C2: instrinsic implementations in LibraryCallKit should use argument() instead of pop()
Reviewed-by: kvn, jrose
rev 3770 : 7184394: add intrinsics to use AES instructions
Summary: Use new x86 AES instructions for AESCrypt.
Reviewed-by: twisti, kvn, roland
Contributed-by: tom.deneau@amd.com
rev 3764 : 8000623: tools/javac/Diagnostics/6769027/T6769027.java crashes in PSPromotionManager::copy_to_survivor_space
Summary: Fix type of method pointer load from vtable.
Reviewed-by: twisti, johnc, roland
rev 3729 : Merge
rev 3724 : 7054512: Compress class pointers after perm gen removal
Summary: support of compress class pointers in the compilers.
Reviewed-by: kvn, twisti
rev 3723 : 8000263: JSR 292: signature types may appear to be unloaded
Reviewed-by: kvn, jrose
rev 3707 : 8000213: NPG: Should have renamed arrayKlass and typeArrayKlass
Summary: Capitalize these metadata types (and objArrayKlass)
Reviewed-by: stefank, twisti, kvn
rev 3680 : 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
rev 3671 : 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
Summary: use shorter instruction sequences for atomic add and atomic exchange when possible.
Reviewed-by: kvn, jrose
rev 3602 : 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>
rev 3567 : 7190310: Inlining WeakReference.get(), and hoisting $referent may lead to non-terminating loops
Summary: In C2 add software membar after load from Reference.referent field to prevent commoning of loads across safepoint since GC can change its value. In C1 always generate Reference.get() intrinsic.
Reviewed-by: roland, twisti, dholmes, johnc
rev 3534 : 7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI
Summary: remove assembly code for JDK 7 chained method handles
Reviewed-by: jrose, twisti, kvn, mhaupt
Contributed-by: John Rose <john.r.rose@oracle.com>, Christian Thalinger <christian.thalinger@oracle.com>, Michael Haupt <michael.haupt@oracle.com>
rev 3473 : 7177917: Failed test java/lang/Math/PowTests.java
Summary: When c2 intrinsifies pow/exp, it should never inline the java implementations.
Reviewed-by: kvn
rev 3448 : 7174363: Arrays.copyOfRange leads to VM crash with -Xcomp -server if executed by testing framework
Summary: Arrays.copyOfRange(original, from, to) with from > original.length tries to do a copy with a negative length.
Reviewed-by: kvn, twisti
rev 3411 : 7174218: remove AtomicLongCSImpl intrinsics
Reviewed-by: kvn, twisti
Contributed-by: Krystal Mok <sajia@taobao.com>
rev 3352 : 7133857: exp() and pow() should use the x87 ISA on x86
Summary: use x87 instructions to implement exp() and pow() in interpreter/c1/c2.
Reviewed-by: kvn, never, twisti
rev 3325 : 6924259: Remove String.count/String.offset
Summary: Allow a version of String class that doesn't have count and offset fields.
Reviewed-by: never, coleenp
rev 3274 : 7160570: Intrinsification support for tracing framework
Reviewed-by: sla, never
rev 3202 : 7152957: VM crashes with assert(false) failed: bad AD file
Reviewed-by: kvn, never
Contributed-by: nils.eliasson@oracle.com
rev 3196 : 6658428: C2 doesn't inline java method if corresponding intrinsic failed to inline.
Summary: Allow fallback to non-intrinsic inline case
Reviewed-by: kvn, jrose, never
Contributed-by: nils.eliasson@oracle.com
rev 3094 : Merge
rev 3091 : 7132690: InstanceKlass:_reference_type should be u1 type
Summary: Change InstanceKlass::_reference_type to u1 type.
Reviewed-by: dholmes, coleenp, acorn
Contributed-by: Jiangli Zhou <jiangli.zhou@oracle.com>
rev 3086 : 7143491: G1 C2 CTW: assert(p2x->outcnt() == 2) failed: expects 2 users: Xor and URShift nodes
Summary: Adjust the assert and code in eliminate_card_mark() method for case when stored value is NULL.
Reviewed-by: iveresov, never
rev 2972 : 7128352: assert(obj_node == obj) failed
Summary: Compare uncasted object nodes.
Reviewed-by: never
rev 2965 : Merge
rev 2957 : 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
rev 2956 : 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
rev 2933 : 7117052: instanceKlass::_init_state can be u1 type
Summary: Change instanceKlass::_init_state field to u1 type.
Reviewed-by: bdelsart, coleenp, dholmes, phh, never
Contributed-by: Jiangli Zhou <jiangli.zhou@oracle.com>
rev 2722 : 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
rev 2504 : 7047069: Array can dynamically change size when assigned to an object field
Summary: Fix initialization of a newly-allocated array with arraycopy
Reviewed-by: never
rev 2434 : 7041100: The load in String.equals intrinsic executed before null check
Summary: Remove control from loads in String.equals intrinsic and cast argument to not-null.
Reviewed-by: never
rev 2381 : Merge
rev 2375 : 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
rev 2355 : 7036021: G1: build failure on win64 and linux with hs21 in jdk6 build environment
Summary: Missing parentheses around a casted expression and some missing casts were causing build failures with the jdk6 build tools.
Reviewed-by: kvn, brutisso
rev 2352 : Merge
rev 2351 : 7035117: G1: nsk/stress/jni/jnistress002 fails with assertion failure
Summary: Allow long type for offset in G1 code in compiler implementations of Unsafe.getObject
Reviewed-by: never, iveresov
rev 2349 : Merge
rev 2346 : 7009266: G1: assert(obj->is_oop_or_null(true )) failed: Error
Summary: A referent object that is only weakly reachable at the start of concurrent marking but is re-attached to the strongly reachable object graph during marking may not be marked as live. This can cause the reference object to be processed prematurely and leave dangling pointers to the referent object. Implement a read barrier for the java.lang.ref.Reference::referent field by intrinsifying the Reference.get() method, and intercepting accesses though JNI, reflection, and Unsafe, so that when a non-null referent object is read it is also logged in an SATB buffer.
Reviewed-by: kvn, iveresov, never, tonyp, dholmes
rev 2293 : 7033154: Improve C1 arraycopy performance
Summary: better static analysis. Take advantage of array copy stubs.
Reviewed-by: never
rev 2291 : 7032314: Allow to generate CallLeafNoFPNode in IdealKit
Summary: Added CallLeafNoFPNode generation to IdealKit. Added i_o synchronization.
Reviewed-by: never
rev 2252 : 7022998: JSR 292 recursive method handle calls inline themselves infinitely
Reviewed-by: never, kvn
rev 2232 : Merge
rev 2230 : 7008866: Missing loop predicate for loop with multiple entries
Summary: Add predicates when loop head bytecode is parsed instead of when back branch bytecode is parsed.
Reviewed-by: never
rev 2226 : 6962931: move interned strings out of the perm gen
Reviewed-by: never, coleenp, ysr, jwilhelm
rev 2171 : 6627983: G1: Bad oop deference during marking
Summary: Bulk zeroing reduction didn't work with G1, because arraycopy would call pre-barriers on uninitialized oops. The solution is to have version of arraycopy stubs that don't have pre-barriers. Also refactored arraycopy stubs generation on SPARC to be more readable and reduced the number of stubs necessary in some cases.
Reviewed-by: jrose, kvn, never
rev 2167 : 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
rev 1879 : 6989984: Use standard include model for Hospot
Summary: Replaced MakeDeps and the includeDB files with more standardized solutions.
Reviewed-by: coleenp, kvn, kamg
rev 1764 : 6980792: Crash "exception happened outside interpreter, nmethods and vtable stubs (1)"
Reviewed-by: kvn
rev 1668 : 6978355: renaming for 6961697
Summary: This is the renaming part of 6961697 to keep the actual changes small for review.
Reviewed-by: kvn, never
rev 1666 : 6912064: type profiles need to be exploited more for dynamic language support
Reviewed-by: kvn
rev 1529 : 6959430: Make sure raw loads have control edge
Summary: check that raw loads have control edge
Reviewed-by: never, twisti
rev 1472 : 6941466: Oracle rebranding changes for Hotspot repositories
Summary: Change all the Sun copyrights to Oracle copyright
Reviewed-by: ohair
rev 1433 : Merge
rev 1424 : 6948602: Disable use of SSE4.2 in String.indexOf intrinsic until 6942326 is fixed
Summary: Disable the use of pcmpestri until it can be guaranteed that the load doesn't cross in to the uncommited space. See 6942326.
Reviewed-by: never, kvn
rev 1416 : 6951190: assert(!klass_is_exact(),"only non-exact klass") while building JDK
Reviewed-by: kvn
rev 1396 : 6946040: add intrinsic for short and char reverseBytes
Reviewed-by: never, twisti
Contributed-by: Hiroshi Yamauchi <yamauchi@google.com>
rev 1152 : 6914206: change way of permission checking for generated MethodHandle adapters
Summary: Put generated MH adapter in InvokeDynamic/MethodHandle classes to be able to indentify them easily in the compiler.
Reviewed-by: kvn, never, jrose
rev 1027 : 6888898: CMS: ReduceInitialCardMarks unsafe in the presence of cms precleaning
6889757: G1: enable card mark elision for initializing writes from compiled code (ReduceInitialCardMarks)
Summary: Defer the (compiler-elided) card-mark upon a slow-path allocation until after the store  and before the next subsequent safepoint; G1 now answers yes to can_elide_tlab_write_barriers().
Reviewed-by: jcoomes, kvn, never
rev 986 : 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
rev 958 : 6880053: assert(alloc_obj->as_CheckCastPP()->type() != TypeInstPtr::NOTNULL)
Summary: Removed second CheckCastPP and use MembarCPUOrder after arraycopy to cloned object.
Reviewed-by: never
rev 950 : 6875577: CTW fails with /hotspot/src/share/vm/opto/memnode.cpp
Summary: Fix do_null_check to check for unloaded klass for all oop pointers.
Reviewed-by: never, cfang
rev 902 : 6868269: CompileTheWorld assertion failure introduced by the reexecute bit implementation
Summary: Improvement on reexecute implementation to fix the assertion failure
Reviewed-by: kvn, never
rev 900 : 6833129: specjvm98 fails with NullPointerException in the compiler with -XX:DeoptimizeALot
Summary: developed a reexecute logic for the interpreter to reexecute the bytecode when deopt happens
Reviewed-by: kvn, never, jrose, twisti
rev 896 : Merge
rev 895 : 6860920: serialize.cpp shouldn't use objArrayOopDesc::base_offset_in_bytes(T_BYTE)
Summary: serialize.cpp currently uses objArrayOopDesc::base_offset_in_bytes(T_BYTE), which seems to be wrong.
Reviewed-by: coleenp, kvn
rev 856 : 6862576: vmIntrinsics needs cleanup in order to support JSR 292 intrinsics
Summary: remove useless lazy evaluation of intrinsics; add LAST_COMPILER_INLINE to help categorize them
Reviewed-by: kvn
rev 851 : 6851742: (EA) allocation elimination doesn't work with UseG1GC
Summary: Fix eliminate_card_mark() to eliminate G1 pre/post barriers.
Reviewed-by: never
rev 836 : 6857661: 64-bit server VM: assert(is_Initialize(),"invalid node class")
Summary: Move the secondary raw memory barrier to the correct place in generate_arraycopy().
Reviewed-by: never
rev 833 : 6840775: Multiple JVM crashes seen with 1.6.0_10 through 1.6.0_14
Summary: Put missed reference to allocated array in copyOf() intrinsic into OopMap for the call slow_arraycopy().
Reviewed-by: never
rev 827 : 6856025: assert(_base >= OopPtr && _base <= KlassPtr,"Not a Java pointer")
Reviewed-by: kvn
rev 825 : 6818666: G1: Type lost in g1 pre-barrier
Reviewed-by: kvn
rev 787 : 6772683: Thread.isInterrupted() fails to return true on multiprocessor PC
Summary: Set the control edge for the field _interrupted load in inline_native_isInterrupted().
Reviewed-by: never
rev 775 : 6823354: Add intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}()
Summary: These methods can be instrinsified by using bit scan, bit test, and population count instructions.
Reviewed-by: kvn, never
rev 730 : 6589834: deoptimization problem with -XX:+DeoptimizeALot
Summary: Relocate the stack pointer adjustment to where uncommon_trap is actually inserted for new_array.
Reviewed-by: kvn, jrose
rev 681 : 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
rev 643 : 6378821: bitCount() should use POPC on SPARC processors and AMD+10h
Summary: bitCount() should use POPC on SPARC processors where POPC is implemented directly in hardware.
Reviewed-by: kvn, never
rev 605 : 6810672: Comment typos
Summary: I have collected some typos I have found while looking at the code.
Reviewed-by: kvn, never
rev 420 : 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
rev 235 : Merge
rev 221 : 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
rev 196 : 6719955: Update copyright year
Summary: Update copyright year for files that have been modified in 2008
Reviewed-by: ohair, tbell
rev 174 : 6709972: runThese failed with assert(false,"bad AD file")
Summary: guard AryEqNode construction with has_match_rule() test, set SpecialArraysEquals default off
Reviewed-by: kvn, never
rev 169 : 6695049: (coll) Create an x86 intrinsic for Arrays.equals
Summary: Intrinsify java/util/Arrays.equals(char[], char[])
Reviewed-by: kvn, never
rev 164 : 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
rev 163 : 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
rev 113 : 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
rev 34 : 6667581: Don't generate initialization (by 0) code for arrays with size 0
Summary: generate_arraycopy() does not check the size of allocated array.
Reviewed-by: jrose, never
rev 29 : 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
rev 0 : Initial load
2 lines changed: 0 ins; 0 del; 2 mod; 6932 unchg

Cdiffs Udiffs Sdiffs Frames Old New ----- Raw src/share/vm/opto/parse2.cpp

rev 11431 : Make storeval read barriers use ctrl too, but no memory, and don't allow fromspace for them.
rev 11041 : Merge
rev 11005 : 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
rev 10882 : 8132524: Missing includes to resourceArea.hpp
Summary: Files that use ResourceMark are missing the include of resourceArea.hpp
Reviewed-by: tschatzl, jwilhelm
rev 10468 : 8150720: Cleanup code around PrintOptoStatistics
Reviewed-by: kvn, shade, vlivanov
rev 10130 : Merge
rev 10094 : 6675699: need comprehensive fix for unconstrained ConvI2L with narrowed type
Summary: Emit CastII to make narrow ConvI2L dependent on the corresponding range check.
Reviewed-by: kvn, roland
rev 9957 : Merge
rev 9514 : 8140424: don't prefix developer and notproduct flag variables with CONST_ in product builds
Reviewed-by: goetz, stefank
rev 9504 : 8137168: Replace IfNode with a new RangeCheckNode for range checks
Summary: new RangeCheckNode to enable optimization of explicit library level range checks
Reviewed-by: kvn, thartmann
rev 9243 : 8137167: JEP165: Compiler Control: Implementation task
Summary: Compiler Control JEP
Reviewed-by: roland, twisti, zmajo, simonis
rev 8961 : Initial import of Shenandoah sources.
rev 8723 : 8078629: VM should constant fold Unsafe.get*() loads from final fields
Reviewed-by: kvn, jrose, psandoz
rev 7890 : Merge
rev 7877 : 8064611: AARCH64: Changes to HotSpot shared code
Summary: Everything except cpu/ and os_cpu/
Reviewed-by: dholmes, goetz, dlong, coleenp, kvn
rev 7866 : Merge
rev 7864 : 8072911: Remove includes of oop.inline.hpp from .hpp files
Reviewed-by: brutisso, coleenp, jwilhelm, simonis, dholmes
rev 7802 : 8063137: Never-taken branches should be pruned when GWT LambdaForms are shared
Reviewed-by: jrose, kvn
rev 7730 : 8067374: Use %f instead of %g for LogCompilation output
Summary: Changed format string from %g to %f.
Reviewed-by: kvn
rev 7218 : 8060215: per-method PrintIdealGraphLevel
Summary: Use CompileCommand=option to set PrintIdealGraphLevel on a per-method level. Introduce the PrintIdealGraph develop to control/check if printing the graph is enabled for any method
Reviewed-by: kvn, dlong, thartmann
rev 6711 : 8046289: compiler/6340864/TestLongVect.java timeout with
Reviewed-by: iveresov, vlivanov
rev 6557 : 8030976: Untaken paths should be more vigorously pruned at highest optimization level
Reviewed-by: roland, vlivanov
rev 6546 : 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
rev 6417 : Merge
rev 6413 : 8041415: remove port.{cpp,hpp} files
Summary: Hotspot should use standard headers and types
Reviewed-by: coleenp, kvn
rev 6412 : 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
rev 6219 : 8001532: C2 node files refactoring
Summary: Split C2 node files into cast, convert, countbits, intrinsic, move, narrowptr and opaquenode classes
Reviewed-by: kvn, morris
rev 6216 : 8031755: Type speculation should be used to optimize explicit null checks
Summary: feed profiling data about reference nullness to type speculation.
Reviewed-by: kvn, iveresov
rev 6011 : Merge
rev 6010 : Merge
rev 5983 : 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
rev 5937 : 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
rev 5776 : 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
rev 5556 : 8024070: C2 needs some form of type speculation
Summary: record unused type profile information with type system, propagate and use it.
Reviewed-by: kvn, twisti
rev 5470 : 8024774: assert(_con < t->is_tuple()->cnt()) failed: ProjNode::_con must be in range
Reviewed-by: iveresov, roland, kvn, twisti
rev 4675 : 6934604: enable parts of EliminateAutoBox by default
Summary: Resurrected autobox elimination code and enabled part of it by default.
Reviewed-by: roland, twisti
rev 4427 : 8009539: JVM crash when run lambda testng tests
Summary: Ensure class pointer is non-null before dereferencing it to check if it is loaded.
Reviewed-by: kvn
rev 3878 : 7172640: C2: instrinsic implementations in LibraryCallKit should use argument() instead of pop()
Reviewed-by: kvn, jrose
rev 3724 : 7054512: Compress class pointers after perm gen removal
Summary: support of compress class pointers in the compilers.
Reviewed-by: kvn, twisti
rev 3680 : 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
rev 3602 : 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>
rev 3474 : 7180769: assert(tboth->klass_is_exact()) failed: klass should be exact
Summary: Use class exactness as part of the condition for class compare optimization instead of assert.
Reviewed-by: twisti, roland
rev 3399 : 7170463: C2 should recognize "obj.getClass() == A.class" code pattern
Summary: optimize this code pattern obj.getClass() == A.class.
Reviewed-by: jrose, kvn
Contributed-by: Krystal Mok <sajia@taobao.com>
rev 2664 : 7083786: dead various dead chunks of code
Reviewed-by: iveresov, kvn
rev 2328 : 6988308: assert((cnt > 0.0f) && (prob > 0.0f)) failed: Bad frequency assignment in if
Summary: Make sure cnt doesn't become negative and integer overflow doesn't happen.
Reviewed-by: kvn, twisti
rev 2273 : 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
rev 2230 : 7008866: Missing loop predicate for loop with multiple entries
Summary: Add predicates when loop head bytecode is parsed instead of when back branch bytecode is parsed.
Reviewed-by: never
rev 1879 : 6989984: Use standard include model for Hospot
Summary: Replaced MakeDeps and the includeDB files with more standardized solutions.
Reviewed-by: coleenp, kvn, kamg
rev 1666 : 6912064: type profiles need to be exploited more for dynamic language support
Reviewed-by: kvn
rev 1522 : 6939203: JSR 292 needs method handle constants
Summary: Add new CP types CONSTANT_MethodHandle, CONSTANT_MethodType; extend 'ldc' bytecode.
Reviewed-by: twisti, never
rev 1499 : Merge
rev 1485 : 6939207: refactor constant pool index processing
Summary: Factored cleanup of instruction decode which prepares for enhanced ldc semantics.
Reviewed-by: twisti
rev 1472 : 6941466: Oracle rebranding changes for Hotspot repositories
Summary: Change all the Sun copyrights to Oracle copyright
Reviewed-by: ohair
rev 1213 : 6902182: 4/4 Starting with jdwp agent should not incur performance penalty
Summary: Rename can_post_exceptions support to can_post_on_exceptions. Add support for should_post_on_exceptions flag to permit per JavaThread optimizations.
Reviewed-by: never, kvn, dcubed
Contributed-by: tom.deneau@amd.com
rev 1172 : 6894779: Loop Predication for Loop Optimizer in C2
Summary: Loop predication implementation
Reviewed-by: never, kvn
rev 989 : 6863023: need non-perm oops in code cache for JSR 292
Summary: Make a special root-list for those few nmethods which might contain non-perm oops.
Reviewed-by: twisti, kvn, never, jmasa, ysr
rev 844 : 6862919: Update copyright year
Summary: Update copyright for files that have been modified in 2009, up to 07/09
Reviewed-by: tbell, ohair
rev 827 : 6856025: assert(_base >= OopPtr && _base <= KlassPtr,"Not a Java pointer")
Reviewed-by: kvn
rev 825 : 6818666: G1: Type lost in g1 pre-barrier
Reviewed-by: kvn
rev 780 : 6788527: Server vm intermittently fails with assertion "live value must not be garbage" with fastdebug bits
Summary: Cache Jvmti and DTrace flags used by Compiler.
Reviewed-by: never
rev 726 : 6655646: dynamic languages need dynamically linked call sites
Summary: invokedynamic instruction (JSR 292 RI)
Reviewed-by: twisti, never
rev 605 : 6810672: Comment typos
Summary: I have collected some typos I have found while looking at the code.
Reviewed-by: kvn, never
rev 366 : 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
rev 254 : 6730192: expression stack wrong at deoptimization point
Summary: add safepoint before popping expression stack, not after
Reviewed-by: kvn
rev 248 : 6726504: handle do_ifxxx calls in parser more uniformly
Summary: make do_ifnull() handling similar to do_if()
Reviewed-by: jrose, kvn
rev 246 : 6707044: uncommon_trap of ifnull bytecode leaves garbage on expression stack
Summary: Remove call to repush_if_args()
Reviewed-by: kvn, jrose
rev 235 : Merge
rev 222 : 6718676: putback for 6604014 is incomplete
Reviewed-by: kvn, jrose
rev 221 : 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
rev 196 : 6719955: Update copyright year
Summary: Update copyright year for files that have been modified in 2008
Reviewed-by: ohair, tbell
rev 129 : 6646019: array subscript expressions become top() with -d64
Summary: stop compilation after negative array allocation
Reviewed-by: never, jrose
rev 113 : 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
rev 37 : 6671250: In Parse::do_if() old Cmp node 'c' should be replaced with new one after BoolNode transformation
Summary: In Parse::do_if() 'c' (CmpNode) node may be changed during BoolNode transformation so 'c' may became dead but the node is referenced later in the code.
Reviewed-by: never
rev 17 : 6395208: Elide autoboxing for calls to HashMap.get(int) and HashMap.get(long)
Reviewed-by: kvn, rasbold
rev 0 : Initial load
1 line changed: 0 ins; 0 del; 1 mod; 2417 unchg

Cdiffs Udiffs Sdiffs Frames Old New ----- Raw src/share/vm/opto/parse3.cpp

rev 11431 : Make storeval read barriers use ctrl too, but no memory, and don't allow fromspace for them.
rev 11390 : Merge
rev 11101 : 8152590: C2: @Stable support doesn't always work w/ incremental inlining
Reviewed-by: kvn
rev 9967 : Optimize barriers on final and stable fields/arrays, especially Strings.
rev 9957 : Merge
rev 9523 : 8139758: [REDO] Elide more final field's write memory barrier with escape analysis result
Summary: membar for all final field initializations eliminated if possible
Reviewed-by: roland, vlivanov
rev 9514 : 8140424: don't prefix developer and notproduct flag variables with CONST_ in product builds
Reviewed-by: goetz, stefank
rev 9210 : Merge
rev 9171 : 8139750: [BACKOUT] Elide more final field's write memory barrier with escape analysis result
Reviewed-by: kvn
rev 9155 : 8138956: Elide more final field's write memory barrier with escape analysis result
Summary: membar for final/stable fields eliminated if possible
Reviewed-by: roland, mdoerr, enevill, aph
Contributed-by: hui.shi@linaro.org
rev 9138 : 8078554: Compiler: implement ranges (optionally constraints) for those flags that have them missing
Summary: Add range check or constraint where necessary.
Reviewed-by: roland, thartmann
rev 8961 : Initial import of Shenandoah sources.
rev 8723 : 8078629: VM should constant fold Unsafe.get*() loads from final fields
Reviewed-by: kvn, jrose, psandoz
rev 8482 : 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
rev 6546 : 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
rev 6219 : 8001532: C2 node files refactoring
Summary: Split C2 node files into cast, convert, countbits, intrinsic, move, narrowptr and opaquenode classes
Reviewed-by: kvn, morris
rev 6087 : 8031818: Experimental VM flag for enforcing safe object construction
Summary: -XX:+AlwaysSafeConstructors to unconditionally emit the trailing constructor barrier.
Reviewed-by: kvn, roland
rev 6086 : 8033380: Experimental VM flag to enforce access atomicity
Summary: -XX:+AlwaysAtomicAccesses to unconditionally enforce the access atomicity.
Reviewed-by: roland, kvn, iveresov
rev 6011 : Merge
rev 6006 : 8029101: PPC64 (part 211): ordering of Independent Reads of Independent Writes
Reviewed-by: dholmes, kvn
Contributed-by: martin.doerr@sap.com
rev 5983 : 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
rev 5937 : 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
rev 5223 : 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
rev 5002 : 8007898: Incorrect optimization of Memory Barriers in Matcher::post_store_load_barrier()
Summary: generate one "fat" membar instead of set of barriers for volitile store
Reviewed-by: roland
rev 4675 : 6934604: enable parts of EliminateAutoBox by default
Summary: Resurrected autobox elimination code and enabled part of it by default.
Reviewed-by: roland, twisti
rev 4105 : 8006807: C2 crash due to out of bounds array access in Parse::do_multianewarray
Summary: check ndimensions before accessing length[i] element
Reviewed-by: kvn
Contributed-by: volker.simonis@gmail.com
rev 3929 : 8004741: Missing compiled exception handle table entry for multidimensional array allocation
Summary: Added missing exception path for multidimensional array allocation and use Throwable type instead of OutOfMemoryError for allocation's exception.
Reviewed-by: twisti
rev 3878 : 7172640: C2: instrinsic implementations in LibraryCallKit should use argument() instead of pop()
Reviewed-by: kvn, jrose
rev 3718 : 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
rev 3680 : 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
rev 2667 : 7071709: JSR 292: switchpoint invalidation should be pushed not pulled
Reviewed-by: never
rev 2666 : 7085404: JSR 292: VolatileCallSites should have push notification too
Reviewed-by: never, kvn
rev 2615 : 7071653: JSR 292: call site change notification should be pushed not pulled
Reviewed-by: kvn, never, bdelsart
rev 2567 : 7058510: multinewarray with 6 dimensions uncommon traps in server compiler
Summary: Pass arguments to runtime via java array for arrays with > 5 dimensions
Reviewed-by: never, kvn, jrose, pbk
rev 2223 : 7017732: move static fields into Class to prepare for perm gen removal
Reviewed-by: kvn, coleenp, twisti, stefank
rev 2204 : 7012648: move JSR 292 to package java.lang.invoke and adjust names
Summary: package and class renaming only; delete unused methods and classes
Reviewed-by: twisti
rev 1879 : 6989984: Use standard include model for Hospot
Summary: Replaced MakeDeps and the includeDB files with more standardized solutions.
Reviewed-by: coleenp, kvn, kamg
rev 1472 : 6941466: Oracle rebranding changes for Hotspot repositories
Summary: Change all the Sun copyrights to Oracle copyright
Reviewed-by: ohair
rev 1252 : 6910605: C2: NullPointerException/ClassCaseException is thrown when C2 with DeoptimizeALot is used
Summary: Set the reexecute bit for runtime calls _new_array_Java when they used for _multianewarray bytecode.
Reviewed-by: never
rev 1138 : 6893268: additional dynamic language related optimizations in C2
Summary: C2 needs some additional optimizations to be able to handle MethodHandle invokes and invokedynamic instructions at the best performance.
Reviewed-by: kvn, never
rev 1100 : 6895383: JCK test throws NPE for method compiled with Escape Analysis
Summary: Add missing checks for MemBar nodes in EA.
Reviewed-by: never
rev 989 : 6863023: need non-perm oops in code cache for JSR 292
Summary: Make a special root-list for those few nmethods which might contain non-perm oops.
Reviewed-by: twisti, kvn, never, jmasa, ysr
rev 844 : 6862919: Update copyright year
Summary: Update copyright for files that have been modified in 2009, up to 07/09
Reviewed-by: tbell, ohair
rev 827 : 6856025: assert(_base >= OopPtr && _base <= KlassPtr,"Not a Java pointer")
Reviewed-by: kvn
rev 825 : 6818666: G1: Type lost in g1 pre-barrier
Reviewed-by: kvn
rev 730 : 6589834: deoptimization problem with -XX:+DeoptimizeALot
Summary: Relocate the stack pointer adjustment to where uncommon_trap is actually inserted for new_array.
Reviewed-by: kvn, jrose
rev 196 : 6719955: Update copyright year
Summary: Update copyright year for files that have been modified in 2008
Reviewed-by: ohair, tbell
rev 113 : 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
rev 106 : 6663908: NegativeArraySizeException is not thrown
Summary: Don't optimize zero length array allocations at compile time.
Reviewed-by: kvn, never
rev 0 : Initial load
1 line changed: 0 ins; 0 del; 1 mod; 523 unchg

This code review page was prepared using /home/rkennke/src/webrev/webrev.ksh (vers 25.12-hg+openjdk.java.net).