aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2012-05-22 11:59:41 +0000
committerRichard Guenther <rguenther@suse.de>2012-05-22 11:59:41 +0000
commit7c947274f6c86973f5167e5408ad5ca3416d8d9a (patch)
treed8263cd9215e1a5a4e587cf8cfb703ab3c0c6850 /gcc/gimple.c
parentdeee98981547d96edd5fd74a430674de126af3d7 (diff)
2012-05-22 Richard Guenther <rguenther@suse.de>
* tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New. (init_function_for_compilation): Remove. * tree-dfa.c (find_vars_r): Take struct function argument. (find_referenced_vars_in): Adjust. * tree-ssa-operands.c (clobber_stats): Remove. (create_vop_var): Take struct function argument. Mark virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND. (init_ssa_operands): Take struct function argument. (fini_ssa_operands): Do not dump dead stats. * tree-ssa-operands.h (init_ssa_operands): Take struct function argument. * cgraphunit.c (init_lowered_empty_function): Adjust. * lto-streamer-in.c (input_cfg): Likewise. * tree-inline.c (initialize_cfun): Likewise. * tree-into-ssa.c (rewrite_into_ssa): Likewise. * omp-low.c (expand_omp_taskreg): Likewise. Avoid switching cfun. * gimple.c (is_gimple_reg): Optimize the SSA_NAME case, virtual operands are not registers. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@187772 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimple.c')
-rw-r--r--gcc/gimple.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/gimple.c b/gcc/gimple.c
index 4fc836236ff..bb028645567 100644
--- a/gcc/gimple.c
+++ b/gcc/gimple.c
@@ -2786,7 +2786,17 @@ bool
is_gimple_reg (tree t)
{
if (TREE_CODE (t) == SSA_NAME)
- t = SSA_NAME_VAR (t);
+ {
+ t = SSA_NAME_VAR (t);
+ if (TREE_CODE (t) == VAR_DECL
+ && VAR_DECL_IS_VIRTUAL_OPERAND (t))
+ return false;
+ return true;
+ }
+
+ if (TREE_CODE (t) == VAR_DECL
+ && VAR_DECL_IS_VIRTUAL_OPERAND (t))
+ return false;
if (!is_gimple_variable (t))
return false;