diff options
author | Adam Nemet <anemet@caviumnetworks.com> | 2009-06-17 22:11:47 +0000 |
---|---|---|
committer | Adam Nemet <nemet@gcc.gnu.org> | 2009-06-17 22:11:47 +0000 |
commit | 23314e77ec9e3dfea806f31b6dd65920f628f207 (patch) | |
tree | 891864d93af2879f6eb0fac88b1eb64c1454dc24 /gcc/tree-ssa.c | |
parent | 799dbb0f77a506ed18a17ac3765b29af9dd88055 (diff) | |
download | gcc-23314e77ec9e3dfea806f31b6dd65920f628f207.tar.gz |
tree.h (STRIP_NOPS, [...]): Use tree_strip_nop_conversions...
* tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
tree_strip_sign_nop_conversions and
tree_ssa_strip_useless_type_conversions rather than stripping
the operations here.
(tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
Declare them.
* gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
* tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
* tree.c (tree_nop_conversion, tree_sign_nop_conversion,
tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
functions.
testsuite/
* gcc.c-torture/execute/bitfld-5.c: New test.
From-SVN: r148631
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r-- | gcc/tree-ssa.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index ada47e16c08..d63e974cf91 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -1079,6 +1079,18 @@ tree_ssa_useless_type_conversion (tree expr) return false; } +/* Strip conversions from EXP according to + tree_ssa_useless_type_conversion and return the resulting + expression. */ + +tree +tree_ssa_strip_useless_type_conversions (tree exp) +{ + while (tree_ssa_useless_type_conversion (exp)) + exp = TREE_OPERAND (exp, 0); + return exp; +} + /* Internal helper for walk_use_def_chains. VAR, FN and DATA are as described in walk_use_def_chains. |