Introduce mcdc::TVIdxBuilder (LLVM side, NFC) by chapuni · Pull Request #80676 · llvm/llvm-project (original) (raw)
☺️ Sorry I found I made a mistake. I previously encountered a example with decision tree:
flowchart TD C0 -- T --> C1 C1 -- F --> F1 C1 -- T --> C3 C0 -- F --> C2 C2 -- T --> C3 C2 -- F --> F2 C3 -- F --> C4 C3 -- T --> T3 C4 -- T --> T4 C4 -- F --> F4
Loading
Normal boolean expressions can not generate such decision tree. In normal boolean decisions, either true next of a condition is a next (true or false) of its false next, or false next of a condition is a next of its true next.
I tried to disable the sort and fixed some cases. So I guessed something was broken by the sort. But that's wrong. The real problem is the way to update cond bitmap, which is specified for previous cond bitmap but is inappropriate for current. This implementation still works for pattern matching, thanks to your excellent efforts!