Delay swapping data refs in prune_runtime_alias_test_list
authorRichard Sandiford <richard.sandiford@arm.com>
Sat, 16 Nov 2019 11:35:56 +0000 (11:35 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Sat, 16 Nov 2019 11:35:56 +0000 (11:35 +0000)
commit97602450b04e94aff034381bf6ee4236b95727ed
tree45dcf86cca2f2d8eab5e7ee415a8178c663c9eea
parent1fb2b0f69ee849142b669ba1b82264ce6d0f75f9
Delay swapping data refs in prune_runtime_alias_test_list

prune_runtime_alias_test_list swapped dr_as between two dr_with_seg_len
pairs before finally deciding whether to merge them.  Bailing out later
would therefore leave the pairs in an incorrect state.

IMO a better fix would be to split this out into a subroutine that
produces a temporary dr_with_seg_len on success, rather than changing
an existing one in-place.  It would then be easy to merge both the dr_as
and dr_bs if we wanted to, rather than requiring one of them to be equal.
But here I tried to do something that could be backported if necessary.

2019-11-16  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* tree-data-ref.c (prune_runtime_alias_test_list): Delay
swapping the dr_as based on init values until we've decided
whether to merge them.

From-SVN: r278349
gcc/ChangeLog
gcc/tree-data-ref.c