https://gcc.gnu.org/g:46617eeddbb3a7bb44c1ca5f9164da6bf5f39002

commit 46617eeddbb3a7bb44c1ca5f9164da6bf5f39002
Author: Mikael Morin <mik...@gcc.gnu.org>
Date:   Tue Jun 17 15:45:25 2025 +0200

    gimple-simulate: constant -> known

Diff:
---
 gcc/gimple-simulate.cc | 605 +++++++++++++++++++++++++------------------------
 1 file changed, 304 insertions(+), 301 deletions(-)

diff --git a/gcc/gimple-simulate.cc b/gcc/gimple-simulate.cc
index 75fe0e46f5ff..5fc9b1ccfd6f 100644
--- a/gcc/gimple-simulate.cc
+++ b/gcc/gimple-simulate.cc
@@ -19,11 +19,13 @@ along with GCC; see the file COPYING3.  If not see
 
 
 /* This implements a simulator of the gimple/SSA IR, that produces on the
-   standard error a trace of the evolution of variables and memory allocated.
-   This is targetted at debugging of medium sized testcases whose behaviour is
-   not completely clear by simply starring at the IR.  It's called when the
-   -fgimple-simulate argument is passed to the compiler.  It's supposed to be
-   used with the IR produced by the gimple frontend.  */
+   standard error a trace of the evolution of variables and memory allocated
+   as statements are executed.
+   This is targetted at debugging medium-sized testcases whose behaviour is
+   not completely clear by simply starring at the IR.
+   The simulator is called when the -fgimple-simulate argument is passed to
+   the compiler.  It's supposed to be used with the IR produced by the gimple
+   frontend.  */
 
 
 #include "config.h"
@@ -93,14 +95,14 @@ get_constant_type_size (tree type)
    
 enum value_type
 {
-  /* An invalid value that isn't any of the other cases below.  */
+  /* An invalid value that doesn't represent any meaningful case.  */
   VAL_NONE,
   /* A value that hasn't been initialized.  */
   VAL_UNDEFINED,
   /* An address of a storage.  */
   VAL_ADDRESS,
   /* A known value.  */
-  VAL_CONSTANT,
+  VAL_KNOWN,
   /* A non-uniform value.  There is some of it that is of a different kind
      from the rest of it.  */
   VAL_MIXED
@@ -212,7 +214,7 @@ namespace selftest
 
 
 /* Class representing a value.  A value is a set of bits, some of which may
-   be used to store some known constant, some of which may be used to store
+   be used to store some known value, some of which may be used to store
    addresses.
    Bits storing a known value are represented with two wide_int fields.  One
    is a mask telling which bits store a known value, and the other tells that
@@ -220,21 +222,22 @@ namespace selftest
    Bits storing an address are represented with one wide_int field and a vector
    of addresses.  The wide_int field is a mask like for the known value case.
    Individual bits can't store addresses, so the mask will be set by full
-   chunks of HOST_BITS_PER_PTR bits.  The vector of values represents all the
-   addresses that have ever been written to that value.  Two writes to the
-   same pointer will create two elements in the vector, and the second
-   write will create the second element and invalidate the first.  */
+   chunks of HOST_BITS_PER_PTR bits.  The vector of addresses represents all 
the
+   addresses that have ever been written at any position in the value.  One
+   write to any position in the value will be represented by appending a new
+   element to the address vector, and a second write at the same position will
+   be represented by appending a different element and invalidating the first
+   one without removing it from the vector.  */
 
 class data_value
 {
-  
   unsigned bit_width;
-  wide_int constant_mask;
+  wide_int known_mask;
   wide_int address_mask;
-  wide_int constant_value;
+  wide_int known_value;
   auto_vec<stored_address> addresses;
-  void set_cst_at (unsigned dest_offset, unsigned value_width,
-                  const wide_int &val, unsigned src_offset);
+  void set_known_at (unsigned dest_offset, unsigned value_width,
+                    const wide_int &val, unsigned src_offset);
   stored_address *find_address (HOST_WIDE_INT offset) const;
 
   friend void selftest::data_value_classify_tests ();
@@ -245,9 +248,9 @@ class data_value
 public:
   data_value (unsigned width)
     : bit_width (width),
-    constant_mask (wi::shwi (HOST_WIDE_INT_0, width)),
+    known_mask (wi::shwi (HOST_WIDE_INT_0, width)),
     address_mask (wi::shwi (HOST_WIDE_INT_0, width)),
-    constant_value (wi::shwi (HOST_WIDE_INT_0, width)),
+    known_value (wi::shwi (HOST_WIDE_INT_0, width)),
     addresses ()
   {}
   data_value (tree type)
@@ -265,14 +268,14 @@ public:
               const data_value & value_src, unsigned src_offset);
   void set_at (const data_value & value, unsigned offset);
   void set (const data_value & value);
-  void set_cst_at (const wide_int & val, unsigned offset);
-  void set_cst (const wide_int & val);
-  wide_int get_cst_at (unsigned offset, unsigned width) const;
-  wide_int get_cst () const;
+  void set_known_at (const wide_int & val, unsigned offset);
+  void set_known (const wide_int & val);
+  wide_int get_known_at (unsigned offset, unsigned width) const;
+  wide_int get_known () const;
   storage_address *get_address () const;
   storage_address *get_address_at (unsigned offset) const;
   data_value get_at (unsigned offset, unsigned width) const;
-  bool is_fully_defined () const { return (~(constant_mask | address_mask)) == 
0; }
+  bool is_fully_defined () const { return (~(known_mask | address_mask)) == 0; 
}
   tree to_tree (tree type) const;
 };
 
@@ -674,8 +677,8 @@ context_printer::print (simul_scope * ctx, tree expr)
        gcc_assert (address != nullptr);
 
        data_value val_off = ctx->evaluate (TREE_OPERAND (expr, 1));
-       gcc_assert (val_off.classify () == VAL_CONSTANT);
-       wide_int wi_off = val_off.get_cst ();
+       gcc_assert (val_off.classify () == VAL_KNOWN);
+       wide_int wi_off = val_off.get_known ();
        wi_off = (wi_off * CHAR_BIT) + address->offset;
 
        if (!wi::fits_uhwi_p (wi_off))
@@ -1092,9 +1095,9 @@ data_storage::get_ref () const
 
 data_value::data_value (const data_value & other)
   : bit_width (other.bit_width),
-  constant_mask (other.constant_mask),
+  known_mask (other.known_mask),
   address_mask (other.address_mask),
-  constant_value (other.constant_value),
+  known_value (other.known_value),
   addresses (other.addresses.copy ())
 {}
 
@@ -1122,15 +1125,15 @@ data_value::classify (unsigned offset, unsigned width) 
const
 {
   wide_int mask = wi::shifted_mask (offset, width, false, bit_width);
   bool has_address = (address_mask & mask) != 0;
-  bool has_constant = (constant_mask & mask) != 0;
+  bool has_known = (known_mask & mask) != 0;
 
-  int has_count = has_address + has_constant;
+  int has_count = has_address + has_known;
   if (has_count > 1)
     return VAL_MIXED;
   else if (has_count == 0)
     return VAL_UNDEFINED;
-  else if (has_constant && ((~constant_mask) & mask) == 0)
-    return VAL_CONSTANT;
+  else if (has_known && ((~known_mask) & mask) == 0)
+    return VAL_KNOWN;
   else if (has_address && ((~address_mask) & mask) == 0)
     return VAL_ADDRESS;
   else
@@ -1176,7 +1179,7 @@ data_value::set_address_at (storage_address & address, 
unsigned offset)
       existing_address->invalidate ();
     }
 
-  constant_mask &= ~mask;
+  known_mask &= ~mask;
   address_mask |= mask;
 
   stored_address new_address (address, offset);
@@ -1205,7 +1208,7 @@ data_value::set_undefined_at (unsigned offset, unsigned 
width)
                                         bit_width);
 
   // TODO: invalidate existing address if any
-  constant_mask &= ~dest_mask;
+  known_mask &= ~dest_mask;
   address_mask &= ~dest_mask;
 }
 
@@ -1215,8 +1218,8 @@ data_value::set_undefined_at (unsigned offset, unsigned 
width)
    [SRC_OFFSET, SRC_OFFSET+VALUE_WIDTH).  */
 
 void
-data_value::set_cst_at (unsigned dest_offset, unsigned value_width,
-                       const wide_int & value_src, unsigned src_offset)
+data_value::set_known_at (unsigned dest_offset, unsigned value_width,
+                         const wide_int & value_src, unsigned src_offset)
 {
   unsigned src_width = value_src.get_precision ();
   gcc_assert (dest_offset < bit_width);
@@ -1234,9 +1237,9 @@ data_value::set_cst_at (unsigned dest_offset, unsigned 
value_width,
        existing_address->invalidate ();
     }
 
-  if (orig_type != VAL_CONSTANT)
+  if (orig_type != VAL_KNOWN)
     {
-      constant_mask |= dest_mask;
+      known_mask |= dest_mask;
       address_mask &= ~dest_mask;
     }
 
@@ -1250,8 +1253,8 @@ data_value::set_cst_at (unsigned dest_offset, unsigned 
value_width,
   if (dest_offset > 0)
     dest_value <<= dest_offset; 
 
-  constant_value &= ~dest_mask;
-  constant_value |= dest_value;
+  known_value &= ~dest_mask;
+  known_value |= dest_value;
 }
 
 
@@ -1273,8 +1276,8 @@ data_value::set_at (unsigned dest_offset, unsigned 
value_width,
       set_undefined_at (dest_offset, value_width);
       break;
 
-    case VAL_CONSTANT:
-      set_cst_at (dest_offset, value_width, value_src.constant_value, 
src_offset);
+    case VAL_KNOWN:
+      set_known_at (dest_offset, value_width, value_src.known_value, 
src_offset);
       break;
 
     case VAL_ADDRESS:
@@ -1304,9 +1307,9 @@ data_value::set_at (unsigned dest_offset, unsigned 
value_width,
 
     case VAL_MIXED:
       {
-       gcc_assert ((constant_mask & address_mask) == 0);
+       gcc_assert ((known_mask & address_mask) == 0);
 
-       wide_int cst_part = value_src.constant_mask;
+       wide_int known_part = value_src.known_mask;
        wide_int address_part = value_src.address_mask;
 
        unsigned src_width = value_src.bit_width;
@@ -1314,20 +1317,20 @@ data_value::set_at (unsigned dest_offset, unsigned 
value_width,
        wide_int mask = wi::shifted_mask (src_offset, value_width, false,
                                          value_src.bit_width);
 
-       cst_part &= mask;
+       known_part &= mask;
        address_part &= mask;
 
-       while (cst_part != 0 || address_part != 0)
+       while (known_part != 0 || address_part != 0)
          {
-           int ctz_cst = wi::ctz (cst_part);
+           int ctz_known = wi::ctz (known_part);
            int ctz_addr = wi::ctz (address_part);
 
            int next_offset;
            wide_int selected_part;
-           if (ctz_cst < ctz_addr)
+           if (ctz_known < ctz_addr)
              {
-               next_offset = ctz_cst;
-               selected_part = cst_part;
+               next_offset = ctz_known;
+               selected_part = known_part;
              }
            else
              {
@@ -1344,7 +1347,7 @@ data_value::set_at (unsigned dest_offset, unsigned 
value_width,
 
            wide_int mask = wi::shifted_mask (next_offset, width, false, 
src_width);
 
-           cst_part &= ~mask;
+           known_part &= ~mask;
            address_part &= ~mask;
          }
        
@@ -1380,33 +1383,33 @@ data_value::set (const data_value & value)
 /* Write the constant to THIS at bits starting at OFFSET as a known value.  */
 
 void
-data_value::set_cst_at (const wide_int & val, unsigned offset)
+data_value::set_known_at (const wide_int & val, unsigned offset)
 {
-  set_cst_at (offset, val.get_precision (), val, 0);
+  set_known_at (offset, val.get_precision (), val, 0);
 }
 
 
 /* Write the constant to THIS as a known value.  */
 
 void
-data_value::set_cst (const wide_int & val)
+data_value::set_known (const wide_int & val)
 {
   gcc_assert (val.get_precision () == bit_width);
-  set_cst_at (val, 0);
+  set_known_at (val, 0);
 }
 
 
 /* Return the known value at bits [OFFSET, OFFSET+WIDTH) of THIS.  */
 
 wide_int
-data_value::get_cst_at (unsigned offset, unsigned width) const
+data_value::get_known_at (unsigned offset, unsigned width) const
 {
   gcc_assert (offset < bit_width);
   gcc_assert (width <= bit_width - offset);
 
   enum value_type val_type = classify (offset, width);
-  gcc_assert (val_type == VAL_CONSTANT);
-  wide_int tmp = wide_int::from (wide_int_ref (constant_value), bit_width, 
UNSIGNED);
+  gcc_assert (val_type == VAL_KNOWN);
+  wide_int tmp = wide_int::from (wide_int_ref (known_value), bit_width, 
UNSIGNED);
   if (offset > 0)
     tmp = wi::lrshift (tmp, offset);
   return wide_int::from (tmp, width, UNSIGNED);
@@ -1416,9 +1419,9 @@ data_value::get_cst_at (unsigned offset, unsigned width) 
const
 /* Return the known value of THIS.  */
 
 wide_int
-data_value::get_cst () const
+data_value::get_known () const
 {
-  return get_cst_at (0, bit_width);
+  return get_known_at (0, bit_width);
 }
 
 
@@ -1457,8 +1460,8 @@ data_value::get_at (unsigned offset, unsigned width) const
   data_value result (width);
   switch (classify (offset, width))
     {
-    case VAL_CONSTANT:
-      result.set_cst (get_cst_at (offset, width));
+    case VAL_KNOWN:
+      result.set_known (get_known_at (offset, width));
       break;
 
     case VAL_ADDRESS:
@@ -1488,8 +1491,8 @@ data_value::get_at (unsigned offset, unsigned width) const
 tree
 data_value::to_tree (tree type) const
 {
-  gcc_assert (classify () == VAL_CONSTANT);
-  wide_int value = get_cst ();
+  gcc_assert (classify () == VAL_KNOWN);
+  wide_int value = get_known ();
   if (TREE_CODE (type) == INTEGER_TYPE)
     return wide_int_to_tree (type, value);
   else
@@ -1554,14 +1557,14 @@ context_printer::print_at (const data_value & value, 
tree type, unsigned offset,
          }
          break;
 
-       case VAL_CONSTANT:
+       case VAL_KNOWN:
          {
-           const wide_int wi_val = value.get_cst_at (offset, width);
+           const wide_int wi_val = value.get_known_at (offset, width);
            if (TREE_CODE (type) == REAL_TYPE)
              {
                tree int_type = make_signed_type (width);
-               tree cst = wide_int_to_tree (int_type, wi_val);
-               tree real = fold_build1 (VIEW_CONVERT_EXPR, type, cst);
+               tree known = wide_int_to_tree (int_type, wi_val);
+               tree real = fold_build1 (VIEW_CONVERT_EXPR, type, known);
                print (nullptr, real);
              }
            else
@@ -1833,7 +1836,7 @@ simul_scope::evaluate (tree expr) const
       {
        data_value result (TREE_TYPE (expr));
        wide_int wi_expr = wi::to_wide (expr);
-       result.set_cst (wi_expr);
+       result.set_known (wi_expr);
        return result;
       }
       break;
@@ -1859,7 +1862,7 @@ simul_scope::evaluate (tree expr) const
          {
            // Unimplemented, set to NULL and hope that it won't be used.
            wide_int zero = wi::zero (result.get_bitwidth ());
-           result.set_cst (zero);
+           result.set_known (zero);
          }
        else
          {
@@ -1957,7 +1960,7 @@ simul_scope::evaluate_constructor (tree cstr) const
   if (CONSTRUCTOR_NELTS (cstr) == 0)
     {
       wide_int zero = wi::zero (bit_width);
-      result.set_cst (zero);
+      result.set_known (zero);
       return result;
     }
 
@@ -2015,14 +2018,14 @@ simul_scope::evaluate_unary (enum tree_code code, tree 
type, tree arg) const
        if (source_width == target_width)
          return value;
 
-       gcc_assert (value.classify () == VAL_CONSTANT);
+       gcc_assert (value.classify () == VAL_KNOWN);
        tree t = value.to_tree (TREE_TYPE (arg));
        tree r = fold_unary (code, type, t);
        gcc_assert (TREE_CODE (r) == INTEGER_CST);
        wide_int wi_r = wi::to_wide (r);
 
        data_value result (type);
-       result.set_cst (wi_r);
+       result.set_known (wi_r);
        return result;
       }
       break;
@@ -2056,7 +2059,7 @@ simul_scope::evaluate_binary (enum tree_code code, tree 
type, tree lhs, tree rhs
   data_value val_rhs = evaluate (rhs);
   enum value_type lhs_type = val_lhs.classify ();
   enum value_type rhs_type = val_rhs.classify ();
-  if (lhs_type == VAL_CONSTANT && rhs_type == VAL_CONSTANT)
+  if (lhs_type == VAL_KNOWN && rhs_type == VAL_KNOWN)
     {
       gcc_assert (TREE_TYPE (lhs) == TREE_TYPE (rhs)
                  || (TREE_CODE (TREE_TYPE (lhs)) == INTEGER_TYPE
@@ -2071,18 +2074,18 @@ simul_scope::evaluate_binary (enum tree_code code, tree 
type, tree lhs, tree rhs
       gcc_assert (t != NULL_TREE);
       return evaluate (t);
     }
-  else if ((lhs_type == VAL_ADDRESS && rhs_type == VAL_CONSTANT)
-          || (lhs_type == VAL_CONSTANT && rhs_type == VAL_ADDRESS))
+  else if ((lhs_type == VAL_ADDRESS && rhs_type == VAL_KNOWN)
+          || (lhs_type == VAL_KNOWN && rhs_type == VAL_ADDRESS))
     {
       if (code == PLUS_EXPR || code == POINTER_PLUS_EXPR)
        {
          data_value *val_address = nullptr, *val_offset = nullptr;
-         if (lhs_type == VAL_ADDRESS && rhs_type == VAL_CONSTANT)
+         if (lhs_type == VAL_ADDRESS && rhs_type == VAL_KNOWN)
            {
              val_address = &val_lhs;
              val_offset = &val_rhs;
            }
-         else if (lhs_type == VAL_CONSTANT && rhs_type == VAL_ADDRESS)
+         else if (lhs_type == VAL_KNOWN && rhs_type == VAL_ADDRESS)
            {
              val_address = &val_rhs;
              val_offset = &val_lhs;
@@ -2092,7 +2095,7 @@ simul_scope::evaluate_binary (enum tree_code code, tree 
type, tree lhs, tree rhs
 
          storage_address *address = val_address->get_address ();
          gcc_assert (address != nullptr);
-         wide_int offset = val_offset->get_cst ();
+         wide_int offset = val_offset->get_known ();
          wide_int bit_offset = offset * CHAR_BIT;
          wide_int total_offset = address->offset + bit_offset;
          gcc_assert (wi::fits_uhwi_p (total_offset));
@@ -2105,21 +2108,21 @@ simul_scope::evaluate_binary (enum tree_code code, tree 
type, tree lhs, tree rhs
       else if (code == EQ_EXPR || code == NE_EXPR)
        {
          data_value *val_null = nullptr;
-         if (lhs_type == VAL_ADDRESS && rhs_type == VAL_CONSTANT)
+         if (lhs_type == VAL_ADDRESS && rhs_type == VAL_KNOWN)
            val_null = &val_rhs;
-         else if (lhs_type == VAL_CONSTANT && rhs_type == VAL_ADDRESS)
+         else if (lhs_type == VAL_KNOWN && rhs_type == VAL_ADDRESS)
            val_null = &val_lhs;
          else
            gcc_unreachable ();
 
          /* Check that val_null really is the null pointer.  */
-         wide_int wi_null_val = val_null->get_cst ();
+         wide_int wi_null_val = val_null->get_known ();
          gcc_assert (wi_null_val == 0);
 
          data_value result (type);
          bool bool_result = code == NE_EXPR;
          wide_int wi_result = wi::uhwi (bool_result, result.get_bitwidth ());
-         result.set_cst (wi_result);
+         result.set_known (wi_result);
          return result;
        }
       else
@@ -2175,8 +2178,8 @@ simul_scope::decompose_ref (tree data_ref, data_storage * 
& storage, int & offse
 
            tree idx = TREE_OPERAND (data_ref, 1);
            data_value val = evaluate (idx);
-           gcc_assert (val.classify () == VAL_CONSTANT);
-           add_index = val.get_cst ();
+           gcc_assert (val.classify () == VAL_KNOWN);
+           add_index = val.get_known ();
 
            gcc_assert (TREE_OPERAND (data_ref, 3) == NULL_TREE);
            tree elt_type = TREE_TYPE (TREE_TYPE (parent_data_ref));
@@ -2211,8 +2214,8 @@ simul_scope::decompose_ref (tree data_ref, data_storage * 
& storage, int & offse
            add_offset = wi::uhwi (addr->offset, HOST_BITS_PER_WIDE_INT);
            tree off = TREE_OPERAND (data_ref, 1);
            data_value off_val = evaluate (off);
-           gcc_assert (off_val.classify () == VAL_CONSTANT);
-           add_offset += off_val.get_cst () * CHAR_BIT;
+           gcc_assert (off_val.classify () == VAL_KNOWN);
+           add_offset += off_val.get_known () * CHAR_BIT;
 
            if (code == TARGET_MEM_REF)
              {
@@ -2223,12 +2226,12 @@ simul_scope::decompose_ref (tree data_ref, data_storage 
* & storage, int & offse
                    gcc_assert (index && step);
 
                    data_value idx_val = evaluate (index);
-                   gcc_assert (idx_val.classify () == VAL_CONSTANT);
-                   add_index = idx_val.get_cst ();
+                   gcc_assert (idx_val.classify () == VAL_KNOWN);
+                   add_index = idx_val.get_known ();
 
                    data_value step_val = evaluate (step);
-                   gcc_assert (step_val.classify () == VAL_CONSTANT);
-                   add_multiplier = step_val.get_cst ();
+                   gcc_assert (step_val.classify () == VAL_KNOWN);
+                   add_multiplier = step_val.get_known ();
                    add_multiplier *= CHAR_BIT;
                  }
              }
@@ -2365,8 +2368,8 @@ simul_scope::simulate_call (gcall *g)
       gcc_assert (gimple_call_num_args (g) == 1);
       tree arg = gimple_call_arg (g, 0);
       data_value size = evaluate (arg);
-      gcc_assert (size.classify () == VAL_CONSTANT);
-      wide_int wi_size = size.get_cst ();
+      gcc_assert (size.classify () == VAL_KNOWN);
+      wide_int wi_size = size.get_known ();
       gcc_assert (wi::fits_uhwi_p (wi_size));
       HOST_WIDE_INT alloc_amount = wi_size.to_uhwi ();
       data_storage &storage = allocate (alloc_amount);
@@ -2384,10 +2387,10 @@ simul_scope::simulate_call (gcall *g)
       tree arg1 = gimple_call_arg (g, 1);
       data_value size0 = evaluate (arg0);
       data_value size1 = evaluate (arg1);
-      gcc_assert (size0.classify () == VAL_CONSTANT);
-      gcc_assert (size1.classify () == VAL_CONSTANT);
-      wide_int wi_size0 = size0.get_cst ();
-      wide_int wi_size1 = size1.get_cst ();
+      gcc_assert (size0.classify () == VAL_KNOWN);
+      gcc_assert (size1.classify () == VAL_KNOWN);
+      wide_int wi_size0 = size0.get_known ();
+      wide_int wi_size1 = size1.get_known ();
       wi::overflow_type ovf;
       wide_int combined_size = umul (wi_size0, wi_size1, &ovf);
       gcc_assert (ovf == wi::OVF_NONE);
@@ -2401,7 +2404,7 @@ simul_scope::simulate_call (gcall *g)
       gcc_assert (wi::fits_uhwi_p (size_bits));
       unsigned HOST_WIDE_INT hwi_size = size_bits.to_uhwi ();
       data_value val (hwi_size);
-      val.set_cst (wi::zero (hwi_size));
+      val.set_known (wi::zero (hwi_size));
       storage.set (val);
 
       storage_address address (storage.get_ref (), 0);
@@ -2418,14 +2421,14 @@ simul_scope::simulate_call (gcall *g)
       data_value len2 = evaluate (arg2);
       gcc_assert (ptr0.classify () == VAL_ADDRESS);
       gcc_assert (ptr1.classify () == VAL_ADDRESS);
-      gcc_assert (len2.classify () == VAL_CONSTANT);
+      gcc_assert (len2.classify () == VAL_KNOWN);
       storage_address addr0 = *ptr0.get_address ();
       data_storage & storage0 = addr0.storage.get ();
       data_value dest_val = storage0.get_value ();
       storage_address addr1 = *ptr1.get_address ();
       data_storage & storage1 = addr1.storage.get ();
       data_value src = storage1.get_value ();
-      wide_int wi_len2 = len2.get_cst ();
+      wide_int wi_len2 = len2.get_known ();
       gcc_assert (wi::fits_shwi_p (wi_len2));
       HOST_WIDE_INT hwi_len2 = wi_len2.to_shwi ();
       tree array_len2 = build_array_type_nelts (char_type_node, hwi_len2);
@@ -2449,18 +2452,18 @@ simul_scope::simulate_call (gcall *g)
       data_value val1 = evaluate (arg1);
       data_value len2 = evaluate (arg2);
       gcc_assert (ptr0.classify () == VAL_ADDRESS);
-      gcc_assert (val1.classify () == VAL_CONSTANT);
-      gcc_assert (len2.classify () == VAL_CONSTANT);
+      gcc_assert (val1.classify () == VAL_KNOWN);
+      gcc_assert (len2.classify () == VAL_KNOWN);
       storage_address addr0 = *ptr0.get_address ();
       data_storage & storage0 = addr0.storage.get ();
       data_value dest_val = storage0.get_value ();
 
-      wide_int wi_val1 = val1.get_cst ();
+      wide_int wi_val1 = val1.get_known ();
       gcc_assert (wi::fits_uhwi_p (wi_val1));
       data_value byte1 (CHAR_BIT);
-      byte1.set_cst (wi::uhwi (wi_val1.to_uhwi (), CHAR_BIT));
+      byte1.set_known (wi::uhwi (wi_val1.to_uhwi (), CHAR_BIT));
 
-      wide_int wi_len2 = len2.get_cst ();
+      wide_int wi_len2 = len2.get_known ();
       gcc_assert (wi::fits_uhwi_p (wi_len2));
       unsigned HOST_WIDE_INT uhwi_len2 = wi_len2.to_uhwi ();
 
@@ -2565,7 +2568,7 @@ simul_scope::evaluate_condition (gcond *cond) const
   enum value_type lhs_type, rhs_type;
   lhs_type = val_lhs.classify ();
   rhs_type = val_rhs.classify ();
-  if (lhs_type == VAL_CONSTANT && rhs_type == VAL_CONSTANT)
+  if (lhs_type == VAL_KNOWN && rhs_type == VAL_KNOWN)
     {
       tree lval = val_lhs.to_tree (TREE_TYPE (lhs));
       tree rval = val_rhs.to_tree (TREE_TYPE (rhs));
@@ -2602,19 +2605,19 @@ simul_scope::evaluate_condition (gcond *cond) const
          gcc_unreachable ();
        }
     }
-  else if ((lhs_type == VAL_CONSTANT && rhs_type == VAL_ADDRESS)
-          || (lhs_type == VAL_ADDRESS && rhs_type == VAL_CONSTANT))
+  else if ((lhs_type == VAL_KNOWN && rhs_type == VAL_ADDRESS)
+          || (lhs_type == VAL_ADDRESS && rhs_type == VAL_KNOWN))
     {
       /* Comparison of an address against a null pointer.  */
       data_value * null = nullptr;
-      if (lhs_type == VAL_CONSTANT)
+      if (lhs_type == VAL_KNOWN)
        null = &val_lhs;
-      else if (rhs_type == VAL_CONSTANT)
+      else if (rhs_type == VAL_KNOWN)
        null = &val_rhs;
       else
        gcc_unreachable ();
 
-      gcc_assert (null->get_cst () == 0);
+      gcc_assert (null->get_known () == 0);
       if (code == EQ_EXPR)
        return false;
       else if (code == NE_EXPR)
@@ -2911,9 +2914,9 @@ data_value_classify_tests ()
 
   wide_int i = wi::shwi (17, get_constant_type_size (integer_type_node));
 
-  val.set_cst (i);
+  val.set_known (i);
 
-  ASSERT_EQ (val.classify (), VAL_CONSTANT);
+  ASSERT_EQ (val.classify (), VAL_KNOWN);
 
 
   data_storage *storage_a = ctx.find_reachable_var (a);
@@ -2938,17 +2941,17 @@ data_value_classify_tests ()
             VAL_UNDEFINED);
   ASSERT_EQ (val2.classify (), VAL_UNDEFINED);
 
-  val2.set_cst_at (i, HOST_BITS_PER_INT);
+  val2.set_known_at (i, HOST_BITS_PER_INT);
 
   ASSERT_EQ (val2.classify (0, HOST_BITS_PER_INT), VAL_UNDEFINED);
-  ASSERT_EQ (val2.classify (HOST_BITS_PER_INT, HOST_BITS_PER_INT), 
VAL_CONSTANT);
+  ASSERT_EQ (val2.classify (HOST_BITS_PER_INT, HOST_BITS_PER_INT), VAL_KNOWN);
   ASSERT_EQ (val2.classify (), VAL_MIXED);
 
-  val2.set_cst_at (i, 0);
+  val2.set_known_at (i, 0);
 
-  ASSERT_EQ (val2.classify (0, HOST_BITS_PER_INT), VAL_CONSTANT);
-  ASSERT_EQ (val2.classify (HOST_BITS_PER_INT, HOST_BITS_PER_INT), 
VAL_CONSTANT);
-  ASSERT_EQ (val2.classify (), VAL_CONSTANT);
+  ASSERT_EQ (val2.classify (0, HOST_BITS_PER_INT), VAL_KNOWN);
+  ASSERT_EQ (val2.classify (HOST_BITS_PER_INT, HOST_BITS_PER_INT), VAL_KNOWN);
+  ASSERT_EQ (val2.classify (), VAL_KNOWN);
 
 
   tree vec2ptr = build_vector_type (ptr_type_node, 2);
@@ -3176,18 +3179,18 @@ data_value_set_at_tests ()
   ASSERT_EQ (val_derived.classify (), VAL_UNDEFINED);
 
   wide_int cst = wi::shwi (13, HOST_BITS_PER_INT);
-  val_derived.set_cst_at (cst, 0);
+  val_derived.set_known_at (cst, 0);
 
   ASSERT_EQ (val_derived.classify (), VAL_MIXED);
-  ASSERT_EQ (val_derived.classify (0, HOST_BITS_PER_INT), VAL_CONSTANT);
-  wide_int wi_val = val_derived.get_cst_at (0, HOST_BITS_PER_INT);
+  ASSERT_EQ (val_derived.classify (0, HOST_BITS_PER_INT), VAL_KNOWN);
+  wide_int wi_val = val_derived.get_known_at (0, HOST_BITS_PER_INT);
   ASSERT_TRUE (wi::fits_shwi_p (wi_val));
   ASSERT_EQ (wi_val.to_shwi (), 13);
 
 
   data_value vv (integer_type_node);
   wide_int wi23 = wi::shwi (23, HOST_BITS_PER_INT);
-  vv.set_cst (wi23);
+  vv.set_known (wi23);
 
   data_value vv2 (derived);
   vv2.set_at (vv, HOST_BITS_PER_INT);
@@ -3195,8 +3198,8 @@ data_value_set_at_tests ()
   ASSERT_EQ (vv2.classify (), VAL_MIXED);
 
   ASSERT_EQ (vv2.classify (0, HOST_BITS_PER_INT), VAL_UNDEFINED);
-  ASSERT_EQ (vv2.classify (HOST_BITS_PER_INT, HOST_BITS_PER_INT), 
VAL_CONSTANT);
-  wide_int wi_field2 = vv2.get_cst_at (HOST_BITS_PER_INT, HOST_BITS_PER_INT);
+  ASSERT_EQ (vv2.classify (HOST_BITS_PER_INT, HOST_BITS_PER_INT), VAL_KNOWN);
+  wide_int wi_field2 = vv2.get_known_at (HOST_BITS_PER_INT, HOST_BITS_PER_INT);
   ASSERT_PRED1 (wi::fits_shwi_p, wi_field2);
   ASSERT_EQ (wi_field2.to_shwi (), 23);
 
@@ -3206,7 +3209,7 @@ data_value_set_at_tests ()
   data_value v (c12);
 
   wide_int wi33 = wi::shwi (33, CHAR_BIT);
-  v.set_cst_at (wi33, 9 * CHAR_BIT);
+  v.set_known_at (wi33, 9 * CHAR_BIT);
 
   data_value v2 (c12);
   v2.set_at (9 * CHAR_BIT, CHAR_BIT, v, 9 * CHAR_BIT);
@@ -3215,8 +3218,8 @@ data_value_set_at_tests ()
 
   ASSERT_EQ (v2.classify (8 * CHAR_BIT, CHAR_BIT), VAL_UNDEFINED);
   ASSERT_EQ (v2.classify (10 * CHAR_BIT, CHAR_BIT), VAL_UNDEFINED);
-  ASSERT_EQ (v2.classify (9 * CHAR_BIT, CHAR_BIT), VAL_CONSTANT);
-  wide_int wi_c9 = v2.get_cst_at (9 * CHAR_BIT, CHAR_BIT);
+  ASSERT_EQ (v2.classify (9 * CHAR_BIT, CHAR_BIT), VAL_KNOWN);
+  wide_int wi_c9 = v2.get_known_at (9 * CHAR_BIT, CHAR_BIT);
   ASSERT_PRED1 (wi::fits_shwi_p, wi_c9);
   ASSERT_EQ (wi_c9.to_shwi (), 33);
 
@@ -3227,8 +3230,8 @@ data_value_set_at_tests ()
 
   ASSERT_EQ (v3.classify (8 * CHAR_BIT, CHAR_BIT), VAL_UNDEFINED);
   ASSERT_EQ (v3.classify (10 * CHAR_BIT, CHAR_BIT), VAL_UNDEFINED);
-  ASSERT_EQ (v3.classify (9 * CHAR_BIT, CHAR_BIT), VAL_CONSTANT);
-  wide_int wi_c9_bis = v3.get_cst_at (9 * CHAR_BIT, CHAR_BIT);
+  ASSERT_EQ (v3.classify (9 * CHAR_BIT, CHAR_BIT), VAL_KNOWN);
+  wide_int wi_c9_bis = v3.get_known_at (9 * CHAR_BIT, CHAR_BIT);
   ASSERT_PRED1 (wi::fits_shwi_p, wi_c9_bis);
   ASSERT_EQ (wi_c9_bis.to_shwi (), 33);
 
@@ -3261,7 +3264,7 @@ data_value_set_at_tests ()
   data_value mv (mixed);
 
   wide_int wi4 = wi::shwi (4, HOST_BITS_PER_LONG);
-  mv.set_cst_at (wi4, 0);
+  mv.set_known_at (wi4, 0);
 
   data_storage *storage = ctx4.find_reachable_var (t);
   gcc_assert (storage != nullptr);
@@ -3270,15 +3273,15 @@ data_value_set_at_tests ()
   mv.set_address_at (address, HOST_BITS_PER_LONG);
 
   wide_int wi7 = wi::shwi (7, HOST_BITS_PER_INT);
-  mv.set_cst_at (wi7, HOST_BITS_PER_LONG + HOST_BITS_PER_PTR);
+  mv.set_known_at (wi7, HOST_BITS_PER_LONG + HOST_BITS_PER_PTR);
 
   data_value mv2 (mixed);
   mv2.set (mv);
 
   ASSERT_EQ (mv2.classify (), VAL_MIXED);
 
-  ASSERT_EQ (mv2.classify (0, HOST_BITS_PER_LONG), VAL_CONSTANT);
-  wide_int wi_i1 = mv2.get_cst_at (0, HOST_BITS_PER_LONG);
+  ASSERT_EQ (mv2.classify (0, HOST_BITS_PER_LONG), VAL_KNOWN);
+  wide_int wi_i1 = mv2.get_known_at (0, HOST_BITS_PER_LONG);
   ASSERT_PRED1 (wi::fits_shwi_p, wi_i1);
   ASSERT_EQ (wi_i1.to_shwi (), 4);
 
@@ -3291,8 +3294,8 @@ data_value_set_at_tests ()
 
   ASSERT_EQ (mv2.classify (HOST_BITS_PER_LONG + HOST_BITS_PER_PTR,
                           HOST_BITS_PER_INT),
-            VAL_CONSTANT);
-  wide_int wi_i3 = mv2.get_cst_at (HOST_BITS_PER_LONG + HOST_BITS_PER_PTR,
+            VAL_KNOWN);
+  wide_int wi_i3 = mv2.get_known_at (HOST_BITS_PER_LONG + HOST_BITS_PER_PTR,
                                   HOST_BITS_PER_INT);
   ASSERT_PRED1 (wi::fits_shwi_p, wi_i3);
   ASSERT_EQ (wi_i3.to_shwi (), 7);
@@ -3316,7 +3319,7 @@ data_value_set_at_tests ()
   data_value z17 (array_char_17);
 
   wide_int wi0 = wi::shwi (0, 17 * CHAR_BIT);
-  z17.set_cst_at (wi0, 0);
+  z17.set_known_at (wi0, 0);
 
   data_storage *strg_c17 = ctx5.find_reachable_var (c17);
   gcc_assert (strg_c17 != nullptr);
@@ -3333,9 +3336,9 @@ data_value_set_at_tests ()
   data_value val17_before = strg_c17->get_value ();
 
   ASSERT_EQ (val17_before.classify (), VAL_MIXED);
-  ASSERT_EQ (val17_before.classify (0, HOST_BITS_PER_PTR), VAL_CONSTANT);
+  ASSERT_EQ (val17_before.classify (0, HOST_BITS_PER_PTR), VAL_KNOWN);
   ASSERT_EQ (val17_before.classify (HOST_BITS_PER_PTR, HOST_BITS_PER_PTR), 
VAL_ADDRESS);
-  ASSERT_EQ (val17_before.classify (2 * HOST_BITS_PER_PTR, CHAR_BIT), 
VAL_CONSTANT);
+  ASSERT_EQ (val17_before.classify (2 * HOST_BITS_PER_PTR, CHAR_BIT), 
VAL_KNOWN);
 
   data_value undef (5 * CHAR_BIT + HOST_BITS_PER_PTR);
   strg_c17->set_at (undef, 3 * CHAR_BIT);
@@ -3343,11 +3346,11 @@ data_value_set_at_tests ()
   data_value val17_after = strg_c17->get_value ();
 
   ASSERT_EQ (val17_after.classify (), VAL_MIXED);
-  ASSERT_EQ (val17_after.classify (0, 3 * CHAR_BIT), VAL_CONSTANT);
+  ASSERT_EQ (val17_after.classify (0, 3 * CHAR_BIT), VAL_KNOWN);
   ASSERT_EQ (val17_after.classify (3 * CHAR_BIT, 5 * CHAR_BIT + 
HOST_BITS_PER_PTR),
             VAL_UNDEFINED);
   ASSERT_EQ (val17_after.classify (2 * HOST_BITS_PER_PTR, CHAR_BIT),
-            VAL_CONSTANT);
+            VAL_KNOWN);
 }
 
 void
@@ -3411,7 +3414,7 @@ data_value_print_tests ()
   data_value val_int (integer_type_node);
 
   wide_int wi_val = wi::shwi (17, HOST_BITS_PER_INT);
-  val_int.set_cst (wi_val);
+  val_int.set_known (wi_val);
 
   printer3.print (val_int, integer_type_node);
 
@@ -3458,7 +3461,7 @@ data_value_print_tests ()
 
   data_value val6_259 (short_integer_type_node);
   wide_int cst259 = wi::shwi (259, HOST_BITS_PER_SHORT);
-  val6_259.set_cst (cst259);
+  val6_259.set_known (cst259);
 
   printer6.print (val6_259, char_type_node);
 
@@ -3469,7 +3472,7 @@ data_value_print_tests ()
   pretty_printer & pp7 = printer7.pp;
 
   data_value val7_259 (short_integer_type_node);
-  val7_259.set_cst (cst259);
+  val7_259.set_known (cst259);
 
   printer7.print_at (val7_259, char_type_node, CHAR_BIT);
 
@@ -3485,7 +3488,7 @@ data_value_print_tests ()
 
   data_value v = strg.get_value ();
   wide_int cst41 = wi::shwi (41, CHAR_BIT);
-  v.set_cst_at (cst41, HOST_BITS_PER_PTR);
+  v.set_known_at (cst41, HOST_BITS_PER_PTR);
 
   printer8.print_at (v, char_type_node, HOST_BITS_PER_PTR, CHAR_BIT);
 
@@ -3501,7 +3504,7 @@ data_value_print_tests ()
   wide_int wi_r2 = wi::to_wide (int_r2);
 
   data_value v9 (float_type_node);
-  v9.set_cst (wi_r2);
+  v9.set_known (wi_r2);
 
   printer9.print (v9, float_type_node);
 
@@ -3552,7 +3555,7 @@ data_value_get_at_tests ()
 
   data_value val1 (mixed1);
   wide_int wi7 = wi::uhwi (7, HOST_BITS_PER_INT);
-  val1.set_cst_at (wi7, tree_to_shwi (bit_position (i1)));
+  val1.set_known_at (wi7, tree_to_shwi (bit_position (i1)));
 
   data_storage * storage1 = ctx1.find_reachable_var (m1);
   storage_address address (storage1->get_ref (), 0);
@@ -3561,7 +3564,7 @@ data_value_get_at_tests ()
   data_value sub_val = val1.get_at (0, tree_to_shwi (bit_position (i3)));
 
   ASSERT_EQ (sub_val.classify (), VAL_MIXED);
-  ASSERT_EQ (sub_val.classify (0, HOST_BITS_PER_INT), VAL_CONSTANT);
+  ASSERT_EQ (sub_val.classify (0, HOST_BITS_PER_INT), VAL_KNOWN);
   ASSERT_EQ (sub_val.classify (HOST_BITS_PER_INT,
                               tree_to_shwi (bit_position (p2))
                               - HOST_BITS_PER_INT),
@@ -4169,7 +4172,7 @@ context_printer_print_value_update_tests ()
 
   data_value val259 (short_integer_type_node);
   wide_int wi259 = wi::shwi (259, HOST_BITS_PER_SHORT);
-  val259.set_cst (wi259);
+  val259.set_known (wi259);
 
   printer3.print_value_update (ctx3, mem_var2c, val259);
 
@@ -4211,8 +4214,8 @@ context_printer_print_value_update_tests ()
   data_value val2i = data_value (vec2i);
   wide_int cst2 = wi::shwi (2, HOST_BITS_PER_INT);
   wide_int cst11 = wi::shwi (11, HOST_BITS_PER_INT);
-  val2i.set_cst_at (cst2, 0);
-  val2i.set_cst_at (cst11, HOST_BITS_PER_INT);
+  val2i.set_known_at (cst2, 0);
+  val2i.set_known_at (cst11, HOST_BITS_PER_INT);
 
   printer4.print_value_update (ctx4, mem_v2i, val2i);
 
@@ -4277,8 +4280,8 @@ context_printer_print_value_update_tests ()
   wide_int wi12 = wi::shwi (12, HOST_BITS_PER_INT);
   wide_int wi7 = wi::shwi (7, HOST_BITS_PER_INT);
   data_value cstr_12_7 (der2i_bis);
-  cstr_12_7.set_cst_at (wi12, 0);
-  cstr_12_7.set_cst_at (wi7, HOST_BITS_PER_INT);
+  cstr_12_7.set_known_at (wi12, 0);
+  cstr_12_7.set_known_at (wi7, HOST_BITS_PER_INT);
 
   printer6.print_value_update (ctx6, var2i, cstr_12_7);
 
@@ -4316,8 +4319,8 @@ context_printer_print_value_update_tests ()
   wide_int wi3 = wi::shwi (3, CHAR_BIT);
   wide_int wi11 = wi::shwi (11, HOST_BITS_PER_INT);
   data_value cstr_3_11 (der1c1i);
-  cstr_3_11.set_cst_at (wi3, 0);
-  cstr_3_11.set_cst_at (wi11, int_bit_position (der1c1i_i2));
+  cstr_3_11.set_known_at (wi3, 0);
+  cstr_3_11.set_known_at (wi11, int_bit_position (der1c1i_i2));
 
   printer7.print_value_update (ctx7, var1c1i, cstr_3_11);
 
@@ -4354,7 +4357,7 @@ context_printer_print_value_update_tests ()
 
   data_value val8_17 (char_type_node);
   wide_int wi8_17 = wi::shwi (17, CHAR_BIT);
-  val8_17.set_cst (wi8_17);
+  val8_17.set_known (wi8_17);
 
   tree ref8 = build2 (MEM_REF, char_type_node, p_8,
                      build_zero_cst (build_pointer_type (char_type_node)));
@@ -4452,13 +4455,13 @@ simul_scope_evaluate_tests ()
   gcc_assert (strg_a != nullptr);
   data_value tmp22 (integer_type_node);
   wide_int wi22 = wi::shwi (22, HOST_BITS_PER_INT);
-  tmp22.set_cst (wi22);
+  tmp22.set_known (wi22);
   strg_a->set (tmp22);
 
   data_value val_a = ctx.evaluate (a);
 
-  ASSERT_EQ (val_a.classify (), VAL_CONSTANT);
-  wide_int wi_a = val_a.get_cst ();
+  ASSERT_EQ (val_a.classify (), VAL_KNOWN);
+  wide_int wi_a = val_a.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi_a);
   ASSERT_EQ (wi_a.to_shwi (), 22);
 
@@ -4468,8 +4471,8 @@ simul_scope_evaluate_tests ()
   data_value val_33 = ctx.evaluate (cst33);
 
   ASSERT_EQ (val_33.get_bitwidth (), HOST_BITS_PER_INT);
-  ASSERT_EQ (val_33.classify (), VAL_CONSTANT);
-  wide_int wi33 = val_33.get_cst ();
+  ASSERT_EQ (val_33.classify (), VAL_KNOWN);
+  wide_int wi33 = val_33.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi33);
   ASSERT_EQ (wi33.to_shwi (), 33);
 
@@ -4486,11 +4489,11 @@ simul_scope_evaluate_tests ()
   data_value val_v = ctx.evaluate (v);
 
   ASSERT_EQ (val_v.get_bitwidth (), 64);
-  ASSERT_EQ (val_v.classify (), VAL_CONSTANT);
-  wide_int low_part = val_v.get_cst_at (0, HOST_BITS_PER_INT);
+  ASSERT_EQ (val_v.classify (), VAL_KNOWN);
+  wide_int low_part = val_v.get_known_at (0, HOST_BITS_PER_INT);
   ASSERT_PRED1 (wi::fits_shwi_p, low_part);
   ASSERT_EQ (low_part.to_shwi (), 2);
-  wide_int high_part = val_v.get_cst_at (HOST_BITS_PER_INT, HOST_BITS_PER_INT);
+  wide_int high_part = val_v.get_known_at (HOST_BITS_PER_INT, 
HOST_BITS_PER_INT);
   ASSERT_PRED1 (wi::fits_shwi_p, high_part);
   ASSERT_EQ (high_part.to_shwi (), 11);
 
@@ -4507,18 +4510,18 @@ simul_scope_evaluate_tests ()
   data_value val_v2 = ctx.evaluate (v2);
 
   ASSERT_EQ (val_v2.get_bitwidth (), 64);
-  ASSERT_EQ (val_v2.classify (), VAL_CONSTANT);
+  ASSERT_EQ (val_v2.classify (), VAL_KNOWN);
 
   tree sint = make_signed_type (TYPE_PRECISION (float_type_node));
 
 #define HOST_BITS_PER_FLOAT (sizeof (float) * CHAR_BIT)
-  wide_int low_wi = val_v2.get_cst_at (0, HOST_BITS_PER_FLOAT);
+  wide_int low_wi = val_v2.get_known_at (0, HOST_BITS_PER_FLOAT);
   tree low_int = wide_int_to_tree (sint, low_wi);
   tree low_float = fold_build1 (VIEW_CONVERT_EXPR, float_type_node, low_int);
   ASSERT_EQ (TREE_CODE (low_float), REAL_CST);
   ASSERT_TRUE (real_identical (TREE_REAL_CST_PTR (low_float), &dconst2));
 
-  wide_int high_wi = val_v2.get_cst_at (HOST_BITS_PER_FLOAT, 
HOST_BITS_PER_FLOAT);
+  wide_int high_wi = val_v2.get_known_at (HOST_BITS_PER_FLOAT, 
HOST_BITS_PER_FLOAT);
   tree high_int = wide_int_to_tree (sint, high_wi);
   tree high_float = fold_build1 (VIEW_CONVERT_EXPR, float_type_node, high_int);
   ASSERT_EQ (TREE_CODE (high_float), REAL_CST);
@@ -4540,7 +4543,7 @@ simul_scope_evaluate_tests ()
   wide_int cst18 = wi::shwi (18, HOST_BITS_PER_INT);
 
   data_value value (a5i);
-  value.set_cst_at (cst18, 3 * HOST_BITS_PER_INT);
+  value.set_known_at (cst18, 3 * HOST_BITS_PER_INT);
 
   data_storage *storage = ctx3.find_reachable_var (v5i);
   gcc_assert (storage != nullptr);
@@ -4553,8 +4556,8 @@ simul_scope_evaluate_tests ()
   data_value evaluation = ctx3.evaluate (v5ref);
 
   ASSERT_EQ (evaluation.get_bitwidth(), HOST_BITS_PER_INT);
-  ASSERT_EQ (evaluation.classify (), VAL_CONSTANT);
-  wide_int wi_val = evaluation.get_cst ();
+  ASSERT_EQ (evaluation.classify (), VAL_KNOWN);
+  wide_int wi_val = evaluation.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi_val);
   ASSERT_EQ (wi_val.to_shwi (), 18);
 
@@ -4584,7 +4587,7 @@ simul_scope_evaluate_tests ()
   wide_int cst15 = wi::shwi (15, HOST_BITS_PER_INT);
 
   data_value tmp (a3d);
-  tmp.set_cst_at (cst15, 3 * HOST_BITS_PER_INT);
+  tmp.set_known_at (cst15, 3 * HOST_BITS_PER_INT);
 
   data_storage *storage2 = ctx4.find_reachable_var (v3d);
   gcc_assert (storage2 != nullptr);
@@ -4599,8 +4602,8 @@ simul_scope_evaluate_tests ()
   data_value eval2 = ctx4.evaluate (v3cref);
 
   ASSERT_EQ (eval2.get_bitwidth(), HOST_BITS_PER_INT);
-  ASSERT_EQ (eval2.classify (), VAL_CONSTANT);
-  wide_int wi_val2 = eval2.get_cst ();
+  ASSERT_EQ (eval2.classify (), VAL_KNOWN);
+  wide_int wi_val2 = eval2.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi_val2);
   ASSERT_EQ (wi_val2.to_shwi (), 15);
 
@@ -4634,7 +4637,7 @@ simul_scope_evaluate_tests ()
   wide_int cst14 = wi::shwi (14, HOST_BITS_PER_INT);
 
   data_value tmp14 (integer_type_node);
-  tmp14.set_cst (cst14);
+  tmp14.set_known (cst14);
 
   data_storage *storage5 = ctx5.find_reachable_var (def_var);
   gcc_assert (storage5 != nullptr);
@@ -4643,8 +4646,8 @@ simul_scope_evaluate_tests ()
   data_value eval5 = ctx5.evaluate (ssa_var);
 
   ASSERT_EQ (eval5.get_bitwidth(), HOST_BITS_PER_INT);
-  ASSERT_EQ (eval5.classify (), VAL_CONSTANT);
-  wide_int wi_val5 = eval5.get_cst ();
+  ASSERT_EQ (eval5.classify (), VAL_KNOWN);
+  wide_int wi_val5 = eval5.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi_val5);
   ASSERT_EQ (wi_val5.to_shwi (), 14);
 
@@ -4662,7 +4665,7 @@ simul_scope_evaluate_tests ()
   wide_int cst8 = wi::shwi (8, CHAR_BIT);
 
   data_value tmp8 (a5c);
-  tmp8.set_cst_at (cst8, 3 * CHAR_BIT);
+  tmp8.set_known_at (cst8, 3 * CHAR_BIT);
 
   data_storage *storage6 = ctx6.find_reachable_var (v5c);
   gcc_assert (storage5 != nullptr);
@@ -4675,8 +4678,8 @@ simul_scope_evaluate_tests ()
   data_value eval6 = ctx6.evaluate (ref);
 
   ASSERT_EQ (eval6.get_bitwidth(), CHAR_BIT);
-  ASSERT_EQ (eval6.classify (), VAL_CONSTANT);
-  wide_int wi_val6 = eval6.get_cst ();
+  ASSERT_EQ (eval6.classify (), VAL_KNOWN);
+  wide_int wi_val6 = eval6.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi_val6);
   ASSERT_EQ (wi_val6.to_shwi (), 8);
 
@@ -4707,14 +4710,14 @@ simul_scope_evaluate_tests ()
 
   wide_int cst21 = wi::shwi (21, CHAR_BIT);
   data_value tmp29_0 (CHAR_BIT);
-  tmp29_0.set_cst (cst21);
+  tmp29_0.set_known (cst21);
   strg29->set_at (tmp29_0, 0);
 
   data_value val29_0 = ctx8.evaluate (ref0);
 
   ASSERT_EQ (val29_0.get_bitwidth (), CHAR_BIT);
-  ASSERT_EQ (val29_0.classify (), VAL_CONSTANT);
-  wide_int wi29_0 = val29_0.get_cst ();
+  ASSERT_EQ (val29_0.classify (), VAL_KNOWN);
+  wide_int wi29_0 = val29_0.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi29_0);
   ASSERT_EQ  (wi29_0.to_uhwi (), 21);
 
@@ -4725,14 +4728,14 @@ simul_scope_evaluate_tests ()
 
   wide_int cst26 = wi::shwi (26, CHAR_BIT);
   data_value tmp29_3 (CHAR_BIT);
-  tmp29_3.set_cst (cst26);
+  tmp29_3.set_known (cst26);
   strg29->set_at (tmp29_3, 24);
 
   data_value val29_3 = ctx8.evaluate (ref3);
 
   ASSERT_EQ (val29_3.get_bitwidth (), CHAR_BIT);
-  ASSERT_EQ (val29_3.classify (), VAL_CONSTANT);
-  wide_int wi29_3 = val29_3.get_cst ();
+  ASSERT_EQ (val29_3.classify (), VAL_KNOWN);
+  wide_int wi29_3 = val29_3.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi29_3);
   ASSERT_EQ  (wi29_3.to_uhwi (), 26);
 
@@ -4743,12 +4746,12 @@ simul_scope_evaluate_tests ()
 
   wide_int cst17 = wi::shwi (17, CHAR_BIT);
   data_value tmp29_12 (CHAR_BIT);
-  tmp29_12.set_cst (cst17);
+  tmp29_12.set_known (cst17);
   strg29->set_at (tmp29_12, 96);
 
   wide_int cst3_bis = wi::shwi (3, sizeof (size_t) * CHAR_BIT);
   data_value val3_bis (sizeof (size_t) * CHAR_BIT);
-  val3_bis.set_cst (cst3_bis);
+  val3_bis.set_known (cst3_bis);
   data_storage * ssa8_strg = ctx8.find_reachable_var (ssa8);
   gcc_assert (ssa8_strg != nullptr);
   ssa8_strg->set (val3_bis);
@@ -4756,8 +4759,8 @@ simul_scope_evaluate_tests ()
   data_value val29_12 = ctx8.evaluate (ref12);
 
   ASSERT_EQ (val29_12.get_bitwidth (), CHAR_BIT);
-  ASSERT_EQ (val29_12.classify (), VAL_CONSTANT);
-  wide_int wi29_12 = val29_12.get_cst ();
+  ASSERT_EQ (val29_12.classify (), VAL_KNOWN);
+  wide_int wi29_12 = val29_12.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi29_12);
   ASSERT_EQ  (wi29_12.to_uhwi (), 17);
 
@@ -4768,12 +4771,12 @@ simul_scope_evaluate_tests ()
 
   wide_int cst14_bis = wi::shwi (14, CHAR_BIT);
   data_value tmp29_27 (CHAR_BIT);
-  tmp29_27.set_cst (cst14_bis);
+  tmp29_27.set_known (cst14_bis);
   strg29->set_at (tmp29_27, 216);
 
   wide_int cst5 = wi::shwi (5, sizeof (size_t) * CHAR_BIT);
   data_value val5_bis (sizeof (size_t) * CHAR_BIT);
-  val5_bis.set_cst (cst5);
+  val5_bis.set_known (cst5);
   data_storage * ssa9_strg = ctx8.find_reachable_var (ssa9);
   gcc_assert (ssa9_strg != nullptr);
   ssa9_strg->set (val5_bis);
@@ -4781,8 +4784,8 @@ simul_scope_evaluate_tests ()
   data_value val29_27 = ctx8.evaluate (ref27);
 
   ASSERT_EQ (val29_27.get_bitwidth (), CHAR_BIT);
-  ASSERT_EQ (val29_27.classify (), VAL_CONSTANT);
-  wide_int wi29_27 = val29_27.get_cst ();
+  ASSERT_EQ (val29_27.classify (), VAL_KNOWN);
+  wide_int wi29_27 = val29_27.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi29_27);
   ASSERT_EQ  (wi29_27.to_uhwi (), 14);
 
@@ -4803,7 +4806,7 @@ simul_scope_evaluate_tests ()
   gcc_assert (strg9 != nullptr);
   wide_int cst10 = wi::shwi (10, HOST_BITS_PER_INT);
   data_value val10 (integer_type_node);
-  val10.set_cst (cst10);
+  val10.set_known (cst10);
   strg9->set_at (val10, HOST_BITS_PER_INT);
 
   data_storage * strg_p = ctx9.find_reachable_var (p);
@@ -4818,8 +4821,8 @@ simul_scope_evaluate_tests ()
 
   data_value val1 = ctx9.evaluate (ref1);
 
-  ASSERT_EQ (val1.classify (), VAL_CONSTANT);
-  wide_int wi1 = val1.get_cst ();
+  ASSERT_EQ (val1.classify (), VAL_KNOWN);
+  wide_int wi1 = val1.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi1);
   ASSERT_EQ (wi1.to_uhwi (), 10);
 
@@ -4830,7 +4833,7 @@ simul_scope_evaluate_tests ()
 
   wide_int cst16 = wi::shwi (16, HOST_BITS_PER_INT);
   data_value val16 (integer_type_node);
-  val16.set_cst (cst16);
+  val16.set_known (cst16);
   strg9->set_at (val16, 3 * HOST_BITS_PER_INT);
 
   tree ref3_bis = build2 (MEM_REF, integer_type_node,
@@ -4838,14 +4841,14 @@ simul_scope_evaluate_tests ()
 
   data_value val3 = ctx9.evaluate (ref3_bis);
 
-  ASSERT_EQ (val3.classify (), VAL_CONSTANT);
-  wide_int wi3 = val3.get_cst ();
+  ASSERT_EQ (val3.classify (), VAL_KNOWN);
+  wide_int wi3 = val3.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi3);
   ASSERT_EQ (wi3.to_uhwi (), 16);
 
   wide_int cst19 = wi::shwi (19, HOST_BITS_PER_INT);
   data_value val19 (integer_type_node);
-  val19.set_cst (cst19);
+  val19.set_known (cst19);
   strg9->set_at (val19, 5 * HOST_BITS_PER_INT);
 
   tree ref5 = build2 (MEM_REF, integer_type_node,
@@ -4853,8 +4856,8 @@ simul_scope_evaluate_tests ()
 
   data_value val5 = ctx9.evaluate (ref5);
 
-  ASSERT_EQ (val5.classify (), VAL_CONSTANT);
-  wide_int wi5 = val5.get_cst ();
+  ASSERT_EQ (val5.classify (), VAL_KNOWN);
+  wide_int wi5 = val5.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi5);
   ASSERT_EQ (wi5.to_uhwi (), 19);
 
@@ -4885,14 +4888,14 @@ simul_scope_evaluate_tests ()
 
   wide_int cst23 = wi::shwi (23, CHAR_BIT);
   data_value tmp19_0 (CHAR_BIT);
-  tmp19_0.set_cst (cst23);
+  tmp19_0.set_known (cst23);
   strg19->set_at (tmp19_0, 0);
 
   data_value val19_0 = ctx10.evaluate (ref19);
 
   ASSERT_EQ (val19_0.get_bitwidth (), CHAR_BIT);
-  ASSERT_EQ (val19_0.classify (), VAL_CONSTANT);
-  wide_int wi19_0 = val19_0.get_cst ();
+  ASSERT_EQ (val19_0.classify (), VAL_KNOWN);
+  wide_int wi19_0 = val19_0.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi19_0);
   ASSERT_EQ  (wi19_0.to_uhwi (), 23);
 
@@ -4912,7 +4915,7 @@ simul_scope_evaluate_tests ()
 
   data_value val_a11 (integer_type_node);
   wide_int wi_a11 = wi::shwi (7, TYPE_PRECISION (integer_type_node));
-  val_a11.set_cst (wi_a11);
+  val_a11.set_known (wi_a11);
 
   data_storage * strg_a11 = ctx11.find_reachable_var (a11);
   gcc_assert (strg_a11 != nullptr);
@@ -4937,8 +4940,8 @@ simul_scope_evaluate_tests ()
   data_value val_ref11 = ctx11.evaluate (ar11);
 
   ASSERT_EQ (val_ref11.get_bitwidth (), HOST_BITS_PER_INT);
-  ASSERT_EQ (val_ref11.classify (), VAL_CONSTANT);
-  wide_int wi_ref11 = val_ref11.get_cst ();
+  ASSERT_EQ (val_ref11.classify (), VAL_KNOWN);
+  wide_int wi_ref11 = val_ref11.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi_ref11);
   ASSERT_EQ  (wi_ref11.to_uhwi (), 7);
 }
@@ -4958,8 +4961,8 @@ simul_scope_evaluate_literal_tests ()
   tree cst = build_int_cst (integer_type_node, 13);
 
   data_value val = ctx.evaluate (cst);
-  ASSERT_EQ (val.classify (), VAL_CONSTANT);
-  wide_int wi_value = val.get_cst ();
+  ASSERT_EQ (val.classify (), VAL_KNOWN);
+  wide_int wi_value = val.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi_value);
   int int_value = wi_value.to_shwi ();
   ASSERT_EQ (int_value, 13);
@@ -5157,11 +5160,11 @@ simul_scope_evaluate_constructor_tests ()
 
   data_value val_cstr2 = ctx2.evaluate (cstr2);
 
-  ASSERT_EQ (val_cstr2.classify (), VAL_CONSTANT);
-  wide_int wi_3 = val_cstr2.get_cst_at (0, HOST_BITS_PER_INT);
+  ASSERT_EQ (val_cstr2.classify (), VAL_KNOWN);
+  wide_int wi_3 = val_cstr2.get_known_at (0, HOST_BITS_PER_INT);
   ASSERT_PRED1 (wi::fits_uhwi_p, wi_3);
   ASSERT_EQ (wi_3.to_uhwi (), 3);
-  wide_int wi_7 = val_cstr2.get_cst_at (HOST_BITS_PER_INT, HOST_BITS_PER_INT);
+  wide_int wi_7 = val_cstr2.get_known_at (HOST_BITS_PER_INT, 
HOST_BITS_PER_INT);
   ASSERT_PRED1 (wi::fits_uhwi_p, wi_7);
   ASSERT_EQ (wi_7.to_uhwi (), 7);
 
@@ -5172,11 +5175,11 @@ simul_scope_evaluate_constructor_tests ()
 
   val_cstr2 = ctx2.evaluate (cstr2);
 
-  ASSERT_EQ (val_cstr2.classify (), VAL_CONSTANT);
-  wi_3 = val_cstr2.get_cst_at (0, HOST_BITS_PER_INT);
+  ASSERT_EQ (val_cstr2.classify (), VAL_KNOWN);
+  wi_3 = val_cstr2.get_known_at (0, HOST_BITS_PER_INT);
   ASSERT_PRED1 (wi::fits_uhwi_p, wi_3);
   ASSERT_EQ (wi_3.to_uhwi (), 3);
-  wi_7 = val_cstr2.get_cst_at (HOST_BITS_PER_INT, HOST_BITS_PER_INT);
+  wi_7 = val_cstr2.get_known_at (HOST_BITS_PER_INT, HOST_BITS_PER_INT);
   ASSERT_PRED1 (wi::fits_uhwi_p, wi_7);
   ASSERT_EQ (wi_7.to_uhwi (), 7);
 
@@ -5222,8 +5225,8 @@ simul_scope_evaluate_constructor_tests ()
   ASSERT_EQ (&cstr3_addr0->storage.get (), strg_var3);
 
   ASSERT_EQ (val_cstr3.classify (HOST_BITS_PER_PTR, HOST_BITS_PER_INT),
-            VAL_CONSTANT);
-  wide_int wi_2 = val_cstr3.get_cst_at (HOST_BITS_PER_PTR, HOST_BITS_PER_INT);
+            VAL_KNOWN);
+  wide_int wi_2 = val_cstr3.get_known_at (HOST_BITS_PER_PTR, 
HOST_BITS_PER_INT);
   ASSERT_PRED1 (wi::fits_uhwi_p, wi_2);
   ASSERT_EQ (wi_2.to_uhwi (), 2);
 
@@ -5234,11 +5237,11 @@ simul_scope_evaluate_constructor_tests ()
 
   data_value val_cstr4 = ctx4.evaluate (cstr4);
 
-  ASSERT_EQ (val_cstr4.classify (), VAL_CONSTANT);
-  wide_int wi_0 = val_cstr4.get_cst_at (0, HOST_BITS_PER_INT);
+  ASSERT_EQ (val_cstr4.classify (), VAL_KNOWN);
+  wide_int wi_0 = val_cstr4.get_known_at (0, HOST_BITS_PER_INT);
   ASSERT_PRED1 (wi::fits_uhwi_p, wi_0);
   ASSERT_EQ (wi_0.to_uhwi (), 0);
-  wide_int wi_0_bis = val_cstr4.get_cst_at (HOST_BITS_PER_INT, 
HOST_BITS_PER_INT);
+  wide_int wi_0_bis = val_cstr4.get_known_at (HOST_BITS_PER_INT, 
HOST_BITS_PER_INT);
   ASSERT_PRED1 (wi::fits_uhwi_p, wi_0_bis);
   ASSERT_EQ (wi_0_bis.to_uhwi (), 0);
 }
@@ -5261,7 +5264,7 @@ simul_scope_evaluate_unary_tests ()
 
   wide_int wi18 = wi::uhwi (18, CHAR_BIT);
   data_value val18 (char_type_node);
-  val18.set_cst (wi18);
+  val18.set_known (wi18);
   data_storage *strg_c1 = ctx1.find_reachable_var (c1);
   gcc_assert (strg_c1 != nullptr);
   strg_c1->set (val18);
@@ -5269,8 +5272,8 @@ simul_scope_evaluate_unary_tests ()
   data_value val1 = ctx1.evaluate_unary (NOP_EXPR, integer_type_node, c1);
 
   ASSERT_EQ (val1.get_bitwidth (), HOST_BITS_PER_INT);
-  ASSERT_EQ (val1.classify (), VAL_CONSTANT);
-  wide_int wi1 = val1.get_cst ();
+  ASSERT_EQ (val1.classify (), VAL_KNOWN);
+  wide_int wi1 = val1.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi1);
   ASSERT_EQ (wi1.to_uhwi (), 18);
 
@@ -5281,7 +5284,7 @@ simul_scope_evaluate_unary_tests ()
   data_value valfm25 = ctx1.evaluate_unary (NEGATE_EXPR, float_type_node, t25);
 
   ASSERT_EQ (valfm25.get_bitwidth (), TYPE_PRECISION (float_type_node));
-  ASSERT_EQ (valfm25.classify (), VAL_CONSTANT);
+  ASSERT_EQ (valfm25.classify (), VAL_KNOWN);
   tree tfm25 = valfm25.to_tree (float_type_node);
   ASSERT_EQ (TREE_CODE (tfm25), REAL_CST);
   REAL_VALUE_TYPE fm25 = REAL_VALUE_ATOF ("-2.5", TYPE_MODE (float_type_node));
@@ -5299,7 +5302,7 @@ simul_scope_evaluate_unary_tests ()
 
   wide_int wi23 = wi::uhwi (23, TYPE_PRECISION (intSI_type_node));
   data_value val23 (intSI_type_node);
-  val23.set_cst (wi23);
+  val23.set_known (wi23);
   data_storage *strg_i2 = ctx2.find_reachable_var (i2);
   gcc_assert (strg_i2 != nullptr);
   strg_i2->set (val23);
@@ -5307,8 +5310,8 @@ simul_scope_evaluate_unary_tests ()
   data_value val2 = ctx2.evaluate_unary (VIEW_CONVERT_EXPR, 
unsigned_intSI_type_node, i2);
 
   ASSERT_EQ (val2.get_bitwidth (), HOST_BITS_PER_INT);
-  ASSERT_EQ (val2.classify (), VAL_CONSTANT);
-  wide_int wi2 = val2.get_cst ();
+  ASSERT_EQ (val2.classify (), VAL_KNOWN);
+  wide_int wi2 = val2.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi2);
   ASSERT_EQ (wi2.to_uhwi (), 23);
 }
@@ -5334,22 +5337,22 @@ simul_scope_evaluate_binary_tests ()
 
   wide_int cst12 = wi::shwi (12, HOST_BITS_PER_INT);
   data_value val12 (HOST_BITS_PER_INT);
-  val12.set_cst (cst12);
+  val12.set_known (cst12);
   data_storage *strg_a = ctx.find_reachable_var (a);
   gcc_assert (strg_a != nullptr);
   strg_a->set (val12);
 
   wide_int cst7 = wi::shwi (7, HOST_BITS_PER_INT);
   data_value val7 (HOST_BITS_PER_INT);
-  val7.set_cst (cst7);
+  val7.set_known (cst7);
   data_storage *strg_b = ctx.find_reachable_var (b);
   gcc_assert (strg_b != nullptr);
   strg_b->set (val7);
 
   data_value val = ctx.evaluate_binary (MINUS_EXPR, integer_type_node, a, b);
 
-  ASSERT_EQ (val.classify (), VAL_CONSTANT);
-  wide_int wi_val = val.get_cst ();
+  ASSERT_EQ (val.classify (), VAL_KNOWN);
+  wide_int wi_val = val.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi_val);
   ASSERT_EQ (wi_val.to_shwi (), 5);
 
@@ -5366,18 +5369,18 @@ simul_scope_evaluate_binary_tests ()
   simul_scope ctx2 = builder2.build (mem, printer);
 
   data_value val12_bis (HOST_BITS_PER_INT);
-  val12_bis.set_cst (wi::shwi (12, HOST_BITS_PER_INT));
+  val12_bis.set_known (wi::shwi (12, HOST_BITS_PER_INT));
   ctx2.find_reachable_var (a_bis)->set (val12_bis);
 
   data_value val7_bis (HOST_BITS_PER_INT);
-  val7_bis.set_cst (wi::shwi (7, HOST_BITS_PER_INT));
+  val7_bis.set_known (wi::shwi (7, HOST_BITS_PER_INT));
   ctx2.find_reachable_var (b_bis)->set (val7_bis);
 
   data_value val2 = ctx2.evaluate_binary (GT_EXPR, boolean_type_node, a_bis, 
b_bis);
 
-  ASSERT_EQ (val2.classify (), VAL_CONSTANT);
+  ASSERT_EQ (val2.classify (), VAL_KNOWN);
   ASSERT_EQ (val2.get_bitwidth (), 1);
-  wide_int wi_val2 = val2.get_cst ();
+  wide_int wi_val2 = val2.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi_val2);
   ASSERT_EQ (wi_val2.to_uhwi (), 1);
 
@@ -5474,7 +5477,7 @@ simul_scope_evaluate_binary_tests ()
 
   wide_int wi1 = wi::shwi (1, HOST_BITS_PER_PTR);
   data_value cst1 (pointer_sized_int_node);
-  cst1.set_cst (wi1);
+  cst1.set_known (wi1);
   data_storage *o_storage = ctx3.find_reachable_var (o);
   gcc_assert (o_storage != nullptr);
   o_storage->set (cst1);
@@ -5508,7 +5511,7 @@ simul_scope_evaluate_binary_tests ()
 
   wide_int wi25 = wi::to_wide (i25);
   data_value data25 (float_type_node);
-  data25.set_cst (wi25);
+  data25.set_known (wi25);
 
   data_storage *f25_storage = ctx4.find_reachable_var (f25);
   gcc_assert (f25_storage != nullptr);
@@ -5520,8 +5523,8 @@ simul_scope_evaluate_binary_tests ()
   data_value val_f = ctx4.evaluate_binary (PLUS_EXPR, float_type_node,
                                           f25, c325);
 
-  ASSERT_EQ (val_f.classify (), VAL_CONSTANT);
-  wide_int wi_f = val_f.get_cst ();
+  ASSERT_EQ (val_f.classify (), VAL_KNOWN);
+  wide_int wi_f = val_f.get_known ();
   tree t_f = wide_int_to_tree (itype, wi_f);
   tree f = fold_build1 (VIEW_CONVERT_EXPR, float_type_node, t_f);
   ASSERT_EQ (TREE_CODE (f), REAL_CST);
@@ -5554,8 +5557,8 @@ simul_scope_evaluate_binary_tests ()
                                             p5,
                                             build_int_cst (ptr_type_node, 0));
 
-  ASSERT_EQ (val_ne5.classify (), VAL_CONSTANT);
-  wide_int wi_ne5 = val_ne5.get_cst ();
+  ASSERT_EQ (val_ne5.classify (), VAL_KNOWN);
+  wide_int wi_ne5 = val_ne5.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi_ne5);
   ASSERT_EQ (wi_ne5.to_uhwi (), 1);
 }
@@ -5581,14 +5584,14 @@ simul_scope_evaluate_condition_tests ()
 
   wide_int cst12 = wi::shwi (12, HOST_BITS_PER_INT);
   data_value val12 (HOST_BITS_PER_INT);
-  val12.set_cst (cst12);
+  val12.set_known (cst12);
   data_storage *strg_a = ctx1.find_reachable_var (a);
   gcc_assert (strg_a != nullptr);
   strg_a->set (val12);
 
   wide_int cst7 = wi::shwi (7, HOST_BITS_PER_INT);
   data_value val7 (HOST_BITS_PER_INT);
-  val7.set_cst (cst7);
+  val7.set_known (cst7);
   data_storage *strg_b = ctx1.find_reachable_var (b);
   gcc_assert (strg_b != nullptr);
   strg_b->set (val7);
@@ -5616,7 +5619,7 @@ simul_scope_evaluate_condition_tests ()
 
   wide_int wi_null = wi::shwi (0, HOST_BITS_PER_PTR);
   data_value val_null1 (ptr_type_node);
-  val_null1.set_cst (wi_null);
+  val_null1.set_known (wi_null);
 
   data_storage *strg_p1 = ctx2.find_reachable_var (p1);
   gcc_assert (strg_p1 != nullptr);
@@ -5792,8 +5795,8 @@ simul_scope_simulate_assign_tests ()
   ctx.simulate (gassign1);
 
   data_value val2 = storage_a->get_value ();
-  ASSERT_EQ (val2.classify (), VAL_CONSTANT);
-  wide_int wi_val2 = val2.get_cst ();
+  ASSERT_EQ (val2.classify (), VAL_KNOWN);
+  wide_int wi_val2 = val2.get_known ();
   ASSERT_TRUE (wi::fits_shwi_p (wi_val2));
   ASSERT_EQ (wi_val2.to_shwi (), 13);
 
@@ -5809,8 +5812,8 @@ simul_scope_simulate_assign_tests ()
 
   data_value val4 = storage_b->get_value ();
   ASSERT_EQ (val4.classify (), VAL_MIXED);
-  ASSERT_EQ (val4.classify (0, HOST_BITS_PER_INT), VAL_CONSTANT);
-  wide_int wi_val4 = val4.get_cst_at (0, HOST_BITS_PER_INT);
+  ASSERT_EQ (val4.classify (0, HOST_BITS_PER_INT), VAL_KNOWN);
+  wide_int wi_val4 = val4.get_known_at (0, HOST_BITS_PER_INT);
   ASSERT_TRUE (wi::fits_shwi_p (wi_val4));
   ASSERT_EQ (wi_val4.to_shwi (), 13);
 
@@ -5825,8 +5828,8 @@ simul_scope_simulate_assign_tests ()
   ctx.simulate (gassign3);
 
   data_value val6 = storage_b->get_value ();
-  ASSERT_EQ (val6.classify (), VAL_CONSTANT);
-  wide_int wi_val6 = val6.get_cst_at (HOST_BITS_PER_INT, HOST_BITS_PER_INT);
+  ASSERT_EQ (val6.classify (), VAL_KNOWN);
+  wide_int wi_val6 = val6.get_known_at (HOST_BITS_PER_INT, HOST_BITS_PER_INT);
   ASSERT_TRUE (wi::fits_shwi_p (wi_val4));
   ASSERT_EQ (wi_val6.to_shwi (), 17);
 
@@ -5854,15 +5857,15 @@ simul_scope_simulate_assign_tests ()
   ctx2.simulate (gassign5);
 
   data_value ssa1_val2 = ssa1_strg->get_value ();
-  ASSERT_EQ (ssa1_val2.classify (), VAL_CONSTANT);
-  wide_int wi_ssa1_2 = ssa1_val2.get_cst ();
+  ASSERT_EQ (ssa1_val2.classify (), VAL_KNOWN);
+  wide_int wi_ssa1_2 = ssa1_val2.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi_ssa1_2);
   ASSERT_EQ (wi_ssa1_2.to_shwi (), 66);
 
 
   data_value cst66 (integer_type_node);
   wide_int wi66 = wi::shwi (66, HOST_BITS_PER_INT);
-  cst66.set_cst (wi66);
+  cst66.set_known (wi66);
 
   ssa1_strg->set (cst66);
 
@@ -5877,8 +5880,8 @@ simul_scope_simulate_assign_tests ()
   ctx2.simulate (gassign4);
 
   data_value val_a2 = strg_a_ctx2->get_value ();
-  ASSERT_EQ (val_a2.classify (), VAL_CONSTANT);
-  wide_int wi_a2 = val_a2.get_cst ();
+  ASSERT_EQ (val_a2.classify (), VAL_KNOWN);
+  wide_int wi_a2 = val_a2.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi_a2);
   HOST_WIDE_INT hwi_a2 = wi_a2.to_shwi ();
   ASSERT_EQ (hwi_a2, 66);
@@ -5915,8 +5918,8 @@ simul_scope_simulate_assign_tests ()
 
   data_value val_alloc2 = alloc1.get_value ();
   ASSERT_EQ (val_alloc2.classify (), VAL_MIXED);
-  ASSERT_EQ (val_alloc2.classify (0, HOST_BITS_PER_INT), VAL_CONSTANT);
-  wide_int wi_val_alloc2 = val_alloc2.get_cst_at (0, HOST_BITS_PER_INT);
+  ASSERT_EQ (val_alloc2.classify (0, HOST_BITS_PER_INT), VAL_KNOWN);
+  wide_int wi_val_alloc2 = val_alloc2.get_known_at (0, HOST_BITS_PER_INT);
   ASSERT_PRED1 (wi::fits_shwi_p, wi_val_alloc2);
   ASSERT_EQ (wi_val_alloc2.to_shwi (), 123);
 
@@ -5946,8 +5949,8 @@ simul_scope_simulate_assign_tests ()
   ctx4.simulate (assign44);
 
   data_value val_u2 = strg_u->get_value ();
-  ASSERT_EQ (val_u2.classify (), VAL_CONSTANT);
-  wide_int wi_u2 = val_u2.get_cst ();
+  ASSERT_EQ (val_u2.classify (), VAL_KNOWN);
+  wide_int wi_u2 = val_u2.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi_u2);
   ASSERT_EQ (wi_u2.to_shwi (), 44);
 
@@ -5967,8 +5970,8 @@ simul_scope_simulate_assign_tests ()
   wide_int wi13 = wi::shwi (13, HOST_BITS_PER_INT);
 
   data_value val7 (derived);
-  val7.set_cst_at (wi8, 0);
-  val7.set_cst_at (wi13, HOST_BITS_PER_INT);
+  val7.set_known_at (wi8, 0);
+  val7.set_known_at (wi13, HOST_BITS_PER_INT);
 
   data_storage *strg = ctx5.find_reachable_var (var2i);
   gcc_assert (strg != nullptr);
@@ -5988,8 +5991,8 @@ simul_scope_simulate_assign_tests ()
 
   gcc_assert (strg5 != nullptr);
   data_value after = strg5->get_value ();
-  ASSERT_EQ (after.classify (), VAL_CONSTANT);
-  wide_int wi7 = after.get_cst ();
+  ASSERT_EQ (after.classify (), VAL_KNOWN);
+  wide_int wi7 = after.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi7);
   ASSERT_EQ (wi7.to_shwi (), 13);
 
@@ -6019,8 +6022,8 @@ simul_scope_simulate_assign_tests ()
   data_value c8val = storage->get_value ();
 
   ASSERT_EQ (c8val.classify(), VAL_MIXED);
-  ASSERT_EQ (c8val.classify (3 * CHAR_BIT, CHAR_BIT), VAL_CONSTANT);
-  wide_int wi_val = c8val.get_cst_at (3 * CHAR_BIT, CHAR_BIT);
+  ASSERT_EQ (c8val.classify (3 * CHAR_BIT, CHAR_BIT), VAL_KNOWN);
+  wide_int wi_val = c8val.get_known_at (3 * CHAR_BIT, CHAR_BIT);
   ASSERT_PRED1 (wi::fits_shwi_p, wi_val);
   ASSERT_EQ (wi_val.to_shwi (), 8);
 
@@ -6040,14 +6043,14 @@ simul_scope_simulate_assign_tests ()
 
   wide_int cst12 = wi::shwi (12, HOST_BITS_PER_INT);
   data_value val12 (HOST_BITS_PER_INT);
-  val12.set_cst (cst12);
+  val12.set_known (cst12);
   data_storage *strg_a = ctx7.find_reachable_var (var_a);
   gcc_assert (strg_a != nullptr);
   strg_a->set (val12);
 
   wide_int cst7 = wi::shwi (7, HOST_BITS_PER_INT);
   data_value val7_bis (HOST_BITS_PER_INT);
-  val7_bis.set_cst (cst7);
+  val7_bis.set_known (cst7);
   data_storage *strg_b = ctx7.find_reachable_var (var_b);
   gcc_assert (strg_b != nullptr);
   strg_b->set (val7_bis);
@@ -6063,8 +6066,8 @@ simul_scope_simulate_assign_tests ()
   ctx7.simulate (assign7);
 
   data_value x_after = strg_x->get_value ();
-  ASSERT_EQ (x_after.classify (), VAL_CONSTANT);
-  wide_int x_val = x_after.get_cst ();
+  ASSERT_EQ (x_after.classify (), VAL_KNOWN);
+  wide_int x_val = x_after.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, x_val);
   ASSERT_EQ (x_val.to_shwi (), 5);
 
@@ -6103,8 +6106,8 @@ simul_scope_simulate_assign_tests ()
 
   data_value val29_after0 = strg29->get_value ();
   data_value val0_after = val29_after0.get_at (0, CHAR_BIT);
-  ASSERT_EQ (val0_after.classify (), VAL_CONSTANT);
-  wide_int wi29_0 = val0_after.get_cst_at (0, CHAR_BIT);
+  ASSERT_EQ (val0_after.classify (), VAL_KNOWN);
+  wide_int wi29_0 = val0_after.get_known_at (0, CHAR_BIT);
   ASSERT_PRED1 (wi::fits_uhwi_p, wi29_0);
   ASSERT_EQ  (wi29_0.to_uhwi (), 21);
 
@@ -6123,8 +6126,8 @@ simul_scope_simulate_assign_tests ()
 
   data_value val29_after3 = strg29->get_value ();
   data_value val3_after = val29_after3.get_at (24, CHAR_BIT);
-  ASSERT_EQ (val3_after.classify (), VAL_CONSTANT);
-  wide_int wi29_3 = val3_after.get_cst ();
+  ASSERT_EQ (val3_after.classify (), VAL_KNOWN);
+  wide_int wi29_3 = val3_after.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi29_3);
   ASSERT_EQ  (wi29_3.to_uhwi (), 26);
 
@@ -6137,7 +6140,7 @@ simul_scope_simulate_assign_tests ()
 
   wide_int cst3_bis = wi::shwi (3, sizeof (size_t) * CHAR_BIT);
   data_value val3_bis (sizeof (size_t) * CHAR_BIT);
-  val3_bis.set_cst (cst3_bis);
+  val3_bis.set_known (cst3_bis);
   data_storage * ssa8_strg = ctx8.find_reachable_var (ssa8);
   gcc_assert (ssa8_strg != nullptr);
   ssa8_strg->set (val3_bis);
@@ -6150,8 +6153,8 @@ simul_scope_simulate_assign_tests ()
 
   data_value val29_after12 = strg29->get_value ();
   data_value val12_after = val29_after12.get_at (96, CHAR_BIT);
-  ASSERT_EQ (val12_after.classify (), VAL_CONSTANT);
-  wide_int wi29_12 = val12_after.get_cst ();
+  ASSERT_EQ (val12_after.classify (), VAL_KNOWN);
+  wide_int wi29_12 = val12_after.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi29_12);
   ASSERT_EQ  (wi29_12.to_uhwi (), 17);
 
@@ -6164,7 +6167,7 @@ simul_scope_simulate_assign_tests ()
 
   wide_int cst5 = wi::shwi (5, sizeof (size_t) * CHAR_BIT);
   data_value val5_bis (sizeof (size_t) * CHAR_BIT);
-  val5_bis.set_cst (cst5);
+  val5_bis.set_known (cst5);
   data_storage * ssa9_strg = ctx8.find_reachable_var (ssa9);
   gcc_assert (ssa9_strg != nullptr);
   ssa9_strg->set (val5_bis);
@@ -6177,8 +6180,8 @@ simul_scope_simulate_assign_tests ()
 
   data_value val29_after27 = strg29->get_value ();
   data_value val27_after = val29_after27.get_at (216, CHAR_BIT);
-  ASSERT_EQ (val27_after.classify (), VAL_CONSTANT);
-  wide_int wi29_27 = val27_after.get_cst ();
+  ASSERT_EQ (val27_after.classify (), VAL_KNOWN);
+  wide_int wi29_27 = val27_after.get_known ();
   ASSERT_PRED1 (wi::fits_uhwi_p, wi29_27);
   ASSERT_EQ  (wi29_27.to_uhwi (), 14);
 
@@ -6196,7 +6199,7 @@ simul_scope_simulate_assign_tests ()
 
   wide_int wi23 = wi::uhwi (23, TYPE_PRECISION (intSI_type_node));
   data_value val23 (intSI_type_node);
-  val23.set_cst (wi23);
+  val23.set_known (wi23);
   data_storage *strg_i10 = ctx10.find_reachable_var (i10);
   gcc_assert (strg_i10 != nullptr);
   strg_i10->set (val23);
@@ -6212,9 +6215,9 @@ simul_scope_simulate_assign_tests ()
   ctx10.simulate (g10);
 
   data_value val10_after = strg_v10->get_value ();
-  ASSERT_EQ (val10_after.classify (), VAL_CONSTANT);
+  ASSERT_EQ (val10_after.classify (), VAL_KNOWN);
   ASSERT_EQ (val10_after.get_bitwidth (), TYPE_PRECISION 
(unsigned_intSI_type_node));
-  wide_int wi10 = val10_after.get_cst ();
+  wide_int wi10 = val10_after.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi10);
   ASSERT_EQ (wi10.to_shwi (), 23);
 }
@@ -6244,7 +6247,7 @@ simul_scope_print_call_tests ()
   wide_int wi3113_1 = wi::shwi (13 * 256 + 31, TYPE_PRECISION 
(short_integer_type_node));
 
   data_value val3113_1 (short_integer_type_node);
-  val3113_1.set_cst (wi3113_1);
+  val3113_1.set_known (wi3113_1);
 
   data_storage *strg1_si = ctx1.find_reachable_var (si_1);
   gcc_assert (strg1_si != nullptr);
@@ -6397,8 +6400,8 @@ simul_scope_simulate_call_tests ()
   ctx3.simulate (my_call);
 
   data_value ival2 = ctx3.evaluate (ivar);
-  ASSERT_EQ (ival2.classify (), VAL_CONSTANT);
-  wide_int func_result = ival2.get_cst ();
+  ASSERT_EQ (ival2.classify (), VAL_KNOWN);
+  wide_int func_result = ival2.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, func_result);
   ASSERT_EQ (func_result.to_shwi (), 6);
 
@@ -6449,8 +6452,8 @@ simul_scope_simulate_call_tests ()
   ctx4.simulate (my_call2);
 
   data_value ival4 = ctx4.evaluate (ivar2);
-  ASSERT_EQ (ival4.classify (), VAL_CONSTANT);
-  wide_int func_result2 = ival4.get_cst ();
+  ASSERT_EQ (ival4.classify (), VAL_KNOWN);
+  wide_int func_result2 = ival4.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, func_result2);
   ASSERT_EQ (func_result2.to_shwi (), 19);
 
@@ -6468,7 +6471,7 @@ simul_scope_simulate_call_tests ()
 
   wide_int cst18 = wi::shwi (18, HOST_BITS_PER_LONG);
   data_value val18 (size_type_node);
-  val18.set_cst (cst18);
+  val18.set_known (cst18);
   data_storage *i18_strg = ctx5.find_reachable_var (i18);
   gcc_assert (i18_strg != nullptr);
   i18_strg->set (val18);
@@ -6546,8 +6549,8 @@ simul_scope_simulate_call_tests ()
 
   data_value alloc_val7 = alloc_strg7->get_value ();
   ASSERT_EQ (alloc_val7.get_bitwidth (), 192);
-  ASSERT_EQ (alloc_val7.classify (), VAL_CONSTANT);
-  wide_int wi7 = alloc_val7.get_cst ();
+  ASSERT_EQ (alloc_val7.classify (), VAL_KNOWN);
+  wide_int wi7 = alloc_val7.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi7);
   ASSERT_EQ (wi7.to_shwi (), 0);
 
@@ -6575,7 +6578,7 @@ simul_scope_simulate_call_tests ()
 
   data_value val17 (integer_type_node);
   wide_int wi17 = wi::uhwi (17, HOST_BITS_PER_INT);
-  val17.set_cst (wi17);
+  val17.set_known (wi17);
 
   data_storage * storage_v81 = ctx8.find_reachable_var (v81);
   gcc_assert (storage_v81 != nullptr);
@@ -6592,8 +6595,8 @@ simul_scope_simulate_call_tests ()
 
   data_value v82_after = storage_v82->get_value ();
 
-  ASSERT_EQ (v82_after.classify (), VAL_CONSTANT);
-  wide_int wi_v82 = v82_after.get_cst ();
+  ASSERT_EQ (v82_after.classify (), VAL_KNOWN);
+  wide_int wi_v82 = v82_after.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi_v82);
   ASSERT_EQ (wi_v82.to_shwi (), 17);
 
@@ -6631,7 +6634,7 @@ simul_scope_simulate_call_tests ()
 
   data_value val91 (integer_type_node);
   wide_int wi91 = wi::uhwi (5 + 3 * 256 + 1 * 65536, HOST_BITS_PER_INT);
-  val91.set_cst (wi91);
+  val91.set_known (wi91);
 
   storage_i91->set (val91);
   
@@ -6646,8 +6649,8 @@ simul_scope_simulate_call_tests ()
 
   data_value c92_after = storage_c92->get_value ();
 
-  ASSERT_EQ (c92_after.classify (), VAL_CONSTANT);
-  wide_int wi_c92 = c92_after.get_cst ();
+  ASSERT_EQ (c92_after.classify (), VAL_KNOWN);
+  wide_int wi_c92 = c92_after.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi_c92);
   ASSERT_EQ (wi_c92.to_shwi (), 3);
 
@@ -6670,7 +6673,7 @@ simul_scope_simulate_call_tests ()
   wide_int hwi10_17 = wi::shwi (17, HOST_BITS_PER_INT);
 
   data_value val10_17 (integer_type_node);
-  val10_17.set_cst (hwi10_17);
+  val10_17.set_known (hwi10_17);
 
   data_storage * storage_i101 = ctx10.find_reachable_var (i101);
   gcc_assert (storage_i101 != nullptr);
@@ -6700,15 +6703,15 @@ simul_scope_simulate_call_tests ()
   ASSERT_EQ (val105_after.classify (), VAL_MIXED);
   ASSERT_EQ (val105_after.classify (0, CHAR_BIT), VAL_UNDEFINED);
   ASSERT_EQ (val105_after.classify (3 * CHAR_BIT, 2 * CHAR_BIT), 
VAL_UNDEFINED);
-  ASSERT_EQ (val105_after.classify (CHAR_BIT, 2 * CHAR_BIT), VAL_CONSTANT);
+  ASSERT_EQ (val105_after.classify (CHAR_BIT, 2 * CHAR_BIT), VAL_KNOWN);
 
   data_value val105_after1 = val105_after.get_at (CHAR_BIT, CHAR_BIT);
-  wide_int wi105_after1 = val105_after1.get_cst ();
+  wide_int wi105_after1 = val105_after1.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi105_after1);
   ASSERT_EQ (wi105_after1.to_shwi (), 17);
 
   data_value val105_after2 = val105_after.get_at (2 * CHAR_BIT, CHAR_BIT);
-  wide_int wi105_after2 = val105_after2.get_cst ();
+  wide_int wi105_after2 = val105_after2.get_known ();
   ASSERT_PRED1 (wi::fits_shwi_p, wi105_after2);
   ASSERT_EQ (wi105_after2.to_shwi (), 17);
 }

Reply via email to