205 Commits

Author SHA1 Message Date
Vladimir Kozlov
ab7a29cdcc Merge 2009-08-06 09:37:26 -07:00
Changpeng Fang
3e7e112ee5 6868269: CompileTheWorld assertion failure introduced by the reexecute bit implementation
Improvement on reexecute implementation to fix the assertion failure

Reviewed-by: kvn, never
2009-08-04 21:32:08 -07:00
Changpeng Fang
ae00753bf7 6833129: specjvm98 fails with NullPointerException in the compiler with -XX:DeoptimizeALot
Developed a reexecute logic for the interpreter to reexecute the bytecode when deopt happens

Reviewed-by: kvn, never, jrose, twisti
2009-07-31 17:12:33 -07:00
Vladimir Kozlov
f2ea22a547 6865031: Application gives bad result (throws bad exception) with compressed oops
Produce narrow type for new Phi from the original Phi type.

Reviewed-by: cfang
2009-07-31 12:04:07 -07:00
Erik Trimble
e846382e12 Merge 2009-07-29 16:00:35 -07:00
Xiomara Jayasena
a63ef10004 6862919: Update copyright year
Update copyright for files that have been modified in 2009, up to 07/09

Reviewed-by: tbell, ohair
2009-07-28 12:12:40 -07:00
Christian Thalinger
6dd47535cd 6863155: Server compiler generates incorrect code (x86, long, bitshift, bitmask)
Code compiled with server compiler generates an incorrect result.

Reviewed-by: cfang, never, kvn
2009-07-28 09:02:30 +02:00
Christian Thalinger
714db48492 Merge 2009-07-27 06:15:29 -07:00
Vladimir Kozlov
9387db9948 6851386: assert(b->find_node(def) < j,"uses must follow definitions")
Add additional check for a tight loop.

Reviewed-by: never
2009-07-26 12:59:41 -07:00
Vladimir Kozlov
8dd34cd52f 6860599: nodes limit could be reached during Output phase
Bailout compilation if nodes limit could be reached during Output phase.

Reviewed-by: never, twisti
2009-07-23 14:53:56 -07:00
John R Rose
6515225d49 6862576: vmIntrinsics needs cleanup in order to support JSR 292 intrinsics
Remove useless lazy evaluation of intrinsics; add LAST_COMPILER_INLINE to help categorize them

Reviewed-by: kvn
2009-07-21 16:56:06 -07:00
Christian Thalinger
6b849a12a0 6860920: serialize.cpp shouldn't use objArrayOopDesc::base_offset_in_bytes(T_BYTE)
Serialize.cpp currently uses objArrayOopDesc::base_offset_in_bytes(T_BYTE), which seems to be wrong.

Reviewed-by: coleenp, kvn
2009-07-20 08:20:00 -07:00
Vladimir Kozlov
2e2f60507e 6851282: JIT miscompilation results in null entry in array when using CompressedOops
Get type for new Phi from non dead path.

Reviewed-by: never
2009-07-16 16:29:55 -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
Hiroshi Yamauchi
a24ea182cc 6860469: remix_address_expressions sets incorrect control causing crash in split_if_with_block_post
Co-authored-by: Chuck Rasbold <rasbold@google.com>
Reviewed-by: never, kvn
2009-07-15 13:37:35 -07:00
Vladimir Kozlov
5a1032d9e6 6857661: 64-bit server VM: assert(is_Initialize(),"invalid node class")
Move the secondary raw memory barrier to the correct place in generate_arraycopy().

Reviewed-by: never
2009-07-06 15:53:30 -07:00
Changpeng Fang
7a36ade1ec 6855164: SIGSEGV during compilation of method involving loop over CharSequence
Don not split a block if it contains a FastLockNode with a PhiNode input.

Reviewed-by: kvn, never
2009-07-02 16:18:19 -07:00
Vladimir Kozlov
bb726c6f28 6840775: Multiple JVM crashes seen with 1.6.0_10 through 1.6.0_14
Put missed reference to allocated array in copyOf() intrinsic into OopMap for the call slow_arraycopy().

Reviewed-by: never
2009-07-01 20:22:18 -07:00
Tom Rodriguez
da11e65fa4 6856025: assert(_base >= OopPtr && _base <= KlassPtr,"Not a Java pointer")
Reviewed-by: kvn
2009-07-01 12:22:23 -07:00
Tom Rodriguez
3bdd70fe18 6818666: G1: Type lost in g1 pre-barrier
Reviewed-by: kvn
2009-06-26 13:03:29 -07:00
Christian Thalinger
a9ad90fa87 5057225: Remove useless I2L conversions
The optimizer should be told to normalize (AndL (ConvI2L x) 0xFF) to (ConvI2L (AndI x 0xFF)), and then the existing matcher rule will work for free.

Reviewed-by: kvn
2009-06-26 07:26:10 -07:00
Vladimir Kozlov
8f6070ce0e 6841800: Incorrect boundary values behavior for option -XX:MaxLabelRootDepth=0-6 leads to jvm crash
MaxLabelRootDepth value less then 10 is invalid.

Reviewed-by: never
2009-06-24 12:00:51 -07:00
Chuck Rasbold
2c5f52b511 6837094: False positive for "meet not symmetric" failure
Have the meet not symmetric check recursively do the interface-vs-oop check on array subtypes.

Reviewed-by: jrose
2009-06-23 17:52:29 -07:00
Vladimir Kozlov
7b9d6a79ac 6837472: com/sun/jdi/MonitorFrameInfo.java fails with AggressiveOpts in 6u14
Disable escape analysis when jvmti/debugger is used. Add support for EA ibto SA.

Reviewed-by: never
2009-06-09 16:19:10 -07:00
Changpeng Fang
f981546f2d 6837146: Should perform unswitch before maximally unroll in loop transformation
Move loop unswitch before maximally unroll

Reviewed-by: never
2009-05-28 09:37:18 -07:00
Vladimir Kozlov
802f3552f9 6843752: missing code for an anti-dependent Phi in GCM
Don't place a load below anti-dependent PHI.

Reviewed-by: never, twisti
2009-05-27 12:35:51 -07:00
Vladimir Kozlov
fdb3ca8708 6772683: Thread.isInterrupted() fails to return true on multiprocessor PC
Set the control edge for the field _interrupted load in inline_native_isInterrupted().

Reviewed-by: never
2009-05-21 10:05:36 -07:00
Vladimir Kozlov
e101bdf5df 6836054: java/util/Arrays/CopyMethods.java fails on solaris-sparc with IllegalArgumentException
Do not mark an allocation as scalar replaceable if its actual type in unknown statically.

Reviewed-by: never
2009-05-11 18:30:13 -07:00
Vladimir Kozlov
6202395cb2 6832293: JIT compiler got wrong result in type checking with -server
Check for an object array of interface in CmpPNode::sub().

Reviewed-by: never
2009-05-11 17:59:54 -07:00
Vladimir Kozlov
34ee921399 6788527: Server vm intermittently fails with assertion "live value must not be garbage" with fastdebug bits
Cache Jvmti and DTrace flags used by Compiler.

Reviewed-by: never
2009-05-08 10:44:20 -07:00
Christian Thalinger
1576a9be9e Merge 2009-05-07 00:28:13 -07:00
Christian Thalinger
96139033e6 6837011: SIGSEGV in PhaseIdealLoop in 32bit jvm
The CR's test crashes with SIGSEGV when running with "-server -Xcomp" using using 32bit jvm.

Reviewed-by: kvn, never, rasbold
2009-05-06 12:04:42 -07:00
Christian Thalinger
6a270f9f19 6823354: Add intrinsics for {Integer,Long}.{numberOfLeadingZeros,numberOfTrailingZeros}()
These methods can be instrinsified by using bit scan, bit test, and population count instructions.

Reviewed-by: kvn, never
2009-05-06 00:27:52 -07:00
Changpeng Fang
716c78f080 6833879: Assigning positive zero is ignored when old value is negative zero
Don't perform CMOVE identity optimization for floating point types

Reviewed-by: kvn, never
2009-05-05 11:02:10 -07:00
Changpeng Fang
04fdef79fa 6589834: deoptimization problem with -XX:+DeoptimizeALot
Relocate the stack pointer adjustment to where uncommon_trap is actually inserted for new_array.

Reviewed-by: kvn, jrose
2009-04-23 14:04:24 -07:00
Vladimir Kozlov
273a47426e 6709742: find_base_for_derived's use of Ideal NULL is unsafe causing crashes during register allocation
Create a mach node corresponding to ideal node ConP #NULL specifically for derived pointers.

Reviewed-by: never
2009-04-22 17:03:18 -07:00
John R Rose
34c1d72421 6655646: dynamic languages need dynamically linked call sites
Invokedynamic instruction (JSR 292 RI)

Reviewed-by: twisti, never
2009-04-21 23:21:04 -07:00
Vladimir Kozlov
ca3a3504be 6711117: Assertion in 64bit server vm (flat != TypePtr::BOTTOM,"cannot alias-analyze an untyped ptr")
Delay a memory node transformation if its control or address on IGVN worklist.

Reviewed-by: never
2009-04-07 19:04:24 -07:00
Vladimir Kozlov
014e5cdefb 6826960: C2 Sparc: assert(bb->_nodes(_bb_end)->is_Proj(),"skipping projections after expected call")
Add the check when a Halt node is placed in a separate block.

Reviewed-by: twisti
2009-04-07 10:05:04 -07:00
Vladimir Kozlov
090346b4e8 6823453: DeoptimizeALot causes fastdebug server jvm to fail with assert(false,"unscheduable graph")
Use a HaltNode on the fall through path of the AllocateArrayNode to indicate that it is unreachable if the array length is negative.

Reviewed-by: never, jrose
2009-04-03 13:33:32 -07:00
Tom Rodriguez
4d34a77121 6823454: Oop-typed loadP yields invalid pointer (0x1) on SPECjbb2005 at OSRed method entry
Reviewed-by: kvn, jrose
2009-04-01 11:45:01 -07:00
Changpeng Fang
c0d62ad9e6 6761600: Use sse 4.2 in intrinsics
Use SSE 4.2 in intrinsics for String.{compareTo/equals/indexOf} and Arrays.equals.

Reviewed-by: kvn, never, jrose
2009-03-31 14:07:08 -07:00
Vladimir Kozlov
705188bb7b 6821700: tune VM flags for peak performance
Tune C2 flags default values for performance.

Reviewed-by: never, phh, iveresov, jmasa, ysr
2009-03-30 18:19:31 -07:00
Vladimir Kozlov
68cf08d2c3 6810845: Performance regression in mpegaudio on x64
Used the outer loop frequency in frequencies checks in RA.

Reviewed-by: never, twisti
2009-03-26 15:04:55 -07:00
Tom Rodriguez
a5396e1107 6820510: assertion failure with unloaded class in subnode.cpp
Reviewed-by: kvn
2009-03-24 15:09:52 -07:00
Changpeng Fang
fface2e4ca 6636138: UseSuperWord enabled failure
Fixed SuperWord scheduling of memory operations.

Reviewed-by: kvn, never
2009-03-24 12:19:47 -07:00
Vladimir Kozlov
41463d1d3a Merge 2009-03-19 09:13:24 -07:00
John R Rose
b8dbe8d8f6 6813212: factor duplicated assembly code for general subclass check (for 6655638)
Code in interp_masm, stubGenerator, c1_LIRAssembler, and AD files moved into MacroAssembler.

Reviewed-by: kvn
2009-03-13 18:39:22 -07:00
Christian Thalinger
de67e52949 6378821: bitCount() should use POPC on SPARC processors and AMD+10h
BitCount() should use POPC on SPARC processors where POPC is implemented directly in hardware.

Reviewed-by: kvn, never
2009-03-13 11:35:17 -07:00
Erik Trimble
8d6035660e Merge 2009-03-12 18:16:36 -07:00