Remove the hack for AARCH64_EXTRA_TUNE_ALL.
authorAndrew Pinski <apinski@cavium.com>
Mon, 24 Aug 2015 09:56:48 +0000 (09:56 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Mon, 24 Aug 2015 09:56:48 +0000 (02:56 -0700)
2015-08-24  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-tuning-flags.def: Remove all index to
        AARCH64_EXTRA_TUNING_OPTION.
        * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index): New enum.
        (aarch64_extra_tuning_flags): Base the shifted value on the index instead
        of the argument to AARCH64_EXTRA_TUNING_OPTION.
        * config/aarch64/aarch64.c: Remove the last argument to
        AARCH64_EXTRA_TUNING_OPTION.

From-SVN: r227117

gcc/ChangeLog
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64-tuning-flags.def
gcc/config/aarch64/aarch64.c

index d52be70014e2a37a6c2c50d4bc8659506514a28a..b1a7f9cfbe663bcf514dfc40df0a6c883510d95e 100644 (file)
@@ -1,3 +1,13 @@
+2015-08-24  Andrew Pinski  <apinski@cavium.com>
+
+       * config/aarch64/aarch64-tuning-flags.def: Remove all index to
+       AARCH64_EXTRA_TUNING_OPTION.
+       * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index): New enum.
+       (aarch64_extra_tuning_flags): Base the shifted value on the index instead
+       of the argument to AARCH64_EXTRA_TUNING_OPTION.
+       * config/aarch64/aarch64.c: Remove the last argument to
+       AARCH64_EXTRA_TUNING_OPTION.
+
 2015-08-23  Nathan Sidwell  <nathan@acm.org>
 
        * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
index be3cbe17a730ac4528db05fe4ef94207a936b4ef..4b3cbedbd0a5fa186619e05c0c0b400c8257b1c0 100644 (file)
@@ -222,21 +222,25 @@ enum aarch64_fusion_pairs
 };
 #undef AARCH64_FUSION_PAIR
 
-#define AARCH64_EXTRA_TUNING_OPTION(x, name, index) \
-  AARCH64_EXTRA_TUNE_##name = (1 << index),
+#define AARCH64_EXTRA_TUNING_OPTION(x, name) \
+  AARCH64_EXTRA_TUNE_##name##_index,
+/* Supported tuning flags indexes.  */
+enum aarch64_extra_tuning_flags_index
+{
+#include "aarch64-tuning-flags.def"
+  AARCH64_EXTRA_TUNE_index_END
+};
+#undef AARCH64_EXTRA_TUNING_OPTION
+
+
+#define AARCH64_EXTRA_TUNING_OPTION(x, name) \
+  AARCH64_EXTRA_TUNE_##name = (1u << AARCH64_EXTRA_TUNE_##name##_index),
 /* Supported tuning flags.  */
 enum aarch64_extra_tuning_flags
 {
   AARCH64_EXTRA_TUNE_NONE = 0,
 #include "aarch64-tuning-flags.def"
-
-/* Hacky macro to build the "all" flag mask.
-   Expands to 0 | AARCH64_TUNE_index0 | AARCH64_TUNE_index1 , etc.  */
-#undef AARCH64_EXTRA_TUNING_OPTION
-#define AARCH64_EXTRA_TUNING_OPTION(x, name, y) \
-  | AARCH64_EXTRA_TUNE_##name
-  AARCH64_EXTRA_TUNE_ALL = 0
-#include "aarch64-tuning-flags.def"
+  AARCH64_EXTRA_TUNE_ALL = (1u << AARCH64_EXTRA_TUNE_index_END) - 1
 };
 #undef AARCH64_EXTRA_TUNING_OPTION
 
index 01aaca83594e791d42da209717d2c00539bf5d00..628386b5a1d1bfd012771c33dad7198a7298e47a 100644 (file)
 /* Additional control over certain tuning parameters.  Before including
    this file, define a macro:
 
-     AARCH64_EXTRA_TUNING_OPTION (name, internal_name, index_bit)
+     AARCH64_EXTRA_TUNING_OPTION (name, internal_name)
 
    Where:
 
      NAME is a string giving a friendly name for the tuning flag.
      INTERNAL_NAME gives the internal name suitable for appending to
-     AARCH64_TUNE_ to give an enum name.
-     INDEX_BIT is the bit to set in the bitmask of supported tuning
-     flags.  */
+     AARCH64_TUNE_ to give an enum name. */
 
-AARCH64_EXTRA_TUNING_OPTION ("rename_fma_regs", RENAME_FMA_REGS, 0)
+AARCH64_EXTRA_TUNING_OPTION ("rename_fma_regs", RENAME_FMA_REGS)
 
index c666dceb41c9f6bc8318d76e0ac36cefa1dee146..87bbf6e7988e4ef796c09075ee584822483cbbce 100644 (file)
@@ -182,7 +182,7 @@ static const struct aarch64_flag_desc aarch64_fusible_pairs[] =
 };
 #undef AARCH64_FUION_PAIR
 
-#define AARCH64_EXTRA_TUNING_OPTION(name, internal_name, y) \
+#define AARCH64_EXTRA_TUNING_OPTION(name, internal_name) \
   { name, AARCH64_EXTRA_TUNE_##internal_name },
 static const struct aarch64_flag_desc aarch64_tuning_flags[] =
 {