From: Saul Wold <sgw@linux.intel.com>
To: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH] gcc: remove 904-flatten-switch-stmt-00.patch
Date: Wed, 18 Jul 2012 16:58:57 -0700 [thread overview]
Message-ID: <50074DC1.1080101@linux.intel.com> (raw)
In-Reply-To: <1342634584-9711-1-git-send-email-rep.dot.nop@gmail.com>
On 07/18/2012 11:03 AM, Bernhard Reutner-Fischer wrote:
> Remove brute-force flattening.
> Refer to -ftree-switch-conversion emit_case_bit_tests(),
> -ftree-if-to-switch-conversion et al in 4.8
>
> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
> ---
> meta/recipes-devtools/gcc/gcc-4.7.inc | 1 -
> .../gcc/gcc-4.7/904-flatten-switch-stmt-00.patch | 76 --------------------
> 2 files changed, 77 deletions(-)
> delete mode 100644 meta/recipes-devtools/gcc/gcc-4.7/904-flatten-switch-stmt-00.patch
>
Merged into OE-Core
Thanks
Sau!
> diff --git a/meta/recipes-devtools/gcc/gcc-4.7.inc b/meta/recipes-devtools/gcc/gcc-4.7.inc
> index ece32c1..682cfa8 100644
> --- a/meta/recipes-devtools/gcc/gcc-4.7.inc
> +++ b/meta/recipes-devtools/gcc/gcc-4.7.inc
> @@ -52,7 +52,6 @@ SRC_URI = "git://github.com/mirrors/gcc.git;branch=${BRANCH};protocol=git \
> file://306-libstdc++-namespace.patch \
> file://740-sh-pr24836.patch \
> file://800-arm-bigendian.patch \
> - file://904-flatten-switch-stmt-00.patch \
> file://arm-nolibfloat.patch \
> file://gcc-poison-system-directories.patch \
> file://gcc-poison-dir-extend.patch \
> diff --git a/meta/recipes-devtools/gcc/gcc-4.7/904-flatten-switch-stmt-00.patch b/meta/recipes-devtools/gcc/gcc-4.7/904-flatten-switch-stmt-00.patch
> deleted file mode 100644
> index e790e06..0000000
> --- a/meta/recipes-devtools/gcc/gcc-4.7/904-flatten-switch-stmt-00.patch
> +++ /dev/null
> @@ -1,76 +0,0 @@
> -Upstream-Status: Pending
> -
> -Hi,
> -
> -The attached patch makes sure that we create smaller object code for
> -simple switch statements. We just make sure to flatten the switch
> -statement into an if-else chain, basically.
> -
> -This fixes a size-regression as compared to gcc-3.4, as can be seen
> -below.
> -
> -2007-04-15 Bernhard Fischer <..>
> -
> - * stmt.c (expand_case): Do not create a complex binary tree when
> - optimizing for size but rather use the simple ordered list.
> - (emit_case_nodes): do not emit jumps to the default_label when
> - optimizing for size.
> -
> -Not regtested so far.
> -Comments?
> -
> -Attached is the test switch.c mentioned below.
> -
> -$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
> -gcc-$i -DCHAIN -Os -o switch-CHAIN-$i.o -c switch.c ;done
> -$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
> -gcc-$i -UCHAIN -Os -o switch-$i.o -c switch.c ;done
> -
> -$ size switch-*.o
> - text data bss dec hex filename
> - 169 0 0 169 a9 switch-2.95.o
> - 115 0 0 115 73 switch-3.3.o
> - 103 0 0 103 67 switch-3.4.o
> - 124 0 0 124 7c switch-4.0.o
> - 124 0 0 124 7c switch-4.1.o
> - 124 0 0 124 7c switch-4.2.orig-HEAD.o
> - 95 0 0 95 5f switch-4.3-HEAD.o
> - 124 0 0 124 7c switch-4.3.orig-HEAD.o
> - 166 0 0 166 a6 switch-CHAIN-2.95.o
> - 111 0 0 111 6f switch-CHAIN-3.3.o
> - 95 0 0 95 5f switch-CHAIN-3.4.o
> - 95 0 0 95 5f switch-CHAIN-4.0.o
> - 95 0 0 95 5f switch-CHAIN-4.1.o
> - 95 0 0 95 5f switch-CHAIN-4.2.orig-HEAD.o
> - 95 0 0 95 5f switch-CHAIN-4.3-HEAD.o
> - 95 0 0 95 5f switch-CHAIN-4.3.orig-HEAD.o
> -
> -
> -Content-Type: text/x-diff; charset=us-ascii
> -Content-Disposition: attachment; filename="gcc-4.3.gcc-flatten-switch-stmt.00.diff"
> -
> -Index: gcc-4_7-branch/gcc/stmt.c
> -===================================================================
> ---- gcc-4_7-branch.orig/gcc/stmt.c 2012-04-10 10:19:49.095337065 -0700
> -+++ gcc-4_7-branch/gcc/stmt.c 2012-04-10 10:32:52.219375048 -0700
> -@@ -2397,7 +2397,11 @@
> - default code is emitted. */
> -
> - use_cost_table = estimate_case_costs (case_list);
> -- balance_case_nodes (&case_list, NULL);
> -+ /* When optimizing for size, we want a straight list to avoid
> -+ jumps as much as possible. This basically creates an if-else
> -+ chain. */
> -+ if (!optimize_size)
> -+ balance_case_nodes (&case_list, NULL);
> - emit_case_nodes (index, case_list, default_label, index_type);
> - if (default_label)
> - emit_jump (default_label);
> -@@ -2965,6 +2969,7 @@
> - {
> - if (!node_has_low_bound (node, index_type))
> - {
> -+ if (!optimize_size) /* don't jl to the .default_label. */
> - emit_cmp_and_jump_insns (index,
> - convert_modes
> - (mode, imode,
>
prev parent reply other threads:[~2012-07-19 0:10 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-18 18:03 [PATCH] gcc: remove 904-flatten-switch-stmt-00.patch Bernhard Reutner-Fischer
2012-07-18 18:09 ` Khem Raj
2012-07-18 18:19 ` [PATCH v2] " Bernhard Reutner-Fischer
2012-07-18 23:58 ` Saul Wold [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=50074DC1.1080101@linux.intel.com \
--to=sgw@linux.intel.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.