aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeorg-Johann Lay <avr@gjlay.de>2017-01-16 09:48:45 +0000
committerGeorg-Johann Lay <gjl@gcc.gnu.org>2017-01-16 09:48:45 +0000
commit1bcd0192bf2b9adbdf0fab7ab8f245d6f68aea71 (patch)
treee9c7c025366911ab8a6c40d6d1f858fa20878934 /gcc
parenta99ce94c8acf996340013b836f45f81dc64a3f44 (diff)
downloadgcc-1bcd0192bf2b9adbdf0fab7ab8f245d6f68aea71.zip
gcc-1bcd0192bf2b9adbdf0fab7ab8f245d6f68aea71.tar.gz
gcc-1bcd0192bf2b9adbdf0fab7ab8f245d6f68aea71.tar.bz2
avr.h (BRANCH_COST): Increase by 4.
gcc/ * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4. From-SVN: r244488
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/avr/avr.h7
2 files changed, 10 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index cdc423a..0df0bbc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2017-01-16 Georg-Johann Lay <avr@gjlay.de>
+
+ * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
+
2017-01-15 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (ix86_legitimate_combined_insn): Do not
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index c78d4e7..3dfa8c3 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -360,7 +360,12 @@ typedef struct avr_args
} \
} while (0)
-#define BRANCH_COST(speed_p, predictable_p) avr_branch_cost
+/* We increase branch costs after reload in order to keep basic-block
+ reordering from introducing out-of-line jumps and to prefer fall-through
+ edges instead. The default branch costs are 0, mainly because otherwise
+ do_store_flag might come up with bloated code. */
+#define BRANCH_COST(speed_p, predictable_p) \
+ (avr_branch_cost + (reload_completed ? 4 : 0))
#define SLOW_BYTE_ACCESS 0