llvm-project
44c0bdb4 - [flang][HLFIR] Use GreedyPatternRewriter in LowerHLFIRIntrinsics (#83438)

Commit
1 year ago
[flang][HLFIR] Use GreedyPatternRewriter in LowerHLFIRIntrinsics (#83438) In #83253 @matthias-springer pointed out that LowerHLFIRIntrinsics.cpp should not be using rewrite patterns with the dialect conversion driver. The intention of this pass is to lower HLFIR intrinsic operations into FIR so it conceptually fits dialect conversion. However, dialect conversion is much stricter about changing types when replacing operations. This pass sometimes looses track of array bounds, resulting in replacements with operations with different but compatible types (expressions of the same rank and element types but with or without compile time known array bounds). This is difficult to accommodate with the dialect conversion driver and so I have changed to use the greedy pattern rewriter. There is a lot of test churn because the greedy pattern rewriter also performs canonicalization.
Author
Parents
Loading