[llvm] [ConstantRange] Implement union/intersect with exact union/intersect (NFC) (PR #91397)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Tue May 7 18:38:54 PDT 2024


https://github.com/nikic requested changes to this pull request.

It looks like in practice, this implementation is slower: https://llvm-compile-time-tracker.com/compare.php?from=83f3b1cb480b41e3347035aff14fd4bc2ba21d24&to=efbc199949db62e534c597e97710e6972fdc0531&stat=instructions:u

I think this is because the non-exact operations are more common and they go through std::optional now, which is inefficient in C++.

Worth noting that there are also code size changes, so this is not NFC: https://llvm-compile-time-tracker.com/compare.php?from=83f3b1cb480b41e3347035aff14fd4bc2ba21d24&to=efbc199949db62e534c597e97710e6972fdc0531&stat=size-text I'm not sure whether this indicates a weakness in our exhaustive test coverage, or whether this just switches to a different, equally good solution in some cases...

https://github.com/llvm/llvm-project/pull/91397


More information about the llvm-commits mailing list