MEMMEM_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)REGORIGINAL_REGNO (x)REG_EXPR (x)REG_OFFSET (x)SYMBOL_REFSYMBOL_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_FUNCTIONSYMBOL_FLAG_LOCALTARGET_BINDS_LOCAL_P。
SYMBOL_FLAG_EXTERNALSYMBOL_FLAG_LOCAL的反转。
SYMBOL_FLAG_SMALLTARGET_IN_SMALL_DATA_P。
SYMBOL_REF_TLS_MODEL (x)tls_model。对于非线程局部符号,其返回0。
SYMBOL_FLAG_HAS_BLOCK_INFOSYMBOL_REF_BLOCK和SYMBOL_REF_BLOCK_OFFSET域。
SYMBOL_FLAG_ANCHORobject_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还没有被分配给一个块,或者其还没有在那个块中给定一个偏移量,则值为负数。