summaryrefslogtreecommitdiff
path: root/gcc/print-tree.c
diff options
context:
space:
mode:
authordberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-15 22:09:45 +0000
committerdberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4>2006-02-15 22:09:45 +0000
commit0b3f639dba8d8de709f155e4281e709ddb3b0070 (patch)
treeda2b2114c7702693918635be6c7ae1407c8010c8 /gcc/print-tree.c
parente87210bbabb7f59320cfa270596162c3b3f5e4ef (diff)
downloadgcc-0b3f639dba8d8de709f155e4281e709ddb3b0070.tar.gz
2006-02-15 Daniel Berlin <dberlin@dberlin.org>
* tree.c (init_ttree): Add STRUCT_FIELD_TAG handling. (tree_code_size): Ditto. * tree.h (struct tree_memory_tag): Remove parent_var. (struct tree_struct_field_tag): New. (SFT_OFFSET): New. (SFT_SIZE): New. (union tree_node): Add sft member. * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY specially here. (create_sft): Add size and offset argument, set SFT_OFFSET and SFT_SIZE. (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE. * treestruct.def: Add TS_STRUCT_FIELD_TAG. * tree-flow-inline.h (get_subvar_at): Update for SFT_OFFSET/SFT_SIZE. (var_can_have_subvars): Ditto. (overlap_subvar): Ditto. * print-tree.c (print_node): Print out interesting things for SFT's. * tree-flow.h (struct subvar): Remove offset and size members. * tree-ssa-operands.c (get_expr_operands): Update for get_indirect_ref_operands changes. (get_indirect_ref_operands): Call add_virtual_operand instead of add_stmt_operand. Only recurse on base var if requested. (access_can_touch_variable): New function. (add_stmt_operand): Split virtual operand handling into ... (add_virtual_operand): Here. Add offset, size, and for_clobber arguments. Prune alias sets. (add_call_clobber_ops): Call add_virtual_operand. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111120 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/print-tree.c')
-rw-r--r--gcc/print-tree.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/print-tree.c b/gcc/print-tree.c
index dad7e59e002..02e5c7b9c61 100644
--- a/gcc/print-tree.c
+++ b/gcc/print-tree.c
@@ -510,6 +510,15 @@ print_node (FILE *file, const char *prefix, tree node, int indent)
&& DECL_HAS_VALUE_EXPR_P (node))
print_node (file, "value-expr", DECL_VALUE_EXPR (node), indent + 4);
+ if (TREE_CODE (node) == STRUCT_FIELD_TAG)
+ {
+ fprintf (file, " sft size " HOST_WIDE_INT_PRINT_DEC,
+ SFT_SIZE (node));
+ fprintf (file, " sft offset " HOST_WIDE_INT_PRINT_DEC,
+ SFT_OFFSET (node));
+ print_node_brief (file, "parent var", SFT_PARENT_VAR (node),
+ indent + 4);
+ }
/* Print the decl chain only if decl is at second level. */
if (indent == 4)
print_node (file, "chain", TREE_CHAIN (node), indent + 4);