< prev index next >
hotspot/src/share/vm/c1/c1_Instruction.hpp
Print this page
rev 10453 : imported patch update dates
*** 1,7 ****
/*
! * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 113,127 ****
class Assert;
#endif
// A Value is a reference to the instruction creating the value
typedef Instruction* Value;
! define_array(ValueArray, Value)
! define_stack(Values, ValueArray)
!
! define_array(ValueStackArray, ValueStack*)
! define_stack(ValueStackStack, ValueStackArray)
// BlockClosure is the base class for block traversal/iteration.
class BlockClosure: public CompilationResourceObj {
public:
--- 113,124 ----
class Assert;
#endif
// A Value is a reference to the instruction creating the value
typedef Instruction* Value;
! typedef GrowableArray<Value> Values;
! typedef GrowableArray<ValueStack*> ValueStackStack;
// BlockClosure is the base class for block traversal/iteration.
class BlockClosure: public CompilationResourceObj {
public:
*** 135,152 ****
virtual void visit(Value* v) = 0;
};
// Some array and list classes
! define_array(BlockBeginArray, BlockBegin*)
! define_stack(_BlockList, BlockBeginArray)
! class BlockList: public _BlockList {
public:
! BlockList(): _BlockList() {}
! BlockList(const int size): _BlockList(size) {}
! BlockList(const int size, BlockBegin* init): _BlockList(size, init) {}
void iterate_forward(BlockClosure* closure);
void iterate_backward(BlockClosure* closure);
void blocks_do(void f(BlockBegin*));
void values_do(ValueVisitor* f);
--- 132,148 ----
virtual void visit(Value* v) = 0;
};
// Some array and list classes
! typedef GrowableArray<BlockBegin*> BlockBeginArray;
! class BlockList: public GrowableArray<BlockBegin*> {
public:
! BlockList(): GrowableArray<BlockBegin*>() {}
! BlockList(const int size): GrowableArray<BlockBegin*>(size) {}
! BlockList(const int size, BlockBegin* init): GrowableArray<BlockBegin*>(size, size, init) {}
void iterate_forward(BlockClosure* closure);
void iterate_backward(BlockClosure* closure);
void blocks_do(void f(BlockBegin*));
void values_do(ValueVisitor* f);
*** 1742,1752 ****
void add_predecessor(BlockBegin* pred);
void remove_predecessor(BlockBegin* pred);
bool is_predecessor(BlockBegin* pred) const { return _predecessors.contains(pred); }
int number_of_preds() const { return _predecessors.length(); }
! BlockBegin* pred_at(int i) const { return _predecessors[i]; }
// exception handlers potentially invoked by this block
void add_exception_handler(BlockBegin* b);
bool is_exception_handler(BlockBegin* b) const { return _exception_handlers.contains(b); }
int number_of_exception_handlers() const { return _exception_handlers.length(); }
--- 1738,1748 ----
void add_predecessor(BlockBegin* pred);
void remove_predecessor(BlockBegin* pred);
bool is_predecessor(BlockBegin* pred) const { return _predecessors.contains(pred); }
int number_of_preds() const { return _predecessors.length(); }
! BlockBegin* pred_at(int i) const { return _predecessors.at(i); }
// exception handlers potentially invoked by this block
void add_exception_handler(BlockBegin* b);
bool is_exception_handler(BlockBegin* b) const { return _exception_handlers.contains(b); }
int number_of_exception_handlers() const { return _exception_handlers.length(); }
*** 2607,2620 ****
bool is_same(BlockPair* p) const { return _from == p->from() && _to == p->to(); }
void set_to(BlockBegin* b) { _to = b; }
void set_from(BlockBegin* b) { _from = b; }
};
!
! define_array(BlockPairArray, BlockPair*)
! define_stack(BlockPairList, BlockPairArray)
!
inline int BlockBegin::number_of_sux() const { assert(_end == NULL || _end->number_of_sux() == _successors.length(), "mismatch"); return _successors.length(); }
inline BlockBegin* BlockBegin::sux_at(int i) const { assert(_end == NULL || _end->sux_at(i) == _successors.at(i), "mismatch"); return _successors.at(i); }
inline void BlockBegin::add_successor(BlockBegin* sux) { assert(_end == NULL, "Would create mismatch with successors of BlockEnd"); _successors.append(sux); }
--- 2603,2613 ----
bool is_same(BlockPair* p) const { return _from == p->from() && _to == p->to(); }
void set_to(BlockBegin* b) { _to = b; }
void set_from(BlockBegin* b) { _from = b; }
};
! typedef GrowableArray<BlockPair*> BlockPairList;
inline int BlockBegin::number_of_sux() const { assert(_end == NULL || _end->number_of_sux() == _successors.length(), "mismatch"); return _successors.length(); }
inline BlockBegin* BlockBegin::sux_at(int i) const { assert(_end == NULL || _end->sux_at(i) == _successors.at(i), "mismatch"); return _successors.at(i); }
inline void BlockBegin::add_successor(BlockBegin* sux) { assert(_end == NULL, "Would create mismatch with successors of BlockEnd"); _successors.append(sux); }
< prev index next >