Object_Flags_Type¶
- bitfield Object_Flags_Type¶
Field
Description
Address_Taken
True if address of object is taken somewhere.
var.Object_Flags.Address_Taken = any( op.The_Object == var for op in ir_graph.nodes_of_type('Address_Operand_Interface') if not op.is_of_type('Indirect_Operand') )
Has_Definition
True if there is at least one direct write (besides initialization).
var.Object_Flags.Has_Definition = any( op.The_Object == var and op.Parent != var.Initialization for op in ir_graph.nodes_of_type('Writing_Operand_Interface') if not op.is_of_type('Indirect_Operand') )
Is_Register
declared with register keyword
Has_Default
for parameters: default argument in some declaration?
Is_Constexpr
constexprkeyword from C++11 present?Is_Constinit
constinitkeyword from C++20 present?Is_Member_Constant
nonstandard member constants, appear as static fields
Has_Constant_Value
variable can be treated as a compile-time constant even if it’s not
constexpr(e.g.,const int i = 42;)Has_In_Class_Init
static data member with in-class initializer
Is_Optimized_Empty_Class
C++20 non-static data member with zero size
In_Discarded_Statement
declared in discarded statement
Has_Static_Init
variable has static initialization (zero-initialization or constant initialization); never set for local variables
Is_CUDA_Device
for CUDA
__device__variables (including__shared__,__constant__, and__managed__)Is_CUDA_Shared
for CUDA
__shared__variablesIs_CUDA_Constant
for CUDA
__constant__variablesIs_CUDA_Managed
for CUDA
__managed__variables