When updating the return type of deoptimize call during inline, we need to drop incompatible return attributes.
This bug was exposed once we relaxed the contraint of adding the attributes through D156844. With that
change deoptimize (are not willreturn) will start having return attributes added to it.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Where is this update done? Shouldn't the code changing the return type drop incompatible attributes?
Comment Actions
One thing to note though is we would need to future proof against incompatible types (whenever new return types are added), but that happens in the common API: AttributeFuncs::typeIncompatible.
llvm/lib/IR/Attributes.cpp | ||
---|---|---|
1999 ↗ | (On Diff #551536) | This change is unnecessary, this is all handled by !Ty->isPointerTy() above. |
llvm/lib/IR/Attributes.cpp | ||
---|---|---|
1999 ↗ | (On Diff #551536) | good point. |