50 Commits

Author SHA1 Message Date
Vladimir Kozlov
68f1177f59 7032314: Allow to generate CallLeafNoFPNode in IdealKit
Added CallLeafNoFPNode generation to IdealKit. Added i_o synchronization.

Reviewed-by: never
2011-04-02 09:49:27 -07:00
Christian Thalinger
f51036e9bc 7022998: JSR 292 recursive method handle calls inline themselves infinitely
Reviewed-by: never, kvn
2011-03-28 03:58:07 -07:00
John Coomes
cdd5139d91 Merge 2011-03-24 23:04:36 -07:00
John Coomes
fe899cc10d 6962931: move interned strings out of the perm gen
Reviewed-by: never, coleenp, ysr, jwilhelm
2011-03-22 13:36:33 -07:00
Vladimir Kozlov
3de260da41 7008866: Missing loop predicate for loop with multiple entries
Add predicates when loop head bytecode is parsed instead of when back branch bytecode is parsed.

Reviewed-by: never
2011-03-21 11:28:14 -07:00
Igor Veresov
90a153aa38 6627983: G1: Bad oop deference during marking
Bulk zeroing reduction didn't work with G1, because arraycopy would call pre-barriers on uninitialized oops. The solution is to have version of arraycopy stubs that don't have pre-barriers. Also refactored arraycopy stubs generation on SPARC to be more readable and reduced the number of stubs necessary in some cases.

Reviewed-by: jrose, kvn, never
2011-03-01 14:56:48 -08:00
Vladimir Kozlov
a74bc73598 6942326: x86 code in string_indexof() could read beyond reserved heap space
Copy small (<8) strings on stack if str+16 crosses a page boundary and load from stack into XMM. Back up pointer when loading string's tail.

Reviewed-by: never
2011-02-26 12:10:54 -08:00
Stefan Karlsson
8006fe8f75 6989984: Use standard include model for Hospot
Replaced MakeDeps and the includeDB files with more standardized solutions.

Reviewed-by: coleenp, kvn, kamg
2010-11-23 13:22:55 -08:00
Tom Rodriguez
39d16839d3 6980792: Crash "exception happened outside interpreter, nmethods and vtable stubs (1)"
Reviewed-by: kvn
2010-10-07 21:40:55 -07:00
Christian Thalinger
a4b2fe3b1c 6978355: renaming for 6961697
This is the renaming part of 6961697 to keep the actual changes small for review.

Reviewed-by: kvn, never
2010-08-25 05:27:54 -07:00
John R Rose
c7e50e8305 6912064: type profiles need to be exploited more for dynamic language support
Reviewed-by: kvn
2010-08-20 23:40:30 -07:00
Vladimir Kozlov
21f481e5dd 6959430: Make sure raw loads have control edge
Check that raw loads have control edge

Reviewed-by: never, twisti
2010-06-15 18:07:27 -07:00
Erik Trimble
ba7c173659 6941466: Oracle rebranding changes for Hotspot repositories
Change all the Sun copyrights to Oracle copyright

Reviewed-by: ohair
2010-05-27 19:08:38 -07:00
John R Rose
71599d89d4 Merge 2010-05-11 15:19:19 -07:00
Tom Rodriguez
8afbd9a53e 6951190: assert(!klass_is_exact(),"only non-exact klass") while building JDK
Reviewed-by: kvn
2010-05-10 14:58:38 -07:00
Igor Veresov
61b9d428d1 6948602: Disable use of SSE4.2 in String.indexOf intrinsic until 6942326 is fixed
Disable the use of pcmpestri until it can be guaranteed that the load doesn't cross in to the uncommited space. See 6942326.

Reviewed-by: never, kvn
2010-04-29 17:53:58 -07:00
Hiroshi Yamauchi
cd48f31efe 6946040: add intrinsic for short and char reverseBytes
Reviewed-by: never, twisti
2010-04-26 11:27:21 -07:00
Christian Thalinger
e5fb2ad1c4 6914206: change way of permission checking for generated MethodHandle adapters
Put generated MH adapter in InvokeDynamic/MethodHandle classes to be able to indentify them easily in the compiler.

Reviewed-by: kvn, never, jrose
2010-01-08 11:09:46 +01:00
Y. Srinivas Ramakrishna
928ac69fcd 6888898: CMS: ReduceInitialCardMarks unsafe in the presence of cms precleaning
6889757: G1: enable card mark elision for initializing writes from compiled code (ReduceInitialCardMarks)

Defer the (compiler-elided) card-mark upon a slow-path allocation until after the store  and before the next subsequent safepoint; G1 now answers yes to can_elide_tlab_write_barriers().

Reviewed-by: jcoomes, kvn, never
2009-10-16 02:05:46 -07:00
Vladimir Kozlov
243514d483 6827605: new String intrinsics may prevent EA scalar replacement
6875866: Intrinsic for String.indexOf() is broken on x86 with SSE4.2

Modify String intrinsic methods to pass char[] pointers instead of string oops.

Reviewed-by: never
2009-09-14 12:14:20 -07:00
Vladimir Kozlov
e0519e7bbd 6880053: assert(alloc_obj->as_CheckCastPP()->type() != TypeInstPtr::NOTNULL)
Removed second CheckCastPP and use MembarCPUOrder after arraycopy to cloned object.

Reviewed-by: never
2009-09-10 18:18:06 -07:00
Vladimir Kozlov
343b5b0bef 6875577: CTW fails with /hotspot/src/share/vm/opto/memnode.cpp
Fix do_null_check to check for unloaded klass for all oop pointers.

Reviewed-by: never, cfang
2009-08-28 11:19:33 -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
Christian Thalinger
714db48492 Merge 2009-07-27 06:15:29 -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
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
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
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
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
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
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
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
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
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
7aae40a95f 6462850: generate biased locking code in C2 ideal graph
Inline biased locking code in C2 ideal graph during macro nodes expansion

Reviewed-by: never
2008-11-07 09:29:38 -08:00
Erik Trimble
2d6f42d18c Merge 2008-07-11 01:14:44 -07:00
Xiomara Jayasena
c96a95c4b8 6719955: Update copyright year
Update copyright year for files that have been modified in 2008

Reviewed-by: ohair, tbell
2008-07-02 12:55:16 -07:00
Vladimir Kozlov
a671e7c7b5 6710487: More than half of JDI Regression tests hang with COOPs in -Xcomp mode
Remove DecodeNNode::decode() and EncodePNode::encode() methods.

Reviewed-by: rasbold, never
2008-06-24 10:43:29 -07:00
Chuck Rasbold
d10912d513 6709972: runThese failed with assert(false,"bad AD file")
Guard AryEqNode construction with has_match_rule() test, set SpecialArraysEquals default off

Reviewed-by: kvn, never
2008-06-03 13:14:44 -07:00
Chuck Rasbold
2e672ac9bf 6695049: (coll) Create an x86 intrinsic for Arrays.equals
Intrinsify java/util/Arrays.equals(char[], char[])

Reviewed-by: kvn, never
2008-05-29 16:22:09 -07:00
Vladimir Kozlov
76035424de 6703890: Compressed Oops: add LoadNKlass node to generate narrow oops (32-bits) compare instructions
Add LoadNKlass and CMoveN nodes, use CmpN and ConN nodes to generate narrow oops compare instructions.

Reviewed-by: never, rasbold
2008-05-21 13:46:23 -07:00
Vladimir Kozlov
757229db71 6695810: null oop passed to encode_heap_oop_not_null
Fix several problems in C2 related to Escape Analysis and Compressed Oops.

Reviewed-by: never, jrose
2008-05-21 10:45:07 -07:00
Coleen Phillimore
4a831d45f0 6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv

Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
2008-04-13 17:43:42 -04:00
Vladimir Kozlov
7ec44373b5 6667581: Don't generate initialization (by 0) code for arrays with size 0
Generate_arraycopy() does not check the size of allocated array.

Reviewed-by: jrose, never
2008-02-29 11:22:27 -08:00
Vladimir Kozlov
9f1a8ede80 6633953: type2aelembytes{T_ADDRESS} should be 8 bytes in 64 bit VM
T_ADDRESS size is defined as 'int' size (4 bytes) but C2 use it for raw pointers and as memory type for StoreP and LoadP nodes.

Reviewed-by: jrose
2008-02-25 15:05:44 -08:00
J. Duke
8153779ad3 Initial load 2007-12-01 00:00:00 +00:00