1181 Commits

Author SHA1 Message Date
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
Vladimir Kozlov
69f9ddee90 6791178: Specialize for zero as the compressed oop vm heap base
Use zero based compressed oops if java heap is below 32gb and unscaled compressed oops if java heap is below 4gb.

Reviewed-by: never, twisti, jcoomes, coleenp
2009-03-12 10:37:46 -07:00
Xiomara Jayasena
2be2e027b0 6814575: Update copyright year
Update copyright for files that have been modified in 2009, up to 03/09

Reviewed-by: katleman, tbell, ohair
2009-03-09 13:28:46 -07:00
Christian Thalinger
89cea91c48 6797305: Add LoadUB and LoadUI opcode class
Add a LoadUB (unsigned byte) and LoadUI (unsigned int) opcode class so we have these load optimizations in the first place and do not need to handle them in the matcher.

Reviewed-by: never, kvn
2009-03-09 03:17:11 -07:00
Vladimir Kozlov
3e2ae68252 6812721: Block's frequency should not be NaN
Set MIN_BLOCK_FREQUENCY block's frequency when calculated block's frequency is NaN

Reviewed-by: never
2009-03-03 18:25:57 -08: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
Vladimir Kozlov
67a5668b16 6811267: Fix for 6809798 broke linux build
Fix method's declaration.

Reviewed-by: phh, twisti
2009-02-27 08:34:19 -08:00
Vladimir Kozlov
9b31d58b98 6809798: SafePointScalarObject node placed into incorrect block during GCM
Replace the control edge of a pinned node before scheduling.

Reviewed-by: never
2009-02-26 14:26:02 -08:00
Vladimir Kozlov
b07ac51bf3 6791572: assert("duplicating node that's already been matched")
Mark inputs for an address expression as shared if there are other uses besides address expressions.

Reviewed-by: never
2009-02-23 16:03:19 -08:00
Vladimir Kozlov
dc3008a513 6802499: EA: assert(false,"unknown node on this path")
Add missing checks for SCMemProj node in Escape analysis code.

Reviewed-by: never
2009-02-19 17:38:53 -08:00
Vladimir Kozlov
73e8e582ba 6807084: AutoBox elimination is broken with compressed oops
Add checks for DecodeN nodes into AutoBox elimination code.

Reviewed-by: never
2009-02-18 13:53:42 -08:00
Vladimir Kozlov
681eb89b31 Merge 2009-02-17 14:30:24 -08:00
Christian Thalinger
dd25f39709 6805724: ModLNode::Ideal() generates functionally incorrect graph when divisor is any (2^k-1) constant
C2, ModLNode::Ideal() generates functionally incorrect graph when divisor is any (2^k-1) constant.

Reviewed-by: rasbold
2009-02-16 07:19:26 -08:00
Christian Thalinger
a2ed00b650 6800154: Add comments to long_by_long_mulhi() for better understandability
This patch adds a comment pointing to the Hacker's Delight version of the algorithm plus a verbatim copy of it.  Furthermore it adds inline comments.

Reviewed-by: kvn, jrose
2009-02-13 09:09:35 -08:00
Vladimir Kozlov
2f2589d2dc 6791852: assert(b->_nodes[insidx] == n,"got insidx set incorrectly")
Move the CreateEx up before each round of IFG construction

Reviewed-by: never, phh
2009-02-06 13:31:03 -08:00
Vladimir Kozlov
94a461f4cb 6799693: Server compiler leads to data corruption when expression throws an Exception
Use merged memory state for an allocation's slow path.

Reviewed-by: never
2009-02-05 14:43:58 -08:00
Tom Rodriguez
275a0bfb42 6793828: G1: invariant: queues are empty when activated
Reviewed-by: jrose, kvn
2009-02-05 11:42:10 -08:00
Tom Rodriguez
67f20d82c9 6442502: assert(bits,"Use TypePtr for NULL") on linux-x86
Reviewed-by: kvn
2009-02-04 23:17:38 -08:00
Christian Thalinger
ecbdf3bb83 6795362: 32bit server compiler leads to wrong results on solaris-x86
The C2 compiler leads to wrong results on solaris-i486 (32-bit) for a testcase given in the CR.

Reviewed-by: never, rasbold
2009-02-03 01:39:12 -08:00
Christian Thalinger
3b8452da93 6796746: rename LoadC (char) opcode class to LoadUS (unsigned short)
Renaming LoadC to LoadUS would round up the planned introduction of LoadUB and LoadUI.

Reviewed-by: phh, kvn
2009-01-26 16:22:12 +01:00
Vladimir Kozlov
ae8aa00398 6794939: assert(_base == OopPtr,"subclass must override cast_to_ptr_type")
Fix the assert in TypeKlassPtr::cast_to_ptr_type().

Reviewed-by: never
2009-01-21 11:18:38 -08:00
Tom Rodriguez
532cc3cef8 6788347: C2Compiler crash 6u7
Reviewed-by: kvn
2009-01-14 14:12:00 -08:00
Tom Rodriguez
d9a391aad9 Merge 2009-01-13 14:02:19 -08:00
Tom Rodriguez
a3d528cc30 6791132: bad control in autobox split code
Reviewed-by: kvn
2009-01-13 11:43:20 -08:00
Vladimir Kozlov
78f5dc395e 6784930: server jvm fails with assert(!n->is_SpillCopy(),"")
Set minimum block frequency MIN_BLOCK_FREQUENCY 1.e-35f.

Reviewed-by: never, rasbold
2009-01-13 11:10:00 -08:00