aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgexpand.c
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2015-11-03 03:57:07 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2015-11-03 03:57:07 +0000
commit1b223a9f3489296c625bdb7cc764196d04fd9231 (patch)
tree1ca88d2602206178e1b174d26f9a22c25e3f13a8 /gcc/cfgexpand.c
parentec95cd47926915a7a50a5d94008b4fbfcd46eb46 (diff)
downloadgcc-1b223a9f3489296c625bdb7cc764196d04fd9231.zip
gcc-1b223a9f3489296c625bdb7cc764196d04fd9231.tar.gz
gcc-1b223a9f3489296c625bdb7cc764196d04fd9231.tar.bz2
defer mark_addressable calls during expand till the end of expand
for gcc/ChangeLog * gimple-expr.c: Include hash-set.h and rtl.h. (mark_addressable_queue): New var. (mark_addressable): Factor actual marking into... (mark_addressable_1): ... this. Queue it up during expand. (mark_addressable_2): New. (flush_mark_addressable_queue): New. * gimple-expr.h (flush_mark_addressable_queue): Declare. * cfgexpand.c: Include gimple-expr.h. (pass_expand::execute): Flush mark_addressable queue. From-SVN: r229696
Diffstat (limited to 'gcc/cfgexpand.c')
-rw-r--r--gcc/cfgexpand.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index b59ea02..bfbc958 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -51,6 +51,7 @@ along with GCC; see the file COPYING3. If not see
#include "internal-fn.h"
#include "tree-eh.h"
#include "gimple-iterator.h"
+#include "gimple-expr.h"
#include "gimple-walk.h"
#include "tree-cfg.h"
#include "tree-dfa.h"
@@ -6368,6 +6369,8 @@ pass_expand::execute (function *fun)
/* We're done expanding trees to RTL. */
currently_expanding_to_rtl = 0;
+ flush_mark_addressable_queue ();
+
FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR_FOR_FN (fun)->next_bb,
EXIT_BLOCK_PTR_FOR_FN (fun), next_bb)
{