GCC Middle and Back End API Reference
range-op.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  range_operator
 
class  range_op_handler
 
class  range_op_table
 

Macros

#define OP_WIDEN_MULT_SIGNED   ((unsigned) MAX_TREE_CODES)
 
#define OP_WIDEN_MULT_UNSIGNED   ((unsigned) MAX_TREE_CODES + 1)
 
#define OP_WIDEN_PLUS_SIGNED   ((unsigned) MAX_TREE_CODES + 2)
 
#define OP_WIDEN_PLUS_UNSIGNED   ((unsigned) MAX_TREE_CODES + 3)
 
#define RANGE_OP_TABLE_SIZE   ((unsigned) MAX_TREE_CODES + 4)
 

Enumerations

enum  range_op_dispatch_type {
  DISPATCH_FOLD_RANGE , DISPATCH_OP1_RANGE , DISPATCH_OP2_RANGE , DISPATCH_LHS_OP1_RELATION ,
  DISPATCH_LHS_OP2_RELATION , DISPATCH_OP1_OP2_RELATION
}
 

Functions

bool range_cast (vrange &r, tree type)
 
bool range_cast (Value_Range &r, tree type)
 
void wi_set_zero_nonzero_bits (tree type, const wide_int &, const wide_int &, wide_int &maybe_nonzero, wide_int &mustbe_nonzero)
 

Macro Definition Documentation

◆ OP_WIDEN_MULT_SIGNED

◆ OP_WIDEN_MULT_UNSIGNED

◆ OP_WIDEN_PLUS_SIGNED

#define OP_WIDEN_PLUS_SIGNED   ((unsigned) MAX_TREE_CODES + 2)

◆ OP_WIDEN_PLUS_UNSIGNED

#define OP_WIDEN_PLUS_UNSIGNED   ((unsigned) MAX_TREE_CODES + 3)

◆ RANGE_OP_TABLE_SIZE

#define RANGE_OP_TABLE_SIZE   ((unsigned) MAX_TREE_CODES + 4)

Enumeration Type Documentation

◆ range_op_dispatch_type

Header file for range operator class.
   Copyright (C) 2017-2024 Free Software Foundation, Inc.
   Contributed by Andrew MacLeod <amacleod@redhat.com>
   and Aldy Hernandez <aldyh@redhat.com>.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
Enumerator
DISPATCH_FOLD_RANGE 
DISPATCH_OP1_RANGE 
DISPATCH_OP2_RANGE 
DISPATCH_LHS_OP1_RELATION 
DISPATCH_LHS_OP2_RELATION 
DISPATCH_OP1_OP2_RELATION 

Function Documentation

◆ range_cast() [1/2]

bool range_cast ( Value_Range & r,
tree type )
inline

References ggc_alloc(), and r.

◆ range_cast() [2/2]

◆ wi_set_zero_nonzero_bits()