Tobias Hartmann
0f67aad7af
8144487: PhaseIdealLoop::build_and_optimize() must restore major_progress flag if skip_loop_opts is true
...
Restore the major_progress flag before calling igvn.optimize().
Reviewed-by: kvn
2015-12-21 11:34:58 +01:00
Vladimir Ivanov
afeb87ddd8
8144935: C2: safepoint is pruned from a non-counted loop
...
Reviewed-by: roland
2015-12-10 14:51:53 +03:00
Andreas Eriksson
c64b2175e7
6869327: Add new C2 flag to keep safepoints in counted loops
...
Reviewed-by: kvn, shade
2015-12-04 14:06:38 +01:00
Roland Westrelin
baaa8f79ed
8042997: Make intrinsic some or all check index/range methods
...
Objects.checkIndex() intrinsic
Reviewed-by: vlivanov, shade
2015-11-16 09:55:25 +01:00
Christian Thalinger
6896030b96
8140424: don't prefix developer and notproduct flag variables with CONST_ in product builds
...
Reviewed-by: goetz, stefank
2015-11-11 16:32:17 -10:00
Tobias Hartmann
7af927f9c1
8141132: JEP 254: Compact Strings
...
Adopt a more space-efficient internal representation for strings.
Co-authored-by: Brent Christian <brent.christian@oracle.com>
Co-authored-by: Vivek Deshpande <vivek.r.deshpande@intel.com>
Co-authored-by: Charlie Hunt <charlie.hunt@oracle.com>
Co-authored-by: Vladimir Kozlov <vladimir.kozlov@oracle.com>
Co-authored-by: Roger Riggs <roger.riggs@oracle.com>
Co-authored-by: Xueming Shen <xueming.shen@oracle.com>
Co-authored-by: Aleksey Shipilev <aleksey.shipilev@oracle.com>
Co-authored-by: Sandhya Viswanathan <sandhya.viswanathan@intel.com>
Reviewed-by: alanb, bdelsart, coleenp, iklam, jiangli, jrose, kevinw, naoto, pliden, roland, smarks, twisti
2015-11-03 09:41:03 +01:00
Tobias Hartmann
6479241f4a
8135252: IdealLoopTree::dump_head() prints negative trip count
...
IdealLoopTree::dump_head() should not cast float to int.
Reviewed-by: kvn
2015-09-14 10:00:26 +02:00
Roland Westrelin
96b004cd82
8080289: Intermediate writes in a loop not eliminated by optimizer
...
Move Stores out of loop (after or before) when possible
Reviewed-by: kvn, vlivanov
2015-07-29 17:25:04 +02:00
Vlad Ureche
645a55a98f
8011858: Use Compile::live_nodes() instead of Compile::unique() in appropriate places
...
Reviewed-by: kvn, vlivanov
2015-08-10 10:39:19 -07:00
Jan Civlin
2a4f18ccbd
8085932: Fixing bugs in detecting memory alignments in SuperWord
...
Reviewed-by: kvn
2015-07-14 09:55:22 -07:00
Vladimir Kozlov
b5284a93ce
8129920: Vectorized loop unrolling
...
Optimize loop opts for vectorizible loops.
Reviewed-by: kvn, roland
2015-07-10 11:59:09 -07:00
Michael Berg
7c7b91845f
8080325: SuperWord loop unrolling analysis
...
Determine loop unroll factor based on supported vectors sizes.
Reviewed-by: roland, kvn
2015-06-16 16:10:36 -07:00
Jan Civlin
c7d33de202
8076284: Improve vectorization of parallel streams
...
Improve vectorization of java/util/stream/Streams$RangeIntSpliterator::forEachRemaining() method and enable loop vectorization in a given method on demand.
Reviewed-by: kvn
2015-05-05 12:33:57 -07:00
Igor Veresov
783f2be52f
8072753: Nondeterministic wrong answer on arithmetic
...
Check for overflow when inverting the loop during the counted loop conversion
Reviewed-by: kvn
2015-02-17 11:00:18 -08:00
Vladimir Ivanov
5fd1e54fc1
8067338: compiler/debug/TraceIterativeGVN.java segfaults
...
Reviewed-by: kvn
2014-12-19 16:42:40 -08: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
David Chase
305ec3bd3f
8037816: Fix for 8036122 breaks build with Xcode5/clang
...
Repaired or selectively disabled offending formats; future-proofed with additional checking
Reviewed-by: kvn, jrose, stefank
2014-05-09 16:50:54 -04:00
Vladimir Kozlov
c909ac41de
8039298: assert(base == NULL || t_adr->isa_rawptr() || !phase->type(base)->higher_equal(TypePtr::NULL_PTR))
...
Convert the assert into the runtime check to skip IGVN optimizations for problematic memory nodes. Eliminate dead nodes more aggressively.
Reviewed-by: twisti, iveresov
2014-05-02 16:44:54 -07: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
Roland Westrelin
3f8ae3e9b9
8024069: replace_in_map() should operate on parent maps
...
Type information gets lost because replace_in_map() doesn't update parent maps
Reviewed-by: kvn, twisti
2013-10-19 12:16:43 +02: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
848ccdbdfe
8004640: C2 assert failure in memnode.cpp: NULL+offs not RAW address
...
Always transform AddP nodes in IdealKit by calling _gvn.transform().
Reviewed-by: roland, twisti
2013-03-26 12:55:26 -07:00
Roland Westrelin
c401bf065d
7197327: 40% regression on 8 b41 comp 8 b40 on specjvm2008.mpegaudio on oob
...
Add support for expensive nodes.
Reviewed-by: kvn
2013-02-12 12:56:11 +01: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
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
Vladimir Kozlov
e3c3c8527e
6340864: Implement vectorization optimizations in hotspot-server
...
Added asm encoding and mach nodes for vector arithmetic instructions on x86.
Reviewed-by: roland
2012-08-20 09:07:21 -07:00
Vladimir Kozlov
d1191bb4f4
7119644: Increase superword's vector size up to 256 bits
...
Increase vector size up to 256-bits for YMM AVX registers on x86.
Reviewed-by: never, twisti, roland
2012-06-15 01:25:19 -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
Deepak Bhole
ce79f12b7b
7140882: Don't return booleans from methods returning pointers
...
Changed "return false" to "return NULL"
Reviewed-by: dholmes, rottenha
2012-01-30 12:36:49 +01:00
Vladimir Kozlov
f3f36ae094
7064302: JDK7 build 147 crashed after testing my java 6-compiled web app
...
Don't split CMove node if it's control edge is different from split region.
Reviewed-by: never
2012-01-12 12:28:59 -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
157ba53d27
7110586: C2 generates incorrect results
...
Exact limit of empty loop calculated incorrectly.
Reviewed-by: iveresov, never
2011-11-10 20:17:05 -08:00
Vladimir Kozlov
09b7902e14
7107042: assert(no_dead_loop) failed: dead loop detected
...
Use dead nodes elimination code in PhaseIdealLoop before executing EA.
Reviewed-by: never, twisti
2011-11-09 07:25:51 -08:00
Vladimir Kozlov
92b2b44b18
7035946: Up to 15% regression on JDK 7 b136 vs b135 on specjvm2008.crypto.rsa on x64
...
Revert changes which caused regression.
Reviewed-by: never
2011-09-09 13:47:11 -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
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
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
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
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
Tom Rodriguez
5387ee459e
7024475: loop doesn't terminate when compiled
...
Reviewed-by: kvn
2011-03-27 00:00:14 -07:00
Vladimir Kozlov
3de260da41
7008866: Missing loop predicate for loop with multiple entries
...
Add predicates when loop head bytecode is parsed instead of when back branch bytecode is parsed.
Reviewed-by: never
2011-03-21 11:28:14 -07:00
Vladimir Kozlov
c00a50c8e9
7017240: C2: native memory leak in nsk/regression/b4675027 on windows-x86 in comp mode with G1
...
Add ResourceMark into PhaseIdealLoop::build_and_optimize().
Reviewed-by: never
2011-02-07 09:46:01 -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
Tom Rodriguez
08d9e03b81
4809552: Optimize Arrays.fill(...)
...
Reviewed-by: kvn
2010-08-27 17:33:49 -07:00
Vladimir Kozlov
448b83e288
6677629: PhaseIterGVN::subsume_node() should call hash_delete() and add_users_to_worklist()
...
Use replace_node() method instead of subsume_node().
Reviewed-by: jrose, never
2010-06-28 14:54:39 -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