Fix loop optimization when ZOL is not available in xtensa configuration
authorMax Filippov <jcmvbkbc@gmail.com>
Mon, 5 Jan 2015 22:22:36 +0000 (22:22 +0000)
committerMax Filippov <jcmvbkbc@gcc.gnu.org>
Mon, 5 Jan 2015 22:22:36 +0000 (22:22 +0000)
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  <jcmvbkbc@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.

From-SVN: r219206

gcc/ChangeLog
gcc/config/xtensa/xtensa.c

index bf805fb..2e4582f 100644 (file)
@@ -1,3 +1,9 @@
+2014-12-30  Max Filippov  <jcmvbkbc@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.
+
 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.c (output_387_binary_op): Use std::swap.
index 44bf05e..0e6d286 100644 (file)
@@ -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.  */