191 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
Nils Eliasson
a51ff63df7 Merge 2015-11-24 10:30:23 +01:00
Kim Barrett
e8c5bc2024 8143014: Access PtrQueue member offsets through derived classes
Moved accessors to derived classes and updated callers.

Reviewed-by: tschatzl, jmasa, twisti
2015-11-17 16:40:52 -05:00
Jesper Wilhelmsson
1a5787d42e Merge 2015-11-05 19:31:57 +01:00
Jan Civlin
0485593fbc 8139340: SuperWord enhancement to support vector conditional move (CMovVD) on Intel AVX cpu
Emit vector conditional moves

Reviewed-by: kvn
2015-10-26 19:33:31 -07:00
Nils Eliasson
5a5faf94bf 8137167: JEP165: Compiler Control: Implementation task
Compiler Control JEP

Reviewed-by: roland, twisti, zmajo, simonis
2015-10-20 18:07:28 +02:00
Goetz Lindenmaier
83b3b21342 8139040: Fix initializations before ShouldNotReachHere() etc. and enable -Wuninitialized on linux
Reviewed-by: stuefe, coleenp, roland
2015-10-22 13:07:10 -04:00
Dean Long
344a9becee Merge 2015-10-17 19:40:30 -04:00
Jesper Wilhelmsson
e75e2e04f7 Merge 2015-10-07 01:03:24 +02:00
Christian Thalinger
16526e000e 8136421: JEP 243: Java-Level JVM Compiler Interface
Reviewed-by: ihse, alanb, roland, coleenp, iveresov, kvn, kbarrett
2015-10-08 12:49:30 -10:00
Zoltan Majo
fab17a4e67 8137160: Use Compile::live_nodes instead of Compile::unique() in appropriate places -- followup
Change two code locations to use live_nodes() instead of unique() for allocating memory. Adjust comments.

Reviewed-by: kvn
2015-10-08 12:10:19 +02:00
David Lindholm
1e71f67736 8080775: Better argument formatting for assert() and friends
Reviewed-by: kbarrett, pliden
2015-09-29 11:02:08 +02:00
Nils Eliasson
2f9e32256d Merge 2015-11-13 13:31:48 +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
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
Michael Berg
d49d1ea740 8134802: LCM register pressure scheduling
Calculate register pressure in a block to help instructions scheduling.

Reviewed-by: kvn, dlong
2015-09-16 13:16:17 -07: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
Tobias Hartmann
e834a48100 8130309: Need to bailout cleanly if creation of stubs fails when codecache is out of space
Check for failed expansion of stub section in code buffer and bailout.

Reviewed-by: kvn, adinn, dlong, roland, twisti
2015-07-29 08:05:21 +02:00
Vladimir Ivanov
90a42c2491 8074551: GWT can be marked non-compilable due to deopt count pollution
Reviewed-by: kvn
2015-06-11 14:19:40 +03:00
Michael C Berg
4fca8dbb1f 8076276: Add support for AVX512
Reviewed-by: kvn, roland
2015-05-08 11:49:20 -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
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
Michael C Berg
9e55e44c85 8074981: Integer/FP scalar reduction optimization
Add scalar reduction optimization to C2 to take advantage of vector instructions in modern x86 CPUs.

Reviewed-by: kvn, twisti
2015-04-01 18:07:50 -07:00
Vladimir Ivanov
dad72d8a2b Merge 2015-02-24 07:39:22 -08: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
Jesper Wilhelmsson
d7f5fccbc6 Merge 2015-02-16 21:24:39 +01:00
Stefan Karlsson
4913ad5d7d 8072911: Remove includes of oop.inline.hpp from .hpp files
Reviewed-by: brutisso, coleenp, jwilhelm, simonis, dholmes
2015-02-13 14:37:35 +01:00
Vladimir Ivanov
7227e9ba53 8063137: Never-taken branches should be pruned when GWT LambdaForms are shared
Reviewed-by: jrose, kvn
2015-01-29 10:25:59 -08:00
Roland Westrelin
186ca57447 8055530: assert(_exits.control()->is_top() || !_gvn.type(ret_phi)->empty()) failed: return value must be well defined
Concurrent class loading causes return phi to become top

Reviewed-by: kvn
2014-12-22 11:21:20 +01:00
Vladimir Ivanov
5a00d5f6b5 8058148: MaxNodeLimit and LiveNodeCountInliningCutoff
Reviewed-by: kvn, roland
2014-11-24 07:29:03 -08:00
Tobias Hartmann
9adb455ba8 8065339: Failed compilation does not always trigger a JFR event 'CompilerFailure'
CompilerFailure JFR event should be triggered in ciEnv.

Reviewed-by: kvn
2014-11-24 08:48:15 +01:00
Albert Noll
6520320d1a 8046809: vm/mlvm/meth/stress/compiler/deoptimize CodeCache is full
Use separate sweeper thread; enables more aggressive sweeping.

Reviewed-by: kvn, jrose
2014-10-24 14:25:46 +02:00
Zoltan Majo
bde7fd61b4 8060215: per-method PrintIdealGraphLevel
Use CompileCommand=option to set PrintIdealGraphLevel on a per-method level. Introduce the PrintIdealGraph develop to control/check if printing the graph is enabled for any method

Reviewed-by: kvn, dlong, thartmann
2014-10-15 10:51:43 +02:00
Albert Noll
82171aa7ab 8059331: Print additional information for the assert in Compile::start()
Add additional output that shows the failure reason

Reviewed-by: kvn
2014-10-06 06:51:37 -07:00
Tobias Hartmann
ea755702aa 8059468: Fix PrintCodeCache output changed by JDK-8059137
Change output of PrintCodeCache to print "CodeCache" instead of "Code Cache" and change name of non-method code heap to non-nmethod code heap.

Reviewed-by: vlivanov, anoll
2014-09-30 15:44:43 +02:00
Aleksey Shipilev
f824f8c3cb 8058968: Compiler time traces should be improved
Use CITime consistently, make C2 to report to CompilerBroker, more probes.

Reviewed-by: vlivanov, jrose
2014-09-25 12:10:57 +04:00
Tobias Hartmann
cd01de591a 8015774: Add support for multiple code heaps
Support for segmentation of the code cache. Separate code heaps are created and used to store code of different types.

Reviewed-by: kvn, iveresov, roland, anoll, egahlin, sla
2014-09-17 08:00:07 +02:00
Aleksey Shipilev
13329b5040 8050147: StoreLoad barrier interferes with stack usages
Reviewed-by: jrose, kvn, drchase
2014-09-04 13:11:25 +04:00
Vladimir Kozlov
b86cece468 Merge 2014-08-15 12:27:50 -07:00
Zhengyu Gu
d595244c27 Merge 2014-08-11 07:20:39 -07: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
Zhengyu Gu
f0cf82f571 8046598: Scalable Native memory tracking development
Enhance scalability of native memory tracking

Reviewed-by: coleenp, ctornqvi, gtriantafill
2014-08-07 12:18:58 -07: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
Albert Noll
e4e0c214ff Merge 2014-07-25 10:04:36 +00: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
Coleen Phillimore
c9b2bc62c9 Merge 2014-07-14 10:15:21 -04:00
Goetz Lindenmaier
25f33c005d 8049325: Introduce and clean up umbrella headers for the files in the cpu subdirectories
Introduce and clean up umbrella headers for the files in the cpu subdirectories.

Reviewed-by: lfoltan, coleenp, dholmes
2014-07-04 11:46:01 +02:00
Tobias Hartmann
fa6b220619 8022968: Some codecache allocation failures don't result in invoking the sweeper
Add calls to CompileBroker::handle_full_code_cache() or fail gracefully whenever allocation in the code cache fails.

Reviewed-by: iveresov, vlivanov
2014-07-03 08:46:44 +02:00
Tobias Hartmann
2626aed785 8008321: compile.cpp verify_graph_edges uses bool as int
The dead_nodes counter in verify_graph_edges(..) has the type bool but is used as int.

Reviewed-by: roland, anoll
2014-06-20 08:14:30 +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