]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR target/40697 (inefficient code to extract least bits from an integer value)
authorBernd Schmidt <bernd.schmidt@codesourcery.com>
Fri, 19 Mar 2010 18:41:22 +0000 (18:41 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Fri, 19 Mar 2010 18:41:22 +0000 (18:41 +0000)
commitc99102b8b4cc0ec725c741b13c6f406bbd924c73
tree2bcf096e2c7a2d0589b6d0f349bfdd7ccaef90f5
parent002b2dee5d23dff9cc0a7f3196838534bc084da4
re PR target/40697 (inefficient code to extract least bits from an integer value)

gcc/
PR target/40697
* optabs.c (avoid_expensive_constant): Use rtx_cost to find out
the cost of loading the constant rather than assuming
COSTS_N_INSNS (1).
* config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
outer code is AND, do the same tests as the andsi3 expander and
return COSTS_N_INSNS (1) if and is cheap.

testsuite/
PR target/40697
* gcc.target/arm/thumb-andsi.c: New test.

From-SVN: r157582
gcc/ChangeLog
gcc/config/arm/arm.c
gcc/optabs.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/thumb-andsi.c [new file with mode: 0644]