< prev index next >

src/hotspot/share/opto/node.hpp

Print this page
@@ -174,10 +174,13 @@
  class VectorMaskCmpNode;
  class VectorUnboxNode;
  class VectorSet;
  class VectorReinterpretNode;
  class ShiftVNode;
+ class ExpandVNode;
+ class CompressVNode;
+ class CompressMNode;
  
  
  #ifndef OPTO_DU_ITERATOR_ASSERT
  #ifdef ASSERT
  #define OPTO_DU_ITERATOR_ASSERT 1

@@ -705,10 +708,13 @@
        DEFINE_CLASS_ID(Vector, Type, 7)
          DEFINE_CLASS_ID(VectorMaskCmp, Vector, 0)
          DEFINE_CLASS_ID(VectorUnbox, Vector, 1)
          DEFINE_CLASS_ID(VectorReinterpret, Vector, 2)
          DEFINE_CLASS_ID(ShiftV, Vector, 3)
+         DEFINE_CLASS_ID(CompressV, Vector, 4)
+         DEFINE_CLASS_ID(ExpandV, Vector, 5)
+         DEFINE_CLASS_ID(CompressM, Vector, 6)
  
      DEFINE_CLASS_ID(Proj,  Node, 3)
        DEFINE_CLASS_ID(CatchProj, Proj, 0)
        DEFINE_CLASS_ID(JumpProj,  Proj, 1)
        DEFINE_CLASS_ID(IfProj,    Proj, 2)

@@ -774,15 +780,17 @@
      Flag_avoid_back_to_back_before   = 1 << 8,
      Flag_avoid_back_to_back_after    = 1 << 9,
      Flag_has_call                    = 1 << 10,
      Flag_is_reduction                = 1 << 11,
      Flag_is_scheduled                = 1 << 12,
-     Flag_is_expensive                = 1 << 13,
-     Flag_is_predicated_vector        = 1 << 14,
-     Flag_for_post_loop_opts_igvn     = 1 << 15,
-     Flag_is_removed_by_peephole      = 1 << 16,
-     _last_flag                       = Flag_is_removed_by_peephole
+     Flag_has_vector_mask_set         = 1 << 13,
+     Flag_is_expensive                = 1 << 14,
+     Flag_is_predicated_vector        = 1 << 15,
+     Flag_for_post_loop_opts_igvn     = 1 << 16,
+     Flag_is_removed_by_peephole      = 1 << 17,
+     Flag_is_predicated_using_blend   = 1 << 18,
+     _last_flag                       = Flag_is_predicated_using_blend
    };
  
    class PD;
  
  private:

@@ -934,11 +942,14 @@
    DEFINE_CLASS_QUERY(SubTypeCheck)
    DEFINE_CLASS_QUERY(Type)
    DEFINE_CLASS_QUERY(Vector)
    DEFINE_CLASS_QUERY(VectorMaskCmp)
    DEFINE_CLASS_QUERY(VectorUnbox)
-   DEFINE_CLASS_QUERY(VectorReinterpret);
+   DEFINE_CLASS_QUERY(VectorReinterpret)
+   DEFINE_CLASS_QUERY(CompressV)
+   DEFINE_CLASS_QUERY(ExpandV)
+   DEFINE_CLASS_QUERY(CompressM)
    DEFINE_CLASS_QUERY(LoadVector)
    DEFINE_CLASS_QUERY(LoadVectorGather)
    DEFINE_CLASS_QUERY(StoreVector)
    DEFINE_CLASS_QUERY(StoreVectorScatter)
    DEFINE_CLASS_QUERY(ShiftV)

@@ -992,10 +1003,15 @@
    // It must have the loop's phi as input and provide a def to the phi.
    bool is_reduction() const { return (_flags & Flag_is_reduction) != 0; }
  
    bool is_predicated_vector() const { return (_flags & Flag_is_predicated_vector) != 0; }
  
+   bool is_predicated_using_blend() const { return (_flags & Flag_is_predicated_using_blend) != 0; }
+ 
+   // The node is a CountedLoopEnd with a mask annotation so as to emit a restore context
+   bool has_vector_mask_set() const { return (_flags & Flag_has_vector_mask_set) != 0; }
+ 
    // Used in lcm to mark nodes that have scheduled
    bool is_scheduled() const { return (_flags & Flag_is_scheduled) != 0; }
  
    bool for_post_loop_opts_igvn() const { return (_flags & Flag_for_post_loop_opts_igvn) != 0; }
  
< prev index next >