Skip to content

Commit 95166ad

Browse files
authored
Merge branch 'llvm:main' into macPro
2 parents d125844 + dbd3e03 commit 95166ad

File tree

3 files changed

+100
-48
lines changed

3 files changed

+100
-48
lines changed

clang/lib/CIR/Dialect/IR/CIRDialect.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2023,8 +2023,8 @@ LogicalResult
20232023
cir::GetGlobalOp::verifySymbolUses(SymbolTableCollection &symbolTable) {
20242024
// Verify that the result type underlying pointer type matches the type of
20252025
// the referenced cir.global or cir.func op.
2026-
auto op = symbolTable.lookupNearestSymbolFrom(*this, getNameAttr());
2027-
if (!(isa<GlobalOp>(op) || isa<FuncOp>(op)))
2026+
auto *op = symbolTable.lookupNearestSymbolFrom(*this, getNameAttr());
2027+
if (op == nullptr || !(isa<GlobalOp>(op) || isa<FuncOp>(op)))
20282028
return emitOpError("'")
20292029
<< getName()
20302030
<< "' does not reference a valid cir.global or cir.func";

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

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

clang/test/CIR/IR/invalid.cir

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1103,6 +1103,15 @@ module {
11031103

11041104
// -----
11051105

1106+
!s8i = !cir.int<s, 8>
1107+
cir.func @no_reference_global() {
1108+
// expected-error @below {{'cir.get_global' op 'str' does not reference a valid cir.global or cir.func}}
1109+
%0 = cir.get_global @str : !cir.ptr<!s8i>
1110+
cir.return
1111+
}
1112+
1113+
// -----
1114+
11061115
// expected-error@+1 {{invalid underlying type for long double}}
11071116
cir.func @bad_long_double(%arg0 : !cir.long_double<!cir.float>) -> () {
11081117
cir.return

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy