721 Commits

Author SHA1 Message Date
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
Coleen Phillimore
76f79d82ad Merge 2009-01-09 14:39:07 -05:00
Vladimir Kozlov
49ee6acaa2 6782232: assert("CreateEx must be first instruction in block" )
Add the missing check for CreateEx. Add new notproduct flag VerifyRegisterAllocator.

Reviewed-by: never
2009-01-07 11:04:45 -08:00
Xiaobin Lu
f05b009ce8 6781583: Hotspot build fails on linux 64 bit platform with gcc 4.3.2
Fixed the wrong cast between types since more restrictions are imposed by gcc 4.3.2

Reviewed-by: jcoomes, acorn, phh, never
2008-12-24 19:13:53 -08:00
Erik Trimble
ac1f463988 Merge 2008-12-20 09:58:36 -08:00
Vladimir Kozlov
744c80add4 6787050: assert(n->in(0) == 0L,"no control") with UseCompressedOops on sparcv9
Relax the assert for Sparc.

Reviewed-by: never
2008-12-18 11:26:22 -08:00
Vladimir Kozlov
29488f1216 6782820: Server VM fails with "unhandled implicit exception in compiled code"
Restore the code which sets a control edge for a klass load node.

Reviewed-by: never
2008-12-16 12:23:39 -08:00
Xiomara Jayasena
99f0eac1a2 6785258: Update copyright year
Update copyright for files that have been modified starting July 2008 to Dec 2008

Reviewed-by: katleman, ohair, tbell
2008-12-15 16:55:11 -08:00
Vladimir Kozlov
f2f18a01e5 6775880: EA +DeoptimizeALot: assert(mon_info->owner()->is_locked(),"object must be locked now")
Create new "eliminated" BoxLock node for monitor debug info when corresponding locks are eliminated.

Reviewed-by: never
2008-12-03 13:41:37 -08:00
Vladimir Kozlov
43051c98f3 6773078: UseCompressedOops: assert(kid == 0L || s->_leaf->in(0) == 0L,"internal operands have no control")
Don't set the control edge of a klass load node.

Reviewed-by: never
2008-11-18 14:47:36 -08:00
Vladimir Kozlov
893d1c4148 6766316: assert(!nocreate,"Cannot build a phi for a block already parsed.")
Don't use the invariant local information if there are irreducible loops.

Reviewed-by: never
2008-11-18 12:40:28 -08:00