Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2 |
|
#
e21b1dd9 |
| 03-Aug-2023 |
Yitzhak Mandelbaum <yitzhakm@google.com> |
[clang][CFG] Fix 2 memory errors in interval computation.
This fixes 2 bugs and adds corresponding tests. Both related to unreachable blocks. One occured in the `WTOCompare` construction, which assu
[clang][CFG] Fix 2 memory errors in interval computation.
This fixes 2 bugs and adds corresponding tests. Both related to unreachable blocks. One occured in the `WTOCompare` construction, which assumed the size of the order was the same as the number of blocks in the CFG, which isn't true when some blocks are unreachable. The other assumed predecessor pointers were non-null, which can be false for blocks with unreachable predecessors.
Differential Revision: https://reviews.llvm.org/D157033
show more ...
|
Revision tags: llvmorg-17.0.0-rc1, llvmorg-18-init |
|
#
26db5e65 |
| 12-Jun-2023 |
Yitzhak Mandelbaum <yitzhakm@google.com> |
[clang][CFG] Support construction of a weak topological ordering of the CFG.
This patch adds support for building a weak topological ordering (WTO) of the CFG blocks, based on a limit flow graph con
[clang][CFG] Support construction of a weak topological ordering of the CFG.
This patch adds support for building a weak topological ordering (WTO) of the CFG blocks, based on a limit flow graph constructed via (repeated) interval partitioning of the CFG.
This patch is part 2 of 2 for adding WTO support.
Differential Revision: https://reviews.llvm.org/D153058
show more ...
|
Revision tags: llvmorg-16.0.6 |
|
#
f4cf51c9 |
| 05-Jun-2023 |
Yitzhak Mandelbaum <yitzhakm@google.com> |
[clang][CFG] Add support for partitioning CFG into intervals.
Adds support for the classic dataflow algorithm that partitions a flow graph into distinct intervals. C.f. Dragon book, pp. 664-666.
A
[clang][CFG] Add support for partitioning CFG into intervals.
Adds support for the classic dataflow algorithm that partitions a flow graph into distinct intervals. C.f. Dragon book, pp. 664-666.
A version of this algorithm exists in LLVM (see llvm/Analysis/Interval.h and related files), but it is specific to LLVM, is a recursive (vs iterative) algorithm, and uses many layers of abstraction that seem unnecessary for CFG purposes.
This patch is part 1 of 2. The next patch will generalize the code to work on intervals, to support computation of the limit flow graph.
Differential Revision: https://reviews.llvm.org/D152263
show more ...
|