Rahul Raghavan
b2783bb80a
8175345: Reported null pointer dereference defect groups
...
Added required explicit NULL checks
Reviewed-by: thartmann, kvn
2017-03-09 00:16:51 -08:00
Nils Eliasson
de10f56d52
8164954: split_if creates empty phi and region nodes
...
Don't split if all edges will be moved to new phi
Reviewed-by: kvn, vlivanov
2017-03-06 14:08:52 +01:00
Joseph Provino
5cef85023b
8132524: Missing includes to resourceArea.hpp
...
Files that use ResourceMark are missing the include of resourceArea.hpp
Reviewed-by: tschatzl, jwilhelm
2016-04-04 12:57:48 -04:00
Claes Redestad
ea5a3565b8
8150720: Cleanup code around PrintOptoStatistics
...
Reviewed-by: kvn, shade, vlivanov
2016-02-29 15:05:45 +01:00
Tobias Hartmann
ca56200977
6675699: need comprehensive fix for unconstrained ConvI2L with narrowed type
...
Emit CastII to make narrow ConvI2L dependent on the corresponding range check.
Reviewed-by: kvn, roland
2016-01-18 08:40:25 +01:00
Tobias Hartmann
0e1b2cd198
8136469: OptimizeStringConcat fails on pre-sized StringBuilder shapes
...
Cut off dead if branch already during parsing (GVN).
Reviewed-by: shade, kvn, roland
2016-01-12 12:55:37 +01:00
Tobias Hartmann
69b52aa28b
8146629: Make phase->is_IterGVN() accessible from Node::Identity and Node::Value
...
Change arguments of Node::Identity() and Node::Value() from PhaseTransform* to PhaseGVN*.
Reviewed-by: kvn, roland
2016-01-12 12:55:09 +01:00
Roland Westrelin
a59fb9d9c1
Merge
2015-11-16 11:58:31 +00: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
Tobias Hartmann
c9b5f58d7f
8142500: missing null checks in IfNode::has_only_uncommon_traps
...
IfNode::has_only_uncommon_traps needs to null-check the callers.
Reviewed-by: kvn, roland, rbackman
2015-11-16 08:03:24 +01:00
Roland Westrelin
fa6545ccc1
8137168: Replace IfNode with a new RangeCheckNode for range checks
...
New RangeCheckNode to enable optimization of explicit library level range checks
Reviewed-by: kvn, thartmann
2015-11-09 11:28:31 +01:00
Tobias Hartmann
af2e00ae90
8140574: C2 must re-execute checks after deoptimizing from merged uncommon traps
...
Before merging uncommon traps we have to check for proper bci domination and compatible JVMStates to guarantee correct re-execution of the checks.
Reviewed-by: kvn, roland
2015-11-06 09:36:47 +01:00
Roland Westrelin
8dd169a71f
8135069: C2 replaces range checks by unsigned comparison with -1
...
I < 0 || i > -1 wrongly folded as i >u -1
Reviewed-by: kvn
2015-09-11 16:56:56 +02:00
Michael Haupt
fd2f61a53f
8004073: Implement C2 Ideal node specific dump() method
...
Add Node::dump_rel() to dump a node and its related nodes (the notion of "related" depends on the node at hand); add Node::dump_comp() to dump a node in compact representation; add Node::dump_rel_comp() to dump a node and its related nodes in compact representation; add the required machinery; extend some C2 IR nodes with compact and related dumping
Reviewed-by: kvn, roland
2015-03-18 16:16:30 +01:00
Roland Westrelin
197ecf9bc1
8081823: C2 performs unsigned comparison against -1
...
X <= 0 || x > 0 wrongly folded as (x-1) >u -1
Reviewed-by: kvn, vlivanov
2015-06-08 18:35:17 +02:00
Roland Westrelin
be86925c01
8078436: java/util/stream/boottest/java/util/stream/UnorderedTest.java crashed with an assert in ifnode.cpp
...
Bad assert in fold_compares code
Reviewed-by: kvn, vlivanov
2015-05-12 09:41:12 +02:00
Roland Westrelin
a9cdbd0407
8076188: Optimize arraycopy out for non escaping destination
...
If the destination of an arraycopy is non escaping, the arraycopy may be optimized out
Reviewed-by: kvn, vlivanov
2015-05-12 10:27:50 +02:00
Roland Westrelin
3cdae26a75
8078426: mb/jvm/compiler/InterfaceCalls/testAC2 - assert(predicate_proj == 0L) failed: only one predicate entry expected
...
Split if finds predicates on several incoming paths when unswitched's loops are optimized out
Reviewed-by: kvn
2015-04-29 14:43:12 -07:00
Roland Westrelin
71e31ee0b9
8073480: C2 should optimize explicit range checks
...
Explicit range checks should be recognized by C2
Reviewed-by: kvn, vlivanov
2015-03-17 10:06:31 +01:00
Goetz Lindenmaier
d4d8ef4585
8071996: split_if accesses NULL region of ConstraintCast
...
Reviewed-by: kvn
2015-01-30 12:53:56 +01:00
Roland Westrelin
d2891a37e7
8027626: assert(Opcode() != Op_If || outcnt() == 2) failed: bad if #1
...
IGVN encounters IfNode with single projection when optimizing dying subgraph
Reviewed-by: kvn
2015-01-08 11:00:38 +01:00
Roland Westrelin
caa8dcea64
8066103: C2's range check smearing allows out of bound array accesses
...
Range check smearing uncorrectly adjust first range check in a list of range checks to cover all of them
Reviewed-by: jrose, kvn, iveresov
2014-12-09 18:49:13 +01:00
Igor Veresov
8ed4cb5a02
8054883: Segmentation error while running program
...
Fix pattern matching of range check
Reviewed-by: kvn
2014-08-13 17:37:11 -07: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
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
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
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
Christian Thalinger
b90addac58
8020750: Node::get_int: guarantee(t != NULL) failed: must be con
...
Reviewed-by: kvn, roland
2013-10-09 11:05:17 -07:00
Rickard Bäckman
441f1d74cf
8024924: Intrinsify java.lang.Math.addExact
...
Reviewed-by: kvn, twisti
2013-09-27 08:39:19 +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
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
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
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
dd43791e4a
7070134: Hotspot crashes with sigsegv from PorterStemmer
...
Do not move data nodes which are attached to a predicate test to a dominating test.
Reviewed-by: never
2011-07-26 19:35:23 -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
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
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
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
Kevin Brown
7548b8eed5
6915110: IfNode::up_one_dom moves beyond RootNode bug in src/share/vm/opto/ifnode.cpp
...
Check RootNode before check Loop in IfNode::up_one_dom().
Reviewed-by: never
2010-01-08 09:42:31 -08:00
Changpeng Fang
35ca20c546
Merge
2009-10-16 14:08:44 -07:00
Vladimir Kozlov
998bcbaf4b
6889300: assert(i != k || is_new || i->outcnt() > 0, "don't return dead nodes")
...
PhiNode::Ideal() should return TOP for Phi node with no users.
Reviewed-by: never, jrose
2009-10-13 22:32:31 -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
Vladimir Kozlov
c3efa899b6
6851742: (EA) allocation elimination doesn't work with UseG1GC
...
Fix eliminate_card_mark() to eliminate G1 pre/post barriers.
Reviewed-by: never
2009-07-16 14:10:42 -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
Xiomara Jayasena
76df5ec473
6754988: Update copyright year
...
Update for files that have been modified starting July 2008
Reviewed-by: ohair, tbell
2008-10-02 19:58:19 -07:00
Tom Rodriguez
7b4a7f7bdc
6712835: Server compiler fails with assertion (loop_count < K,"infinite loop in PhaseIterGVN::transform")
...
Reviewed-by: kvn
2008-07-25 11:32:56 -07:00