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

Go to the source code of this file.

Data Structures

struct  double_int
 
struct  wi::int_traits< double_int >
 

Namespaces

namespace  wi
 

Macros

#define HOST_BITS_PER_DOUBLE_INT   (2 * HOST_BITS_PER_WIDE_INT)
 
#define double_int_minus_one   (double_int::from_shwi (-1))
 
#define double_int_zero   (double_int::from_shwi (0))
 
#define double_int_one   (double_int::from_shwi (1))
 
#define double_int_two   (double_int::from_shwi (2))
 
#define double_int_ten   (double_int::from_shwi (10))
 
#define ALL_ONES   HOST_WIDE_INT_M1U
 

Functions

void dump_double_int (FILE *, double_int, bool)
 
void mpz_set_double_int (mpz_t, double_int, bool)
 
double_int mpz_get_double_int (const_tree, mpz_t, bool)
 

Macro Definition Documentation

◆ ALL_ONES

#define ALL_ONES   HOST_WIDE_INT_M1U

◆ double_int_minus_one

#define double_int_minus_one   (double_int::from_shwi (-1))
Some useful constants.   
FIXME(crowl): Maybe remove after converting callers?
The problem is that a named constant would not be as optimizable,
while the functional syntax is more verbose.   

Referenced by build_minus_one_cst().

◆ double_int_one

◆ double_int_ten

#define double_int_ten   (double_int::from_shwi (10))

◆ double_int_two

#define double_int_two   (double_int::from_shwi (2))

◆ double_int_zero

◆ HOST_BITS_PER_DOUBLE_INT

Function Documentation

◆ dump_double_int()

void dump_double_int ( FILE * file,
double_int cst,
bool uns )
Dumps CST to FILE.  If UNS is true, CST is considered to be unsigned,
otherwise it is signed.   

References double_int_split_digit(), i, double_int::is_negative(), and double_int::is_zero().

◆ mpz_get_double_int()

double_int mpz_get_double_int ( const_tree type,
mpz_t val,
bool wrap )
Returns VAL converted to TYPE.  If WRAP is true, then out-of-range
values of VAL will be wrapped; otherwise, they will be set to the
appropriate minimum or maximum TYPE bound.   

References alloca, count, double_int::ext(), gcc_assert, get_type_static_bounds(), double_int::high, double_int::low, TYPE_PRECISION, and TYPE_UNSIGNED.

◆ mpz_set_double_int()

void mpz_set_double_int ( mpz_t result,
double_int val,
bool uns )
Conversion to and from GMP integer representations.   
Sets RESULT to VAL, taken unsigned if UNS is true and as signed
otherwise.   

References double_int::high, double_int::is_negative(), and double_int::low.