< prev index next >

src/share/vm/opto/node.hpp

Print this page

        

*** 69,78 **** --- 69,79 ---- class EncodePNode; class EncodePKlassNode; class FastLockNode; class FastUnlockNode; class IfNode; + class IfProjNode; class IfFalseNode; class IfTrueNode; class InitializeNode; class JVMState; class JumpNode;
*** 98,107 **** --- 99,109 ---- class MachReturnNode; class MachSafePointNode; class MachSpillCopyNode; class MachTempNode; class MachMergeNode; + class MachMemBarNode; class Matcher; class MemBarNode; class MemBarStoreStoreNode; class MemNode; class MergeMemNode;
*** 129,138 **** --- 131,141 ---- class RegMask; class RegionNode; class RootNode; class SafePointNode; class SafePointScalarObjectNode; + class ShenandoahBarrierNode; class StartNode; class State; class StoreNode; class SubNode; class Type;
*** 441,450 **** --- 444,457 ---- Node* uncast() const; // Return whether two Nodes are equivalent, after stripping casting. bool eqv_uncast(const Node* n) const { return (this->uncast() == n->uncast()); } + // Find out of current node that matches opcode. + Node* find_out_with(int opcode); + // Return true if the current node has an out that matches opcode. + bool has_out_with(int opcode); private: static Node* uncast_helper(const Node* n); // Add an output edge to the end of the list
*** 598,607 **** --- 605,615 ---- DEFINE_CLASS_ID(MachSpillCopy, Mach, 2) DEFINE_CLASS_ID(MachTemp, Mach, 3) DEFINE_CLASS_ID(MachConstantBase, Mach, 4) DEFINE_CLASS_ID(MachConstant, Mach, 5) DEFINE_CLASS_ID(MachMerge, Mach, 6) + DEFINE_CLASS_ID(MachMemBar, Mach, 7) DEFINE_CLASS_ID(Type, Node, 2) DEFINE_CLASS_ID(Phi, Type, 0) DEFINE_CLASS_ID(ConstraintCast, Type, 1) DEFINE_CLASS_ID(CastII, ConstraintCast, 0)
*** 612,627 **** DEFINE_CLASS_ID(DecodeN, DecodeNarrowPtr, 0) DEFINE_CLASS_ID(DecodeNKlass, DecodeNarrowPtr, 1) DEFINE_CLASS_ID(EncodeNarrowPtr, Type, 6) DEFINE_CLASS_ID(EncodeP, EncodeNarrowPtr, 0) DEFINE_CLASS_ID(EncodePKlass, EncodeNarrowPtr, 1) DEFINE_CLASS_ID(Proj, Node, 3) DEFINE_CLASS_ID(CatchProj, Proj, 0) DEFINE_CLASS_ID(JumpProj, Proj, 1) ! DEFINE_CLASS_ID(IfTrue, Proj, 2) ! DEFINE_CLASS_ID(IfFalse, Proj, 3) DEFINE_CLASS_ID(Parm, Proj, 4) DEFINE_CLASS_ID(MachProj, Proj, 5) DEFINE_CLASS_ID(Mem, Node, 4) DEFINE_CLASS_ID(Load, Mem, 0) --- 620,637 ---- DEFINE_CLASS_ID(DecodeN, DecodeNarrowPtr, 0) DEFINE_CLASS_ID(DecodeNKlass, DecodeNarrowPtr, 1) DEFINE_CLASS_ID(EncodeNarrowPtr, Type, 6) DEFINE_CLASS_ID(EncodeP, EncodeNarrowPtr, 0) DEFINE_CLASS_ID(EncodePKlass, EncodeNarrowPtr, 1) + DEFINE_CLASS_ID(ShenandoahBarrier, Type, 7) DEFINE_CLASS_ID(Proj, Node, 3) DEFINE_CLASS_ID(CatchProj, Proj, 0) DEFINE_CLASS_ID(JumpProj, Proj, 1) ! DEFINE_CLASS_ID(IfProj, Proj, 2) ! DEFINE_CLASS_ID(IfTrue, IfProj, 0) ! DEFINE_CLASS_ID(IfFalse, IfProj, 1) DEFINE_CLASS_ID(Parm, Proj, 4) DEFINE_CLASS_ID(MachProj, Proj, 5) DEFINE_CLASS_ID(Mem, Node, 4) DEFINE_CLASS_ID(Load, Mem, 0)
*** 743,752 **** --- 753,763 ---- DEFINE_CLASS_QUERY(EncodeP) DEFINE_CLASS_QUERY(EncodePKlass) DEFINE_CLASS_QUERY(FastLock) DEFINE_CLASS_QUERY(FastUnlock) DEFINE_CLASS_QUERY(If) + DEFINE_CLASS_QUERY(IfProj) DEFINE_CLASS_QUERY(IfFalse) DEFINE_CLASS_QUERY(IfTrue) DEFINE_CLASS_QUERY(Initialize) DEFINE_CLASS_QUERY(Jump) DEFINE_CLASS_QUERY(JumpProj)
*** 770,779 **** --- 781,791 ---- DEFINE_CLASS_QUERY(MachProj) DEFINE_CLASS_QUERY(MachReturn) DEFINE_CLASS_QUERY(MachSafePoint) DEFINE_CLASS_QUERY(MachSpillCopy) DEFINE_CLASS_QUERY(MachTemp) + DEFINE_CLASS_QUERY(MachMemBar) DEFINE_CLASS_QUERY(MachMerge) DEFINE_CLASS_QUERY(Mem) DEFINE_CLASS_QUERY(MemBar) DEFINE_CLASS_QUERY(MemBarStoreStore) DEFINE_CLASS_QUERY(MergeMem)
*** 786,795 **** --- 798,808 ---- DEFINE_CLASS_QUERY(Proj) DEFINE_CLASS_QUERY(Region) DEFINE_CLASS_QUERY(Root) DEFINE_CLASS_QUERY(SafePoint) DEFINE_CLASS_QUERY(SafePointScalarObject) + DEFINE_CLASS_QUERY(ShenandoahBarrier) DEFINE_CLASS_QUERY(Start) DEFINE_CLASS_QUERY(Store) DEFINE_CLASS_QUERY(Sub) DEFINE_CLASS_QUERY(Type) DEFINE_CLASS_QUERY(Vector)
*** 884,900 **** Node* find_exact_control(Node* ctrl); // Check if 'this' node dominates or equal to 'sub'. bool dominates(Node* sub, Node_List &nlist); protected: bool remove_dead_region(PhaseGVN *phase, bool can_reshape); public: - // Idealize graph, using DU info. Done after constant propagation - virtual Node *Ideal_DU_postCCP( PhaseCCP *ccp ); - // See if there is valid pipeline info static const Pipeline *pipeline_class(); virtual const Pipeline *pipeline() const; // Compute the latency from the def to this instruction of the ith input node --- 897,914 ---- Node* find_exact_control(Node* ctrl); // Check if 'this' node dominates or equal to 'sub'. bool dominates(Node* sub, Node_List &nlist); + virtual bool is_g1_wb_pre_call() const { return false; } + virtual bool is_shenandoah_state_load() const { return false; } + virtual bool is_shenandoah_marking_if(PhaseTransform *phase) const { return false; } + protected: bool remove_dead_region(PhaseGVN *phase, bool can_reshape); public: // See if there is valid pipeline info static const Pipeline *pipeline_class(); virtual const Pipeline *pipeline() const; // Compute the latency from the def to this instruction of the ith input node
*** 924,933 **** --- 938,950 ---- Node* find_similar(int opc); // Return the unique control out if only one. Null if none or more than one. Node* unique_ctrl_out(); + // Set control or add control as precedence edge + void ensure_control_or_add_prec(Node* c); + //----------------- Code Generation // Ideal register class for Matching. Zero means unmatched instruction // (these are cloned instead of converted to machine nodes). virtual uint ideal_reg() const;
< prev index next >