445 Commits

Author SHA1 Message Date
Vladimir Kozlov
b443bf1f4c 7047954: VM crashes with assert(is_Mem()) failed
Cast constant array ptrs to bottom

Reviewed-by: never
2011-06-28 15:50:07 -07:00
Vladimir Kozlov
b3505a88a4 7044738: Loop unroll optimization causes incorrect result
Take into account memory dependencies when clonning nodes in clone_up_backedge_goo().

Reviewed-by: never
2011-06-28 15:24:29 -07:00
Tom Rodriguez
15161b8cd1 7057587: JSR 292 - crash with jruby in test/test_respond_to.rb
Don't skip receiver when GC'ing compiled invokedynamic callsites

Reviewed-by: twisti, kvn, jrose
2011-06-22 14:45:37 -07:00
Vladimir Kozlov
d19a8f6e35 7052494: Eclipse test fails on JDK 7 b142
Keep 'ne' test in Counted loop when we can't guarantee during compilation that init < limit.

Reviewed-by: never
2011-06-20 16:45:35 -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
Tom Rodriguez
a664e486bd 7045514: SPARC assembly code for JSR 292 ricochet frames
Reviewed-by: kvn, jrose
2011-06-03 22:31:43 -07:00
Tom Rodriguez
e666162b03 7050554: JSR 292 - need optimization for selectAlternative
Reviewed-by: kvn, jrose
2011-06-02 13:36:11 -07:00
Vladimir Kozlov
a8556d6c01 6956668: misbehavior of XOR operator (^) with int
Optimize cmp_ne(xor(X,1),0) to cmp_eq(X,0) only for boolean values X.

Reviewed-by: never
2011-05-31 10:05:36 -07:00
Vladimir Kozlov
c3a7796068 7047069: Array can dynamically change size when assigned to an object field
Fix initialization of a newly-allocated array with arraycopy

Reviewed-by: never
2011-05-27 12:47:48 -07:00
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