hotspot/src/share/vm/opto/node.hpp
changeset 13104 657b387034fb
parent 11446 fd87432a895b
child 13391 30245956af37
equal deleted inserted replaced
12960:2989536b61ef 13104:657b387034fb
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    98 class Matcher;
    98 class Matcher;
    99 class MemBarNode;
    99 class MemBarNode;
   100 class MemBarStoreStoreNode;
   100 class MemBarStoreStoreNode;
   101 class MemNode;
   101 class MemNode;
   102 class MergeMemNode;
   102 class MergeMemNode;
       
   103 class MulNode;
   103 class MultiNode;
   104 class MultiNode;
   104 class MultiBranchNode;
   105 class MultiBranchNode;
   105 class NeverBranchNode;
   106 class NeverBranchNode;
   106 class Node;
   107 class Node;
   107 class Node_Array;
   108 class Node_Array;
   131 class SubNode;
   132 class SubNode;
   132 class Type;
   133 class Type;
   133 class TypeNode;
   134 class TypeNode;
   134 class UnlockNode;
   135 class UnlockNode;
   135 class VectorNode;
   136 class VectorNode;
   136 class VectorLoadNode;
   137 class LoadVectorNode;
   137 class VectorStoreNode;
   138 class StoreVectorNode;
   138 class VectorSet;
   139 class VectorSet;
   139 typedef void (*NFunc)(Node&,void*);
   140 typedef void (*NFunc)(Node&,void*);
   140 extern "C" {
   141 extern "C" {
   141   typedef int (*C_sort_func_t)(const void *, const void *);
   142   typedef int (*C_sort_func_t)(const void *, const void *);
   142 }
   143 }
   607       DEFINE_CLASS_ID(Parm,      Proj, 4)
   608       DEFINE_CLASS_ID(Parm,      Proj, 4)
   608       DEFINE_CLASS_ID(MachProj,  Proj, 5)
   609       DEFINE_CLASS_ID(MachProj,  Proj, 5)
   609 
   610 
   610     DEFINE_CLASS_ID(Mem,   Node, 4)
   611     DEFINE_CLASS_ID(Mem,   Node, 4)
   611       DEFINE_CLASS_ID(Load,  Mem, 0)
   612       DEFINE_CLASS_ID(Load,  Mem, 0)
   612         DEFINE_CLASS_ID(VectorLoad,  Load, 0)
   613         DEFINE_CLASS_ID(LoadVector,  Load, 0)
   613       DEFINE_CLASS_ID(Store, Mem, 1)
   614       DEFINE_CLASS_ID(Store, Mem, 1)
   614         DEFINE_CLASS_ID(VectorStore, Store, 0)
   615         DEFINE_CLASS_ID(StoreVector, Store, 0)
   615       DEFINE_CLASS_ID(LoadStore, Mem, 2)
   616       DEFINE_CLASS_ID(LoadStore, Mem, 2)
   616 
   617 
   617     DEFINE_CLASS_ID(Region, Node, 5)
   618     DEFINE_CLASS_ID(Region, Node, 5)
   618       DEFINE_CLASS_ID(Loop, Region, 0)
   619       DEFINE_CLASS_ID(Loop, Region, 0)
   619         DEFINE_CLASS_ID(Root,        Loop, 0)
   620         DEFINE_CLASS_ID(Root,        Loop, 0)
   627     DEFINE_CLASS_ID(MergeMem, Node, 7)
   628     DEFINE_CLASS_ID(MergeMem, Node, 7)
   628     DEFINE_CLASS_ID(Bool,     Node, 8)
   629     DEFINE_CLASS_ID(Bool,     Node, 8)
   629     DEFINE_CLASS_ID(AddP,     Node, 9)
   630     DEFINE_CLASS_ID(AddP,     Node, 9)
   630     DEFINE_CLASS_ID(BoxLock,  Node, 10)
   631     DEFINE_CLASS_ID(BoxLock,  Node, 10)
   631     DEFINE_CLASS_ID(Add,      Node, 11)
   632     DEFINE_CLASS_ID(Add,      Node, 11)
   632     DEFINE_CLASS_ID(Vector,   Node, 12)
   633     DEFINE_CLASS_ID(Mul,      Node, 12)
   633     DEFINE_CLASS_ID(ClearArray, Node, 13)
   634     DEFINE_CLASS_ID(Vector,   Node, 13)
       
   635     DEFINE_CLASS_ID(ClearArray, Node, 14)
   634 
   636 
   635     _max_classes  = ClassMask_ClearArray
   637     _max_classes  = ClassMask_ClearArray
   636   };
   638   };
   637   #undef DEFINE_CLASS_ID
   639   #undef DEFINE_CLASS_ID
   638 
   640 
   750   DEFINE_CLASS_QUERY(MachTemp)
   752   DEFINE_CLASS_QUERY(MachTemp)
   751   DEFINE_CLASS_QUERY(Mem)
   753   DEFINE_CLASS_QUERY(Mem)
   752   DEFINE_CLASS_QUERY(MemBar)
   754   DEFINE_CLASS_QUERY(MemBar)
   753   DEFINE_CLASS_QUERY(MemBarStoreStore)
   755   DEFINE_CLASS_QUERY(MemBarStoreStore)
   754   DEFINE_CLASS_QUERY(MergeMem)
   756   DEFINE_CLASS_QUERY(MergeMem)
       
   757   DEFINE_CLASS_QUERY(Mul)
   755   DEFINE_CLASS_QUERY(Multi)
   758   DEFINE_CLASS_QUERY(Multi)
   756   DEFINE_CLASS_QUERY(MultiBranch)
   759   DEFINE_CLASS_QUERY(MultiBranch)
   757   DEFINE_CLASS_QUERY(Parm)
   760   DEFINE_CLASS_QUERY(Parm)
   758   DEFINE_CLASS_QUERY(PCTable)
   761   DEFINE_CLASS_QUERY(PCTable)
   759   DEFINE_CLASS_QUERY(Phi)
   762   DEFINE_CLASS_QUERY(Phi)
   765   DEFINE_CLASS_QUERY(Start)
   768   DEFINE_CLASS_QUERY(Start)
   766   DEFINE_CLASS_QUERY(Store)
   769   DEFINE_CLASS_QUERY(Store)
   767   DEFINE_CLASS_QUERY(Sub)
   770   DEFINE_CLASS_QUERY(Sub)
   768   DEFINE_CLASS_QUERY(Type)
   771   DEFINE_CLASS_QUERY(Type)
   769   DEFINE_CLASS_QUERY(Vector)
   772   DEFINE_CLASS_QUERY(Vector)
   770   DEFINE_CLASS_QUERY(VectorLoad)
   773   DEFINE_CLASS_QUERY(LoadVector)
   771   DEFINE_CLASS_QUERY(VectorStore)
   774   DEFINE_CLASS_QUERY(StoreVector)
   772   DEFINE_CLASS_QUERY(Unlock)
   775   DEFINE_CLASS_QUERY(Unlock)
   773 
   776 
   774   #undef DEFINE_CLASS_QUERY
   777   #undef DEFINE_CLASS_QUERY
   775 
   778 
   776   // duplicate of is_MachSpillCopy()
   779   // duplicate of is_MachSpillCopy()