backport: re PR tree-optimization/81162 (UBSAN switch triggers incorrect optimization in SLSR)
[gcc] 2016-07-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> Backport from mainline 2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/81162 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't replace a negate with an add. [gcc/testsuite] 2016-07-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> Backport from mainline 2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/81162 * gcc.dg/ubsan/pr81162.c: New file. From-SVN: r250542
This commit is contained in:
parent
371868a847
commit
db1f03b6f7
|
@ -1,3 +1,12 @@
|
||||||
|
2016-07-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
Backport from mainline
|
||||||
|
2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
PR tree-optimization/81162
|
||||||
|
* gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
|
||||||
|
replace a negate with an add.
|
||||||
|
|
||||||
2017-07-25 Georg-Johann Lay <avr@gjlay.de>
|
2017-07-25 Georg-Johann Lay <avr@gjlay.de>
|
||||||
|
|
||||||
Backport from 2017-07-12 trunk r250151.
|
Backport from 2017-07-12 trunk r250151.
|
||||||
|
|
|
@ -2051,13 +2051,14 @@ replace_mult_candidate (slsr_cand_t c, tree basis_name, widest_int bump)
|
||||||
types but allows for safe negation without twisted logic. */
|
types but allows for safe negation without twisted logic. */
|
||||||
if (wi::fits_shwi_p (bump)
|
if (wi::fits_shwi_p (bump)
|
||||||
&& bump.to_shwi () != HOST_WIDE_INT_MIN
|
&& bump.to_shwi () != HOST_WIDE_INT_MIN
|
||||||
/* It is not useful to replace casts, copies, or adds of
|
/* It is not useful to replace casts, copies, negates, or adds of
|
||||||
an SSA name and a constant. */
|
an SSA name and a constant. */
|
||||||
&& cand_code != SSA_NAME
|
&& cand_code != SSA_NAME
|
||||||
&& !CONVERT_EXPR_CODE_P (cand_code)
|
&& !CONVERT_EXPR_CODE_P (cand_code)
|
||||||
&& cand_code != PLUS_EXPR
|
&& cand_code != PLUS_EXPR
|
||||||
&& cand_code != POINTER_PLUS_EXPR
|
&& cand_code != POINTER_PLUS_EXPR
|
||||||
&& cand_code != MINUS_EXPR)
|
&& cand_code != MINUS_EXPR
|
||||||
|
&& cand_code != NEGATE_EXPR)
|
||||||
{
|
{
|
||||||
enum tree_code code = PLUS_EXPR;
|
enum tree_code code = PLUS_EXPR;
|
||||||
tree bump_tree;
|
tree bump_tree;
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
2016-07-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
Backport from mainline
|
||||||
|
2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
PR tree-optimization/81162
|
||||||
|
* gcc.dg/ubsan/pr81162.c: New file.
|
||||||
|
|
||||||
2017-07-25 Wilco Dijkstra <wdijkstr@arm.com>
|
2017-07-25 Wilco Dijkstra <wdijkstr@arm.com>
|
||||||
|
|
||||||
PR target/79041
|
PR target/79041
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
/* PR tree-optimization/81162 */
|
||||||
|
/* { dg-do run } */
|
||||||
|
/* { dg-options "-fsanitize=undefined -O2" } */
|
||||||
|
|
||||||
|
short s;
|
||||||
|
int i1 = 1;
|
||||||
|
int i2 = 1;
|
||||||
|
unsigned char uc = 147;
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
s = (-uc + 2147483647) << 0;
|
||||||
|
if (9031239389974324562ULL >= (-((i1 && i2) + uc) ^ -21096) ) {
|
||||||
|
return 0;
|
||||||
|
} else {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue