Re: [PATCH/AARCH64] v2 Add aligning of functions/loops/jumps

2014-12-11 Thread Marcus Shawcroft
On 23 November 2014 at 00:09, Andrew Pinski pins...@gmail.com wrote:
 Hi,
   This is just a rebase of
 https://gcc.gnu.org/ml/gcc-patches/2014-11/msg01615.html as requested
 by https://gcc.gnu.org/ml/gcc-patches/2014-11/msg01736.html.  Nothing
 has changed in it.

 OK?  Built and tested on aarch64-elf with no regressions.

 Thanks,
 Andrew Pinski

 ChangeLog:

 * config/aarch64/aarch64-protos.h (tune_params): Add align field.
 * config/aarch64/aarch64.c (generic_tunings): Specify align.
 (cortexa53_tunings): Likewise.
 (cortexa57_tunings): Likewise.
 (thunderx_tunings): Likewise.
 (aarch64_override_options): Set align_loops, align_jumps,
 align_functions based on what the tuning struct.

OK /Marcus


Re: [PATCH/AARCH64] v2 Add aligning of functions/loops/jumps

2014-12-05 Thread James Greenhalgh
On Sun, Nov 23, 2014 at 12:09:16AM +, Andrew Pinski wrote:
 Hi,
   This is just a rebase of
 https://gcc.gnu.org/ml/gcc-patches/2014-11/msg01615.html as requested
 by https://gcc.gnu.org/ml/gcc-patches/2014-11/msg01736.html.  Nothing
 has changed in it.

*ping* I'd like to see this patch revived, rebased and committed.

Thanks,
James

 
 OK?  Built and tested on aarch64-elf with no regressions.
 
 Thanks,
 Andrew Pinski
 
 ChangeLog:
 
 * config/aarch64/aarch64-protos.h (tune_params): Add align field.
 * config/aarch64/aarch64.c (generic_tunings): Specify align.
 (cortexa53_tunings): Likewise.
 (cortexa57_tunings): Likewise.
 (thunderx_tunings): Likewise.
 (aarch64_override_options): Set align_loops, align_jumps,
 align_functions based on what the tuning struct.

 Index: config/aarch64/aarch64-protos.h
 ===
 --- config/aarch64/aarch64-protos.h   (revision 217974)
 +++ config/aarch64/aarch64-protos.h   (working copy)
 @@ -170,6 +170,7 @@ struct tune_params
const struct cpu_vector_cost *const vec_costs;
const int memmov_cost;
const int issue_rate;
 +  const int align;
  };
  
  HOST_WIDE_INT aarch64_initial_elimination_offset (unsigned, unsigned);
 Index: config/aarch64/aarch64.c
 ===
 --- config/aarch64/aarch64.c  (revision 217974)
 +++ config/aarch64/aarch64.c  (working copy)
 @@ -314,7 +314,8 @@ static const struct tune_params generic_
generic_regmove_cost,
generic_vector_cost,
NAMED_PARAM (memmov_cost, 4),
 -  NAMED_PARAM (issue_rate, 2)
 +  NAMED_PARAM (issue_rate, 2),
 +  NAMED_PARAM (align, 2),
  };
  
  static const struct tune_params cortexa53_tunings =
 @@ -324,7 +325,8 @@ static const struct tune_params cortexa5
cortexa53_regmove_cost,
generic_vector_cost,
NAMED_PARAM (memmov_cost, 4),
 -  NAMED_PARAM (issue_rate, 2)
 +  NAMED_PARAM (issue_rate, 2),
 +  NAMED_PARAM (align, 8),
  };
  
  static const struct tune_params cortexa57_tunings =
 @@ -334,7 +336,8 @@ static const struct tune_params cortexa5
cortexa57_regmove_cost,
cortexa57_vector_cost,
NAMED_PARAM (memmov_cost, 4),
 -  NAMED_PARAM (issue_rate, 3)
 +  NAMED_PARAM (issue_rate, 3),
 +  NAMED_PARAM (align, 8),
  };
  
  static const struct tune_params thunderx_tunings =
 @@ -344,7 +347,8 @@ static const struct tune_params thunderx
thunderx_regmove_cost,
generic_vector_cost,
NAMED_PARAM (memmov_cost, 6),
 -  NAMED_PARAM (issue_rate, 2)
 +  NAMED_PARAM (issue_rate, 2),
 +  NAMED_PARAM (align, 8),
  };
  
  /* A processor implementing AArch64.  */
 @@ -6727,6 +6731,18 @@ aarch64_override_options (void)
  #endif
  }
  
 +  /* If not opzimizing for size, set the default
 + alignment to what the target wants */
 +  if (!optimize_size)
 +{
 +  if (align_loops = 0)
 + align_loops = aarch64_tune_params-align;
 +  if (align_jumps = 0)
 + align_jumps = aarch64_tune_params-align;
 +  if (align_functions = 0)
 + align_functions = aarch64_tune_params-align;
 +}
 +
aarch64_override_options_after_change ();
  }
  



[PATCH/AARCH64] v2 Add aligning of functions/loops/jumps

2014-11-22 Thread Andrew Pinski
Hi,
  This is just a rebase of
https://gcc.gnu.org/ml/gcc-patches/2014-11/msg01615.html as requested
by https://gcc.gnu.org/ml/gcc-patches/2014-11/msg01736.html.  Nothing
has changed in it.

OK?  Built and tested on aarch64-elf with no regressions.

Thanks,
Andrew Pinski

ChangeLog:

* config/aarch64/aarch64-protos.h (tune_params): Add align field.
* config/aarch64/aarch64.c (generic_tunings): Specify align.
(cortexa53_tunings): Likewise.
(cortexa57_tunings): Likewise.
(thunderx_tunings): Likewise.
(aarch64_override_options): Set align_loops, align_jumps,
align_functions based on what the tuning struct.
Index: config/aarch64/aarch64-protos.h
===
--- config/aarch64/aarch64-protos.h (revision 217974)
+++ config/aarch64/aarch64-protos.h (working copy)
@@ -170,6 +170,7 @@ struct tune_params
   const struct cpu_vector_cost *const vec_costs;
   const int memmov_cost;
   const int issue_rate;
+  const int align;
 };
 
 HOST_WIDE_INT aarch64_initial_elimination_offset (unsigned, unsigned);
Index: config/aarch64/aarch64.c
===
--- config/aarch64/aarch64.c(revision 217974)
+++ config/aarch64/aarch64.c(working copy)
@@ -314,7 +314,8 @@ static const struct tune_params generic_
   generic_regmove_cost,
   generic_vector_cost,
   NAMED_PARAM (memmov_cost, 4),
-  NAMED_PARAM (issue_rate, 2)
+  NAMED_PARAM (issue_rate, 2),
+  NAMED_PARAM (align, 2),
 };
 
 static const struct tune_params cortexa53_tunings =
@@ -324,7 +325,8 @@ static const struct tune_params cortexa5
   cortexa53_regmove_cost,
   generic_vector_cost,
   NAMED_PARAM (memmov_cost, 4),
-  NAMED_PARAM (issue_rate, 2)
+  NAMED_PARAM (issue_rate, 2),
+  NAMED_PARAM (align, 8),
 };
 
 static const struct tune_params cortexa57_tunings =
@@ -334,7 +336,8 @@ static const struct tune_params cortexa5
   cortexa57_regmove_cost,
   cortexa57_vector_cost,
   NAMED_PARAM (memmov_cost, 4),
-  NAMED_PARAM (issue_rate, 3)
+  NAMED_PARAM (issue_rate, 3),
+  NAMED_PARAM (align, 8),
 };
 
 static const struct tune_params thunderx_tunings =
@@ -344,7 +347,8 @@ static const struct tune_params thunderx
   thunderx_regmove_cost,
   generic_vector_cost,
   NAMED_PARAM (memmov_cost, 6),
-  NAMED_PARAM (issue_rate, 2)
+  NAMED_PARAM (issue_rate, 2),
+  NAMED_PARAM (align, 8),
 };
 
 /* A processor implementing AArch64.  */
@@ -6727,6 +6731,18 @@ aarch64_override_options (void)
 #endif
 }
 
+  /* If not opzimizing for size, set the default
+ alignment to what the target wants */
+  if (!optimize_size)
+{
+  if (align_loops = 0)
+   align_loops = aarch64_tune_params-align;
+  if (align_jumps = 0)
+   align_jumps = aarch64_tune_params-align;
+  if (align_functions = 0)
+   align_functions = aarch64_tune_params-align;
+}
+
   aarch64_override_options_after_change ();
 }