summaryrefslogtreecommitdiff
path: root/gcc/function.h
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2009-02-10 16:22:29 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2009-02-10 16:22:29 +0000
commite15deb4b329bf724d50139ade9b5a0e9b152b130 (patch)
treeeb1fb857e229b58695341024ec649f95610b921f /gcc/function.h
parenta9c1f295d9e02e5d7ccb174df7223b9deeefbb99 (diff)
downloadgcc-e15deb4b329bf724d50139ade9b5a0e9b152b130.tar.gz
PR target/39139
* function.h (struct function): Add has_local_explicit_reg_vars bit. * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER VAR_DECLs were seen. * tree-ssa-live.c (remove_unused_locals): Recompute cfun->has_local_explicit_reg_vars. * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode copies or clearings if cfun->has_local_explicit_reg_vars. * gcc.target/i386/pr39139.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144065 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/function.h')
-rw-r--r--gcc/function.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/function.h b/gcc/function.h
index f78d737b05f..3f03727dfdc 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -1,6 +1,6 @@
/* Structure for saving state for a nested function.
Copyright (C) 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2008
+ 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC.
@@ -596,6 +596,10 @@ struct function GTY(())
/* Nonzero if pass_tree_profile was run on this function. */
unsigned int after_tree_profile : 1;
+
+ /* Nonzero if this function has local DECL_HARD_REGISTER variables.
+ In this case code motion has to be done more carefully. */
+ unsigned int has_local_explicit_reg_vars : 1;
};
/* If va_list_[gf]pr_size is set to this, it means we don't know how