aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-fold.h
diff options
context:
space:
mode:
authorPrathamesh Kulkarni <prathamesh.kulkarni@linaro.org>2022-12-07 13:34:02 +0530
committerPrathamesh Kulkarni <prathamesh.kulkarni@linaro.org>2022-12-07 13:34:18 +0530
commitcb6922f490d3133e4ccbc1190b555d16695fc9c3 (patch)
tree7279983f3314ccab9af37b4b93e0088dd75a03e0 /gcc/gimple-fold.h
parentda7fb32d403759daefefc79dc251d2437c1b638c (diff)
downloadgcc-cb6922f490d3133e4ccbc1190b555d16695fc9c3.zip
gcc-cb6922f490d3133e4ccbc1190b555d16695fc9c3.tar.gz
gcc-cb6922f490d3133e4ccbc1190b555d16695fc9c3.tar.bz2
PR107920: Fix handling of virtual operands and disable folding for -fnon-call-exceptions.
gcc/ChangeLog: PR target/107920 * config/aarch64/aarch64-sve-builtins-base.cc: Use gsi_replace_with_seq_vops to handle virtual operands, and gate the transform on !flag_non_call_exceptions. * gimple-fold.cc (gsi_replace_with_seq_vops): Make function non static. * gimple-fold.h (gsi_replace_with_seq_vops): Declare. gcc/testsuite/ChangeLog: PR target/107920 * gcc.target/aarch64/sve/acle/general/pr107920.c: New test. * g++.target/aarch64/sve/pr107920.C: Likewise.
Diffstat (limited to 'gcc/gimple-fold.h')
-rw-r--r--gcc/gimple-fold.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/gimple-fold.h b/gcc/gimple-fold.h
index 7d29ee9..87ed4e5 100644
--- a/gcc/gimple-fold.h
+++ b/gcc/gimple-fold.h
@@ -63,6 +63,7 @@ extern bool arith_code_with_undefined_signed_overflow (tree_code);
extern gimple_seq rewrite_to_defined_overflow (gimple *, bool = false);
extern void replace_call_with_value (gimple_stmt_iterator *, tree);
extern tree tree_vec_extract (gimple_stmt_iterator *, tree, tree, tree, tree);
+extern void gsi_replace_with_seq_vops (gimple_stmt_iterator *, gimple_seq);
/* gimple_build, functionally matching fold_buildN, outputs stmts
int the provided sequence, matching and simplifying them on-the-fly.