aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/parse.cc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2022-11-30 12:05:29 +0100
committerRichard Biener <rguenther@suse.de>2022-11-30 12:53:10 +0100
commitb628cad9e093f7a33042fb9dd647f183394eefae (patch)
treeaab9053ecb81a4c6fdc09abca18d26d55690a922 /gcc/fortran/parse.cc
parent2792cb50f55529e1737461e032ed13e7f04f73d2 (diff)
downloadgcc-b628cad9e093f7a33042fb9dd647f183394eefae.zip
gcc-b628cad9e093f7a33042fb9dd647f183394eefae.tar.gz
gcc-b628cad9e093f7a33042fb9dd647f183394eefae.tar.bz2
tree-optimization/107919 - predicate simplification in uninit
The testcase from the PR at -O2 shows ((_277 == 2) AND (_79 == 0)) OR ((NOT (_277 == 0)) AND (NOT (_277 > 2)) AND (NOT (_277 == 2)) AND (_79 == 0)) OR ((NOT (pretmp_300 == 255)) AND (_277 == 0) AND (NOT (_277 > 2)) AND (NOT (_277 == 2)) AND (_79 == 0)) which we fail to simplify. The following patch makes us simplify the relations on _277, producing ((_79 == 0) AND (_277 == 2)) OR ((_79 == 0) AND (_277 <= 1) AND (NOT (_277 == 0))) OR ((_79 == 0) AND (_277 == 0) AND (NOT (pretmp_300 == 255))) which might be an incremental step to resolve a bogus uninit diagnostic at -O2. The patch uses maybe_fold_and_comparison for this. PR tree-optimization/107919 * gimple-predicate-analysis.cc (simplify_1): Rename to ... (simplify_1a): .. this. (simplify_1b): New. (predicate::simplify): Call both simplify_1a and simplify_1b.
Diffstat (limited to 'gcc/fortran/parse.cc')
0 files changed, 0 insertions, 0 deletions