@@ -3937,30 +3937,7 @@ class FIRToLLVMLowering
3937
3937
options.applyTBAA || applyTBAA,
3938
3938
options.forceUnifiedTBAATree , *dl};
3939
3939
mlir::RewritePatternSet pattern (context);
3940
- pattern.insert <
3941
- AbsentOpConversion, AddcOpConversion, AddrOfOpConversion,
3942
- AllocaOpConversion, AllocMemOpConversion, BoxAddrOpConversion,
3943
- BoxCharLenOpConversion, BoxDimsOpConversion, BoxEleSizeOpConversion,
3944
- BoxIsAllocOpConversion, BoxIsArrayOpConversion, BoxIsPtrOpConversion,
3945
- BoxOffsetOpConversion, BoxProcHostOpConversion, BoxRankOpConversion,
3946
- BoxTypeCodeOpConversion, BoxTypeDescOpConversion, CallOpConversion,
3947
- CmpcOpConversion, ConstcOpConversion, ConvertOpConversion,
3948
- CoordinateOpConversion, DTEntryOpConversion, DivcOpConversion,
3949
- EmboxOpConversion, EmboxCharOpConversion, EmboxProcOpConversion,
3950
- ExtractValueOpConversion, FieldIndexOpConversion, FirEndOpConversion,
3951
- FreeMemOpConversion, GlobalLenOpConversion, GlobalOpConversion,
3952
- HasValueOpConversion, InsertOnRangeOpConversion,
3953
- InsertValueOpConversion, IsPresentOpConversion,
3954
- LenParamIndexOpConversion, LoadOpConversion, MulcOpConversion,
3955
- NegcOpConversion, NoReassocOpConversion, SelectCaseOpConversion,
3956
- SelectOpConversion, SelectRankOpConversion, SelectTypeOpConversion,
3957
- ShapeOpConversion, ShapeShiftOpConversion, ShiftOpConversion,
3958
- SliceOpConversion, StoreOpConversion, StringLitOpConversion,
3959
- SubcOpConversion, TypeDescOpConversion, TypeInfoOpConversion,
3960
- UnboxCharOpConversion, UnboxProcOpConversion, UndefOpConversion,
3961
- UnreachableOpConversion, UnrealizedConversionCastOpConversion,
3962
- XArrayCoorOpConversion, XEmboxOpConversion, XReboxOpConversion,
3963
- ZeroOpConversion>(typeConverter, options);
3940
+ fir::populateFIRToLLVMConversionPatterns (typeConverter, pattern, options);
3964
3941
mlir::populateFuncToLLVMConversionPatterns (typeConverter, pattern);
3965
3942
mlir::populateOpenMPToLLVMConversionPatterns (typeConverter, pattern);
3966
3943
mlir::arith::populateArithToLLVMConversionPatterns (typeConverter, pattern);
@@ -4072,3 +4049,32 @@ fir::createLLVMDialectToLLVMPass(llvm::raw_ostream &output,
4072
4049
fir::LLVMIRLoweringPrinter printer) {
4073
4050
return std::make_unique<LLVMIRLoweringPass>(output, printer);
4074
4051
}
4052
+
4053
+ void fir::populateFIRToLLVMConversionPatterns (
4054
+ fir::LLVMTypeConverter &converter, mlir::RewritePatternSet &patterns,
4055
+ fir::FIRToLLVMPassOptions &options) {
4056
+ patterns.insert <
4057
+ AbsentOpConversion, AddcOpConversion, AddrOfOpConversion,
4058
+ AllocaOpConversion, AllocMemOpConversion, BoxAddrOpConversion,
4059
+ BoxCharLenOpConversion, BoxDimsOpConversion, BoxEleSizeOpConversion,
4060
+ BoxIsAllocOpConversion, BoxIsArrayOpConversion, BoxIsPtrOpConversion,
4061
+ BoxOffsetOpConversion, BoxProcHostOpConversion, BoxRankOpConversion,
4062
+ BoxTypeCodeOpConversion, BoxTypeDescOpConversion, CallOpConversion,
4063
+ CmpcOpConversion, ConstcOpConversion, ConvertOpConversion,
4064
+ CoordinateOpConversion, DTEntryOpConversion, DivcOpConversion,
4065
+ EmboxOpConversion, EmboxCharOpConversion, EmboxProcOpConversion,
4066
+ ExtractValueOpConversion, FieldIndexOpConversion, FirEndOpConversion,
4067
+ FreeMemOpConversion, GlobalLenOpConversion, GlobalOpConversion,
4068
+ HasValueOpConversion, InsertOnRangeOpConversion, InsertValueOpConversion,
4069
+ IsPresentOpConversion, LenParamIndexOpConversion, LoadOpConversion,
4070
+ MulcOpConversion, NegcOpConversion, NoReassocOpConversion,
4071
+ SelectCaseOpConversion, SelectOpConversion, SelectRankOpConversion,
4072
+ SelectTypeOpConversion, ShapeOpConversion, ShapeShiftOpConversion,
4073
+ ShiftOpConversion, SliceOpConversion, StoreOpConversion,
4074
+ StringLitOpConversion, SubcOpConversion, TypeDescOpConversion,
4075
+ TypeInfoOpConversion, UnboxCharOpConversion, UnboxProcOpConversion,
4076
+ UndefOpConversion, UnreachableOpConversion,
4077
+ UnrealizedConversionCastOpConversion, XArrayCoorOpConversion,
4078
+ XEmboxOpConversion, XReboxOpConversion, ZeroOpConversion>(converter,
4079
+ options);
4080
+ }
0 commit comments