llvm-project
36041192 - [IR] Don't allow successors() over block without terminators (#186646)

Commit
2 days ago
[IR] Don't allow successors() over block without terminators (#186646) There's no point constructing a dominator tree or similar on known-broken IR. Generally, functions should be able to assume that IR is valid (i.e., passes the verifier). Users of this "feature" were: - Verifier, fixed by verifying existence of terminators first. - FuzzMutate, worked around by temporarily inserting terminators. - OpenMP to run analyses while building the IR, worked around by temporarily inserting terminators. - Polly to work with an empty dominator tree, fixed by temporarily adding an unreachable inst. - MergeBlockIntoPredecessor, inadvertently, fixed by adding terminator before updating MemorySSA. - Some sloppily written unit tests.
Author
Parents
Loading