Go to the source code of this file.
◆ bits_to_bytes_round_down
#define bits_to_bytes_round_down 
( 
 X  ) 

Value:force_align_down_and_div (X, BITS_PER_UNIT)
Divide bit quantity X by BITS_PER_UNIT and round down (towards Inf).
If X is a bit size, this gives the number of whole bytes spanned by X.
This is safe because nonconstant mode sizes must be a whole number
of bytes in size.
Referenced by expand_assignment(), expand_debug_expr(), expand_expr_real_1(), extract_base_bit_offset(), extract_bit_field_1(), get_inner_reference(), get_inner_reference_aff(), make_extraction(), maybe_instrument_pointer_overflow(), pointer_may_wrap_p(), and set_mem_attributes_minus_bitpos().
◆ bits_to_bytes_round_up
#define bits_to_bytes_round_up 
( 
 X  ) 

◆ MACRO_INT
Value:Wrapper for poly_int arguments to target macros, so that if a target
doesn't need polynomialsized modes, its header file can continue to
treat the argument as a normal constant. This should go away once
macros are moved to target hooks. It shouldn't be used in other
contexts.
Referenced by push_operand().
◆ num_trailing_bits
#define num_trailing_bits 
( 
 X  ) 

◆ round_down_to_byte_boundary
#define round_down_to_byte_boundary 
( 
 X  ) 

Value:force_align_down (X, BITS_PER_UNIT)
Round bit quantity X down to the nearest byte boundary.
This is safe because nonconstant mode sizes must be a whole number
of bytes in size.
◆ round_up_to_byte_boundary
#define round_up_to_byte_boundary 
( 
 X  ) 

Value:force_align_up (X, BITS_PER_UNIT)
Round bit quantity X up the nearest byte boundary.
This is safe because nonconstant mode sizes must be a whole number
of bytes in size.
◆ vector_element_size
#define vector_element_size 
( 
 SIZE, 


 NELTS ) 
Value: (exact_div (SIZE, NELTS).to_constant ())
Return the size of an element in a vector of size SIZE, given that
the vector has NELTS elements. The return value is in the same units
as SIZE (either bits or bytes).
to_constant () is safe in this situation because vector elements are
always constantsized scalars.
Referenced by build_truth_vector_type_for(), build_truth_vector_type_for_mode(), fold_view_convert_vector_encoding(), native_decode_vector_rtx(), native_encode_rtx(), simplify_const_vector_byte_offset(), simplify_const_vector_subreg(), vect_recog_bool_pattern(), and vector_alignment_reachable_p().
◆ vector_unroll_factor
#define vector_unroll_factor 
( 
 NELTS1, 


 NELTS2 ) 
◆ poly_int64
◆ poly_offset_int
◆ poly_uint16
Typedefs for polynomial integers used in GCC.
Copyright (C) 20162024 Free Software Foundation, Inc.
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/>.
◆ poly_uint64
◆ poly_wide_int
◆ poly_wide_int_ref
◆ poly_widest_int