]> git.ipfire.org Git - people/ms/gcc.git/commit
Split uninit analysis from predicate analysis
authorRichard Biener <rguenther@suse.de>
Wed, 24 Aug 2022 09:22:55 +0000 (11:22 +0200)
committerRichard Biener <rguenther@suse.de>
Wed, 24 Aug 2022 09:47:05 +0000 (11:47 +0200)
commitcd1216d581b44f14b93a427bf2e95ee37e394b8b
tree620bc5dcb99245da71c9ea66c33c2c19af2ec329
parent9e50aebc813477655e0090b7de6578a7b11816ba
Split uninit analysis from predicate analysis

This splits the API collected in gimple-predicate-analysis.h into
what I'd call a predicate and assorted functionality plus utility
used by the uninit pass that happens to use that.  I've tried to
be minimalistic with refactoring, there's still recursive
instantiation of uninit_analysis, the new class encapsulating a
series of uninit analysis queries from the uninit pass.  But it
at least should make the predicate part actually reusable and
what predicate is dealt with is a little bit more clear in the
uninit_analysis part.

I will followup with moving the predicate implementation bits
together in the gimple-predicate-analysis.cc file.

* gimple-predicate-analysis.h (predicate): Split out
non-predicate related functionality into ..
(uninit_analysis): .. this new class.
* gimple-predicate-analysis.cc: Refactor into two classes.
* tree-ssa-uninit.cc (find_uninit_use): Use uninit_analysis.
gcc/gimple-predicate-analysis.cc
gcc/gimple-predicate-analysis.h
gcc/tree-ssa-uninit.cc