-
- Downloads
Postpone expanding va_arg until pass_stdarg
2015-04-17 Tom de Vries <tom@codesourcery.com>
Michael Matz <matz@suse.de>
* gimple-iterator.c (update_modified_stmts): Remove static.
* gimple-iterator.h (update_modified_stmts): Declare.
* gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
(gimplify_va_arg_internal): New function.
(gimplify_va_arg_expr): Use IFN_VA_ARG.
* gimplify.h (gimplify_va_arg_internal): Declare.
* internal-fn.c (expand_VA_ARG): New unreachable function.
* internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
* tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
(expand_ifn_va_arg): New function.
(pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
(pass_stdarg::execute): Call expand_ifn_va_arg.
(pass_data_lower_vaarg): New pass_data.
(pass_lower_vaarg): New gimple_opt_pass.
(pass_lower_vaarg::gate, pass_lower_vaarg::execute)
(make_pass_lower_vaarg): New function.
* cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
properties_required field.
* passes.def (all_passes): Add pass_lower_vaarg.
* tree-pass.h (PROP_gimple_lva): Add define.
(make_pass_lower_vaarg): Declare.
* gcc.dg/tree-ssa/stdarg-2.c: Change f15 scan-tree-dump for target
x86_64-*-*.
Co-Authored-By:
Michael Matz <matz@suse.de>
From-SVN: r222173
Showing
- gcc/ChangeLog 25 additions, 0 deletionsgcc/ChangeLog
- gcc/cfgexpand.c 2 additions, 1 deletiongcc/cfgexpand.c
- gcc/gimple-iterator.c 1 addition, 1 deletiongcc/gimple-iterator.c
- gcc/gimple-iterator.h 1 addition, 0 deletionsgcc/gimple-iterator.h
- gcc/gimplify.c 81 additions, 30 deletionsgcc/gimplify.c
- gcc/gimplify.h 2 additions, 0 deletionsgcc/gimplify.h
- gcc/internal-fn.c 9 additions, 0 deletionsgcc/internal-fn.c
- gcc/internal-fn.def 1 addition, 0 deletionsgcc/internal-fn.def
- gcc/passes.def 1 addition, 0 deletionsgcc/passes.def
- gcc/testsuite/ChangeLog 6 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c 2 additions, 2 deletionsgcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c
- gcc/tree-pass.h 2 additions, 0 deletionsgcc/tree-pass.h
- gcc/tree-stdarg.c 171 additions, 13 deletionsgcc/tree-stdarg.c
Loading
Please register or sign in to comment