586 Commits

Author SHA1 Message Date
Vladimir Kozlov
69bcf41540 7047300: VM crashes with assert(_base == InstPtr) failed: Not an object pointer
The code incorrectly used is_instptr() instead of is_oopptr() to get const_oop.

Reviewed-by: never
2011-05-24 12:54:51 -07:00
Vladimir Kozlov
800a1a0611 7045506: assert(!can_reshape || !new_phi) failed: for igvn new phi should be hooked
Replace the assert in PhiNode::Ideal with check to avoid transformation of new phi.

Reviewed-by: never
2011-05-21 13:59:55 -07:00
Vladimir Kozlov
0aff6e35b8 7045693: java/util/EnumSet/EnumSetBash.java still failing intermittently
New limit for unrolled loop should be set only for zero trip guard and loop iteration test.

Reviewed-by: never
2011-05-21 11:44:31 -07:00
Vladimir Kozlov
8d44d62173 7046096: SEGV IN C2 WITH 6U25
Missing fail flag set in strings concatenation code.

Reviewed-by: never
2011-05-20 12:46:20 -07:00
Tom Rodriguez
c2f2cb75fc 7045513: JSR 292 inlining causes crashes in methodHandleWalk.cpp
Reviewed-by: jrose
2011-05-17 19:11:51 -07:00
Vladimir Kozlov
0e10a5ad61 7044725: -XX:-UnrollLimitCheck -Xcomp : Exception: String index out of range: 29488
Fix problems in new RCE code.

Reviewed-by: never
2011-05-16 14:21:16 -07:00
Christian Thalinger
db9005f0d3 6998541: JSR 292 implement missing return-type conversion for OP_RETYPE_RAW
Reviewed-by: jrose, kvn, never
2011-05-12 14:04:48 -07:00
Vladimir Kozlov
70dfd21e87 7043552: regression after 7042327
Generate Opaque2 node only during first unroll.

Reviewed-by: never
2011-05-10 12:57:21 -07:00
Christian Thalinger
fee8d7fca4 7042122: JSR 292: adjust various inline thresholds for JSR 292 API methods and method handle adapters
Reviewed-by: jrose, never, kvn
2011-05-10 00:45:03 -07:00
Vladimir Kozlov
8698030a91 7042327: assert(opaq->outcnt() == 1 && opaq->in(1) == limit)
Separate limit by Opaque2 node when calculating new limit for unrolled loop.

Reviewed-by: never
2011-05-05 21:06:14 -07:00
Vladimir Kozlov
1ac79543d0 5091921: Sign flip issues in loop optimizer
Fix integer overflow problem in the code generated by loop optimizer.

Reviewed-by: never
2011-05-04 13:12:42 -07:00
Tom Rodriguez
c3a8cf7156 Merge 2011-05-03 17:09:05 -07:00
Tom Rodriguez
0ecc18851a 6796786: invalid FP identity transform - (a - b) -> b - a
Reviewed-by: iveresov, twisti
2011-05-03 12:11:54 -07:00
Vladimir Kozlov
e1442309e1 7041100: The load in String.equals intrinsic executed before null check
Remove control from loads in String.equals intrinsic and cast argument to not-null.

Reviewed-by: never
2011-05-03 09:10:39 -07:00
Tom Rodriguez
33f0e50994 7009361: JSR 292 Invalid value on stack on solaris-sparc with -Xcomp
Reviewed-by: kvn, twisti
2011-05-02 18:53:37 -07:00
Tom Rodriguez
dfc5561910 Merge 2011-05-02 10:51:36 -07:00
Christian Thalinger
6bfb306487 6552561: MaxRecursiveInlineLevel flag doesn't operate correctly
Reviewed-by: kvn, never
2011-05-02 00:55:09 -07:00
Vladimir Kozlov
6d0283ed8e Merge 2011-04-29 11:15:30 -07:00
Vladimir Kozlov
2683d5390b 7039652: Performance regression after 7004547 changes
Use unrolled_count() to limit unrolling and use the stride check only for initial stride value.

Reviewed-by: never
2011-04-28 16:40:23 -07:00
Tom Rodriguez
eb8db40092 7032162: assert(flat != TypePtr::BOTTOM) failed: cannot alias-analyze an untyped ptr
Reviewed-by: kvn
2011-04-28 14:00:13 -07:00
Tom Rodriguez
2126589fd0 7029167: add support for conditional card marks
Reviewed-by: iveresov, kvn
2011-04-27 15:40:36 -07:00
Vladimir Kozlov
6c8fc4b347 7039586: test/java/util/Collections/Rotate.java failing with hs21-b09
A predicate should not be moved in partial peel optimization since it will invalidate jvm state of its uncommon trap.

Reviewed-by: never
2011-04-26 12:14:22 -07:00
Tom Rodriguez
16d6414619 7030715: JSR 292 JRuby test/test_super_call_site_caching.rb asserts with +DoEscapeAnalysis
Reviewed-by: twisti
2011-04-25 16:25:58 -07:00
Jon Masamitsu
8328bb291e Merge 2011-04-20 20:32:45 -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
John Cuthbertson
f603d437be 7036021: G1: build failure on win64 and linux with hs21 in jdk6 build environment
Missing parentheses around a casted expression and some missing casts were causing build failures with the jdk6 build tools.

Reviewed-by: kvn, brutisso
2011-04-15 10:10:50 -07:00
John Cuthbertson
7c844aba67 Merge 2011-04-14 13:45:41 -07:00
John Cuthbertson
20a3437a74 7035117: G1: nsk/stress/jni/jnistress002 fails with assertion failure
Allow long type for offset in G1 code in compiler implementations of Unsafe.getObject

Reviewed-by: never, iveresov
2011-04-13 17:56:43 -07:00
Igor Veresov
aac4b1553e 6988308: assert((cnt > 0.0f) && (prob > 0.0f)) failed: Bad frequency assignment in if
Make sure cnt doesn't become negative and integer overflow doesn't happen.

Reviewed-by: kvn, twisti
2011-04-13 14:33:03 -07:00
John R Rose
41745904a3 Merge 2011-04-09 21:16:12 -07:00
Vladimir Kozlov
2096fd712c 7004555: Add new policy for one iteration loops
Add new policy for one iteration loops (mostly formal pre- loops).

Reviewed-by: never
2011-04-08 14:56:22 -07:00
Jon Masamitsu
b6e631d446 Merge 2011-04-08 14:19:50 -07:00
John R Rose
f8fe3457a5 7009600: JSR 292 Server compiler crashes in Compile::find_intrinsic(ciMethod*, bool)
Catch errors during the compile-time processing of method handles; back out cleanly

Reviewed-by: twisti
2011-04-07 17:12:23 -07:00
John Cuthbertson
a08e1ce906 7009266: G1: assert(obj->is_oop_or_null(true )) failed: Error
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
2011-04-07 09:53:20 -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
Tom Rodriguez
aac4647e6e 7032963: StoreCM shouldn't participate in store elimination
Reviewed-by: kvn
2011-04-05 19:14:03 -07:00
Erik Trimble
c9e484d473 7010070: Update all 2010 Oracle-changed OpenJDK files to have the proper copyright dates - second pass
Update the copyright to be 2010 on all changed files in OpenJDK

Reviewed-by: ohair
2011-04-05 14:12:31 -07:00
Vladimir Kozlov
3151573d39 7004547: regular loop unroll should not unroll more than max unrolling
Take into account that after unroll conjoined heads and tails will fold.

Reviewed-by: never
2011-04-04 19:02:36 -07:00
Tom Rodriguez
774ac503d0 7026957: assert(type2aelembytes(store->as_Mem()->memory_type(), true) == 1 << shift->in(2)->get_int()) failed
Reviewed-by: kvn, jrose
2011-04-04 12:57:04 -07:00
Roland Westrelin
f94d7776ca 7033154: Improve C1 arraycopy performance
Better static analysis. Take advantage of array copy stubs.

Reviewed-by: never
2011-04-03 12:00:54 +02:00
Vladimir Kozlov
00eca5e982 7004535: Clone loop predicate during loop unswitch
Clone loop predicate for clonned loops

Reviewed-by: never
2011-04-02 10:54:15 -07:00
Vladimir Kozlov
68f1177f59 7032314: Allow to generate CallLeafNoFPNode in IdealKit
Added CallLeafNoFPNode generation to IdealKit. Added i_o synchronization.

Reviewed-by: never
2011-04-02 09:49:27 -07:00
Tom Rodriguez
5cd8d5c115 6909440: C2 fails with assertion (_always_cold->is_cold(),"must always be cold")
Reviewed-by: kvn
2011-04-01 21:45:33 -07:00
Vladimir Kozlov
0493606cdd 7032696: Fix for 7029152 broke VM
StrIntrinsicNode::Ideal() should not optimize memory during Parse.

Reviewed-by: jrose, never
2011-03-31 13:22:34 -07:00
Vladimir Kozlov
3ecb9f51df 7029152: Ideal nodes for String intrinsics miss memory edge optimization
In Ideal() method of String intrinsics nodes look for TypeAryPtr::CHARS memory slice if memory is MergeMem. Do not unroll a loop with String intrinsics code.

Reviewed-by: never
2011-03-30 12:08:49 -07:00
Christian Thalinger
f51036e9bc 7022998: JSR 292 recursive method handle calls inline themselves infinitely
Reviewed-by: never, kvn
2011-03-28 03:58:07 -07:00
Tom Rodriguez
5387ee459e 7024475: loop doesn't terminate when compiled
Reviewed-by: kvn
2011-03-27 00:00:14 -07:00
Roland Westrelin
4171ca786e 7029017: Additional architecture support for c2 compiler
Enables cross building of a c2 VM. Support masking of shift counts when the processor architecture mandates it.

Reviewed-by: kvn, never
2011-03-25 09:35:39 +01:00
John Coomes
cdd5139d91 Merge 2011-03-24 23:04:36 -07:00
John Coomes
fe899cc10d 6962931: move interned strings out of the perm gen
Reviewed-by: never, coleenp, ysr, jwilhelm
2011-03-22 13:36:33 -07:00