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 load9 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 load2 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 load2 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 load1 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 load1 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).