comparison src/share/vm/shark/sharkState.cpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents f95d63e2154a
children 2cd5e15048e6
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
1 /* 1 /*
2 * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
3 * Copyright 2008, 2009 Red Hat, Inc. 3 * Copyright 2008, 2009 Red Hat, Inc.
4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * 5 *
6 * This code is free software; you can redistribute it and/or modify it 6 * This code is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License version 2 only, as 7 * under the terms of the GNU General Public License version 2 only, as
129 BasicBlock* this_block) { 129 BasicBlock* this_block) {
130 // Method 130 // Method
131 Value *this_method = this->method(); 131 Value *this_method = this->method();
132 Value *other_method = other->method(); 132 Value *other_method = other->method();
133 if (this_method != other_method) { 133 if (this_method != other_method) {
134 PHINode *phi = builder()->CreatePHI(SharkType::methodOop_type(), "method"); 134 PHINode *phi = builder()->CreatePHI(SharkType::Method*_type(), "method");
135 phi->addIncoming(this_method, this_block); 135 phi->addIncoming(this_method, this_block);
136 phi->addIncoming(other_method, other_block); 136 phi->addIncoming(other_method, other_block);
137 set_method(phi); 137 set_method(phi);
138 } 138 }
139 139
285 BasicBlock *saved_insert_point = builder()->GetInsertBlock(); 285 BasicBlock *saved_insert_point = builder()->GetInsertBlock();
286 builder()->SetInsertPoint(block->entry_block()); 286 builder()->SetInsertPoint(block->entry_block());
287 char name[18]; 287 char name[18];
288 288
289 // Method 289 // Method
290 set_method(builder()->CreatePHI(SharkType::methodOop_type(), "method")); 290 set_method(builder()->CreatePHI(SharkType::Method*_type(), "method"));
291 291
292 // Local variables 292 // Local variables
293 for (int i = 0; i < max_locals(); i++) { 293 for (int i = 0; i < max_locals(); i++) {
294 ciType *type = block->local_type_at_entry(i); 294 ciType *type = block->local_type_at_entry(i);
295 if (type->basic_type() == (BasicType) ciTypeFlow::StateVector::T_NULL) { 295 if (type->basic_type() == (BasicType) ciTypeFlow::StateVector::T_NULL) {