aboutsummaryrefslogtreecommitdiff
path: root/libgcc/libgcov-util.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-10-11 12:27:10 +0200
committerRichard Biener <rguenther@suse.de>2021-10-13 13:11:12 +0200
commit3c0194d7ff21d61c02f3c6b111c83ef24a69e1f0 (patch)
tree8ffe45c73c7ed019e0f9f1eea777ed3eb47e9b9f /libgcc/libgcov-util.c
parent77c7abe3588d407ed820224f8d1b1a17a16831a0 (diff)
downloadgcc-3c0194d7ff21d61c02f3c6b111c83ef24a69e1f0.zip
gcc-3c0194d7ff21d61c02f3c6b111c83ef24a69e1f0.tar.gz
gcc-3c0194d7ff21d61c02f3c6b111c83ef24a69e1f0.tar.bz2
tree-optimization/102659 - avoid undefined overflow after if-conversion
The following makes sure to rewrite arithmetic with undefined behavior on overflow to a well-defined variant when moving them to be always executed as part of doing if-conversion for loop vectorization. 2021-10-11 Richard Biener <rguenther@suse.de> PR tree-optimization/102659 * tree-if-conv.c (need_to_rewrite_undefined): New flag. (if_convertible_gimple_assign_stmt_p): Mark the loop for rewrite when stmts with undefined behavior on integer overflow appear. (combine_blocks): Predicate also when we need to rewrite stmts. (predicate_statements): Rewrite affected stmts to something with well-defined behavior on overflow. (tree_if_conversion): Initialize need_to_rewrite_undefined. * gcc.dg/torture/pr69760.c: Adjust the testcase. * gcc.target/i386/avx2-vect-mask-store-move1.c: Expect to move the conversions to unsigned as well.
Diffstat (limited to 'libgcc/libgcov-util.c')
0 files changed, 0 insertions, 0 deletions