721 Commits

Author SHA1 Message Date
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
Vladimir Kozlov
dac98bcc0d 8023472: C2 optimization breaks with G1
Set control edge for previous value load in G1 pre-barrier

Reviewed-by: twisti
2013-08-23 18:04:35 -07: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
Rickard Bäckman
a231c31f38 8022675: Redundant class init check
Reviewed-by: kvn, twisti
2013-08-08 03:16:56 +02:00
Vladimir Kozlov
4ee53ef4e3 8021898: Broken JIT compiler optimization for loop unswitching
Fix method clone_projs() to clone all related MachProj nodes.

Reviewed-by: roland, adlertz
2013-08-16 14:11:40 -07: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
20f7d1a82a 8022993: Convert MAX_UNROLL constant to LoopMaxUnroll C2 flag
Replace MAX_UNROLL constant with new C2 LoopMaxUnroll flag.

Reviewed-by: roland
2013-08-14 10:21:26 -07:00
Niclas Adlertz
bfe8385fa9 8022284: Hide internal data structure in PhaseCFG
Hide private node to block mapping using public interface

Reviewed-by: kvn, roland
2013-08-07 17:56:19 +02:00
Morris Meyer
80b04bb48e Merge 2013-07-24 13:54:03 -07:00
Calvin Cheung
1a1e83be6a 8004872: Early loading of HashMap and StringValue under -XX:+AggressiveOpts can be removed
This fix also removes the -XX:+UseStringCache option

Reviewed-by: dholmes, acorn, iklam
2013-07-18 14:57:51 -07:00
Vladimir Kozlov
1338c067aa 8007898: Incorrect optimization of Memory Barriers in Matcher::post_store_load_barrier()
Generate one "fat" membar instead of set of barriers for volitile store

Reviewed-by: roland
2013-07-12 14:03:10 -07:00
David Chase
9a359984c2 7088419: Use x86 Hardware CRC32 Instruction with java.util.zip.CRC32
Add intrinsics using new instruction to interpreter, C1, C2, for suitable x86; add test

Reviewed-by: kvn, twisti
2013-07-02 20:42:12 -04:00
Vladimir Kozlov
fc1302ea95 8019247: SIGSEGV in compiled method c8e.e.t_.getArray(Ljava/lang/Class;)[Ljava/lang/Object
Undo recent changes (and add more comments) in Ideal_allocation().

Reviewed-by: roland
2013-07-02 10:30:49 -07:00
Niclas Adlertz
19d56715fa 8017243: 8001345 is incomplete
Replaces unused decodeN at MemBarAcquire with its corresponding loadN if loadN is used at more than one place.

Reviewed-by: kvn, twisti
2013-06-25 12:07:07 -07:00
Vladimir Kozlov
175419c053 Merge 2013-06-20 16:08:11 -07:00
Niclas Adlertz
556b4925b3 8001345: VM crashes with assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc
Remove unnecessary LoadN / DecodeN nodes at MemBarAcquire nodes.

Reviewed-by: kvn, roland
2013-06-19 00:41:56 +02:00
Vladimir Kozlov
55f6f35697 Merge 2013-06-14 16:33:34 -07:00
David Chase
219121826e 8014959: assert(Compile::current()->live_nodes() < (uint)MaxNodeLimit) failed: Live Node limit exceeded limit
Insert extra checks and bailouts for too many nodes

Reviewed-by: kvn
2013-06-11 16:34:34 -04:00
Calvin Cheung
53448fdbed 8014431: cleanup warnings indicated by the -Wunused-value compiler option on linux
Co-authored-by: Jeremy Manson <jeremymanson@google.com>
Reviewed-by: dholmes, coleenp
2013-06-13 22:02:40 -07: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
Niclas Adlertz
f4682b75e5 8005956: C2: assert(!def_outside->member(r)) failed: Use of external LRG overlaps the same LRG defined in this block
Disable re-materialization of reaching definitions (which have live inputs) for phi nodes when spilling.

Reviewed-by: twisti, kvn
2013-06-03 12:39:33 -07:00
Roland Westrelin
6ae26f2e94 8010460: Interpreter on some platforms loads ConstMethod::_max_stack and misses extra stack slots for JSR 292
ConstMethod::max_stack() doesn't account for JSR 292 appendix.

Reviewed-by: kvn
2013-04-24 11:49:38 +02:00
Vladimir Kozlov
ff008d0615 8015441: runThese crashed with assert(opcode == Op_ConP || opcode == Op_ThreadLocal || opcode == Op_CastX2P ..) failed: sanity
Relax the assert to accept any raw ptr types.

Reviewed-by: roland
2013-05-31 13:54:47 -07:00
Vladimir Kozlov
ea54d8f3f0 8014811: loopTransform.cpp assert(cmp_end->in(2) == limit) failed
Stop current iteration of loop opts if partial_peel() failed and it created node clones outside processed loop.

Reviewed-by: roland
2013-05-22 09:02:43 -07:00
Christian Thalinger
c6c7f3439e Merge 2013-05-16 13:47:55 -07:00
Yumin Qi
98151c30c8 8012902: remove use of global operator new - take 2
The fix of 8010992, disable use of global operator new and new[] which caused failure on some tests. This takes two of the bugs also add ALLOW_OPERATOR_NEW_USAGE to prevent crash for third party code calling operator new of jvm on certain platforms.

Reviewed-by: coleenp, dholmes, zgu
2013-05-14 09:41:12 -07:00
Vladimir Kozlov
2ed62e808c 8014286: failed java/lang/Math/DivModTests.java after 6934604 changes
Corrected escape state for the result of boxing method. Added force inlining executed boxing methods.

Reviewed-by: twisti
2013-05-13 14:36:39 -07:00
Vladimir Kozlov
d7176bf7f8 8014189: JVM crash with SEGV in ConnectionGraph::record_for_escape_analysis()
Add NULL checks and asserts for Type::make_ptr() returned value.

Reviewed-by: twisti
2013-05-09 17:28:04 -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
Vladimir Kozlov
1763afaec5 Merge 2013-05-03 15:35:30 -07:00
Mikael Gerdin
94677d4faf Merge 2013-05-02 16:41:09 -07:00
Dean Long
9c966207ef Merge 2013-04-24 21:11:02 -04:00
Goetz Lindenmaier
3f42e9e118 8003853: specify offset of IC load in java_to_interp stub
Refactored code to allow platform-specific differences

Reviewed-by: dlong, twisti
2013-04-24 20:55:28 -04:00
Martin Doerr
19d99e3d92 8012715: G1: GraphKit accesses PtrQueue::_index as int but is size_t
In graphKit INT operations were generated to access PtrQueue::_index which has type size_t. This is 64 bit on 64-bit machines. No problems occur on little endian machines as long as the index fits into 32 bit, but on big endian machines the upper part is read, which is zero. This leads to unnecessary branches to the slow path in the runtime.

Reviewed-by: twisti, johnc
2013-04-24 14:48:43 -07:00
Gilles Duboscq
34da1742ef 8012292: optimized build with GCC broken
Some #ifndef PRODUCT should be #ifdef ASSERT

Reviewed-by: kvn, twisti
2013-04-24 14:26:09 +02:00
Bharadwaj Yadavalli
b32dc11760 Merge 2013-04-19 03:13:04 -04:00
Jiangli Zhou
2f703b2613 Merge 2013-04-15 21:25:23 -04:00
Nils Eliasson
92ef5fe748 8006952: Slow VM due to excessive code cache freelist iteration
Remove continous free block requirement

Reviewed-by: kvn
2013-04-11 13:57:44 +02:00
Niclas Adlertz
09fdc18edc 8011621: live_ranges_in_separate_class.patch
Reviewed-by: kvn, roland
2013-04-16 10:08:41 +02:00
David Chase
25c31f3742 6443505: Ideal() function for CmpLTMask
Repair wrong code generation, added new matching rule

Reviewed-by: kvn, twisti
2013-04-12 19:14:47 -07:00
Jiangli Zhou
56370657b9 8010862: The Method counter fields used for profiling can be allocated lazily
Allocate the method's profiling related metadata until they are needed.

Reviewed-by: coleenp, roland
2013-04-09 17:17:41 -04:00
Daniel D. Daugherty
78339229bb Merge 2013-04-05 10:38:08 -07:00
Mikael Vidstedt
eeb83733a6 8003310: Enable -Wunused-function when compiling with gcc
Add the -Wunused-function flag and remove a number of unused functions.

Reviewed-by: dholmes, coleenp, kvn
2013-04-04 10:01:26 -07:00
Chuck Rasbold
93c40233d6 8010437: guarantee(this->is8bit(imm8)) failed: Short forward jump exceeds 8-bit offset
Fix shorten_branches() to accurately count an initial nop that may be inserted in a block that starts with a safepoint.

Reviewed-by: kvn
2013-04-03 15:00:55 -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
Niclas Adlertz
143a0039a3 8010281: Remove code that is never executed
Reviewed-by: kvn, roland
2013-03-26 10:05:33 +01:00
Christian Thalinger
6964a690ed 7198429: need checked categorization of caller-sensitive methods in the JDK
Reviewed-by: kvn, jrose
2013-03-25 17:13:26 -07:00
Bharadwaj Yadavalli
6132db352d 8009539: JVM crash when run lambda testng tests
Ensure class pointer is non-null before dereferencing it to check if it is loaded.

Reviewed-by: kvn
2013-03-22 07:58:55 -07:00
Morris Meyer
a62f572a50 8009181: [parfait] Null pointer deference in hotspot/src/share/vm/opto/loopTransform.cpp
Add guarantee() to insert_pre_post_loops()

Reviewed-by: kvn
2013-03-20 07:05:40 -07:00
Morris Meyer
c3114a34ee Merge 2013-03-19 16:31:10 -07:00