src/share/vm/opto/node.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/opto

src/share/vm/opto/node.hpp

Print this page
rev 5513 : 8026844: Various Math functions needs intrinsification
Reviewed-by: duke


  83 class LoopNode;
  84 class MachBranchNode;
  85 class MachCallDynamicJavaNode;
  86 class MachCallJavaNode;
  87 class MachCallLeafNode;
  88 class MachCallNode;
  89 class MachCallRuntimeNode;
  90 class MachCallStaticJavaNode;
  91 class MachConstantBaseNode;
  92 class MachConstantNode;
  93 class MachGotoNode;
  94 class MachIfNode;
  95 class MachNode;
  96 class MachNullCheckNode;
  97 class MachProjNode;
  98 class MachReturnNode;
  99 class MachSafePointNode;
 100 class MachSpillCopyNode;
 101 class MachTempNode;
 102 class Matcher;

 103 class MemBarNode;
 104 class MemBarStoreStoreNode;
 105 class MemNode;
 106 class MergeMemNode;
 107 class MulNode;
 108 class MultiNode;
 109 class MultiBranchNode;
 110 class NeverBranchNode;
 111 class Node;
 112 class Node_Array;
 113 class Node_List;
 114 class Node_Stack;
 115 class NullCheckNode;
 116 class OopMap;
 117 class ParmNode;
 118 class PCTableNode;
 119 class PhaseCCP;
 120 class PhaseGVN;
 121 class PhaseIterGVN;
 122 class PhaseRegAlloc;


 551             DEFINE_CLASS_ID(CallStaticJava,   CallJava, 0)
 552             DEFINE_CLASS_ID(CallDynamicJava,  CallJava, 1)
 553           DEFINE_CLASS_ID(CallRuntime,      Call, 1)
 554             DEFINE_CLASS_ID(CallLeaf,         CallRuntime, 0)
 555           DEFINE_CLASS_ID(Allocate,         Call, 2)
 556             DEFINE_CLASS_ID(AllocateArray,    Allocate, 0)
 557           DEFINE_CLASS_ID(AbstractLock,     Call, 3)
 558             DEFINE_CLASS_ID(Lock,             AbstractLock, 0)
 559             DEFINE_CLASS_ID(Unlock,           AbstractLock, 1)
 560       DEFINE_CLASS_ID(MultiBranch, Multi, 1)
 561         DEFINE_CLASS_ID(PCTable,     MultiBranch, 0)
 562           DEFINE_CLASS_ID(Catch,       PCTable, 0)
 563           DEFINE_CLASS_ID(Jump,        PCTable, 1)
 564         DEFINE_CLASS_ID(If,          MultiBranch, 1)
 565           DEFINE_CLASS_ID(CountedLoopEnd, If, 0)
 566         DEFINE_CLASS_ID(NeverBranch, MultiBranch, 2)
 567       DEFINE_CLASS_ID(Start,       Multi, 2)
 568       DEFINE_CLASS_ID(MemBar,      Multi, 3)
 569         DEFINE_CLASS_ID(Initialize,       MemBar, 0)
 570         DEFINE_CLASS_ID(MemBarStoreStore, MemBar, 1)











 571 
 572     DEFINE_CLASS_ID(Mach,  Node, 1)
 573       DEFINE_CLASS_ID(MachReturn, Mach, 0)
 574         DEFINE_CLASS_ID(MachSafePoint, MachReturn, 0)
 575           DEFINE_CLASS_ID(MachCall, MachSafePoint, 0)
 576             DEFINE_CLASS_ID(MachCallJava,         MachCall, 0)
 577               DEFINE_CLASS_ID(MachCallStaticJava,   MachCallJava, 0)
 578               DEFINE_CLASS_ID(MachCallDynamicJava,  MachCallJava, 1)
 579             DEFINE_CLASS_ID(MachCallRuntime,      MachCall, 1)
 580               DEFINE_CLASS_ID(MachCallLeaf,         MachCallRuntime, 0)
 581       DEFINE_CLASS_ID(MachBranch, Mach, 1)
 582         DEFINE_CLASS_ID(MachIf,         MachBranch, 0)
 583         DEFINE_CLASS_ID(MachGoto,       MachBranch, 1)
 584         DEFINE_CLASS_ID(MachNullCheck,  MachBranch, 2)
 585       DEFINE_CLASS_ID(MachSpillCopy,    Mach, 2)
 586       DEFINE_CLASS_ID(MachTemp,         Mach, 3)
 587       DEFINE_CLASS_ID(MachConstantBase, Mach, 4)
 588       DEFINE_CLASS_ID(MachConstant,     Mach, 5)
 589 
 590     DEFINE_CLASS_ID(Type,  Node, 2)


 618     DEFINE_CLASS_ID(Region, Node, 5)
 619       DEFINE_CLASS_ID(Loop, Region, 0)
 620         DEFINE_CLASS_ID(Root,        Loop, 0)
 621         DEFINE_CLASS_ID(CountedLoop, Loop, 1)
 622 
 623     DEFINE_CLASS_ID(Sub,   Node, 6)
 624       DEFINE_CLASS_ID(Cmp,   Sub, 0)
 625         DEFINE_CLASS_ID(FastLock,   Cmp, 0)
 626         DEFINE_CLASS_ID(FastUnlock, Cmp, 1)
 627         DEFINE_CLASS_ID(FlagsProj, Cmp, 2)
 628 
 629     DEFINE_CLASS_ID(MergeMem, Node, 7)
 630     DEFINE_CLASS_ID(Bool,     Node, 8)
 631     DEFINE_CLASS_ID(AddP,     Node, 9)
 632     DEFINE_CLASS_ID(BoxLock,  Node, 10)
 633     DEFINE_CLASS_ID(Add,      Node, 11)
 634     DEFINE_CLASS_ID(Mul,      Node, 12)
 635     DEFINE_CLASS_ID(Vector,   Node, 13)
 636     DEFINE_CLASS_ID(ClearArray, Node, 14)
 637 

 638     _max_classes  = ClassMask_ClearArray
 639   };
 640   #undef DEFINE_CLASS_ID
 641 
 642   // Flags are sorted by usage frequency.
 643   enum NodeFlags {
 644     Flag_is_Copy             = 0x01, // should be first bit to avoid shift
 645     Flag_rematerialize       = Flag_is_Copy << 1,
 646     Flag_needs_anti_dependence_check = Flag_rematerialize << 1,
 647     Flag_is_macro            = Flag_needs_anti_dependence_check << 1,
 648     Flag_is_Con              = Flag_is_macro << 1,
 649     Flag_is_cisc_alternate   = Flag_is_Con << 1,
 650     Flag_is_dead_loop_safe   = Flag_is_cisc_alternate << 1,
 651     Flag_may_be_short_branch = Flag_is_dead_loop_safe << 1,
 652     Flag_avoid_back_to_back  = Flag_may_be_short_branch << 1,
 653     Flag_has_call            = Flag_avoid_back_to_back << 1,
 654     Flag_is_expensive        = Flag_has_call << 1,
 655     _max_flags = (Flag_is_expensive << 1) - 1 // allow flags combination
 656   };
 657 


 740   DEFINE_CLASS_QUERY(Lock)
 741   DEFINE_CLASS_QUERY(Loop)
 742   DEFINE_CLASS_QUERY(Mach)
 743   DEFINE_CLASS_QUERY(MachBranch)
 744   DEFINE_CLASS_QUERY(MachCall)
 745   DEFINE_CLASS_QUERY(MachCallDynamicJava)
 746   DEFINE_CLASS_QUERY(MachCallJava)
 747   DEFINE_CLASS_QUERY(MachCallLeaf)
 748   DEFINE_CLASS_QUERY(MachCallRuntime)
 749   DEFINE_CLASS_QUERY(MachCallStaticJava)
 750   DEFINE_CLASS_QUERY(MachConstantBase)
 751   DEFINE_CLASS_QUERY(MachConstant)
 752   DEFINE_CLASS_QUERY(MachGoto)
 753   DEFINE_CLASS_QUERY(MachIf)
 754   DEFINE_CLASS_QUERY(MachNullCheck)
 755   DEFINE_CLASS_QUERY(MachProj)
 756   DEFINE_CLASS_QUERY(MachReturn)
 757   DEFINE_CLASS_QUERY(MachSafePoint)
 758   DEFINE_CLASS_QUERY(MachSpillCopy)
 759   DEFINE_CLASS_QUERY(MachTemp)

 760   DEFINE_CLASS_QUERY(Mem)
 761   DEFINE_CLASS_QUERY(MemBar)
 762   DEFINE_CLASS_QUERY(MemBarStoreStore)
 763   DEFINE_CLASS_QUERY(MergeMem)
 764   DEFINE_CLASS_QUERY(Mul)
 765   DEFINE_CLASS_QUERY(Multi)
 766   DEFINE_CLASS_QUERY(MultiBranch)
 767   DEFINE_CLASS_QUERY(Parm)
 768   DEFINE_CLASS_QUERY(PCTable)
 769   DEFINE_CLASS_QUERY(Phi)
 770   DEFINE_CLASS_QUERY(Proj)
 771   DEFINE_CLASS_QUERY(Region)
 772   DEFINE_CLASS_QUERY(Root)
 773   DEFINE_CLASS_QUERY(SafePoint)
 774   DEFINE_CLASS_QUERY(SafePointScalarObject)
 775   DEFINE_CLASS_QUERY(Start)
 776   DEFINE_CLASS_QUERY(Store)
 777   DEFINE_CLASS_QUERY(Sub)
 778   DEFINE_CLASS_QUERY(Type)
 779   DEFINE_CLASS_QUERY(Vector)




  83 class LoopNode;
  84 class MachBranchNode;
  85 class MachCallDynamicJavaNode;
  86 class MachCallJavaNode;
  87 class MachCallLeafNode;
  88 class MachCallNode;
  89 class MachCallRuntimeNode;
  90 class MachCallStaticJavaNode;
  91 class MachConstantBaseNode;
  92 class MachConstantNode;
  93 class MachGotoNode;
  94 class MachIfNode;
  95 class MachNode;
  96 class MachNullCheckNode;
  97 class MachProjNode;
  98 class MachReturnNode;
  99 class MachSafePointNode;
 100 class MachSpillCopyNode;
 101 class MachTempNode;
 102 class Matcher;
 103 class MathExactNode;
 104 class MemBarNode;
 105 class MemBarStoreStoreNode;
 106 class MemNode;
 107 class MergeMemNode;
 108 class MulNode;
 109 class MultiNode;
 110 class MultiBranchNode;
 111 class NeverBranchNode;
 112 class Node;
 113 class Node_Array;
 114 class Node_List;
 115 class Node_Stack;
 116 class NullCheckNode;
 117 class OopMap;
 118 class ParmNode;
 119 class PCTableNode;
 120 class PhaseCCP;
 121 class PhaseGVN;
 122 class PhaseIterGVN;
 123 class PhaseRegAlloc;


 552             DEFINE_CLASS_ID(CallStaticJava,   CallJava, 0)
 553             DEFINE_CLASS_ID(CallDynamicJava,  CallJava, 1)
 554           DEFINE_CLASS_ID(CallRuntime,      Call, 1)
 555             DEFINE_CLASS_ID(CallLeaf,         CallRuntime, 0)
 556           DEFINE_CLASS_ID(Allocate,         Call, 2)
 557             DEFINE_CLASS_ID(AllocateArray,    Allocate, 0)
 558           DEFINE_CLASS_ID(AbstractLock,     Call, 3)
 559             DEFINE_CLASS_ID(Lock,             AbstractLock, 0)
 560             DEFINE_CLASS_ID(Unlock,           AbstractLock, 1)
 561       DEFINE_CLASS_ID(MultiBranch, Multi, 1)
 562         DEFINE_CLASS_ID(PCTable,     MultiBranch, 0)
 563           DEFINE_CLASS_ID(Catch,       PCTable, 0)
 564           DEFINE_CLASS_ID(Jump,        PCTable, 1)
 565         DEFINE_CLASS_ID(If,          MultiBranch, 1)
 566           DEFINE_CLASS_ID(CountedLoopEnd, If, 0)
 567         DEFINE_CLASS_ID(NeverBranch, MultiBranch, 2)
 568       DEFINE_CLASS_ID(Start,       Multi, 2)
 569       DEFINE_CLASS_ID(MemBar,      Multi, 3)
 570         DEFINE_CLASS_ID(Initialize,       MemBar, 0)
 571         DEFINE_CLASS_ID(MemBarStoreStore, MemBar, 1)
 572       DEFINE_CLASS_ID(MathExact,   Multi, 7)
 573         DEFINE_CLASS_ID(MathExactI, MathExact, 0)
 574           DEFINE_CLASS_ID(AddExactI, MathExactI, 0)
 575           DEFINE_CLASS_ID(SubExactI, MathExactI, 1)
 576           DEFINE_CLASS_ID(MulExactI, MathExactI, 2)
 577           DEFINE_CLASS_ID(NegExactI, MathExactI, 3)
 578         DEFINE_CLASS_ID(MathExactL, MathExact, 1)
 579           DEFINE_CLASS_ID(AddExactL, MathExactL, 0)
 580           DEFINE_CLASS_ID(SubExactL, MathExactL, 1)
 581           DEFINE_CLASS_ID(MulExactL, MathExactL, 2)
 582           DEFINE_CLASS_ID(NegExactL, MathExactL, 3)
 583 
 584     DEFINE_CLASS_ID(Mach,  Node, 1)
 585       DEFINE_CLASS_ID(MachReturn, Mach, 0)
 586         DEFINE_CLASS_ID(MachSafePoint, MachReturn, 0)
 587           DEFINE_CLASS_ID(MachCall, MachSafePoint, 0)
 588             DEFINE_CLASS_ID(MachCallJava,         MachCall, 0)
 589               DEFINE_CLASS_ID(MachCallStaticJava,   MachCallJava, 0)
 590               DEFINE_CLASS_ID(MachCallDynamicJava,  MachCallJava, 1)
 591             DEFINE_CLASS_ID(MachCallRuntime,      MachCall, 1)
 592               DEFINE_CLASS_ID(MachCallLeaf,         MachCallRuntime, 0)
 593       DEFINE_CLASS_ID(MachBranch, Mach, 1)
 594         DEFINE_CLASS_ID(MachIf,         MachBranch, 0)
 595         DEFINE_CLASS_ID(MachGoto,       MachBranch, 1)
 596         DEFINE_CLASS_ID(MachNullCheck,  MachBranch, 2)
 597       DEFINE_CLASS_ID(MachSpillCopy,    Mach, 2)
 598       DEFINE_CLASS_ID(MachTemp,         Mach, 3)
 599       DEFINE_CLASS_ID(MachConstantBase, Mach, 4)
 600       DEFINE_CLASS_ID(MachConstant,     Mach, 5)
 601 
 602     DEFINE_CLASS_ID(Type,  Node, 2)


 630     DEFINE_CLASS_ID(Region, Node, 5)
 631       DEFINE_CLASS_ID(Loop, Region, 0)
 632         DEFINE_CLASS_ID(Root,        Loop, 0)
 633         DEFINE_CLASS_ID(CountedLoop, Loop, 1)
 634 
 635     DEFINE_CLASS_ID(Sub,   Node, 6)
 636       DEFINE_CLASS_ID(Cmp,   Sub, 0)
 637         DEFINE_CLASS_ID(FastLock,   Cmp, 0)
 638         DEFINE_CLASS_ID(FastUnlock, Cmp, 1)
 639         DEFINE_CLASS_ID(FlagsProj, Cmp, 2)
 640 
 641     DEFINE_CLASS_ID(MergeMem, Node, 7)
 642     DEFINE_CLASS_ID(Bool,     Node, 8)
 643     DEFINE_CLASS_ID(AddP,     Node, 9)
 644     DEFINE_CLASS_ID(BoxLock,  Node, 10)
 645     DEFINE_CLASS_ID(Add,      Node, 11)
 646     DEFINE_CLASS_ID(Mul,      Node, 12)
 647     DEFINE_CLASS_ID(Vector,   Node, 13)
 648     DEFINE_CLASS_ID(ClearArray, Node, 14)
 649 
 650 
 651     _max_classes  = ClassMask_ClearArray
 652   };
 653   #undef DEFINE_CLASS_ID
 654 
 655   // Flags are sorted by usage frequency.
 656   enum NodeFlags {
 657     Flag_is_Copy             = 0x01, // should be first bit to avoid shift
 658     Flag_rematerialize       = Flag_is_Copy << 1,
 659     Flag_needs_anti_dependence_check = Flag_rematerialize << 1,
 660     Flag_is_macro            = Flag_needs_anti_dependence_check << 1,
 661     Flag_is_Con              = Flag_is_macro << 1,
 662     Flag_is_cisc_alternate   = Flag_is_Con << 1,
 663     Flag_is_dead_loop_safe   = Flag_is_cisc_alternate << 1,
 664     Flag_may_be_short_branch = Flag_is_dead_loop_safe << 1,
 665     Flag_avoid_back_to_back  = Flag_may_be_short_branch << 1,
 666     Flag_has_call            = Flag_avoid_back_to_back << 1,
 667     Flag_is_expensive        = Flag_has_call << 1,
 668     _max_flags = (Flag_is_expensive << 1) - 1 // allow flags combination
 669   };
 670 


 753   DEFINE_CLASS_QUERY(Lock)
 754   DEFINE_CLASS_QUERY(Loop)
 755   DEFINE_CLASS_QUERY(Mach)
 756   DEFINE_CLASS_QUERY(MachBranch)
 757   DEFINE_CLASS_QUERY(MachCall)
 758   DEFINE_CLASS_QUERY(MachCallDynamicJava)
 759   DEFINE_CLASS_QUERY(MachCallJava)
 760   DEFINE_CLASS_QUERY(MachCallLeaf)
 761   DEFINE_CLASS_QUERY(MachCallRuntime)
 762   DEFINE_CLASS_QUERY(MachCallStaticJava)
 763   DEFINE_CLASS_QUERY(MachConstantBase)
 764   DEFINE_CLASS_QUERY(MachConstant)
 765   DEFINE_CLASS_QUERY(MachGoto)
 766   DEFINE_CLASS_QUERY(MachIf)
 767   DEFINE_CLASS_QUERY(MachNullCheck)
 768   DEFINE_CLASS_QUERY(MachProj)
 769   DEFINE_CLASS_QUERY(MachReturn)
 770   DEFINE_CLASS_QUERY(MachSafePoint)
 771   DEFINE_CLASS_QUERY(MachSpillCopy)
 772   DEFINE_CLASS_QUERY(MachTemp)
 773   DEFINE_CLASS_QUERY(MathExact)
 774   DEFINE_CLASS_QUERY(Mem)
 775   DEFINE_CLASS_QUERY(MemBar)
 776   DEFINE_CLASS_QUERY(MemBarStoreStore)
 777   DEFINE_CLASS_QUERY(MergeMem)
 778   DEFINE_CLASS_QUERY(Mul)
 779   DEFINE_CLASS_QUERY(Multi)
 780   DEFINE_CLASS_QUERY(MultiBranch)
 781   DEFINE_CLASS_QUERY(Parm)
 782   DEFINE_CLASS_QUERY(PCTable)
 783   DEFINE_CLASS_QUERY(Phi)
 784   DEFINE_CLASS_QUERY(Proj)
 785   DEFINE_CLASS_QUERY(Region)
 786   DEFINE_CLASS_QUERY(Root)
 787   DEFINE_CLASS_QUERY(SafePoint)
 788   DEFINE_CLASS_QUERY(SafePointScalarObject)
 789   DEFINE_CLASS_QUERY(Start)
 790   DEFINE_CLASS_QUERY(Store)
 791   DEFINE_CLASS_QUERY(Sub)
 792   DEFINE_CLASS_QUERY(Type)
 793   DEFINE_CLASS_QUERY(Vector)


src/share/vm/opto/node.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File