src/share/vm/opto/callnode.hpp
Print this page
rev 5808 : 8030863: PPC64: (part 220): ConstantTableBase for calls between args and jvms
*** 297,306 ****
--- 297,307 ----
// Miscellaneous utility functions
JVMState* clone_deep(Compile* C) const; // recursively clones caller chain
JVMState* clone_shallow(Compile* C) const; // retains uncloned caller
void set_map_deep(SafePointNode *map);// reset map for all callers
+ void adapt_position(int delta); // Adapt offsets in in-array after adding an edge.
#ifndef PRODUCT
void format(PhaseRegAlloc *regalloc, const Node *n, outputStream* st) const;
void dump_spec(outputStream *st) const;
void dump_on(outputStream* st) const;
*** 557,569 ****
virtual Node *match( const ProjNode *proj, const Matcher *m );
virtual uint ideal_reg() const { return NotAMachineReg; }
// Are we guaranteed that this node is a safepoint? Not true for leaf calls and
// for some macro nodes whose expansion does not have a safepoint on the fast path.
virtual bool guaranteed_safepoint() { return true; }
! // For macro nodes, the JVMState gets modified during expansion, so when cloning
! // the node the JVMState must be cloned.
! virtual void clone_jvms(Compile* C) { } // default is not to clone
// Returns true if the call may modify n
virtual bool may_modify(const TypeOopPtr *t_oop, PhaseTransform *phase);
// Does this node have a use of n other than in debug information?
bool has_non_debug_use(Node *n);
--- 558,576 ----
virtual Node *match( const ProjNode *proj, const Matcher *m );
virtual uint ideal_reg() const { return NotAMachineReg; }
// Are we guaranteed that this node is a safepoint? Not true for leaf calls and
// for some macro nodes whose expansion does not have a safepoint on the fast path.
virtual bool guaranteed_safepoint() { return true; }
! // For macro nodes, the JVMState gets modified during expansion. If calls
! // use MachConstantBase, it gets modified during matching. So when cloning
! // the node the JVMState must be cloned. Default is not to clone.
! virtual void clone_jvms(Compile* C) {
! if (C->needs_clone_jvms() && jvms() != NULL) {
! set_jvms(jvms()->clone_deep(C));
! jvms()->set_map_deep(this);
! }
! }
// Returns true if the call may modify n
virtual bool may_modify(const TypeOopPtr *t_oop, PhaseTransform *phase);
// Does this node have a use of n other than in debug information?
bool has_non_debug_use(Node *n);