* tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
and TI_VA_LIST_FPR_COUNTER_FIELD.
(va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
* tree-pass.h (pass_stdarg): Add.
* tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
* tree-stdarg.c: New file.
* tree-stdarg.h: New file.
* Makefile.in (OBJS-common): Add tree-stdarg.o.
(tree-stdarg.o): Add dependencies.
* function.h (struct function): Add va_list_gpr_size and
va_list_fpr_size fields.
* function.c (allocate_struct_function): Initialize them.
* target.h (struct gcc_target): Add stdarg_optimize_hook.
* target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
(TARGET_INITIALIZER): Add it.
* config/i386/i386.c (ix86_build_builtin_va_list): Initialize
va_list_{g,f}pr_counter_field.
(ix86_setup_incoming_varargs): Don't do anything if reg_save
area will not be used. Only save registers that tree-stdarg.c
detected they need saving.
(ix86_va_start): Don't set up fields that won't be used.
* config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
va_list_{g,f}pr_counter_field.
(setup_incoming_varargs): Don't do anything if reg_save
area will not be used. Only save registers that tree-stdarg.c
detected they need saving.
(rs6000_va_start): Don't set up fields that won't be used.
* config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
(alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
(va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
(TARGET_STDARG_OPTIMIZE_HOOK): Define.
* gcc.dg/tree-ssa/stdarg-1.c: New test.
* gcc.dg/tree-ssa/stdarg-2.c: New test.
* gcc.dg/tree-ssa/stdarg-3.c: New test.
* gcc.dg/tree-ssa/stdarg-4.c: New test.
* gcc.dg/tree-ssa/stdarg-5.c: New test.
* gcc.c-torture/execute/stdarg-4.c: New test.
* gcc.dg/vmx/varargs-1.c (f1, f2, f3): Add missing va_end.
From-SVN: r97916
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| 1b-01.c | Loading commit data... | |
| 1b-02.c | Loading commit data... | |
| 1b-03.c | Loading commit data... | |
| 1b-04.c | Loading commit data... | |
| 1b-05.c | Loading commit data... | |
| 1b-06.c | Loading commit data... | |
| 1b-07.c | Loading commit data... | |
| 1c-01.c | Loading commit data... | |
| 1c-02.c | Loading commit data... | |
| 3a-01.c | Loading commit data... | |
| 3a-01a.c | Loading commit data... | |
| 3a-01m.c | Loading commit data... | |
| 3a-03.c | Loading commit data... | |
| 3a-03m.c | Loading commit data... | |
| 3a-04.c | Loading commit data... | |
| 3a-04m.c | Loading commit data... | |
| 3a-05.c | Loading commit data... | |
| 3a-06.c | Loading commit data... | |
| 3a-06m.c | Loading commit data... | |
| 3a-07.c | Loading commit data... | |
| 3b-01.c | Loading commit data... | |
| 3b-02.c | Loading commit data... | |
| 3b-10.c | Loading commit data... | |
| 3b-13.c | Loading commit data... | |
| 3b-14.c | Loading commit data... | |
| 3b-15.c | Loading commit data... | |
| 3c-01.c | Loading commit data... | |
| 3c-01a.c | Loading commit data... | |
| 3c-02.c | Loading commit data... | |
| 3c-03.c | Loading commit data... | |
| 3d-01.c | Loading commit data... | |
| 4-01.c | Loading commit data... | |
| 4-03.c | Loading commit data... | |
| 5-01.c | Loading commit data... | |
| 5-02.c | Loading commit data... | |
| 5-03.c | Loading commit data... | |
| 5-04.c | Loading commit data... | |
| 5-07t.c | Loading commit data... | |
| 5-10.c | Loading commit data... | |
| 5-11.c | Loading commit data... | |
| 7-01.c | Loading commit data... | |
| 7-01a.c | Loading commit data... | |
| 7c-01.c | Loading commit data... | |
| 7d-01.c | Loading commit data... | |
| 7d-02.c | Loading commit data... | |
| 8-01.c | Loading commit data... | |
| 8-02.c | Loading commit data... | |
| 8-02a.c | Loading commit data... | |
| brode-1.c | Loading commit data... | |
| bug-1.c | Loading commit data... | |
| bug-2.c | Loading commit data... | |
| bug-3.c | Loading commit data... | |
| cw-bug-1.c | Loading commit data... | |
| cw-bug-3.c | Loading commit data... | |
| dct.c | Loading commit data... | |
| debug-1.c | Loading commit data... | |
| debug-2.c | Loading commit data... | |
| debug-3.c | Loading commit data... | |
| debug-4.c | Loading commit data... | |
| dos-bug-1-gdb.c | Loading commit data... | |
| dos-bug-2-gdb.c | Loading commit data... | |
| eg-5.c | Loading commit data... | |
| fft.c | Loading commit data... | |
| gcc-bug-1.c | Loading commit data... | |
| gcc-bug-2.c | Loading commit data... | |
| gcc-bug-3.c | Loading commit data... | |
| gcc-bug-4.c | Loading commit data... | |
| gcc-bug-5.c | Loading commit data... | |
| gcc-bug-6.c | Loading commit data... | |
| gcc-bug-7.c | Loading commit data... | |
| gcc-bug-8.c | Loading commit data... | |
| gcc-bug-9.c | Loading commit data... | |
| gcc-bug-b.c | Loading commit data... | |
| gcc-bug-c.c | Loading commit data... | |
| gcc-bug-d.c | Loading commit data... | |
| gcc-bug-e.c | Loading commit data... | |
| gcc-bug-f.c | Loading commit data... | |
| gcc-bug-g.c | Loading commit data... | |
| gcc-bug-i.c | Loading commit data... | |
| harness.h | Loading commit data... | |
| ira1.c | Loading commit data... | |
| ira2.c | Loading commit data... | |
| ira2a.c | Loading commit data... | |
| ira2b.c | Loading commit data... | |
| ira2c.c | Loading commit data... | |
| mem.c | Loading commit data... | |
| newton-1.c | Loading commit data... | |
| ops-long-1.c | Loading commit data... | |
| ops-long-2.c | Loading commit data... | |
| ops.c | Loading commit data... | |
| sn7153.c | Loading commit data... | |
| spill.c | Loading commit data... | |
| spill2.c | Loading commit data... | |
| spill3.c | Loading commit data... | |
| t.c | Loading commit data... | |
| varargs-1.c | Loading commit data... | |
| varargs-2.c | Loading commit data... | |
| varargs-3.c | Loading commit data... | |
| varargs-4.c | Loading commit data... | |
| varargs-5.c | Loading commit data... | |
| varargs-6.c | Loading commit data... | |
| varargs-7.c | Loading commit data... | |
| vmx.exp | Loading commit data... | |
| x-01.c | Loading commit data... | |
| x-02.c | Loading commit data... | |
| x-03.c | Loading commit data... | |
| x-04.c | Loading commit data... | |
| x-05.c | Loading commit data... | |
| yousufi-1.c | Loading commit data... | |
| zero-1.c | Loading commit data... | |
| zero.c | Loading commit data... |