diff options
author | Wilco Dijkstra <wdijkstr@arm.com> | 2016-11-16 18:10:34 +0000 |
---|---|---|
committer | Wilco Dijkstra <wilco@gcc.gnu.org> | 2016-11-16 18:10:34 +0000 |
commit | dd784916f5a7bd522e8b27f274a3e9a6d14d892f (patch) | |
tree | 95cdedbc8770628bd05cade2f2c9927771d2d8e2 /gcc/tree-ssa-math-opts.c | |
parent | 0af30954688a9dc1fccdc7579807cb1f46b6ebd6 (diff) | |
download | gcc-dd784916f5a7bd522e8b27f274a3e9a6d14d892f.zip gcc-dd784916f5a7bd522e8b27f274a3e9a6d14d892f.tar.gz gcc-dd784916f5a7bd522e8b27f274a3e9a6d14d892f.tar.bz2 |
Looking at PR77308, one of the issues is that the bswap optimization phase doesn't work on ARM.
Looking at PR77308, one of the issues is that the bswap optimization
phase doesn't work on ARM. This is due to an odd check that uses
SLOW_UNALIGNED_ACCESS (which is always true on ARM). Since the testcase
in PR77308 generates much better code with this patch (~13% fewer
instructions), it seems best to remove this check.
gcc/
* tree-ssa-math-opts.c (bswap_replace): Remove test
of SLOW_UNALIGNED_ACCESS.
testsuite/
* gcc.dg/optimize-bswapdi-3.c: Remove xfail.
* gcc.dg/optimize-bswaphi-1.c: Likewise.
* gcc.dg/optimize-bswapsi-2.c: Likewise.
From-SVN: r242506
Diffstat (limited to 'gcc/tree-ssa-math-opts.c')
-rw-r--r-- | gcc/tree-ssa-math-opts.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c index b28c808..a389dfc 100644 --- a/gcc/tree-ssa-math-opts.c +++ b/gcc/tree-ssa-math-opts.c @@ -2649,11 +2649,6 @@ bswap_replace (gimple *cur_stmt, gimple *src_stmt, tree fndecl, align = get_object_alignment (src); - if (bswap - && align < GET_MODE_ALIGNMENT (TYPE_MODE (load_type)) - && SLOW_UNALIGNED_ACCESS (TYPE_MODE (load_type), align)) - return false; - /* Move cur_stmt just before one of the load of the original to ensure it has the same VUSE. See PR61517 for what could go wrong. */ |