aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/cfghooks.c
diff options
context:
space:
mode:
authorCaroline Tice <cmtice@google.com>2016-03-16 13:56:07 -0700
committerCaroline Tice <cmtice@google.com>2016-03-16 13:56:07 -0700
commitac16f08b86701ecf70e32f4ead8db63d92603808 (patch)
tree08f5e73c8a8f3c980468347bcc0c283bc1e6d3eb /gcc-4.9/gcc/cfghooks.c
parent3a800d7d75ceba88429096186a2150a2d938334a (diff)
downloadtoolchain_gcc-ac16f08b86701ecf70e32f4ead8db63d92603808.tar.gz
toolchain_gcc-ac16f08b86701ecf70e32f4ead8db63d92603808.tar.bz2
toolchain_gcc-ac16f08b86701ecf70e32f4ead8db63d92603808.zip
GCC unification, part 2. Fix various errors from previous unificaiton.
The previous version of the unified GCC compiler (Android & ChromeOS) caused some ChromeOS tests to fail. It also caused an Android NDK test case to fail. This CL fixes those problems. In particular it does the following: - Fix some file formatting errors from previous unification patch. - Update ChangeLog files to reflect Android backport patches. - Find and incorporate a few missing pieces from the following backports backports from trunk r221007, r221675, r222011, r212011, r214942, r214957, r215012, r215016, r218115, r218733, r218746, r220491. This involved small changes in the following files: gcc/cfghoks.c gcc/cfgloop.c gcc/cfgloop.h gcc/except.c gcc/loop-init.c gcc/omp-low.c - Fix minor Android test case regression introduced in the previous unification patch. Change-Id: I482e3a34e3ed97c7ba609fe2954b4781f02ec617
Diffstat (limited to 'gcc-4.9/gcc/cfghooks.c')
-rw-r--r--gcc-4.9/gcc/cfghooks.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/gcc-4.9/gcc/cfghooks.c b/gcc-4.9/gcc/cfghooks.c
index 87da0d02a..76486b28c 100644
--- a/gcc-4.9/gcc/cfghooks.c
+++ b/gcc-4.9/gcc/cfghooks.c
@@ -568,14 +568,10 @@ delete_basic_block (basic_block bb)
struct loop *loop = bb->loop_father;
/* If we remove the header or the latch of a loop, mark the loop for
- removal by setting its header and latch to NULL. */
+ removal. */
if (loop->latch == bb
|| loop->header == bb)
- {
- loop->header = NULL;
- loop->latch = NULL;
- loops_state_set (LOOPS_NEED_FIXUP);
- }
+ mark_loop_for_removal (loop);
remove_bb_from_loops (bb);
}
@@ -759,11 +755,7 @@ merge_blocks (basic_block a, basic_block b)
/* ... we merge two loop headers, in which case we kill
the inner loop. */
if (b->loop_father->header == b)
- {
- b->loop_father->header = NULL;
- b->loop_father->latch = NULL;
- loops_state_set (LOOPS_NEED_FIXUP);
- }
+ mark_loop_for_removal (b->loop_father);
}
/* If we merge a loop header into its predecessor, update the loop
structure. */
@@ -1098,9 +1090,7 @@ duplicate_block (basic_block bb, edge e, basic_block after)
&& cloop->header == bb)
{
add_bb_to_loop (new_bb, loop_outer (cloop));
- cloop->header = NULL;
- cloop->latch = NULL;
- loops_state_set (LOOPS_NEED_FIXUP);
+ mark_loop_for_removal (cloop);
}
else
{