80 Commits

Author SHA1 Message Date
Chuck Rasbold
ae4e755124 6730716: nulls from two unrelated classes compare not equal
Check for not-nullness after proving that types are unrelated

Reviewed-by: kvn, never
2008-08-19 07:25:02 -07:00
Tom Rodriguez
45f8e241e3 6732194: Data corruption dependent on -server/-client/-Xbatch
Rematerializing nodes results in incorrect inputs

Reviewed-by: rasbold
2008-08-18 23:17:51 -07:00
Chuck Rasbold
1e49d39e6b 6732154: REG: Printing an Image using image/gif doc flavor crashes the VM, Solsparc
Delay transform call until uses of t2 are constructed

Reviewed-by: never
2008-08-14 10:15:29 -07:00
Vladimir Kozlov
897278fce0 6731641: assert(m->adr_type() == mach->adr_type(),"matcher should not change adr type")
Fixed few addP node type and narrow oop type problems.

Reviewed-by: rasbold, never
2008-08-01 10:06:45 -07:00
Vladimir Kozlov
5e94e3bf69 6732312: Switch off executing Escape Analysis by default
Switch off executing Escape Analysis by default for now

Reviewed-by: rasbold
2008-07-31 15:47:42 -07:00
Chuck Rasbold
d35e1bbd88 6730192: expression stack wrong at deoptimization point
Add safepoint before popping expression stack, not after

Reviewed-by: kvn
2008-07-29 14:48:25 -07:00
Vladimir Kozlov
50c4a23cac 6726999: nsk/stress/jck12a/jck12a010 assert(n != null,"Bad immediate dominator info.")
Escape Analysis fixes.

Reviewed-by: never, rasbold
2008-07-28 17:12:52 -07:00
Tom Rodriguez
20de63f383 6700047: C2 failed in idom_no_update
Partial peeling shouldn't place clones into loop

Reviewed-by: kvn
2008-07-25 15:54:23 -07:00
Tom Rodriguez
7b4a7f7bdc 6712835: Server compiler fails with assertion (loop_count < K,"infinite loop in PhaseIterGVN::transform")
Reviewed-by: kvn
2008-07-25 11:32:56 -07:00
Chuck Rasbold
fcbf2d1245 6726504: handle do_ifxxx calls in parser more uniformly
Make do_ifnull() handling similar to do_if()

Reviewed-by: jrose, kvn
2008-07-21 13:37:05 -07:00
Vladimir Kozlov
fae39068e8 6723160: Nightly failure: Error: meet not symmetric
Add missing _instance_id settings and other EA fixes.

Reviewed-by: rasbold
2008-07-16 16:04:39 -07:00
Chuck Rasbold
a8fc1db8c1 6707044: uncommon_trap of ifnull bytecode leaves garbage on expression stack
Remove call to repush_if_args()

Reviewed-by: kvn, jrose
2008-07-16 10:08:57 -07:00
Vladimir Kozlov
c5b951e990 Merge 2008-07-11 12:19:29 -07:00
Erik Trimble
2d6f42d18c Merge 2008-07-11 01:14:44 -07:00
Vladimir Kozlov
696e17c0ba 6684714: Optimize EA Connection Graph build performance
Switch on EA by default, optimize Connection Graph construction

Reviewed-by: rasbold, never
2008-07-03 18:02:47 -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
4213e62fb7 6716441: error in meet with +DoEscapeAnalysis
Set instance_id to InstanceBot for InstPtr->meet(AryPtr) when types are not related.

Reviewed-by: jrose, never
2008-06-26 13:34:00 -07:00
Tom Rodriguez
873da1efe8 6718676: putback for 6604014 is incomplete
Reviewed-by: kvn, jrose
2008-06-24 16:00:14 -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
Vladimir Kozlov
0a077d276e 6715633: when matching a memory node the adr_type should not change
Verify the adr_type of a mach node was not changed

Reviewed-by: rasbold, never
2008-06-20 11:10:05 -07:00
Vladimir Kozlov
694776b297 6714694: assertion in 64bit server vm (store->find_edge(load) != -1,"missing precedence edge") with COOPs
The method raise_LCA_above_marks() terminates LCA search early.

Reviewed-by: rasbold, never
2008-06-20 10:17:09 -07:00
Tom Rodriguez
31d647daea Merge 2008-06-17 11:32:42 -07:00
Vladimir Kozlov
6978df8f5d 6714406: Node::dominates() does not always check for TOP
Add missed checks for TOP and missed checks for non-dominating cases

Reviewed-by: rasbold, jrose, never
2008-06-13 15:08:56 -07:00
Tom Rodriguez
b381148ebe 6697236: missing Identity for "(X+Y) - X" into Y
Reviewed-by: kvn
2008-06-12 09:47:55 -07:00
Tom Rodriguez
4760698435 6614100: EXCEPTION_ACCESS_VIOLATION while running Eclipse with 1.6.0_05-ea
Reviewed-by: kvn, jrose, rasbold
2008-06-05 21:44:53 -07:00
Tom Rodriguez
952b45f6b6 6711083: 64bit JVM crashes with Internal Error (type.cpp:763) - ShouldNotReachHere() with enabled COOPs
Add NarrowOop to various xmeet routines

Reviewed-by: kvn, sgoldman, jrose, rasbold
2008-06-05 15:43:18 -07:00
Vladimir Kozlov
dbdeade3b7 6709093: Compressed Oops: reduce size of compiled methods
Exclude UEP size from nmethod code size and use narrow klass oop to load prototype header.

Reviewed-by: jrose, never
2008-06-05 13:02:51 -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
a1f50998ae 6705887: Compressed Oops: generate x64 addressing and implicit null checks with narrow oops
Generate addresses and implicit null checks with narrow oops to avoid decoding.

Reviewed-by: jrose, never
2008-05-29 12:04:14 -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
Vladimir Kozlov
60c74ba115 6701887: JDK7 server VM in endless loop in Node::dominates
The method Node::dominates loops in the dead code which does not have a Region node.

Reviewed-by: jrose, never
2008-05-15 22:43:11 -07:00
Chuck Rasbold
72313bcf20 6603011: RFE: Optimize long division
Transform long division by constant into multiply

Reviewed-by: never, kvn
2008-05-07 08:06:46 -07:00
John R Rose
b05f95c5a9 6695288: runThese tests expr30303 and drem00301m1 fail when compiled code executes without deopt
Rework Value method for ModD and ModF, to DTRT for infinities

Reviewed-by: sgoldman, kvn, rasbold
2008-04-29 19:40:51 -07:00
Chuck Rasbold
088cd1203f 6646019: array subscript expressions become top() with -d64
Stop compilation after negative array allocation

Reviewed-by: never, jrose
2008-04-24 14:02:13 -07:00
Tom Rodriguez
6f63c6e88b 6663848: assert(i < Max(),"oob") in C2 with -Xcomp
NeverBranchNodes aren't handled properly

Reviewed-by: kvn, sgoldman, rasbold, jrose
2008-04-24 11:13:03 -07:00
Vladimir Kozlov
4e3444d0ce 6625997: CastPP, CheckCastPP and Proj nodes are not dead loop safe
EA and initialization optimizations could bypass these nodes.

Reviewed-by: rasbold, never
2008-04-23 19:09:16 -07:00
Tom Rodriguez
041877583d 6601321: Assert(j == 1 || b->_nodes[j-1]->is_Phi(),"CreateEx must be first instruction in block")
Reviewed-by: kvn, rasbold, sgoldman, jrose
2008-04-23 13:57:14 -07:00
Vladimir Kozlov
69155d87f9 6689060: Escape Analysis does not work with Compressed Oops
64-bits VM crashes with -XX:+AggresiveOpts (Escape Analysis + Compressed Oops)

Reviewed-by: never, sgoldman
2008-04-23 11:20:36 -07:00
Vladimir Kozlov
df8fc19aac 6686791: Side effect in NumberFormat tests with -server -Xcomp
Optimization in CmpPNode::sub() removed the valid compare instruction because of false positive answer from detect_dominating_control().

Reviewed-by: jrose, sgoldman
2008-04-16 19:19:48 -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
Chuck Rasbold
ba411c2466 6684385: Loop unswitching crashes without LoopNode
Without LoopNode, exit early from loop unswitching and partial peeling

Reviewed-by: kvn, never, sgoldman
2008-04-09 09:25:45 -07:00
Chuck Rasbold
bfbfdfa428 6663908: NegativeArraySizeException is not thrown
Don't optimize zero length array allocations at compile time.

Reviewed-by: kvn, never
2008-04-07 15:15:16 -07:00
Tom Rodriguez
3093e354db 6646020: assert(in_bb(n),"must be in block") in -Xcomp mode
Reviewed-by: kvn, rasbold
2008-04-03 21:26:03 -07:00
Chuck Rasbold
1659f11da6 Merge 2008-04-03 06:41:16 -07:00
Vladimir Kozlov
ccaa58c5db 6681577: PIT: some VM tests fails with -XX:+AggressiveOpts in 6u5p b01
C2 spends > 60% in escape analysis code during test nsk/regression/b4675027.

Reviewed-by: never
2008-04-02 16:59:37 -07:00
John R Rose
0d27a8639f 6667042: PrintAssembly option does not work without special plugin
Remove old private plugin interface, simplify, rework old plugin to use unchanged Gnu sources

Reviewed-by: kvn, rasbold
2008-04-02 12:09:59 -07:00
Vladimir Kozlov
833746644c 6682236: C2 hits ideal nodes limit during IGVN optimization with EA
Missing check in LoadNode::Ideal() causes infinite generation of a value Phi.

Reviewed-by: jrose, never
2008-03-31 18:37:36 -07:00
Tom Rodriguez
0530e0d854 6680594: Load + Load isn't canonicalized leading to missed GVN opportunities
Reviewed-by: kvn, jrose
2008-03-28 09:00:39 -07:00