Commit cdc3ddb8 by Richard Henderson Committed by Richard Henderson

target.h (struct gcc_target): Move gimplify_va_arg_expr next to build_builtin_va_list.

        * target.h (struct gcc_target): Move gimplify_va_arg_expr
        next to build_builtin_va_list.
        * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
        * builtins.c (gimplify_va_arg_expr): Likewise.
        * gimplify.c (copy_if_shared_r): Likewise.

From-SVN: r84578
parent a0c71497
2004-07-12 Richard Henderson <rth@redhat.com>
* target.h (struct gcc_target): Move gimplify_va_arg_expr
next to build_builtin_va_list.
* target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match.
* builtins.c (gimplify_va_arg_expr): Likewise.
* gimplify.c (copy_if_shared_r): Likewise.
2004-07-12 Alexandre Oliva <aoliva@redhat.com> 2004-07-12 Alexandre Oliva <aoliva@redhat.com>
* passes.c (rest_of_decl_compilation): Don't defer call of * passes.c (rest_of_decl_compilation): Don't defer call of
......
...@@ -4642,11 +4642,11 @@ gimplify_va_arg_expr (tree *expr_p, tree *pre_p, tree *post_p) ...@@ -4642,11 +4642,11 @@ gimplify_va_arg_expr (tree *expr_p, tree *pre_p, tree *post_p)
else else
gimplify_expr (&valist, pre_p, post_p, is_gimple_min_lval, fb_lvalue); gimplify_expr (&valist, pre_p, post_p, is_gimple_min_lval, fb_lvalue);
if (!targetm.calls.gimplify_va_arg_expr) if (!targetm.gimplify_va_arg_expr)
/* Once most targets are converted this should abort. */ /* Once most targets are converted this should abort. */
return GS_ALL_DONE; return GS_ALL_DONE;
*expr_p = targetm.calls.gimplify_va_arg_expr (valist, type, pre_p, post_p); *expr_p = targetm.gimplify_va_arg_expr (valist, type, pre_p, post_p);
return GS_OK; return GS_OK;
} }
} }
......
...@@ -667,7 +667,7 @@ copy_if_shared_r (tree *tp, int *walk_subtrees ATTRIBUTE_UNUSED, ...@@ -667,7 +667,7 @@ copy_if_shared_r (tree *tp, int *walk_subtrees ATTRIBUTE_UNUSED,
{ {
TREE_VISITED (t) = 1; TREE_VISITED (t) = 1;
if (TREE_CODE (*tp) == VA_ARG_EXPR if (TREE_CODE (*tp) == VA_ARG_EXPR
&& targetm.calls.gimplify_va_arg_expr == NULL) && targetm.gimplify_va_arg_expr == NULL)
{ {
/* Mark any _DECL inside the operand as volatile to avoid /* Mark any _DECL inside the operand as volatile to avoid
the optimizers messing around with it. We have to do this the optimizers messing around with it. We have to do this
......
...@@ -376,7 +376,6 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ...@@ -376,7 +376,6 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
TARGET_STRICT_ARGUMENT_NAMING, \ TARGET_STRICT_ARGUMENT_NAMING, \
TARGET_PRETEND_OUTGOING_VARARGS_NAMED, \ TARGET_PRETEND_OUTGOING_VARARGS_NAMED, \
TARGET_SPLIT_COMPLEX_ARG, \ TARGET_SPLIT_COMPLEX_ARG, \
TARGET_GIMPLIFY_VA_ARG_EXPR, \
} }
...@@ -458,6 +457,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ...@@ -458,6 +457,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
TARGET_CC_MODES_COMPATIBLE, \ TARGET_CC_MODES_COMPATIBLE, \
TARGET_MACHINE_DEPENDENT_REORG, \ TARGET_MACHINE_DEPENDENT_REORG, \
TARGET_BUILD_BUILTIN_VA_LIST, \ TARGET_BUILD_BUILTIN_VA_LIST, \
TARGET_GIMPLIFY_VA_ARG_EXPR, \
TARGET_GET_PCH_VALIDITY, \ TARGET_GET_PCH_VALIDITY, \
TARGET_PCH_VALID_P, \ TARGET_PCH_VALID_P, \
TARGET_DEFAULT_SHORT_ENUMS, \ TARGET_DEFAULT_SHORT_ENUMS, \
......
...@@ -414,6 +414,10 @@ struct gcc_target ...@@ -414,6 +414,10 @@ struct gcc_target
/* Create the __builtin_va_list type. */ /* Create the __builtin_va_list type. */
tree (* build_builtin_va_list) (void); tree (* build_builtin_va_list) (void);
/* Gimplifies a VA_ARG_EXPR. */
tree (* gimplify_va_arg_expr) (tree valist, tree type, tree *pre_p,
tree *post_p);
/* Validity-checking routines for PCH files, target-specific. /* Validity-checking routines for PCH files, target-specific.
get_pch_validity returns a pointer to the data to be stored, get_pch_validity returns a pointer to the data to be stored,
and stores the size in its argument. pch_valid_p gets the same and stores the size in its argument. pch_valid_p gets the same
...@@ -458,10 +462,6 @@ struct gcc_target ...@@ -458,10 +462,6 @@ struct gcc_target
/* Given a complex type T, return true if a parameter of type T /* Given a complex type T, return true if a parameter of type T
should be passed as two scalars. */ should be passed as two scalars. */
bool (* split_complex_arg) (tree type); bool (* split_complex_arg) (tree type);
/* Gimplifies a VA_ARG_EXPR. */
tree (* gimplify_va_arg_expr) (tree valist, tree type, tree *pre_p,
tree *post_p);
} calls; } calls;
/* Functions specific to the C++ frontend. */ /* Functions specific to the C++ frontend. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment