MEM
MEM_ALIAS_SET (
x)
MEM
的别名。该值在前端使用语言相关的方式来设置,并且不能在后端修改。在一些前端中,这些可以通过某种方式对应到类型,或者其它语言级的实体,但是不要求非要这样,所以在后端不要做这样的假设。这些集合编号使用alias_sets_conflict_p
来测试。
MEM_EXPR (
x)
COMPONENT_REF
,这种情况下,其为某个域的引用,并且TREE_OPERAND (
x, 0)
包含了声明,或者另一个COMPONENT_REF
,或者如果没有编译时对象相关引用,则为空。
MEM_OFFSET (
x)
MEM_EXPR
起始的偏移量,为一个CONST_INT
rtx。
MEM_SIZE (
x)
CONST_INT
rtx。这主要与BLKmode
引用相关,否则机器模式已经隐含了长度。
MEM_ALIGN (
x)
MEM_ADDR_SPACE (
x)
REG
ORIGINAL_REGNO (
x)
REG_EXPR (
x)
REG_OFFSET (
x)
SYMBOL_REF
SYMBOL_REF_DECL (
x)
VAR_DECL
或FUNCTION_DECL
创建的symbol_ref
x,则那个tree被记录在这里。如果该值为空,则x由后端代码生成例程创建,并不与前端的符号表实体相关联。
SYMBOL_REF_DECL
也可以指向'c'
类别的tree,即某种常量。这种情况下,symbol_ref
为每个文件的常量池中的实体;同样,不与前端的符号表实体相关联。
SYMBOL_REF_CONSTANT (
x)
SYMBOL_REF_DATA (
x)
SYMBOL_REF_DECL
或SYMBOL_REF_CONSTANT
。
SYMBOL_REF_FLAGS (
x)
symbol_ref
中,其用于传达关于符号的各种断言。它们中的一些可以使用通用的代码来计算,一些是特定于目标机器的。通用的位:
SYMBOL_FLAG_FUNCTION
SYMBOL_FLAG_LOCAL
TARGET_BINDS_LOCAL_P
。
SYMBOL_FLAG_EXTERNAL
SYMBOL_FLAG_LOCAL
的反转。
SYMBOL_FLAG_SMALL
TARGET_IN_SMALL_DATA_P
。
SYMBOL_REF_TLS_MODEL (
x)
tls_model
。对于非线程局部符号,其返回0。
SYMBOL_FLAG_HAS_BLOCK_INFO
SYMBOL_REF_BLOCK
和SYMBOL_REF_BLOCK_OFFSET
域。
SYMBOL_FLAG_ANCHOR
object_block
中具有一个已知位置的符号,并且可以用来访问该块中的附近成员。它们用来实现-fsection-anchors。
如果该标记被设置,则SYMBOL_FLAG_HAS_BLOCK_INFO
也被设置。
起始于SYMBOL_FLAG_MACH_DEP
的位,可供目标机器使用。
SYMBOL_REF_BLOCK (
x)
NULL
。
如果‘SYMBOL_REF_HAS_BLOCK_INFO_P (x)’,则其为x的偏移量,从‘SYMBOL_REF_BLOCK (x)’中的第一个对象开始。如果x还没有被分配给一个块,或者其还没有在那个块中给定一个偏移量,则值为负数。