diff options
author | Jason Merrill <jason@redhat.com> | 2004-06-09 11:32:44 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2004-06-09 11:32:44 -0400 |
commit | cd3ce9b44c1c3b4f4567de0d2767df058b89ce58 (patch) | |
tree | a63536f7f79b61493abe2609fb704c1c740bcd7d /gcc/tree-gimple.h | |
parent | e072ae27e0898a7244b08d003a43b4cecf146df0 (diff) | |
download | gcc-cd3ce9b44c1c3b4f4567de0d2767df058b89ce58.tar.gz |
Gimplify VA_ARG_EXPR into simpler forms.
* target.h: Add gimplify_va_arg_expr hook.
* target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
* fold-const.c (build_fold_addr_expr)
(build_fold_addr_expr_with_type): Move from gimplify.c.
* tree.h: Declare them.
* gimplify.c (gimplify_and_add): New fn.
(build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
(gimplify_array_ref_to_plus, gimplify_modify_expr)
(gimplify_expr): Use build_fold_*.
(copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
don't know how to gimplify it.
* builtins.c (std_gimplify_va_arg_expr): New fn.
(dummy_object): New static fn.
(gimplify_va_arg_expr): New fn.
(stabilize_va_list): Use build_fold_*.
* tree-gimple.h: Declare new fns.
* config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
(ix86_gimplify_va_arg): New fn.
* config/i386/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
(ia64_gimplify_va_arg): New fn.
* config/i386/rs6000.c (rs6000_gimplify_va_arg): New fn.
(TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
* config/i386/sparc.c (sparc_gimplify_va_arg): New fn.
* alias.c (get_varargs_alias_set): Just return 0 for now.
* c-objc-common.c (c_tree_printer): Improve handling of %T.
From-SVN: r82838
Diffstat (limited to 'gcc/tree-gimple.h')
-rw-r--r-- | gcc/tree-gimple.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-gimple.h b/gcc/tree-gimple.h index 59cb3b365ac..eb3dea86e85 100644 --- a/gcc/tree-gimple.h +++ b/gcc/tree-gimple.h @@ -107,6 +107,7 @@ void gimplify_to_stmt_list (tree *); void gimplify_body (tree *, tree); void push_gimplify_context (void); void pop_gimplify_context (tree); +void gimplify_and_add (tree, tree *); /* Miscellaneous helpers. */ tree get_base_address (tree t); @@ -121,6 +122,8 @@ tree build_and_jump (tree *); tree alloc_stmt_list (void); void free_stmt_list (tree); tree force_labels_r (tree *, int *, void *); +enum gimplify_status gimplify_va_arg_expr (tree *, tree *, tree *); +void std_gimplify_va_arg_expr (tree *, tree *, tree *); /* In tree-nested.c. */ extern void lower_nested_functions (tree); |