diff options
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106836.patch')
-rw-r--r-- | toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106836.patch | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106836.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106836.patch deleted file mode 100644 index 95b9ea9b83..0000000000 --- a/toolchain-layer/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106836.patch +++ /dev/null | |||
@@ -1,61 +0,0 @@ | |||
1 | 2011-11-04 Revital Eres <revital.eres@linaro.org> | ||
2 | |||
3 | Backport from mainline -r180673: | ||
4 | |||
5 | gcc/ | ||
6 | * modulo-sched.c (generate_prolog_epilog): Mark prolog | ||
7 | and epilog as BB_DISABLE_SCHEDULE. | ||
8 | (mark_loop_unsched): New function. | ||
9 | (sms_schedule): Call it. | ||
10 | |||
11 | === modified file 'gcc/modulo-sched.c' | ||
12 | --- old/gcc/modulo-sched.c 2011-10-10 14:35:32 +0000 | ||
13 | +++ new/gcc/modulo-sched.c 2011-10-30 05:31:00 +0000 | ||
14 | @@ -1173,6 +1173,8 @@ | ||
15 | /* Put the prolog on the entry edge. */ | ||
16 | e = loop_preheader_edge (loop); | ||
17 | split_edge_and_insert (e, get_insns ()); | ||
18 | + if (!flag_resched_modulo_sched) | ||
19 | + e->dest->flags |= BB_DISABLE_SCHEDULE; | ||
20 | |||
21 | end_sequence (); | ||
22 | |||
23 | @@ -1186,9 +1188,24 @@ | ||
24 | gcc_assert (single_exit (loop)); | ||
25 | e = single_exit (loop); | ||
26 | split_edge_and_insert (e, get_insns ()); | ||
27 | + if (!flag_resched_modulo_sched) | ||
28 | + e->dest->flags |= BB_DISABLE_SCHEDULE; | ||
29 | + | ||
30 | end_sequence (); | ||
31 | } | ||
32 | |||
33 | +/* Mark LOOP as software pipelined so the later | ||
34 | + scheduling passes don't touch it. */ | ||
35 | +static void | ||
36 | +mark_loop_unsched (struct loop *loop) | ||
37 | +{ | ||
38 | + unsigned i; | ||
39 | + basic_block *bbs = get_loop_body (loop); | ||
40 | + | ||
41 | + for (i = 0; i < loop->num_nodes; i++) | ||
42 | + bbs[i]->flags |= BB_DISABLE_SCHEDULE; | ||
43 | +} | ||
44 | + | ||
45 | /* Return true if all the BBs of the loop are empty except the | ||
46 | loop header. */ | ||
47 | static bool | ||
48 | @@ -1714,9 +1731,10 @@ | ||
49 | permute_partial_schedule (ps, g->closing_branch->first_note); | ||
50 | |||
51 | /* Mark this loop as software pipelined so the later | ||
52 | - scheduling passes doesn't touch it. */ | ||
53 | + scheduling passes don't touch it. */ | ||
54 | if (! flag_resched_modulo_sched) | ||
55 | - g->bb->flags |= BB_DISABLE_SCHEDULE; | ||
56 | + mark_loop_unsched (loop); | ||
57 | + | ||
58 | /* The life-info is not valid any more. */ | ||
59 | df_set_bb_dirty (g->bb); | ||
60 | |||
61 | |||