74 Commits

Author SHA1 Message Date
David Chase
9a359984c2 7088419: Use x86 Hardware CRC32 Instruction with java.util.zip.CRC32
Add intrinsics using new instruction to interpreter, C1, C2, for suitable x86; add test

Reviewed-by: kvn, twisti
2013-07-02 20:42:12 -04:00
Staffan Larsen
718f3252f6 8005849: JEP 167: Event-Based JVM Tracing
Co-authored-by: Karen Kinnear <karen.kinnear@oracle.com>
Co-authored-by: Bengt Rutisson <bengt.rutisson@oracle.com>
Co-authored-by: Calvin Cheung <calvin.cheung@oracle.com>
Co-authored-by: Erik Gahlin <erik.gahlin@oracle.com>
Co-authored-by: Erik Helin <erik.helin@oracle.com>
Co-authored-by: Jesper Wilhelmsson <jesper.wilhelmsson@oracle.com>
Co-authored-by: Keith McGuigan <keith.mcguigan@oracle.com>
Co-authored-by: Mattias Tobiasson <mattias.tobiasson@oracle.com>
Co-authored-by: Markus Gronlund <markus.gronlund@oracle.com>
Co-authored-by: Mikael Auno <mikael.auno@oracle.com>
Co-authored-by: Nils Eliasson <nils.eliasson@oracle.com>
Co-authored-by: Nils Loodin <nils.loodin@oracle.com>
Co-authored-by: Rickard Backman <rickard.backman@oracle.com>
Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Yekaterina Kantserova <yekaterina.kantserova@oracle.com>
Reviewed-by: acorn, coleenp, sla
2013-06-10 11:30:51 +02:00
Vladimir Kozlov
ff008d0615 8015441: runThese crashed with assert(opcode == Op_ConP || opcode == Op_ThreadLocal || opcode == Op_CastX2P ..) failed: sanity
Relax the assert to accept any raw ptr types.

Reviewed-by: roland
2013-05-31 13:54:47 -07:00
Vladimir Kozlov
2ed62e808c 8014286: failed java/lang/Math/DivModTests.java after 6934604 changes
Corrected escape state for the result of boxing method. Added force inlining executed boxing methods.

Reviewed-by: twisti
2013-05-13 14:36:39 -07:00
Vladimir Kozlov
d7176bf7f8 8014189: JVM crash with SEGV in ConnectionGraph::record_for_escape_analysis()
Add NULL checks and asserts for Type::make_ptr() returned value.

Reviewed-by: twisti
2013-05-09 17:28:04 -07:00
Vladimir Kozlov
b4977e887a 6934604: enable parts of EliminateAutoBox by default
Resurrected autobox elimination code and enabled part of it by default.

Reviewed-by: roland, twisti
2013-05-08 15:08:01 -07:00
Vladimir Kozlov
9e0c61f822 6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86
Use SSE4.2 and AVX2 instructions for encodeArray intrinsic.

Reviewed-by: roland
2013-01-22 15:34:16 -08:00
Bharadwaj Yadavalli
2d2532e740 7092905: C2: Keep track of the number of dead nodes
Keep an (almost) accurate running count of the reachable (live) flow graph nodes.

Reviewed-by: kvn, twisti, jrose, vlivanov
2012-11-27 17:24:15 -08:00
Vladimir Kozlov
1ebf7b9116 8002069: Assert failed in C2: assert(field->edge_count() > 0) failed: sanity
Added missed type check of initializing store in ConnectionGraph::find_init_values().

Reviewed-by: roland, twisti, vlivanov
2012-11-06 15:16:32 -08:00
Vladimir Kozlov
4531e51fc4 7163534: VM could crashes assert(false) failed: infinite EA connection graph build
In case of time or iterations limit reached C2 stops EA and continue compilation without EA as it does in product VM already.

Reviewed-by: twisti
2012-10-25 17:32:03 -07:00
Tom Deneau
6d94ef1ee7 7184394: add intrinsics to use AES instructions
Use new x86 AES instructions for AESCrypt.

Reviewed-by: twisti, kvn, roland
2012-10-24 14:33:22 -07:00
Roland Westrelin
61eb5a0549 7054512: Compress class pointers after perm gen removal
Support of compress class pointers in the compilers.

Reviewed-by: kvn, twisti
2012-10-09 10:11:38 +02:00
Roland Westrelin
302540691b 7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
Use shorter instruction sequences for atomic add and atomic exchange when possible.

Reviewed-by: kvn, jrose
2012-09-20 16:49:17 +02:00
Vladimir Kozlov
5e05a0d592 7187454: stack overflow in C2 compiler thread on Solaris x86
Added new FormatBufferResource class to use thread's resource area for error message buffer.

Reviewed-by: twisti
2012-07-30 09:49:25 -07:00
Christian Thalinger
12901d0e5b 7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI

Remove assembly code for JDK 7 chained method handles

Co-authored-by: John Rose <john.r.rose@oracle.com>
Co-authored-by: Michael Haupt <michael.haupt@oracle.com>
Reviewed-by: jrose, twisti, kvn, mhaupt
2012-07-24 10:51:00 -07:00
Vladimir Kozlov
08973326c4 7154997: assert(false) failed: not G1 barrier raw StoreP
Skip only G1 cases and explicitly set global escape state in unsafe cases.

Reviewed-by: never
2012-03-20 13:10:13 -07:00
Vladimir Kozlov
e5f92a2396 7147744: CTW: assert(false) failed: infinite EA connection graph build
Rewrote Connection graph construction code in EA to reduce time spent there.

Reviewed-by: never
2012-03-12 10:46:47 -07:00
Vladimir Kozlov
22db6951dc 7146442: assert(false) failed: bad AD file
Take into account only stores captured by Initialize node. Added missing check for Top input in value() methods.

Reviewed-by: never
2012-02-21 11:55:05 -08:00
Vladimir Kozlov
2d533fa2a9 7129284: +DoEscapeAnalysis regression w/ early build of 7u4 (HotSpot 23) on Linux
Removed code which tried to create edges from fields of destination objects of arraycopy to fields of source objects. Added 30 sec time limit for EA graph construction.

Reviewed-by: never
2012-02-10 12:53:43 -08:00
Vladimir Kozlov
94927c382b 7125896: Eliminate nested locks
Nested locks elimination done before lock nodes expansion by looking for outer locks of the same object.

Reviewed-by: never, twisti
2012-01-07 13:26:43 -08:00
Roland Westrelin
97439fb4ff 7121140: Allocation paths require explicit memory synchronization operations for RMO systems
Adds store store barrier after initialization of header and body of objects.

Reviewed-by: never, kvn
2011-12-20 16:56:50 +01:00
Vladimir Kozlov
e187503af0 7112478: after 7105605 JRuby bench_define_method_methods.rb fails with NPE
Fixed several EA issues with Connection Graph construction.

Reviewed-by: never, twisti
2011-11-28 15:46:31 -08:00
Vladimir Kozlov
8d2ee23293 6890673: Eliminate allocations immediately after EA
Try to eliminate allocations and related locks immediately after escape analysis.

Reviewed-by: never
2011-11-16 09:13:57 -08:00
Vladimir Kozlov
6b52dbceb0 7105605: Use EA info to optimize pointers compare
Optimize pointers compare using EA information.

Reviewed-by: never, twisti
2011-11-14 18:38:03 -08:00
Vladimir Kozlov
0bc2963b7d 7059047: EA: can't find initializing store with several CheckCastPP
Split adjust_escape_state() method into two methods to find initializing stores.

Reviewed-by: never
2011-11-07 14:33:57 -08:00
Vladimir Kozlov
952f0b9b81 7059039: EA: don't change non-escaping state of NULL pointer
NULL pointers do not escape but escape state propagation may change it leading to worser results.

Reviewed-by: never
2011-10-25 12:51:13 -07:00
Vladimir Kozlov
18dd7131d0 7050280: assert(u->as_Unlock()->is_eliminated()) failed: sanity
Mark all associated (same box and obj) lock and unlock nodes for elimination if some of them marked already.

Reviewed-by: iveresov, never
2011-06-04 10:36:22 -07:00
Vladimir Kozlov
abc5f94df7 7026700: regression in 6u24-rev-b23: Crash in C2 compiler in PhaseIdealLoop::build_loop_late_post
Memory slices should be always created for non-static fields after allocation

Reviewed-by: never
2011-04-20 18:29:35 -07:00
Vladimir Kozlov
ed30132e8b 6992789: assert(phi->_idx >= nodes_size()) failed: only new Phi per instance memory slice
Swap checks: check for regular memory slice first and keep input phi.

Reviewed-by: never
2011-04-06 17:32:09 -07:00
Vladimir Kozlov
e7c3086ed3 7013538: Java memory leak with escape analysis
Don't allocate VectorSet iterator on C heap. Reuse resource storage in EA.

Reviewed-by: never
2011-02-07 10:25:39 -08:00
Vladimir Kozlov
85dd279283 7003130: assert(iterations<CG_BUILD_ITER_LIMIT) failed: infinite EA connection graph
Bump CG_BUILD_ITER_LIMIT to 20

Reviewed-by: iveresov
2010-12-21 13:56:40 -08:00
Stefan Karlsson
8006fe8f75 6989984: Use standard include model for Hospot
Replaced MakeDeps and the includeDB files with more standardized solutions.

Reviewed-by: coleenp, kvn, kamg
2010-11-23 13:22:55 -08:00
Vladimir Kozlov
296ddc8e2e 6991188: C2 Crashes while compiling method
Do several iterations to build EA Connection Graph.

Reviewed-by: never, twisti, ysr
2010-11-06 20:35:36 -07:00
Tom Rodriguez
f4b4eae617 6982537: Crash in Node*step_through_mergemem
Reviewed-by: kvn
2010-09-22 13:01:12 -07:00
Vladimir Kozlov
cc513a8564 6966411: escape.cpp:450 assert(base->Opcode() == Op_ConP
Execute IGVN optimization before and after Escape Analysis

Reviewed-by: never
2010-07-02 17:30:30 -07:00
Erik Trimble
ba7c173659 6941466: Oracle rebranding changes for Hotspot repositories
Change all the Sun copyrights to Oracle copyright

Reviewed-by: ohair
2010-05-27 19:08:38 -07:00
Vladimir Kozlov
c12b2b3f69 6953267: assert in EA code with -XX:+StressReflectiveCode
Add missing checks into EA code.

Reviewed-by: never
2010-05-18 09:54:05 -07:00
Vladimir Kozlov
9be2e29930 6913075: EA identifies escape state incorrectly after 6895383 fix
EA incorrectly identifies escape state of an allocation passed as call argument.

Reviewed-by: never
2010-01-04 15:21:09 -08:00
Vladimir Kozlov
00f583219f 6896727: nsk/logging/LoggingPermission/LoggingPermission/logperm002 fails with G1, EscapeAnalisys
Move instance store's memory users to corresponding memory slices when updating its memory edge.

Reviewed-by: never
2009-12-09 19:50:14 -08:00
Vladimir Kozlov
9f5ca0249d 6895383: JCK test throws NPE for method compiled with Escape Analysis
Add missing checks for MemBar nodes in EA.

Reviewed-by: never
2009-12-09 16:40:45 -08:00
Vladimir Kozlov
39a98bab1d 6902036: WorldWind asserts on escape.cpp:1153: assert(addr->is_AddP(),"AddP required")
Remove the assert.

Reviewed-by: twisti
2009-11-19 14:32:23 -08:00
Vladimir Kozlov
c5744bd138 6896352: CTW fails hotspot/src/share/vm/opto/escape.cpp:1155
Always call C->get_alias_index(phase->type(address)) during parsing.

Reviewed-by: never
2009-11-04 14:43:50 -08:00
Vladimir Kozlov
c89a572b3e 6879362: assert(!klass_is_exact(),"only non-exact klass")
Do nothing for AddP node which has type not related to the type of allocated object.

Reviewed-by: never
2009-09-15 19:03:39 -07:00
Vladimir Kozlov
515f68b637 6880574: C2 assert in escape.cpp:445 on linux-amd64
Look through chained AddP nodes in get_addp_base().

Reviewed-by: jrose
2009-09-10 10:36:24 -07:00
Erik Trimble
e846382e12 Merge 2009-07-29 16:00:35 -07:00
Xiomara Jayasena
a63ef10004 6862919: Update copyright year
Update copyright for files that have been modified in 2009, up to 07/09

Reviewed-by: tbell, ohair
2009-07-28 12:12:40 -07:00
Vladimir Kozlov
c3efa899b6 6851742: (EA) allocation elimination doesn't work with UseG1GC
Fix eliminate_card_mark() to eliminate G1 pre/post barriers.

Reviewed-by: never
2009-07-16 14:10:42 -07:00
Vladimir Kozlov
e101bdf5df 6836054: java/util/Arrays/CopyMethods.java fails on solaris-sparc with IllegalArgumentException
Do not mark an allocation as scalar replaceable if its actual type in unknown statically.

Reviewed-by: never
2009-05-11 18:30:13 -07:00
Christian Thalinger
05d1de7727 6810672: Comment typos
I have collected some typos I have found while looking at the code.

Reviewed-by: kvn, never
2009-02-27 13:27:09 -08:00
Vladimir Kozlov
dc3008a513 6802499: EA: assert(false,"unknown node on this path")
Add missing checks for SCMemProj node in Escape analysis code.

Reviewed-by: never
2009-02-19 17:38:53 -08:00