summaryrefslogtreecommitdiff
path: root/src/analysis/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* [analysis][NFC] Remove unused sign-lattice.cpp (#6029)Thomas Lively2023-10-201-1/+0
| | | | There is no header for this source file and its contents are not used anywhere. It will be easy to reintroduce the sign lattice in the future if we need it.
* [analysis][NFC] Move powerset lattices to their own header (#6028)Thomas Lively2023-10-201-1/+1
| | | | Move the powerset lattices out of lattice.h, which now only contains the Lattice concept, to their own dedicated header in a new analysis/lattices directory.
* Liveness Analysis Proof of Concept (#5771)Bruce He2023-06-231-0/+1
| | | This introduces a limited monotone flow-sensitive liveness analysis on local indices as an initial proof of concept for the creation of a monotone flow-sensitive static analysis framework. Tests are included in test/gtest/cfg.cpp.
* [analysis] Add a new iterable CFG utility (#5712)Thomas Lively2023-05-121-0/+6
Add a new "analysis" source directory that will contain the source for a new static program analysis framework. To start the framework, add a CFG utility that provides convenient iterators for iterating through the basic blocks of the CFG as well as the predecessors, successors, and contents of each block. The new CFGs are constructed using the existing CFGWalker, but they are different in that the new utility is meant to provide a usable representation of a CFG whereas CFGWalker is meant to allow collecting arbitrary information about each basic block in a CFG. For testing and debugging purposes, add `print` methods to CFGs and basic blocks. This requires exposing the ability to print expression contents excluding children, which was something we previously did only for StackIR. Also add a new gtest file with a test for constructing and printing a CFG. The test reveals some strange properties of the current CFG construction, including empty blocks and strange placement of `loop` instructions, but fixing these problems is left as future work.