comparison gcc/tree-stdarg.c @ 55:77e2b8dfacca gcc-4.4.5

update it from 4.4.3 to 4.5.0
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Fri, 12 Feb 2010 23:39:51 +0900
parents a06113de4d67
children b7f97abdc517
comparison
equal deleted inserted replaced
52:c156f1bd5cd9 55:77e2b8dfacca
1 /* Pass computing data for optimizing stdarg functions. 1 /* Pass computing data for optimizing stdarg functions.
2 Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. 2 Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
3 Contributed by Jakub Jelinek <jakub@redhat.com> 3 Contributed by Jakub Jelinek <jakub@redhat.com>
4 4
5 This file is part of GCC. 5 This file is part of GCC.
6 6
7 GCC is free software; you can redistribute it and/or modify 7 GCC is free software; you can redistribute it and/or modify
493 for (i = gsi_start_bb (bb); !gsi_end_p (i); gsi_next (&i)) 493 for (i = gsi_start_bb (bb); !gsi_end_p (i); gsi_next (&i))
494 { 494 {
495 gimple stmt = gsi_stmt (i); 495 gimple stmt = gsi_stmt (i);
496 tree use; 496 tree use;
497 ssa_op_iter iter; 497 ssa_op_iter iter;
498
499 if (is_gimple_debug (stmt))
500 continue;
498 501
499 FOR_EACH_SSA_TREE_OPERAND (use, stmt, iter, SSA_OP_ALL_USES) 502 FOR_EACH_SSA_TREE_OPERAND (use, stmt, iter, SSA_OP_ALL_USES)
500 { 503 {
501 if (! bitmap_bit_p (si->va_list_escape_vars, 504 if (! bitmap_bit_p (si->va_list_escape_vars,
502 DECL_UID (SSA_NAME_VAR (use)))) 505 DECL_UID (SSA_NAME_VAR (use))))
835 if (targetm.stdarg_optimize_hook 838 if (targetm.stdarg_optimize_hook
836 && targetm.stdarg_optimize_hook (&si, stmt)) 839 && targetm.stdarg_optimize_hook (&si, stmt))
837 continue; 840 continue;
838 } 841 }
839 } 842 }
843 else if (is_gimple_debug (stmt))
844 continue;
840 845
841 /* All other uses of va_list are either va_copy (that is not handled 846 /* All other uses of va_list are either va_copy (that is not handled
842 in this optimization), taking address of va_list variable or 847 in this optimization), taking address of va_list variable or
843 passing va_list to other functions (in that case va_list might 848 passing va_list to other functions (in that case va_list might
844 escape the function and therefore va_start needs to set it up 849 escape the function and therefore va_start needs to set it up
903 gate_optimize_stdarg, /* gate */ 908 gate_optimize_stdarg, /* gate */
904 execute_optimize_stdarg, /* execute */ 909 execute_optimize_stdarg, /* execute */
905 NULL, /* sub */ 910 NULL, /* sub */
906 NULL, /* next */ 911 NULL, /* next */
907 0, /* static_pass_number */ 912 0, /* static_pass_number */
908 0, /* tv_id */ 913 TV_NONE, /* tv_id */
909 PROP_cfg | PROP_ssa | PROP_alias, /* properties_required */ 914 PROP_cfg | PROP_ssa, /* properties_required */
910 0, /* properties_provided */ 915 0, /* properties_provided */
911 0, /* properties_destroyed */ 916 0, /* properties_destroyed */
912 0, /* todo_flags_start */ 917 0, /* todo_flags_start */
913 TODO_dump_func /* todo_flags_finish */ 918 TODO_dump_func /* todo_flags_finish */
914 } 919 }