* 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. * 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. * 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. * gcc.c-torture/execute/stdarg-1.c: New test. * gcc.c-torture/execute/stdarg-2.c: New test. * gcc.c-torture/execute/stdarg-3.c: New test. * 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. From-SVN: r88279
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
athlon.md | Loading commit data... | |
att.h | Loading commit data... | |
beos-elf.h | Loading commit data... | |
biarch64.h | Loading commit data... | |
bsd.h | Loading commit data... | |
crtdll.h | Loading commit data... | |
cygming.h | Loading commit data... | |
cygwin.asm | Loading commit data... | |
cygwin.h | Loading commit data... | |
cygwin1.c | Loading commit data... | |
cygwin2.c | Loading commit data... | |
darwin.h | Loading commit data... | |
djgpp.h | Loading commit data... | |
emmintrin.h | Loading commit data... | |
freebsd.h | Loading commit data... | |
freebsd64.h | Loading commit data... | |
gas.h | Loading commit data... | |
gmm_malloc.h | Loading commit data... | |
gmon-sol2.c | Loading commit data... | |
gnu.h | Loading commit data... | |
gstabs.h | Loading commit data... | |
gthr-win32.c | Loading commit data... | |
host-mingw32.c | Loading commit data... | |
i386-aout.h | Loading commit data... | |
i386-coff.h | Loading commit data... | |
i386-interix.h | Loading commit data... | |
i386-interix3.h | Loading commit data... | |
i386-modes.def | Loading commit data... | |
i386-protos.h | Loading commit data... | |
i386.c | Loading commit data... | |
i386.h | Loading commit data... | |
i386.md | Loading commit data... | |
i386elf.h | Loading commit data... | |
k6.md | Loading commit data... | |
kaos-i386.h | Loading commit data... | |
kfreebsd-gnu.h | Loading commit data... | |
knetbsd-gnu.h | Loading commit data... | |
libgcc-x86_64-glibc.ver | Loading commit data... | |
linux-unwind.h | Loading commit data... | |
linux.h | Loading commit data... | |
linux64.h | Loading commit data... | |
lynx.h | Loading commit data... | |
mach.h | Loading commit data... | |
mingw32.h | Loading commit data... | |
mm3dnow.h | Loading commit data... | |
mmintrin.h | Loading commit data... | |
netbsd-elf.h | Loading commit data... | |
netbsd.h | Loading commit data... | |
netbsd64.h | Loading commit data... | |
netware-crt0.c | Loading commit data... | |
netware-libgcc.c | Loading commit data... | |
netware-libgcc.def | Loading commit data... | |
netware-libgcc.exp | Loading commit data... | |
netware.c | Loading commit data... | |
netware.h | Loading commit data... | |
nto.h | Loading commit data... | |
nwld.c | Loading commit data... | |
nwld.h | Loading commit data... | |
openbsd.h | Loading commit data... | |
pentium.md | Loading commit data... | |
pmm_malloc.h | Loading commit data... | |
pmmintrin.h | Loading commit data... | |
ppro.md | Loading commit data... | |
predicates.md | Loading commit data... | |
ptx4-i.h | Loading commit data... | |
rtemself.h | Loading commit data... | |
sco5.h | Loading commit data... | |
scodbx.h | Loading commit data... | |
sol2-c1.asm | Loading commit data... | |
sol2-ci.asm | Loading commit data... | |
sol2-cn.asm | Loading commit data... | |
sol2-gc1.asm | Loading commit data... | |
sol2.h | Loading commit data... | |
sysv3.h | Loading commit data... | |
sysv4-cpp.h | Loading commit data... | |
sysv4.h | Loading commit data... | |
sysv5.h | Loading commit data... | |
t-beos | Loading commit data... | |
t-crtpic | Loading commit data... | |
t-crtstuff | Loading commit data... | |
t-cygming | Loading commit data... | |
t-cygwin | Loading commit data... | |
t-djgpp | Loading commit data... | |
t-gmm_malloc | Loading commit data... | |
t-i386elf | Loading commit data... | |
t-interix | Loading commit data... | |
t-linux64 | Loading commit data... | |
t-mingw32 | Loading commit data... | |
t-netware | Loading commit data... | |
t-nto | Loading commit data... | |
t-nwld | Loading commit data... | |
t-openbsd | Loading commit data... | |
t-pmm_malloc | Loading commit data... | |
t-rtems-i386 | Loading commit data... | |
t-sco5 | Loading commit data... | |
t-sol2 | Loading commit data... | |
t-svr3dbx | Loading commit data... | |
t-uwin | Loading commit data... | |
t-vxworks | Loading commit data... | |
unix.h | Loading commit data... | |
uwin.asm | Loading commit data... | |
uwin.h | Loading commit data... | |
vxworks.h | Loading commit data... | |
winnt.c | Loading commit data... | |
x-mingw32 | Loading commit data... | |
x86-64.h | Loading commit data... | |
xm-cygwin.h | Loading commit data... | |
xm-dgux.h | Loading commit data... | |
xm-djgpp.h | Loading commit data... | |
xm-mingw32.h | Loading commit data... | |
xm-sun.h | Loading commit data... | |
xm-sysv3.h | Loading commit data... | |
xmmintrin.h | Loading commit data... |