aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-fold.c
diff options
context:
space:
mode:
authorJames Greenhalgh <james.greenhalgh@arm.com>2013-04-22 14:50:32 +0000
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>2013-04-22 14:50:32 +0000
commitea679d553f0c8791b2df470c138c6505a3be1cfc (patch)
treefdeb1da3b93237197679dcc3174d6e1b4a44b8cb /gcc/gimple-fold.c
parent9191d7a84aa904ae21bd4b8dd98100977e3b10a2 (diff)
downloadgcc-ea679d553f0c8791b2df470c138c6505a3be1cfc.zip
gcc-ea679d553f0c8791b2df470c138c6505a3be1cfc.tar.gz
gcc-ea679d553f0c8791b2df470c138c6505a3be1cfc.tar.bz2
[Mid-end] Add TARGET_GIMPLE_FOLD_BUILTIN target hook.
gcc/ * coretypes.h (gimple_stmt_iterator_d): Forward declare. (gimple_stmt_iterator): New typedef. * gimple.h (gimple_stmt_iterator): Rename to... (gimple_stmt_iterator_d): ... This. * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that trees be valid for GIMPLE and GENERIC. (TARGET_GIMPLE_FOLD_BUILTIN): New. * gimple-fold.c (gimple_fold_call): Call target hook gimple_fold_builtin. * hooks.c (hook_bool_gsiptr_false): New. * hooks.h (hook_bool_gsiptr_false): New. * target.def (fold_stmt): New. * doc/tm.texi: Regenerate. From-SVN: r198142
Diffstat (limited to 'gcc/gimple-fold.c')
-rw-r--r--gcc/gimple-fold.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index b9211a9..738d7fd 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -1143,6 +1143,8 @@ gimple_fold_call (gimple_stmt_iterator *gsi, bool inplace)
gimplify_and_update_call_from_tree (gsi, result);
changed = true;
}
+ else if (DECL_BUILT_IN_CLASS (callee) == BUILT_IN_MD)
+ changed |= targetm.gimple_fold_builtin (gsi);
}
return changed;