[PATCH] D156129: Attributor: Try to propagate concrete denormal-fp-math{-f32}
Sameer Sahasrabuddhe via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Jul 30 23:27:38 PDT 2023
sameerds added inline comments.
================
Comment at: llvm/include/llvm/Transforms/IPO/Attributor.h:5114
+
+ ChangeStatus indicateOptimisticFixpoint() override {
+ return ChangeStatus::UNCHANGED;
----------------
sameerds wrote:
> arsenm wrote:
> > sameerds wrote:
> > > Is it correct to say that an optimistic fix point is when all the "dynamic" components are set to default (`ieee`)? This attribute is reinventing what a fixed point means. Does this function need to set the optimistic fixed point? Or I would guess this function is actually never called, in which case it should be marked with `llvm_unreachable()`?
> > No. You cannot say IEEE is more optimistic than preserve-sign or positive-zero. They're just different. The only thing you can infer is known or unknown
> I understand what you want it to do. I am trying to understand what the code actually means. The manifest function replaces "dynamic" with "default/ieee". Both the optimistic and pessimistic fixed points leave dynamic alone. What is a fixed point here? When a client calls either of the fixed point functions, what should the interpretation of "dynamic" be? Should it be the same as the manifest method, which means setting it to default/ieee? Clearly, the client intended that no more changes should be possible, but the manifest will change it.
Or to put it in more concrete terms, is it okay that either of the following patterns, if it occurs, can potentially fire the assert?
```
indicateOptimisticFixpoint();
assert(isAtFixpoint());
```
and
```
indicatePessimisticFixpoint();
assert(isAtFixpoint());
```
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D156129/new/
https://reviews.llvm.org/D156129
More information about the llvm-commits
mailing list