comparison gcc/tree-ssa-phiprop.c @ 63:b7f97abdc517 gcc-4.6-20100522

update gcc from gcc-4.5.0 to gcc-4.6
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Mon, 24 May 2010 12:47:05 +0900
parents 77e2b8dfacca
children f6334be47118
comparison
equal deleted inserted replaced
56:3c8a44c06a95 63:b7f97abdc517
1 /* Backward propagation of indirect loads through PHIs. 1 /* Backward propagation of indirect loads through PHIs.
2 Copyright (C) 2007, 2008 Free Software Foundation, Inc. 2 Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
3 Contributed by Richard Guenther <rguenther@suse.de> 3 Contributed by Richard Guenther <rguenther@suse.de>
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
20 20
21 #include "config.h" 21 #include "config.h"
22 #include "system.h" 22 #include "system.h"
23 #include "coretypes.h" 23 #include "coretypes.h"
24 #include "tm.h" 24 #include "tm.h"
25 #include "ggc.h"
26 #include "tree.h" 25 #include "tree.h"
27 #include "rtl.h"
28 #include "tm_p.h" 26 #include "tm_p.h"
29 #include "basic-block.h" 27 #include "basic-block.h"
30 #include "timevar.h" 28 #include "timevar.h"
31 #include "diagnostic.h" 29 #include "diagnostic.h"
30 #include "tree-pretty-print.h"
31 #include "gimple-pretty-print.h"
32 #include "tree-flow.h" 32 #include "tree-flow.h"
33 #include "tree-pass.h" 33 #include "tree-pass.h"
34 #include "tree-dump.h" 34 #include "tree-dump.h"
35 #include "langhooks.h" 35 #include "langhooks.h"
36 #include "flags.h" 36 #include "flags.h"
188 } 188 }
189 else 189 else
190 { 190 {
191 gcc_assert (TREE_CODE (old_arg) == ADDR_EXPR); 191 gcc_assert (TREE_CODE (old_arg) == ADDR_EXPR);
192 old_arg = TREE_OPERAND (old_arg, 0); 192 old_arg = TREE_OPERAND (old_arg, 0);
193 new_var = create_tmp_var (TREE_TYPE (old_arg), NULL); 193 new_var = create_tmp_reg (TREE_TYPE (old_arg), NULL);
194 tmp = gimple_build_assign (new_var, unshare_expr (old_arg)); 194 tmp = gimple_build_assign (new_var, unshare_expr (old_arg));
195 if (TREE_CODE (TREE_TYPE (old_arg)) == COMPLEX_TYPE
196 || TREE_CODE (TREE_TYPE (old_arg)) == VECTOR_TYPE)
197 DECL_GIMPLE_REG_P (new_var) = 1;
198 gcc_assert (is_gimple_reg (new_var)); 195 gcc_assert (is_gimple_reg (new_var));
199 add_referenced_var (new_var); 196 add_referenced_var (new_var);
200 new_var = make_ssa_name (new_var, tmp); 197 new_var = make_ssa_name (new_var, tmp);
201 gimple_assign_set_lhs (tmp, new_var); 198 gimple_assign_set_lhs (tmp, new_var);
202 gimple_set_location (tmp, locus); 199 gimple_set_location (tmp, locus);