src/share/vm/opto/node.hpp

changeset 3051
11211f7cb5a0
parent 3049
95134e034042
child 3138
f6f3bb0ee072
equal deleted inserted replaced
3050:fdb992d83a87 3051:11211f7cb5a0
75 class JumpProjNode; 75 class JumpProjNode;
76 class LoadNode; 76 class LoadNode;
77 class LoadStoreNode; 77 class LoadStoreNode;
78 class LockNode; 78 class LockNode;
79 class LoopNode; 79 class LoopNode;
80 class MachBranchNode;
80 class MachCallDynamicJavaNode; 81 class MachCallDynamicJavaNode;
81 class MachCallJavaNode; 82 class MachCallJavaNode;
82 class MachCallLeafNode; 83 class MachCallLeafNode;
83 class MachCallNode; 84 class MachCallNode;
84 class MachCallRuntimeNode; 85 class MachCallRuntimeNode;
570 DEFINE_CLASS_ID(MachCallJava, MachCall, 0) 571 DEFINE_CLASS_ID(MachCallJava, MachCall, 0)
571 DEFINE_CLASS_ID(MachCallStaticJava, MachCallJava, 0) 572 DEFINE_CLASS_ID(MachCallStaticJava, MachCallJava, 0)
572 DEFINE_CLASS_ID(MachCallDynamicJava, MachCallJava, 1) 573 DEFINE_CLASS_ID(MachCallDynamicJava, MachCallJava, 1)
573 DEFINE_CLASS_ID(MachCallRuntime, MachCall, 1) 574 DEFINE_CLASS_ID(MachCallRuntime, MachCall, 1)
574 DEFINE_CLASS_ID(MachCallLeaf, MachCallRuntime, 0) 575 DEFINE_CLASS_ID(MachCallLeaf, MachCallRuntime, 0)
575 DEFINE_CLASS_ID(MachSpillCopy, Mach, 1) 576 DEFINE_CLASS_ID(MachBranch, Mach, 1)
576 DEFINE_CLASS_ID(MachNullCheck, Mach, 2) 577 DEFINE_CLASS_ID(MachIf, MachBranch, 0)
577 DEFINE_CLASS_ID(MachIf, Mach, 3) 578 DEFINE_CLASS_ID(MachGoto, MachBranch, 1)
578 DEFINE_CLASS_ID(MachTemp, Mach, 4) 579 DEFINE_CLASS_ID(MachNullCheck, MachBranch, 2)
579 DEFINE_CLASS_ID(MachConstantBase, Mach, 5) 580 DEFINE_CLASS_ID(MachSpillCopy, Mach, 2)
580 DEFINE_CLASS_ID(MachConstant, Mach, 6) 581 DEFINE_CLASS_ID(MachTemp, Mach, 3)
581 DEFINE_CLASS_ID(MachGoto, Mach, 7) 582 DEFINE_CLASS_ID(MachConstantBase, Mach, 4)
583 DEFINE_CLASS_ID(MachConstant, Mach, 5)
582 584
583 DEFINE_CLASS_ID(Type, Node, 2) 585 DEFINE_CLASS_ID(Type, Node, 2)
584 DEFINE_CLASS_ID(Phi, Type, 0) 586 DEFINE_CLASS_ID(Phi, Type, 0)
585 DEFINE_CLASS_ID(ConstraintCast, Type, 1) 587 DEFINE_CLASS_ID(ConstraintCast, Type, 1)
586 DEFINE_CLASS_ID(CheckCastPP, Type, 2) 588 DEFINE_CLASS_ID(CheckCastPP, Type, 2)
632 Flag_rematerialize = Flag_is_Copy << 1, 634 Flag_rematerialize = Flag_is_Copy << 1,
633 Flag_needs_anti_dependence_check = Flag_rematerialize << 1, 635 Flag_needs_anti_dependence_check = Flag_rematerialize << 1,
634 Flag_is_macro = Flag_needs_anti_dependence_check << 1, 636 Flag_is_macro = Flag_needs_anti_dependence_check << 1,
635 Flag_is_Con = Flag_is_macro << 1, 637 Flag_is_Con = Flag_is_macro << 1,
636 Flag_is_cisc_alternate = Flag_is_Con << 1, 638 Flag_is_cisc_alternate = Flag_is_Con << 1,
637 Flag_is_Branch = Flag_is_cisc_alternate << 1, 639 Flag_is_dead_loop_safe = Flag_is_cisc_alternate << 1,
638 Flag_is_dead_loop_safe = Flag_is_Branch << 1,
639 Flag_may_be_short_branch = Flag_is_dead_loop_safe << 1, 640 Flag_may_be_short_branch = Flag_is_dead_loop_safe << 1,
640 Flag_avoid_back_to_back = Flag_may_be_short_branch << 1, 641 Flag_avoid_back_to_back = Flag_may_be_short_branch << 1,
641 _max_flags = (Flag_avoid_back_to_back << 1) - 1 // allow flags combination 642 _max_flags = (Flag_avoid_back_to_back << 1) - 1 // allow flags combination
642 }; 643 };
643 644
719 DEFINE_CLASS_QUERY(Load) 720 DEFINE_CLASS_QUERY(Load)
720 DEFINE_CLASS_QUERY(LoadStore) 721 DEFINE_CLASS_QUERY(LoadStore)
721 DEFINE_CLASS_QUERY(Lock) 722 DEFINE_CLASS_QUERY(Lock)
722 DEFINE_CLASS_QUERY(Loop) 723 DEFINE_CLASS_QUERY(Loop)
723 DEFINE_CLASS_QUERY(Mach) 724 DEFINE_CLASS_QUERY(Mach)
725 DEFINE_CLASS_QUERY(MachBranch)
724 DEFINE_CLASS_QUERY(MachCall) 726 DEFINE_CLASS_QUERY(MachCall)
725 DEFINE_CLASS_QUERY(MachCallDynamicJava) 727 DEFINE_CLASS_QUERY(MachCallDynamicJava)
726 DEFINE_CLASS_QUERY(MachCallJava) 728 DEFINE_CLASS_QUERY(MachCallJava)
727 DEFINE_CLASS_QUERY(MachCallLeaf) 729 DEFINE_CLASS_QUERY(MachCallLeaf)
728 DEFINE_CLASS_QUERY(MachCallRuntime) 730 DEFINE_CLASS_QUERY(MachCallRuntime)
785 // depend for their correct sequencing on more than one test. 787 // depend for their correct sequencing on more than one test.
786 // (In that case, hoisting to a dominating test may silently 788 // (In that case, hoisting to a dominating test may silently
787 // skip some other important test.) 789 // skip some other important test.)
788 virtual bool depends_only_on_test() const { assert(!is_CFG(), ""); return true; }; 790 virtual bool depends_only_on_test() const { assert(!is_CFG(), ""); return true; };
789 791
790 // defined for MachNodes that match 'If' | 'Goto' | 'CountedLoopEnd' | 'Jump'
791 bool is_Branch() const { return (_flags & Flag_is_Branch) != 0; }
792
793 // When building basic blocks, I need to have a notion of block beginning 792 // When building basic blocks, I need to have a notion of block beginning
794 // Nodes, next block selector Nodes (block enders), and next block 793 // Nodes, next block selector Nodes (block enders), and next block
795 // projections. These calls need to work on their machine equivalents. The 794 // projections. These calls need to work on their machine equivalents. The
796 // Ideal beginning Nodes are RootNode, RegionNode and StartNode. 795 // Ideal beginning Nodes are RootNode, RegionNode and StartNode.
797 bool is_block_start() const { 796 bool is_block_start() const {

mercurial