Set the call nothrow flag more often
authorRichard Sandiford <richard.sandiford@linaro.org>
Tue, 29 Aug 2017 07:47:05 +0000 (07:47 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Tue, 29 Aug 2017 07:47:05 +0000 (07:47 +0000)
commita844293de1d30da8ddba7384fc22ae59e857709f
tree29ae014a56a196ff0764a9dd8c569efb193cb413
parent130fcab02f1fbb097fc52fc9a8892472e3fa0c6c
Set the call nothrow flag more often

This patch sets the nothrow flag for various calls to internal functions
that are not inherently NOTHROW (and so can't be declared that way in
internal-fn.def) but that are used in contexts that can guarantee
NOTHROWness.

2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* gimplify.c (gimplify_call_expr): Copy the nothrow flag to
calls to internal functions.
(gimplify_modify_expr): Likewise.
* tree-call-cdce.c (use_internal_fn): Likewise.
* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
(convert_to_divmod): Set the nothrow flag.
* tree-if-conv.c (predicate_mem_writes):  Likewise.
* tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
(vectorizable_call): Likewise.
(vectorizable_store): Likewise.
(vectorizable_load): Likewise.
* tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
(vect_recog_mask_conversion_pattern): Likewise.

From-SVN: r251401
gcc/ChangeLog
gcc/gimplify.c
gcc/tree-call-cdce.c
gcc/tree-if-conv.c
gcc/tree-ssa-math-opts.c
gcc/tree-vect-patterns.c
gcc/tree-vect-stmts.c