[llvm] [DA] remove constraint propagation (PR #160924)
Sebastian Pop via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 20 09:00:06 PST 2025
sebpop wrote:
> Just out of curisoty: Do we know this code is somehow buggier than other parts of DA and more difficult to fix, and not worth keeping under an option?
Here's @kasuga-fj point of view on Constraint Propagation (CP):
> I think this feature should be removed, not just disabled behind a flag, for the following reasons:
>
> * I don't think it will ever be re-enabled due to its correctness issues. Fixing those would require non-trivial changes.
> * This feature doesn't seem particularly useful, as you can see almost no regression tests are affected, and notably Propagating.ll remains unchanged.
> * It adds a fair amount of code complexity, making it harder to reason about other parts of DA. For instance, without it, we might no longer need to distinguish between `Separable` and `Coupled`.
> * Fixing the correctness issues would require limiting its current capabilities, which would make it even less useful.
>
> Given these points, I don't think it's worth keeping. The maintenance cost would likely outweigh any potential benefit.
To be pragmatic and to get LNO enabled by default I don't mind removing features. We can add those back later as needed.
Constraint propagation is important to speed up dependence test and transform MIV tests into easier SIV and ZIV tests.
Those interested in details, please read the paper mentioned in the header of DA.cpp: https://softlib.rice.edu/pub/CRPC-TRs/reports/CRPC-TR90103-S.pdf
https://github.com/llvm/llvm-project/pull/160924
More information about the llvm-commits
mailing list