Roland Westrelin
f4f9769cd2
8073184: Compile of java.lang.Integer::getChars fails with LoopLimitCheck = false after 8054478
...
CastII that guards counted loops confuses range check elimination with LoopLimitCheck off
Reviewed-by: kvn, iveresov
2015-02-24 15:23:05 +01:00
Vladimir Kozlov
834ff91cc5
8068864: C2 failed: modified node is not on IGVN._worklist
...
Use igvn.replace_input_of() instead of set_req().
Reviewed-by: iveresov, vlivanov
2015-01-14 17:27:00 -08:00
Roland Westrelin
4bc2edad15
8054478: C2: Incorrectly compiled char[] array access crashes JVM
...
Dead backbranch in main loop results in erroneous array access
Reviewed-by: kvn, iveresov
2014-11-13 09:19:46 +01:00
Vladimir Ivanov
5a00d5f6b5
8058148: MaxNodeLimit and LiveNodeCountInliningCutoff
...
Reviewed-by: kvn, roland
2014-11-24 07:29:03 -08:00
Tobias Hartmann
e3073f2e53
8053915: bigapps assert failure in C2: modified node is not on IGVN._worklist
...
Add modified node to the IGVN worklist in 'PhaseIdealLoop::do_range_check'.
Reviewed-by: kvn, roland
2014-07-31 08:39:47 +02:00
Tobias Hartmann
11eb4553c9
8040213: C2 does not put all modified nodes on IGVN worklist
...
Verification code is added that checks if modified nodes are put on the IGVN worklist and modified nodes are processed by 'PhaseIterGVN::transform_old()'
Reviewed-by: kvn, jrose
2014-07-25 10:06:17 +02:00
Tobias Hartmann
2a0815a55e
8034812: remove IDX_INIT macro hack in Node class
...
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
2014-06-02 08:07:29 +02:00
Vladimir Kozlov
8badeecc2c
8039050: Crash in C2 compiler at Node::rematerialize
...
Added missing calls to record_for_igvn() in loop opts. Added verification of def-use domination.
Reviewed-by: iveresov
2014-04-15 14:34:48 -07:00
Morris Meyer
6db303a301
8001532: C2 node files refactoring
...
Split C2 node files into cast, convert, countbits, intrinsic, move, narrowptr and opaquenode classes
Reviewed-by: kvn, morris
2014-04-01 09:05:20 -07:00
Vladimir Kozlov
97a51c5c2a
8031320: Use Intel RTM instructions for locks
...
Use RTM for inflated locks and stack locks.
Reviewed-by: iveresov, twisti, roland, dcubed
2014-03-20 17:49:27 -07:00
Rickard Bäckman
0b85ee832e
8027754: Enable loop optimizations for loops with MathExact inside
...
Reviewed-by: kvn, iveresov
2014-01-23 12:08:28 +01:00
Vladimir Kozlov
c3a0e80e0b
Merge
2014-01-28 12:25:34 -08:00
Mikael Vidstedt
a0da47fd66
8029233: Update copyright year to match last edit in jdk8 hotspot repository for 2013
...
Copyright year updated for files modified during 2013
Reviewed-by: twisti, iveresov
2013-12-24 11:48:39 -08:00
Vladimir Kozlov
aabed3781b
Merge
2013-11-21 12:30:35 -08:00
Vladimir Kozlov
39b0e57fdd
Merge
2013-11-05 17:38:04 -08:00
Igor Veresov
c342a79faf
8017065: C2 allows safepoint checks to leak into G1 pre-barriers
...
Make all raw loads strictly respect control dependencies, make sure RCE doesn't move raw loads, add verification of G1 pre-barriers.
Reviewed-by: kvn, roland
2013-11-05 01:57:18 -08:00
Rickard Bäckman
612252d7a2
8027444: mathExact: assert(i < _max) failed: oob: i=1, _max=1
...
Reviewed-by: duke
2013-10-30 13:14:09 +01:00
Rickard Bäckman
441f1d74cf
8024924: Intrinsify java.lang.Math.addExact
...
Reviewed-by: kvn, twisti
2013-09-27 08:39:19 +02:00
Goetz Lindenmaier
5d63d647c1
8024342: PPC64 (part 111): Support for C calling conventions that require 64-bit ints
...
Some platforms, as ppc and s390x/zArch require that 32-bit ints are passed as 64-bit values to C functions. This change adds support to adapt the signature and to issue proper casts to c2-compiled stubs. The functions are used in generate_native_wrapper(). Adapt signature used by the compiler as in PhaseIdealLoop::intrinsify_fill().
Reviewed-by: kvn
2013-09-18 14:34:56 -07:00
Vladimir Kozlov
20f7d1a82a
8022993: Convert MAX_UNROLL constant to LoopMaxUnroll C2 flag
...
Replace MAX_UNROLL constant with new C2 LoopMaxUnroll flag.
Reviewed-by: roland
2013-08-14 10:21:26 -07:00
Morris Meyer
a62f572a50
8009181: [parfait] Null pointer deference in hotspot/src/share/vm/opto/loopTransform.cpp
...
Add guarantee() to insert_pre_post_loops()
Reviewed-by: kvn
2013-03-20 07:05:40 -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
Abhijit Saha
19fc2d4d88
Merge
2012-10-18 21:58:55 -07:00
Vladimir Kozlov
5f132a5ec3
Merge
2012-10-12 09:22:52 -07:00
Abhijit Saha
2f3ac59e81
Merge
2012-10-10 14:28:08 -07:00
Mikael Vidstedt
769dd50182
7197424: update copyright year to match last edit in jdk8 hotspot repository
...
Update copyright year to 2012 for relevant files
Reviewed-by: dholmes, coleenp
2012-10-09 10:09:34 -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
Vladimir Ivanov
b1d745897b
8000313: C2 should use jlong for 64bit values
...
Replace all occurrences of long with jlong in C2 code.
Reviewed-by: kvn, twisti
2012-10-08 13:02:13 -07:00
Bharadwaj Yadavalli
d5d2e78faa
7193318: C2: remove number of inputs requirement from Node's new operator
...
Deleted placement new operator of Node - node(size_t, Compile *, int).
Reviewed-by: kvn, twisti
2012-09-27 09:38:42 -07:00
Vladimir Kozlov
03d65ced3e
7198606: Improve VM optimization
...
Remove incorrect code in OptimizeFill optimization.
Reviewed-by: roland, twisti
2012-09-19 13:58:31 -07:00
Vladimir Kozlov
da65cc4532
7160161: Missed safepoint in non-Counted loop
...
Do not remove safepoints during peeling optimization.
Reviewed-by: twisti
2012-08-29 13:02:40 -07:00
Vlaidmir Ivanov
dd85e2f356
7173340: C2: code cleanup: use PhaseIterGVN::replace_edge(Node*, int, Node*) where applicable
...
Replace frequent C2 optimizer code patterns with new methods calls
Reviewed-by: kvn, twisti
2012-06-12 16:23:31 -07:00
Vladimir Kozlov
61068411fa
7054211: No loop unrolling done in jdk7b144 for a test update() while loop
...
Restore unrolling code for CaffeineMark.
Reviewed-by: never
2011-09-07 12:58:42 -07:00
Vladimir Kozlov
52f678435a
7077439: Possible reference through NULL in loopPredicate.cpp:726
...
Use cl->is_valid_counted_loop() check.
Reviewed-by: never
2011-08-10 14:06:57 -07:00
Vladimir Kozlov
df8d608ac7
7068051: SIGSEGV in PhaseIdealLoop::build_loop_late_post
...
Removed predicate cloning from loop peeling optimization and from split fall-in paths.
Reviewed-by: never
2011-07-29 09:16:29 -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
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
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
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
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
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
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
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
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
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