llvm-project
3beec2f6 - [flang] do not rely on existing fir.convert in TargetRewrite (#157413)

Commit
223 days ago
[flang] do not rely on existing fir.convert in TargetRewrite (#157413) TargetRewrite is doing a shallow rewrite of function signatures. It is only rewriting function definitions (FuncOp), calls (CallOp) and AddressOfOp. It is not trying to visit each operations that may have an operand with a function type. It therefore needs function signature casts around the operations it is rewriting. Currently, these casts were not inserted after AddressOfOp rewrites because lowering tends to always insert function cast after generating AddressOfOp to the void type so the pass relied on implicitly updating this cast operand type to get the required cast. This is brittle because there is no guarantee such convert must be here and canonicalization and passes may remove them. Insert a cast after on the result of rewritten operations. If it is redundant, it will be canonicalized away later.
Author
Parents
Loading