cfgnode.hpp revision 127
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * This code is free software; you can redistribute it and/or modify it
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * under the terms of the GNU General Public License version 2 only, as
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * published by the Free Software Foundation.
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * This code is distributed in the hope that it will be useful, but WITHOUT
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * version 2 for more details (a copy is included in the LICENSE file that
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * accompanied this code).
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * You should have received a copy of the GNU General Public License version
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * 2 along with this work; if not, write to the Free Software Foundation,
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * CA 95054 USA or visit www.sun.com if you need additional information or
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae * have any questions.
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae// Portions of code courtesy of Clifford Click
f41150baf74bdaf964ddfe42d865d3c2380b3623krishnae// Optimization - Graph Style
class NeverBranchNode;
class ProjNode;
class CProjNode;
class IfTrueNode;
class IfFalseNode;
class CatchProjNode;
class JProjNode;
class JumpProjNode;
class SCMemProjNode;
class PhaseIdealLoop;
init_req(0,this);
if (r == NULL)
return nonnull_req();
virtual int Opcode() const;
virtual bool is_CFG () const { return true; }
virtual bool depends_only_on_test() const { return false; }
virtual int Opcode() const;
virtual bool is_CFG() const { return true; }
init_req(0, r);
RegionNode* region() const { Node* r = in(Region); assert(!r || r->is_Region(), ""); return (RegionNode*)r; }
int is_diamond_phi() const;
virtual int Opcode() const;
#ifndef PRODUCT
#ifdef ASSERT
virtual int Opcode() const;
virtual bool pinned() const { return true; }
virtual bool is_CFG() const { return true; }
virtual bool depends_only_on_test() const { return false; }
virtual int Opcode() const;
virtual bool is_CFG() const { return true; }
virtual int required_outcnt() const = 0;
#define PROB_LIKELY(x) ((float) (x))
virtual int Opcode() const;
virtual bool pinned() const { return true; }
#ifndef PRODUCT
virtual int Opcode() const;
virtual int Opcode() const;
virtual int Opcode() const;
virtual bool pinned() const { return true; }
virtual int Opcode() const;
const int _dest_bci;
const int _switch_val;
virtual int Opcode() const;
#ifndef PRODUCT
virtual int Opcode() const;
const int _handler_bci;
virtual int Opcode() const;
#ifndef PRODUCT
virtual int Opcode() const;
virtual bool pinned() const { return true; }
virtual int Opcode() const;
virtual bool pinned() const { return true; };
#ifndef PRODUCT