72 Commits

Author SHA1 Message Date
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
Hui Shi
3767315e75 8144993: Elide redundant memory barrier after AllocationNode
Elide memory barrier for AllocationNode when it doesn't escape in initializer and has an MemBarRelease node at exit of initializer method.

Reviewed-by: aph, mdoerr, goetz, kvn, asiebenborn
2015-12-27 05:15:14 -08:00
Vladimir Ivanov
d60a09e9c5 8072008: Emit direct call instead of linkTo* for recursive indy/MH.invoke* calls
Reviewed-by: jrose, dlong, aph, forax
2015-12-04 23:46:19 +03:00
Aleksey Shipilev
ac09d8a135 8140650: Method::is_accessor should cover getters and setters for all types
Reviewed-by: vlivanov, coleenp, sgehwolf
2015-11-11 01:27:36 +03:00
Roland Westrelin
0baf2f7e8a 8130847: Cloned object's fields observed as null after C2 escape analysis
Eliminated instance/array written to by an array copy variant must be correctly initialized when reallocated at a deopt

Reviewed-by: kvn, vlivanov
2015-08-15 02:54:18 +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
Coleen Phillimore
ee01e4e88b Merge 2015-06-24 21:58:05 -04:00
Bill Pittore
304b59b0c8 8081202: Hotspot compile warning: "Invalid suffix on literal; C++11 requires a space between literal and identifier"
Need to add a space between macro identifier and string literal

Reviewed-by: stefank, dholmes, kbarrett
2015-06-24 12:12:25 -04:00
Roland Westrelin
fd10da6423 8086016: closed/java/text/Format/NumberFormat/BigDecimalCompatibilityTest.java is crashing
Trying to transform ArrayCopyNode in dying part of the graph

Reviewed-by: kvn
2015-06-09 12:09:03 +02:00
Roland Westrelin
d7522fb084 8086046: escape analysis generates incorrect code as of B67
Load bypasses arraycopy that sets the value after the ArrayCopyNode is expanded

Reviewed-by: kvn
2015-06-12 14:10:17 +02:00
Roland Westrelin
0296c2894b 8080699: Assert failed: Not a Java pointer in JCK test
Eliminated arraycopy node still reachable through exception edges

Reviewed-by: kvn
2015-05-22 09:14:18 +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
88848bd9e8 6912521: System.arraycopy works slower than the simple loop for little lengths
Convert small array copies to series of loads and stores

Reviewed-by: kvn, vlivanov
2015-02-18 18:14:07 +01:00
David Chase
46fa321d63 8069412: Locks need better debug-printing support
Added better debug-printing support and enhanced LogCompilation tool

Reviewed-by: kvn, roland, dholmes
2015-02-17 13:54:53 -05:00
Roland Westrelin
43bcdf4017 8071533: assert(n0->is_Call()) failed: expect a call here
Remove_dead_region() call missing from ArrayCopyNode::Ideal()

Reviewed-by: kvn, vlivanov
2015-01-30 15:23:41 +01:00
Roland Westrelin
2e82794bfa 6700100: optimize inline_native_clone() for small objects with exact klass
Optimize small instance clones as loads/stores

Reviewed-by: kvn, iveresov
2014-12-16 13:49:36 +01:00
Vladimir Ivanov
5fd1e54fc1 8067338: compiler/debug/TraceIterativeGVN.java segfaults
Reviewed-by: kvn
2014-12-19 16:42:40 -08:00
Vladimir Ivanov
916697af2c 8036748: assert(_base == Int) failed: Not an Int w/ -XX:+TraceIterativeGVN
Reviewed-by: kvn, roland
2014-10-24 09:14:41 -07:00
Roland Westrelin
fa27000f3c 8055910: closed/java/util/Collections/CheckedCollections.java failed with ClassCastException not thrown
Missing subtype check for Arrays.copyOf intrinsic

Reviewed-by: kvn, iveresov
2014-08-29 16:32:29 +02:00
Roland Westrelin
400f0f7a8f 8055153: nsk/stress/jck60/jck60014 crashes on sparc
Missing control for LoadRange and LoadKlass nodes created during arraycopy node expansion

Reviewed-by: kvn, iveresov
2014-08-19 17:23:38 +02:00
Roland Westrelin
a56ade07c7 7173584: Implement arraycopy as a macro node
Delay the conversion of arraycopy to stub calls to macro expansion

Reviewed-by: kvn, iveresov
2014-08-11 14:12:51 +02:00
Roland Westrelin
355f6eb4ae 8046698: assert(false) failed: only Initialize or AddP expected macro.cpp:943
PhiNode inserted between AllocateNode and Initialization node confuses allocation elimination

Reviewed-by: kvn
2014-08-02 07:06:08 +02:00
Zoltan Majo
1d44fa46f0 8050860: Cleanup TypeTuple and TypeFunc
Declared fields TypeFunc::_domain, TypeFunc::_range, TypeTuple::_cnt and TypeTuple::_fields private, changed direct accesses to fields to use accessor methods.

Reviewed-by: kvn, vlivanov
2014-07-24 09:15:38 +02:00
Roland Westrelin
2838bcc3bf 8026796: Make replace_in_map() on parent maps generic
Propagate node replacements along control flow edges to callers

Reviewed-by: kvn, vlivanov
2014-06-10 13:37:16 +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
Roland Westrelin
f5adc57f94 8032410: compiler/uncommontrap/TestStackBangRbp.java times out on Solaris-Sparc V9
Make compiled code bang the stack by the worst case size of the interpreter frame at deoptimization points.

Reviewed-by: twisti, kvn
2014-04-01 09:36:49 +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
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
Goetz Lindenmaier
9c10079653 8030863: PPC64: (part 220): ConstantTableBase for calls between args and jvms
Add ConstantTableBase node edge after parameters and before jvms. Adapt jvms offsets.

Reviewed-by: kvn
2013-12-20 13:51:14 +01:00
Goetz Lindenmaier
b4ded0bc2e 8029025: PPC64 (part 203): opto: Move static _in_dump_cnt to Compile object
Also introduces the compiler oracle 'option' feature for PrintAssembly.

Reviewed-by: kvn
2013-11-22 12:14:09 -08:00
Vladimir Kozlov
ccfb92c6a9 8012972: Incremental Inlining should support scalar replaced object in debug info
Store in _first_index not absolute index but an index relative to the last (youngest) jvms->_scloff value

Reviewed-by: roland, twisti
2013-08-23 11:41:37 -07: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
Goetz Lindenmaier
44cdae9a57 8005055: pass outputStream to more opto debug routines
Pass the output stream to node->dump() and everything reachable from there

Reviewed-by: kvn
2013-01-22 11:31:25 -08: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
Roland Westrelin
b1c3e5ccc6 8005031: Some cleanup in c2 to prepare for incremental inlining support
Collection of small changes to prepare for incremental inlining.

Reviewed-by: twisti, kvn
2012-12-18 14:55:25 +01: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
Jon Masamitsu
5c58d27aac 6964458: Reimplement class meta-data storage to use native memory
Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes

Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
2012-09-01 13:25:18 -04:00
Christian Thalinger
12901d0e5b 7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI

Remove assembly code for JDK 7 chained method handles

Co-authored-by: John Rose <john.r.rose@oracle.com>
Co-authored-by: Michael Haupt <michael.haupt@oracle.com>
Reviewed-by: jrose, twisti, kvn, mhaupt
2012-07-24 10:51:00 -07:00
Vladimir Kozlov
e5f92a2396 7147744: CTW: assert(false) failed: infinite EA connection graph build
Rewrote Connection graph construction code in EA to reduce time spent there.

Reviewed-by: never
2012-03-12 10:46:47 -07:00
Vladimir Kozlov
337666a80c 7128355: assert(!nocreate) failed: Cannot build a phi for a block already parsed
Do not common BoxLock nodes and avoid creating phis of boxes.

Reviewed-by: never
2012-01-12 14:45:04 -08:00
Vladimir Kozlov
791afc42da 7128352: assert(obj_node == obj) failed
Compare uncasted object nodes.

Reviewed-by: never
2012-01-10 18:05:38 -08:00
Vladimir Kozlov
94927c382b 7125896: Eliminate nested locks
Nested locks elimination done before lock nodes expansion by looking for outer locks of the same object.

Reviewed-by: never, twisti
2012-01-07 13:26:43 -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
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
cc513a8564 6966411: escape.cpp:450 assert(base->Opcode() == Op_ConP
Execute IGVN optimization before and after Escape Analysis

Reviewed-by: never
2010-07-02 17:30:30 -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
Tom Rodriguez
9db2092b1b 6892658: C2 should optimize some stringbuilder patterns
Reviewed-by: kvn, twisti
2009-11-12 09:24:21 -08:00
Vladimir Kozlov
022d690049 6892186: SA does not dump debug info for scalar replaced objects
Implement scalar replaced objects debug info dump in SA.

Reviewed-by: twisti
2009-10-21 09:15:33 -07:00