Currently building gcc for xtensa configuration with XCHAL_HAVE_LOOPS
set to 0 fails with the following error:

  xtensa.c:3952: undefined reference to `reorg_loops(bool, hw_doloop_hooks*)'

Only compile target-specific zero-overhead loop optimization code when
TARGET_LOOPS allows it.

2014-12-30  Max Filippov  <jcmvb...@gmail.com>

        * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
        hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
        put under #if TARGET_LOOPS guard.
---
 gcc/config/xtensa/xtensa.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
index 9cc7675..fadfb3f 100644
--- a/gcc/config/xtensa/xtensa.c
+++ b/gcc/config/xtensa/xtensa.c
@@ -3766,6 +3766,8 @@ xtensa_invalid_within_doloop (const rtx_insn *insn)
 
 /* Optimize LOOP.  */
 
+#if TARGET_LOOPS
+
 static bool
 hwloop_optimize (hwloop_info loop)
 {
@@ -3951,6 +3953,12 @@ xtensa_reorg_loops (void)
 {
   reorg_loops (false, &xtensa_doloop_hooks);
 }
+#else
+static inline void
+xtensa_reorg_loops (void)
+{
+}
+#endif
 
 /* Implement the TARGET_MACHINE_DEPENDENT_REORG pass.  */
 
-- 
1.8.1.4

Reply via email to