Skip to content

Commit 5b2e027

Browse files
Lancernlanza
authored andcommitted
[CIR][NFC] Refactor code for populating LLVM conversion patterns (llvm#1152)
The function `populateCIRToLLVMConversionPatterns` contains a spaghetti of LLVM dialect conversion patterns, which results in merge conflicts very easily. Besides, a few patterns are even registered for more than once, possibly due to careless resolution of merge conflicts. This PR attempts to mitigate this problem. Pattern names now are sorted in alphabetical order, and each source code line now only lists exactly one pattern name to reduce potential merge conflicts.
1 parent 6cccea9 commit 5b2e027

File tree

1 file changed

+89
-46
lines changed

1 file changed

+89
-46
lines changed

clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp

Lines changed: 89 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -3860,55 +3860,98 @@ void populateCIRToLLVMConversionPatterns(
38603860
stringGlobalsMap, argStringGlobalsMap,
38613861
argsVarMap, patterns.getContext());
38623862
patterns.add<
3863-
CIRToLLVMCmpOpLowering, CIRToLLVMSelectOpLowering,
3864-
CIRToLLVMBitClrsbOpLowering, CIRToLLVMBitClzOpLowering,
3865-
CIRToLLVMBitCtzOpLowering, CIRToLLVMBitFfsOpLowering,
3866-
CIRToLLVMBitParityOpLowering, CIRToLLVMBitPopcountOpLowering,
3867-
CIRToLLVMAtomicCmpXchgLowering, CIRToLLVMAtomicXchgLowering,
3868-
CIRToLLVMAtomicFetchLowering, CIRToLLVMByteswapOpLowering,
3869-
CIRToLLVMRotateOpLowering, CIRToLLVMBrCondOpLowering,
3870-
CIRToLLVMPtrStrideOpLowering, CIRToLLVMCallOpLowering,
3871-
CIRToLLVMTryCallOpLowering, CIRToLLVMEhInflightOpLowering,
3872-
CIRToLLVMUnaryOpLowering, CIRToLLVMBinOpLowering,
3873-
CIRToLLVMBinOpOverflowOpLowering, CIRToLLVMShiftOpLowering,
3874-
CIRToLLVMLoadOpLowering, CIRToLLVMConstantOpLowering,
3875-
CIRToLLVMStoreOpLowering, CIRToLLVMFuncOpLowering,
3876-
CIRToLLVMCastOpLowering, CIRToLLVMGlobalOpLowering,
3877-
CIRToLLVMGetGlobalOpLowering, CIRToLLVMComplexCreateOpLowering,
3878-
CIRToLLVMComplexRealOpLowering, CIRToLLVMComplexImagOpLowering,
3879-
CIRToLLVMComplexRealPtrOpLowering, CIRToLLVMComplexImagPtrOpLowering,
3880-
CIRToLLVMVAStartOpLowering, CIRToLLVMVAEndOpLowering,
3881-
CIRToLLVMVACopyOpLowering, CIRToLLVMVAArgOpLowering,
3882-
CIRToLLVMBrOpLowering, CIRToLLVMGetMemberOpLowering,
3883-
CIRToLLVMGetRuntimeMemberOpLowering, CIRToLLVMSwitchFlatOpLowering,
3884-
CIRToLLVMPtrDiffOpLowering, CIRToLLVMCopyOpLowering,
3885-
CIRToLLVMMemCpyOpLowering, CIRToLLVMMemChrOpLowering,
3886-
CIRToLLVMAbsOpLowering, CIRToLLVMExpectOpLowering,
3887-
CIRToLLVMVTableAddrPointOpLowering, CIRToLLVMVecCreateOpLowering,
3888-
CIRToLLVMVecCmpOpLowering, CIRToLLVMVecSplatOpLowering,
3889-
CIRToLLVMVecTernaryOpLowering, CIRToLLVMVecShuffleDynamicOpLowering,
3890-
CIRToLLVMVecShuffleOpLowering, CIRToLLVMStackSaveOpLowering,
3891-
CIRToLLVMUnreachableOpLowering, CIRToLLVMTrapOpLowering,
3892-
CIRToLLVMInlineAsmOpLowering, CIRToLLVMSetBitfieldOpLowering,
3893-
CIRToLLVMGetBitfieldOpLowering, CIRToLLVMPrefetchOpLowering,
3894-
CIRToLLVMObjSizeOpLowering, CIRToLLVMIsConstantOpLowering,
3895-
CIRToLLVMCmpThreeWayOpLowering, CIRToLLVMMemCpyOpLowering,
3896-
CIRToLLVMIsConstantOpLowering, CIRToLLVMCmpThreeWayOpLowering,
3897-
CIRToLLVMReturnAddrOpLowering, CIRToLLVMClearCacheOpLowering,
3898-
CIRToLLVMEhTypeIdOpLowering, CIRToLLVMCatchParamOpLowering,
3899-
CIRToLLVMResumeOpLowering, CIRToLLVMAllocExceptionOpLowering,
3900-
CIRToLLVMFreeExceptionOpLowering, CIRToLLVMThrowOpLowering,
3901-
CIRToLLVMLLVMIntrinsicCallOpLowering, CIRToLLVMAssumeOpLowering,
3902-
CIRToLLVMAssumeAlignedOpLowering, CIRToLLVMAssumeSepStorageOpLowering,
3903-
CIRToLLVMBaseClassAddrOpLowering, CIRToLLVMDerivedClassAddrOpLowering,
3904-
CIRToLLVMVTTAddrPointOpLowering, CIRToLLVMIsFPClassOpLowering,
3905-
CIRToLLVMAbsOpLowering, CIRToLLVMMemMoveOpLowering,
3906-
CIRToLLVMMemSetOpLowering, CIRToLLVMMemSetInlineOpLowering,
3907-
CIRToLLVMMemCpyInlineOpLowering, CIRToLLVMSignBitOpLowering,
3908-
CIRToLLVMPtrMaskOpLowering
3863+
// clang-format off
3864+
CIRToLLVMAbsOpLowering,
3865+
CIRToLLVMAllocExceptionOpLowering,
3866+
CIRToLLVMAssumeAlignedOpLowering,
3867+
CIRToLLVMAssumeOpLowering,
3868+
CIRToLLVMAssumeSepStorageOpLowering,
3869+
CIRToLLVMAtomicCmpXchgLowering,
3870+
CIRToLLVMAtomicFetchLowering,
3871+
CIRToLLVMAtomicXchgLowering,
3872+
CIRToLLVMBaseClassAddrOpLowering,
3873+
CIRToLLVMBinOpLowering,
3874+
CIRToLLVMBinOpOverflowOpLowering,
3875+
CIRToLLVMBitClrsbOpLowering,
3876+
CIRToLLVMBitClzOpLowering,
3877+
CIRToLLVMBitCtzOpLowering,
3878+
CIRToLLVMBitFfsOpLowering,
3879+
CIRToLLVMBitParityOpLowering,
3880+
CIRToLLVMBitPopcountOpLowering,
3881+
CIRToLLVMBrCondOpLowering,
3882+
CIRToLLVMBrOpLowering,
3883+
CIRToLLVMByteswapOpLowering,
3884+
CIRToLLVMCallOpLowering,
3885+
CIRToLLVMCastOpLowering,
3886+
CIRToLLVMCatchParamOpLowering,
3887+
CIRToLLVMClearCacheOpLowering,
3888+
CIRToLLVMCmpOpLowering,
3889+
CIRToLLVMCmpThreeWayOpLowering,
3890+
CIRToLLVMComplexCreateOpLowering,
3891+
CIRToLLVMComplexImagOpLowering,
3892+
CIRToLLVMComplexImagPtrOpLowering,
3893+
CIRToLLVMComplexRealOpLowering,
3894+
CIRToLLVMComplexRealPtrOpLowering,
3895+
CIRToLLVMConstantOpLowering,
3896+
CIRToLLVMCopyOpLowering,
3897+
CIRToLLVMDerivedClassAddrOpLowering,
3898+
CIRToLLVMEhInflightOpLowering,
3899+
CIRToLLVMEhTypeIdOpLowering,
3900+
CIRToLLVMExpectOpLowering,
3901+
CIRToLLVMFreeExceptionOpLowering,
3902+
CIRToLLVMFuncOpLowering,
3903+
CIRToLLVMGetBitfieldOpLowering,
3904+
CIRToLLVMGetGlobalOpLowering,
3905+
CIRToLLVMGetMemberOpLowering,
3906+
CIRToLLVMGetRuntimeMemberOpLowering,
3907+
CIRToLLVMGlobalOpLowering,
3908+
CIRToLLVMInlineAsmOpLowering,
3909+
CIRToLLVMIsConstantOpLowering,
3910+
CIRToLLVMIsFPClassOpLowering,
3911+
CIRToLLVMLLVMIntrinsicCallOpLowering,
3912+
CIRToLLVMLoadOpLowering,
3913+
CIRToLLVMMemChrOpLowering,
3914+
CIRToLLVMMemCpyInlineOpLowering,
3915+
CIRToLLVMMemCpyOpLowering,
3916+
CIRToLLVMMemMoveOpLowering,
3917+
CIRToLLVMMemSetInlineOpLowering,
3918+
CIRToLLVMMemSetOpLowering,
3919+
CIRToLLVMObjSizeOpLowering,
3920+
CIRToLLVMPrefetchOpLowering,
3921+
CIRToLLVMPtrDiffOpLowering,
3922+
CIRToLLVMPtrMaskOpLowering,
3923+
CIRToLLVMPtrStrideOpLowering,
3924+
CIRToLLVMResumeOpLowering,
3925+
CIRToLLVMReturnAddrOpLowering,
3926+
CIRToLLVMRotateOpLowering,
3927+
CIRToLLVMSelectOpLowering,
3928+
CIRToLLVMSetBitfieldOpLowering,
3929+
CIRToLLVMShiftOpLowering,
3930+
CIRToLLVMSignBitOpLowering,
3931+
CIRToLLVMStackSaveOpLowering,
3932+
CIRToLLVMStoreOpLowering,
3933+
CIRToLLVMSwitchFlatOpLowering,
3934+
CIRToLLVMThrowOpLowering,
3935+
CIRToLLVMTrapOpLowering,
3936+
CIRToLLVMTryCallOpLowering,
3937+
CIRToLLVMUnaryOpLowering,
3938+
CIRToLLVMUnreachableOpLowering,
3939+
CIRToLLVMVAArgOpLowering,
3940+
CIRToLLVMVACopyOpLowering,
3941+
CIRToLLVMVAEndOpLowering,
3942+
CIRToLLVMVAStartOpLowering,
3943+
CIRToLLVMVecCmpOpLowering,
3944+
CIRToLLVMVecCreateOpLowering,
3945+
CIRToLLVMVecShuffleDynamicOpLowering,
3946+
CIRToLLVMVecShuffleOpLowering,
3947+
CIRToLLVMVecSplatOpLowering,
3948+
CIRToLLVMVecTernaryOpLowering,
3949+
CIRToLLVMVTableAddrPointOpLowering,
3950+
CIRToLLVMVTTAddrPointOpLowering
39093951
#define GET_BUILTIN_LOWERING_LIST
39103952
#include "clang/CIR/Dialect/IR/CIRBuiltinsLowering.inc"
39113953
#undef GET_BUILTIN_LOWERING_LIST
3954+
// clang-format on
39123955
>(converter, patterns.getContext());
39133956
}
39143957

0 commit comments

Comments
 (0)