< prev index next >

src/hotspot/share/opto/chaitin.hpp

Print this page
*** 1,7 ***
  /*
!  * Copyright (c) 1997, 2020, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.
--- 1,7 ---
  /*
!  * Copyright (c) 1997, 2021, Oracle and/or its affiliates. All rights reserved.
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   *
   * This code is free software; you can redistribute it and/or modify it
   * under the terms of the GNU General Public License version 2 only, as
   * published by the Free Software Foundation.

*** 161,12 ***
    }
  
    bool is_scalable() {
  #ifdef ASSERT
      if (_is_scalable) {
!       // Should only be a vector for now, but it could also be a RegVectMask in future.
!       assert(_is_vector && (_num_regs == RegMask::SlotsPerVecA), "unexpected scalable reg");
      }
  #endif
      return Matcher::implements_scalable_vector && _is_scalable;
    }
  
--- 161,12 ---
    }
  
    bool is_scalable() {
  #ifdef ASSERT
      if (_is_scalable) {
!       assert(_is_vector && (_num_regs == RegMask::SlotsPerVecA) ||
!              _is_predicate && (_num_regs == RegMask::SlotsPerRegVectMask), "unexpected scalable reg");
      }
  #endif
      return Matcher::implements_scalable_vector && _is_scalable;
    }
  

*** 193,10 ***
--- 193,11 ---
    bool just_lo_degree () const { return degree() == degrees_of_freedom(); }
  
    uint   _is_oop:1,             // Live-range holds an oop
           _is_float:1,           // True if in float registers
           _is_vector:1,          // True if in vector registers
+          _is_predicate:1,       // True if in mask/predicate registers
           _is_scalable:1,        // True if register size is scalable
                                  //      e.g. Arm SVE vector/predicate registers.
           _was_spilled1:1,       // True if prior spilling on def
           _was_spilled2:1,       // True if twice prior spilling on def
           _is_bound:1,           // live range starts life with no
< prev index next >