[source] gcc: add a patch to generate better code with Os on mips

LEDE Commits lede-commits at lists.infradead.org
Thu Aug 4 11:54:56 PDT 2016


nbd pushed a commit to source.git, branch master:
https://git.lede-project.org/?p=source.git;a=commitdiff;h=ecf7671b769fe96f7b5134be442089f8bdba55d2

commit ecf7671b769fe96f7b5134be442089f8bdba55d2
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Thu Aug 4 20:29:45 2016 +0200

    gcc: add a patch to generate better code with Os on mips
    
    Also happens to reduce compressed code size a bit
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 .../gcc/patches/5.4.0/300-mips_Os_cpu_rtx_cost_model.patch | 14 ++++++++++++++
 .../gcc/patches/6.1.0/300-mips_Os_cpu_rtx_cost_model.patch | 11 +++++++++++
 2 files changed, 25 insertions(+)

diff --git a/toolchain/gcc/patches/5.4.0/300-mips_Os_cpu_rtx_cost_model.patch b/toolchain/gcc/patches/5.4.0/300-mips_Os_cpu_rtx_cost_model.patch
new file mode 100644
index 0000000..1743658
--- /dev/null
+++ b/toolchain/gcc/patches/5.4.0/300-mips_Os_cpu_rtx_cost_model.patch
@@ -0,0 +1,14 @@
+Use the proper rtx cost model for the selected CPU, even when optimizing
+for size. This generates better code.
+
+--- a/gcc/config/mips/mips.c
++++ b/gcc/config/mips/mips.c
+@@ -17483,7 +17483,7 @@ mips_option_override (void)
+     flag_pcc_struct_return = 0;
+ 
+   /* Decide which rtx_costs structure to use.  */
+-  if (optimize_size)
++  if (0 && optimize_size)
+     mips_cost = &mips_rtx_cost_optimize_size;
+   else
+     mips_cost = &mips_rtx_cost_data[mips_tune];
diff --git a/toolchain/gcc/patches/6.1.0/300-mips_Os_cpu_rtx_cost_model.patch b/toolchain/gcc/patches/6.1.0/300-mips_Os_cpu_rtx_cost_model.patch
new file mode 100644
index 0000000..d76bd8c
--- /dev/null
+++ b/toolchain/gcc/patches/6.1.0/300-mips_Os_cpu_rtx_cost_model.patch
@@ -0,0 +1,11 @@
+--- a/gcc/config/mips/mips.c
++++ b/gcc/config/mips/mips.c
+@@ -17928,7 +17928,7 @@ mips_option_override (void)
+     flag_pcc_struct_return = 0;
+ 
+   /* Decide which rtx_costs structure to use.  */
+-  if (optimize_size)
++  if (0 && optimize_size)
+     mips_cost = &mips_rtx_cost_optimize_size;
+   else
+     mips_cost = &mips_rtx_cost_data[mips_tune];



More information about the lede-commits mailing list