OSDN Git Service

Replace exact_log2(x & -x) in favor of more direct computation.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Aug 2010 19:41:31 +0000 (19:41 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Aug 2010 19:41:31 +0000 (19:41 +0000)
commit7e8d812e44fdbe205c18f462aa3977960d174728
treeebb0bcbba694540435097fb9c41ec0f70c57ab41
parentdf83cdc0a66a54c7ac5454a2063432a8ada5de9a
Replace exact_log2(x & -x) in favor of more direct computation.

* toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
(floor_log2): Use clz_hwi.
(exact_log2): Use ctz_hwi.
* toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
* builtins.c (fold_builtin_bitop): Use them.
* simplify-rtx.c (simplify_const_unary_operation): Likewise.
* combine.c (get_pos_from_mask): Use ctz_hwi.
* double-int.c (double_int_ctz): Likewise.
* explow.c (force_reg): Likewise.
* tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162920 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/builtins.c
gcc/combine.c
gcc/double-int.c
gcc/explow.c
gcc/simplify-rtx.c
gcc/toplev.c
gcc/toplev.h
gcc/tree.h