phiopt: Fix up two_value_replacement BOOLEAN_TYPE handling for Ada [PR98188]
authorJakub Jelinek <jakub@redhat.com>
Wed, 9 Dec 2020 22:52:25 +0000 (23:52 +0100)
committerJakub Jelinek <jakub@redhat.com>
Wed, 9 Dec 2020 22:52:25 +0000 (23:52 +0100)
commit7d9767cb8eea0f21c5b23b0183c53840e0433397
treec114c4644ce9bacfe054ad40582ff51a98516420
parentef33047a8b93d416f08f3f640dd65f3887fb05c1
phiopt: Fix up two_value_replacement BOOLEAN_TYPE handling for Ada [PR98188]

For Ada with LTO, boolean_{false,true}_node can be 1-bit precision boolean,
while TREE_TYPE (lhs) can be 8-bit precision boolean and thus we can end up
with wide_int mismatches.

This patch for non-VR_RANGE just use VARYING min/max manually.
The min + 1 != max check will then do the rest.

2020-12-09  Jakub Jelinek  <jakub@redhat.com>

PR bootstrap/98188
* tree-ssa-phiopt.c (two_value_replacement): Don't special case
BOOLEAN_TYPEs for ranges, instead if get_range_info doesn't return
VR_RANGE, set min/max to wi::min/max_value.
gcc/tree-ssa-phiopt.c