49 Commits

Author SHA1 Message Date
Zoltan Majo
1ca592e687 8129847: Compiling methods generated by Nashorn triggers high memory usage in C2
Add a new compiler phase, PhaseRenumberLive, that renumbers live nodes.

Reviewed-by: kvn, thartmann, vlivanov, shade
2015-12-01 08:05:10 +01: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
Andreas Eriksson
346fb9ffa7 8060036: C2: CmpU nodes can end up with wrong type information
CmpU needs to be reprocessed by CCP when an AddI/SubI input's input type change

Reviewed-by: mcberg, kvn, roland
2015-05-21 16:49:11 +02:00
Roland Westrelin
05ea4dbf1e 8069191: moving predicate out of loops may cause array accesses to bypass null check
Remove CastPP nodes only during final graph reshape

Reviewed-by: kvn, jrose
2015-03-24 10:25:09 +01:00
Roland Westrelin
6d20d3298a 8066045: opto/node.hpp:355, assert(i < _max) failed: oob: i=1, _max=1
Code in PhaseIterGVN::add_users_to_worklist() from 8054478 makes incorrect assumption about graph shape

Reviewed-by: iveresov
2014-11-27 16:54:49 +01: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
Tobias Hartmann
79be04020a 8056067: NodeHash debug variables are available in product build
Make NodeHash debug variables only available in debug/optimized build.

Reviewed-by: kvn, roland
2014-08-29 14:46:35 +02:00
Tobias Hartmann
70a55eac34 8054033: Remove unused references to Compile*
Removed unused references to Compile* missed by JDK-8034812.

Reviewed-by: kvn, roland
2014-08-05 09:58:52 +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
Zoltan Majo
33058abb3f 8051303: 'optimized' build broken by JDK-8039425
Changed preprocessor directive in PhaseIterGVN::optimize()

Reviewed-by: kvn, anoll
2014-07-21 10:25:58 +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
6bfc0288f3 8042786: Proper fix for 8032566
Check for overflow cases in range checks and collapse it if we can.

Reviewed-by: jrose, iveresov
2014-05-16 12:05:14 -07: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
Albert Noll
bce45e9222 Merge 2014-04-14 09:04:36 +00:00
Albert Noll
e2305182b5 8039425: Code cleanup: PhaseIterGVN::optimize()
This code cleanup aims at improving code readability.

Reviewed-by: kvn, roland
2014-04-14 10:57:07 +02:00
Albert Noll
7e1059b62d 8034216: assert(false) failed: infinite loop in PhaseIterGVN::optimize
Eagerly remove all castPP nodes in PhaseCCP to get type convergence in memnode.

Reviewed-by: kvn, roland
2014-04-11 11:33:00 +02: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
fa3b0a8f47 8031755: Type speculation should be used to optimize explicit null checks
Feed profiling data about reference nullness to type speculation.

Reviewed-by: kvn, iveresov
2014-03-31 09:08:53 +02:00
Roland Westrelin
c19a7e0fa3 8027422: assert(_gvn.type(obj)->higher_equal(tjp)) failed: cast_up is no longer needed
Type methods shouldn't always operate on speculative part

Reviewed-by: kvn, twisti
2014-01-24 09:31:53 +01: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
Roland Westrelin
1b5bd82335 8024070: C2 needs some form of type speculation
Record unused type profile information with type system, propagate and use it.

Reviewed-by: kvn, twisti
2013-10-23 12:40:23 +02:00
Niclas Adlertz
be8c8aac48 8023691: Create interface for nodes in class Block
Create public methods for accessing the nodes in a block

Reviewed-by: kvn, roland
2013-08-26 12:50:23 +02:00
Niclas Adlertz
a235ecb344 8023003: Cleanup the public interface to PhaseCFG
Public methods that don't need to be public should be private.

Reviewed-by: kvn, twisti
2013-08-16 10:23:55 +02: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
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
fe92862089 8007294: ReduceFieldZeroing doesn't check for dependent load and can lead to incorrect execution
InitializeNode::can_capture_store() must check that the captured store doesn't overwrite a memory location that is loaded before the store.

Reviewed-by: kvn
2013-02-25 14:13:04 +01: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
Roland Westrelin
73d6d417be 8005071: Incremental inlining for JSR 292
Post parse inlining driven by number of live nodes.

Reviewed-by: twisti, kvn, jrose
2012-12-23 17:08:22 +01: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
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
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
Dean Long
62ce00b4ca 7147464: Java crashed while executing method with over 8k of dneg operations
Replace recursive method with iterative

Reviewed-by: kvn, twisti
2012-07-16 15:31:18 -04: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
a46128d0dd 7081842: assert(Compile::current()->unique() < (uint)MaxNodeLimit) failed: Node limit exceeded
Add missing node limit check in IGVN optimizer

Reviewed-by: iveresov, never
2011-09-20 08:39:40 -07: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
7cc55737b6 6916062: assert(_inserts <= _insert_limit,"hash table overflow") in NodeHash::hash_insert
Missing check for not empty worklist when puting memory node back on worklist and expecting address type update.

Reviewed-by: never
2010-09-30 18:31:45 -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
Changpeng Fang
35ca20c546 Merge 2009-10-16 14:08:44 -07:00
Tom Rodriguez
9b306d03ee 6885584: A particular class structure causes large allocation spike for jit
Reviewed-by: kvn
2009-10-07 15:38:37 -07:00
Xiomara Jayasena
15f08eb80e 6884624: Update copyright year
Update copyright for files that have been modified in 2009 through Septermber

Reviewed-by: tbell, ohair
2009-09-22 14:06:10 -07:00
Changpeng Fang
05c34e93bd 6866651: Regression: simple int sum crashes jvm (build 1.6.0_14-b08 and 1.7.0-ea-b59)
Delay dead code elimination in set_req_X to make it safe

Reviewed-by: kvn, never
2009-08-17 12:11:06 -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
37306315b2 6736417: Fastdebug C2 crashes in StoreBNode::Ideal
The result of step_through_mergemem() and remove_dead_region() is not checked in some cases.

Reviewed-by: never
2008-08-27 09:15:46 -07:00
Xiomara Jayasena
c96a95c4b8 6719955: Update copyright year
Update copyright year for files that have been modified in 2008

Reviewed-by: ohair, tbell
2008-07-02 12:55:16 -07:00
Coleen Phillimore
4a831d45f0 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv

Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
2008-04-13 17:43:42 -04:00
Vladimir Kozlov
fc0117cb9a 6674588: (Escape Analysis) Improve Escape Analysis code
Current EA code has several problems which have to be fixed.

Reviewed-by: jrose, sgoldman
2008-03-14 15:26:33 -07:00
Vladimir Kozlov
9ec574b7e6 6667605: (Escape Analysis) inline java constructors when EA is on
Java constructors should be inlined to be able scalar replace a new object

Reviewed-by: rasbold
2008-03-07 11:09:13 -08:00
J. Duke
8153779ad3 Initial load 2007-12-01 00:00:00 +00:00