clang 23.0.0git
MissingFeatures.h
Go to the documentation of this file.
1//===---- MissingFeatures.h - Checks for unimplemented features -*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file introduces some helper classes to guard against features that
10// CIR dialect supports that we do not have and also do not have great ways to
11// assert against.
12//
13//===----------------------------------------------------------------------===//
14
15#ifndef CLANG_CIR_MISSINGFEATURES_H
16#define CLANG_CIR_MISSINGFEATURES_H
17
18namespace cir {
19
20// As a way to track features that haven't yet been implemented this class
21// explicitly contains a list of static fns that will return false that you
22// can guard against. If and when a feature becomes implemented simply changing
23// this return to true will cause compilation to fail at all the points in which
24// we noted that we needed to address. This is a much more explicit way to
25// handle "TODO"s.
27 // Address space related
28 static bool addressSpace() { return false; }
29
30 // Unhandled global/linkage information.
31 static bool opGlobalThreadLocal() { return false; }
32 static bool opGlobalWeakRef() { return false; }
33 static bool opGlobalUnnamedAddr() { return false; }
34 static bool opGlobalSection() { return false; }
35 static bool opGlobalVisibility() { return false; }
36 static bool opGlobalDLLImportExport() { return false; }
37 static bool opGlobalPartition() { return false; }
38 static bool opGlobalUsedOrCompilerUsed() { return false; }
39 static bool opGlobalAnnotations() { return false; }
40 static bool opGlobalCtorPriority() { return false; }
41 static bool setDSOLocal() { return false; }
42 static bool setComdat() { return false; }
43
44 static bool supportIFuncAttr() { return false; }
45 static bool supportVisibility() { return false; }
46 static bool hiddenVisibility() { return false; }
47 static bool protectedVisibility() { return false; }
48 static bool defaultVisibility() { return false; }
49
50 // Load/store attributes
51 static bool opLoadStoreThreadLocal() { return false; }
52 static bool opLoadEmitScalarRangeCheck() { return false; }
53 static bool opLoadStoreNontemporal() { return false; }
54 static bool opLoadStoreTbaa() { return false; }
55 static bool opLoadStoreAtomic() { return false; }
56 static bool opLoadStoreObjC() { return false; }
57
58 // AllocaOp handling
59 static bool opAllocaStaticLocal() { return false; }
60 static bool opAllocaNonGC() { return false; }
61 static bool opAllocaImpreciseLifetime() { return false; }
62 static bool opAllocaPreciseLifetime() { return false; }
63 static bool opAllocaTLS() { return false; }
64 static bool opAllocaOpenMPThreadPrivate() { return false; }
65 static bool opAllocaEscapeByReference() { return false; }
66 static bool opAllocaReference() { return false; }
67 static bool opAllocaAnnotations() { return false; }
68 static bool opAllocaCaptureByInit() { return false; }
69
70 // FuncOp handling
71 static bool opFuncArmNewAttr() { return false; }
72 static bool opFuncArmStreamingAttr() { return false; }
73 static bool opFuncAstDeclAttr() { return false; }
74 static bool opFuncCallingConv() { return false; }
75 static bool opFuncColdHotAttr() { return false; }
76 static bool opFuncCPUAndFeaturesAttributes() { return false; }
77 static bool opFuncExceptions() { return false; }
78 static bool opFuncExtraAttrs() { return false; }
79 static bool opFuncMaybeHandleStaticInExternC() { return false; }
80 static bool opFuncMinSizeAttr() { return false; }
81 static bool opFuncMultipleReturnVals() { return false; }
82 static bool opFuncNakedAttr() { return false; }
83 static bool opFuncNoDuplicateAttr() { return false; }
84 static bool opFuncNoUnwind() { return false; }
85 static bool opFuncOpenCLKernelMetadata() { return false; }
86 static bool opFuncOperandBundles() { return false; }
87 static bool opFuncOptNoneAttr() { return false; }
88 static bool opFuncParameterAttributes() { return false; }
89 static bool opFuncReadOnly() { return false; }
90 static bool opFuncSection() { return false; }
91 static bool opFuncUnwindTablesAttr() { return false; }
92 static bool opFuncWillReturn() { return false; }
93 static bool opFuncNoReturn() { return false; }
94 static bool setLLVMFunctionFEnvAttributes() { return false; }
95
96 // CallOp handling
97 static bool opCallAggregateArgs() { return false; }
98 static bool opCallPaddingArgs() { return false; }
99 static bool opCallABIExtendArg() { return false; }
100 static bool opCallABIIndirectArg() { return false; }
101 static bool opCallWidenArg() { return false; }
102 static bool opCallBitcastArg() { return false; }
103 static bool opCallImplicitObjectSizeArgs() { return false; }
104 static bool opCallReturn() { return false; }
105 static bool opCallArgEvaluationOrder() { return false; }
106 static bool opCallCallConv() { return false; }
107 static bool opCallSideEffect() { return false; }
108 static bool opCallMustTail() { return false; }
109 static bool opCallInAlloca() { return false; }
110 static bool opCallAttrs() { return false; }
111 static bool opCallSurroundingTry() { return false; }
112 static bool opCallASTAttr() { return false; }
113 static bool opCallObjCMethod() { return false; }
114 static bool opCallExtParameterInfo() { return false; }
115 static bool opCallCIRGenFuncInfoParamInfo() { return false; }
116 static bool opCallCIRGenFuncInfoExtParamInfo() { return false; }
117 static bool opCallLandingPad() { return false; }
118 static bool opCallContinueBlock() { return false; }
119 static bool opCallChain() { return false; }
120 static bool opCallExceptionAttr() { return false; }
121
122 // CXXNewExpr
123 static bool exprNewNullCheck() { return false; }
124
125 // FnInfoOpts -- This is used to track whether calls are chain calls or
126 // instance methods. Classic codegen uses chain call to track and extra free
127 // register for x86 and uses instance method as a condition for a thunk
128 // generation special case. It's not clear that we need either of these in
129 // pre-lowering CIR codegen.
130 static bool opCallFnInfoOpts() { return false; }
131
132 // ScopeOp handling
133 static bool opScopeCleanupRegion() { return false; }
134
135 // Unary operator handling
136 static bool opUnaryPromotionType() { return false; }
137
138 // SwitchOp handling
139 static bool foldRangeCase() { return false; }
140
141 // Clang early optimizations or things defered to LLVM lowering.
142 static bool mayHaveIntegerOverflow() { return false; }
143 static bool shouldReverseUnaryCondOnBoolExpr() { return false; }
144
145 // RecordType
146 static bool skippedLayout() { return false; }
147 static bool astRecordDeclAttr() { return false; }
148 static bool zeroSizeRecordMembers() { return false; }
149
150 // Coroutines
151 static bool coroOutsideFrameMD() { return false; }
152 static bool coroutineExceptions() { return false; };
153
154 // Various handling of deferred processing in CIRGenModule.
155 static bool cgmRelease() { return false; }
156 static bool deferredVtables() { return false; }
157 static bool deferredFuncDecls() { return false; }
158
159 // CXXABI
160 static bool cxxABI() { return false; }
161 static bool cxxabiThisAlignment() { return false; }
162 static bool cxxabiUseARMMethodPtrABI() { return false; }
163 static bool cxxabiUseARMGuardVarABI() { return false; }
164 static bool cxxabiAppleARM64CXXABI() { return false; }
165
166 // Address class
167 static bool addressOffset() { return false; }
168 static bool addressIsKnownNonNull() { return false; }
169 static bool addressPointerAuthInfo() { return false; }
170
171 // Atomic
172 static bool atomicExpr() { return false; }
173 static bool atomicInfo() { return false; }
174 static bool atomicInfoGetAtomicPointer() { return false; }
175 static bool atomicInfoGetAtomicAddress() { return false; }
176 static bool atomicScope() { return false; }
177 static bool atomicSyncScopeID() { return false; }
178 static bool atomicMapTargetSyncScope() { return false; }
179 static bool atomicTypes() { return false; }
180 static bool atomicUseLibCall() { return false; }
181 static bool atomicMicrosoftVolatile() { return false; }
182 static bool atomicOpenMP() { return false; }
183
184 // Global ctor handling
185 static bool globalCtorLexOrder() { return false; }
186 static bool globalCtorAssociatedData() { return false; }
187
188 // LowerModule handling
189 static bool lowerModuleCodeGenOpts() { return false; }
190 static bool lowerModuleLangOpts() { return false; }
191 static bool targetLoweringInfo() { return false; }
192
193 // Extra checks for lowerGetMethod in ItaniumCXXABI
194 static bool emitCFICheck() { return false; }
195 static bool emitVFEInfo() { return false; }
196 static bool emitWPDInfo() { return false; }
197
198 // Misc
199 static bool aarch64SIMDIntrinsics() { return false; }
200 static bool aarch64SMEIntrinsics() { return false; }
201 static bool aarch64SVEIntrinsics() { return false; }
202 static bool aarch64TblBuiltinExpr() { return false; }
203 static bool abiArgInfo() { return false; }
204 static bool addAutoInitAnnotation() { return false; }
205 static bool addHeapAllocSiteMetadata() { return false; }
206 static bool aggEmitFinalDestCopyRValue() { return false; }
207 static bool aggValueSlot() { return false; }
208 static bool aggValueSlotAlias() { return false; }
209 static bool aggValueSlotDestructedFlag() { return false; }
210 static bool aggValueSlotGC() { return false; }
211 static bool aggValueSlotMayOverlap() { return false; }
212 static bool aggValueSlotVolatile() { return false; }
213 static bool alignCXXRecordDecl() { return false; }
214 static bool allocToken() { return false; }
215 static bool appleArm64CXXABI() { return false; }
216 static bool appleKext() { return false; }
217 static bool armComputeVolatileBitfields() { return false; }
218 static bool asmGoto() { return false; }
219 static bool asmLabelAttr() { return false; }
220 static bool asmLLVMAssume() { return false; }
221 static bool asmMemoryEffects() { return false; }
222 static bool asmUnwindClobber() { return false; }
223 static bool asmVectorType() { return false; }
224 static bool assignMemcpyizer() { return false; }
225 static bool astVarDeclInterface() { return false; }
226 static bool attributeBuiltin() { return false; }
227 static bool attributeNoBuiltin() { return false; }
228 static bool bitfields() { return false; }
229 static bool builtinCall() { return false; }
230 static bool builtinCallF128() { return false; }
231 static bool builtinCallMathErrno() { return false; }
232 static bool builtinCheckKind() { return false; }
233 static bool cgCapturedStmtInfo() { return false; }
234 static bool countedBySize() { return false; }
235 static bool cgFPOptionsRAII() { return false; }
236 static bool checkBitfieldClipping() { return false; }
237 static bool cirgenABIInfo() { return false; }
238 static bool cleanupAfterErrorDiags() { return false; }
239 static bool cleanupAppendInsts() { return false; }
240 static bool cleanupBranchThrough() { return false; }
241 static bool cleanupIndexAndBIAdjustment() { return false; }
242 static bool cleanupWithPreservedValues() { return false; }
243 static bool cleanupsToDeactivate() { return false; }
244 static bool constEmitterAggILE() { return false; }
245 static bool constEmitterArrayILE() { return false; }
246 static bool constEmitterVectorILE() { return false; }
247 static bool constantFoldSwitchStatement() { return false; }
248 static bool constructABIArgDirectExtend() { return false; }
249 static bool coverageMapping() { return false; }
250 static bool createInvariantGroup() { return false; }
251 static bool createProfileWeightsForLoop() { return false; }
252 static bool ctorConstLvalueToRvalueConversion() { return false; }
253 static bool ctorMemcpyizer() { return false; }
254 static bool cudaSupport() { return false; }
255 static bool dataLayoutTypeIsSized() { return false; }
256 static bool dataLayoutTypeAllocSize() { return false; }
257 static bool dataLayoutTypeStoreSize() { return false; }
258 static bool dataLayoutPtrHandlingBasedOnLangAS() { return false; }
259 static bool deferredCXXGlobalInit() { return false; }
260 static bool deleteArray() { return false; }
261 static bool devirtualizeDestructor() { return false; }
262 static bool devirtualizeMemberFunction() { return false; }
263 static bool dtorCleanups() { return false; }
264 static bool ehCleanupActiveFlag() { return false; }
265 static bool ehCleanupHasPrebranchedFallthrough() { return false; }
266 static bool ehCleanupScope() { return false; }
267 static bool ehCleanupScopeRequiresEHCleanup() { return false; }
268 static bool ehCleanupBranchFixups() { return false; }
269 static bool ehScopeFilter() { return false; }
270 static bool ehstackBranches() { return false; }
271 static bool emitBranchThroughCleanup() { return false; }
272 static bool emitCheckedInBoundsGEP() { return false; }
273 static bool emitCondLikelihoodViaExpectIntrinsic() { return false; }
274 static bool emitConstrainedFPCall() { return false; }
275 static bool emitLifetimeMarkers() { return false; }
276 static bool emitLValueAlignmentAssumption() { return false; }
277 static bool emitNullCheckForDeleteCalls() { return false; }
278 static bool emitNullabilityCheck() { return false; }
279 static bool emitTypeCheck() { return false; }
280 static bool emitTypeMetadataCodeForVCall() { return false; }
281 static bool fastMathFlags() { return false; }
282
283 static bool fpConstraints() { return false; }
284 static bool generateDebugInfo() { return false; }
285 static bool getRuntimeFunctionDecl() { return false; }
286 static bool globalViewIndices() { return false; }
287 static bool globalViewIntLowering() { return false; }
288 static bool handleBuiltinICEArguments() { return false; }
289 static bool hip() { return false; }
290 static bool incrementProfileCounter() { return false; }
291 static bool innermostEHScope() { return false; }
292 static bool insertBuiltinUnpredictable() { return false; }
293 static bool instrumentation() { return false; }
294 static bool intrinsicElementTypeSupport() { return false; }
295 static bool intrinsics() { return false; }
296 static bool isMemcpyEquivalentSpecialMember() { return false; }
297 static bool isTrivialCtorOrDtor() { return false; }
298 static bool lambdaCaptures() { return false; }
299 static bool loopInfoStack() { return false; }
300 static bool lowerAggregateLoadStore() { return false; }
301 static bool lowerModeOptLevel() { return false; }
302 static bool loweringPrepareX86CXXABI() { return false; }
303 static bool loweringPrepareAArch64XXABI() { return false; }
304 static bool makeTripleAlwaysPresent() { return false; }
305 static bool maybeHandleStaticInExternC() { return false; }
306 static bool mergeAllConstants() { return false; }
307 static bool memberFuncPtrAuthInfo() { return false; }
308 static bool memberFuncPtrCast() { return false; }
309 static bool metaDataNode() { return false; }
310 static bool moduleNameHash() { return false; }
311 static bool msabi() { return false; }
312 static bool neonSISDIntrinsics() { return false; }
313 static bool nrvo() { return false; }
314 static bool objCBlocks() { return false; }
315 static bool objCGC() { return false; }
316 static bool objCLifetime() { return false; }
317 static bool hlsl() { return false; }
318 static bool msvcBuiltins() { return false; }
319 static bool openCL() { return false; }
320 static bool openMP() { return false; }
321 static bool opTBAA() { return false; }
322 static bool peepholeProtection() { return false; }
323 static bool pgoUse() { return false; }
324 static bool pointerAuthentication() { return false; }
325 static bool pointerOverflowSanitizer() { return false; }
326 static bool preservedAccessIndexRegion() { return false; }
327 static bool requiresCleanups() { return false; }
328 static bool runCleanupsScope() { return false; }
329 static bool sanitizers() { return false; }
330 static bool setDLLStorageClass() { return false; }
331 static bool setNonGC() { return false; }
332 static bool setObjCGCLValueClass() { return false; }
333 static bool setTargetAttributes() { return false; }
334 static bool shouldCreateMemCpyFromGlobal() { return false; }
335 static bool shouldSplitConstantStore() { return false; }
336 static bool shouldUseBZeroPlusStoresToInitialize() { return false; }
337 static bool shouldUseMemSetToInitialize() { return false; }
338 static bool simplifyCleanupEntry() { return false; }
339 static bool sourceLanguageCases() { return false; }
340 static bool stackBase() { return false; }
341 static bool stackSaveOp() { return false; }
342 static bool stackProtector() { return false; }
343 static bool targetCIRGenInfoArch() { return false; }
344 static bool targetCIRGenInfoOS() { return false; }
345 static bool targetCodeGenInfoGetNullPointer() { return false; }
346 static bool thunks() { return false; }
347 static bool tryEmitAsConstant() { return false; }
348 static bool typeChecks() { return false; }
349 static bool useEHCleanupForArray() { return false; }
350 static bool vaArgABILowering() { return false; }
351 static bool vectorConstants() { return false; }
352 static bool vlas() { return false; }
353 static bool vtableInitialization() { return false; }
354 static bool vtableEmitMetadata() { return false; }
355 static bool vtableRelativeLayout() { return false; }
356 static bool weakRefReference() { return false; }
357 static bool writebacks() { return false; }
358 static bool msvcCXXPersonality() { return false; }
359 static bool functionUsesSEHTry() { return false; }
360 static bool nothrowAttr() { return false; }
361
362 // Missing types
363 static bool dataMemberType() { return false; }
364 static bool matrixType() { return false; }
365 static bool methodType() { return false; }
366 static bool scalableVectors() { return false; }
367 static bool unsizedTypes() { return false; }
368 static bool vectorType() { return false; }
369 static bool fixedPointType() { return false; }
370 static bool stringTypeWithDifferentArraySize() { return false; }
371
372 // Future CIR operations
373 static bool awaitOp() { return false; }
374 static bool callOp() { return false; }
375 static bool ifOp() { return false; }
376 static bool labelOp() { return false; }
377 static bool ptrDiffOp() { return false; }
378 static bool llvmLoweringPtrDiffConsidersPointee() { return false; }
379 static bool ptrStrideOp() { return false; }
380 static bool switchOp() { return false; }
381 static bool throwOp() { return false; }
382 static bool tryOp() { return false; }
383 static bool vecTernaryOp() { return false; }
384 static bool zextOp() { return false; }
385
386 // Future CIR attributes
387 static bool optInfoAttr() { return false; }
388
389 // Maybe only needed for Windows exception handling
390 static bool currentFuncletPad() { return false; }
391};
392
393} // namespace cir
394
395#endif // CLANG_CIR_MISSINGFEATURES_H
static bool globalCtorLexOrder()
static bool alignCXXRecordDecl()
static bool opCallBitcastArg()
static bool opFuncArmNewAttr()
static bool metaDataNode()
static bool builtinCheckKind()
static bool getRuntimeFunctionDecl()
static bool opCallCIRGenFuncInfoExtParamInfo()
static bool cleanupBranchThrough()
static bool weakRefReference()
static bool functionUsesSEHTry()
static bool instrumentation()
static bool atomicInfoGetAtomicPointer()
static bool opFuncOptNoneAttr()
static bool ctorConstLvalueToRvalueConversion()
static bool opGlobalSection()
static bool dataMemberType()
static bool armComputeVolatileBitfields()
static bool asmMemoryEffects()
static bool supportVisibility()
static bool objCLifetime()
static bool ehCleanupActiveFlag()
static bool memberFuncPtrCast()
static bool emitLifetimeMarkers()
static bool opLoadEmitScalarRangeCheck()
static bool addAutoInitAnnotation()
static bool addressSpace()
static bool opFuncMinSizeAttr()
static bool opGlobalUnnamedAddr()
static bool vtableEmitMetadata()
static bool opLoadStoreThreadLocal()
static bool emitNullabilityCheck()
static bool asmLabelAttr()
static bool opAllocaNonGC()
static bool aggValueSlotDestructedFlag()
static bool msvcBuiltins()
static bool vtableInitialization()
static bool opCallAggregateArgs()
static bool ehScopeFilter()
static bool neonSISDIntrinsics()
static bool ehCleanupScope()
static bool fixedPointType()
static bool useEHCleanupForArray()
static bool handleBuiltinICEArguments()
static bool opGlobalThreadLocal()
static bool devirtualizeDestructor()
static bool aggValueSlotGC()
static bool aggValueSlotAlias()
static bool globalViewIntLowering()
static bool createProfileWeightsForLoop()
static bool vectorConstants()
static bool opAllocaAnnotations()
static bool dataLayoutTypeStoreSize()
static bool targetCodeGenInfoGetNullPointer()
static bool foldRangeCase()
static bool aggValueSlotMayOverlap()
static bool opAllocaOpenMPThreadPrivate()
static bool sourceLanguageCases()
static bool lowerAggregateLoadStore()
static bool emitTypeMetadataCodeForVCall()
static bool opFuncReadOnly()
static bool constructABIArgDirectExtend()
static bool appleArm64CXXABI()
static bool opFuncAstDeclAttr()
static bool opCallSurroundingTry()
static bool asmVectorType()
static bool atomicScope()
static bool addressPointerAuthInfo()
static bool preservedAccessIndexRegion()
static bool opFuncNoDuplicateAttr()
static bool devirtualizeMemberFunction()
static bool opGlobalAnnotations()
static bool opGlobalCtorPriority()
static bool opCallABIIndirectArg()
static bool mergeAllConstants()
static bool opLoadStoreAtomic()
static bool deleteArray()
static bool vecTernaryOp()
static bool cleanupIndexAndBIAdjustment()
static bool zeroSizeRecordMembers()
static bool opGlobalUsedOrCompilerUsed()
static bool opLoadStoreTbaa()
static bool cgFPOptionsRAII()
static bool aarch64SIMDIntrinsics()
static bool checkBitfieldClipping()
static bool loweringPrepareX86CXXABI()
static bool shouldSplitConstantStore()
static bool currentFuncletPad()
static bool opCallChain()
static bool opAllocaImpreciseLifetime()
static bool shouldUseMemSetToInitialize()
static bool nothrowAttr()
static bool stackProtector()
static bool moduleNameHash()
static bool aggEmitFinalDestCopyRValue()
static bool emitCFICheck()
static bool opCallReturn()
static bool aarch64SVEIntrinsics()
static bool isMemcpyEquivalentSpecialMember()
static bool emitVFEInfo()
static bool opGlobalVisibility()
static bool opAllocaStaticLocal()
static bool constEmitterArrayILE()
static bool setDLLStorageClass()
static bool opFuncUnwindTablesAttr()
static bool unsizedTypes()
static bool opFuncParameterAttributes()
static bool hiddenVisibility()
static bool targetCIRGenInfoArch()
static bool opCallASTAttr()
static bool ehCleanupScopeRequiresEHCleanup()
static bool optInfoAttr()
static bool dtorCleanups()
static bool aggValueSlot()
static bool dataLayoutPtrHandlingBasedOnLangAS()
static bool builtinCallF128()
static bool opCallSideEffect()
static bool opFuncNoUnwind()
static bool cxxabiAppleARM64CXXABI()
static bool opFuncNoReturn()
static bool opAllocaTLS()
static bool opFuncExtraAttrs()
static bool emitWPDInfo()
static bool opCallPaddingArgs()
static bool opFuncNakedAttr()
static bool globalViewIndices()
static bool cleanupsToDeactivate()
static bool shouldUseBZeroPlusStoresToInitialize()
static bool lowerModuleLangOpts()
static bool opFuncSection()
static bool coroutineExceptions()
static bool opCallExceptionAttr()
static bool opCallWidenArg()
static bool runCleanupsScope()
static bool shouldCreateMemCpyFromGlobal()
static bool atomicUseLibCall()
static bool emitCheckedInBoundsGEP()
static bool opCallExtParameterInfo()
static bool opCallLandingPad()
static bool loopInfoStack()
static bool emitConstrainedFPCall()
static bool atomicOpenMP()
static bool dataLayoutTypeAllocSize()
static bool attributeNoBuiltin()
static bool addressOffset()
static bool opFuncOpenCLKernelMetadata()
static bool vaArgABILowering()
static bool opGlobalDLLImportExport()
static bool fpConstraints()
static bool coverageMapping()
static bool emitTypeCheck()
static bool emitCondLikelihoodViaExpectIntrinsic()
static bool opUnaryPromotionType()
static bool constEmitterVectorILE()
static bool opGlobalPartition()
static bool skippedLayout()
static bool opCallObjCMethod()
static bool intrinsicElementTypeSupport()
static bool addHeapAllocSiteMetadata()
static bool setObjCGCLValueClass()
static bool cirgenABIInfo()
static bool stackSaveOp()
static bool opLoadStoreObjC()
static bool lowerModeOptLevel()
static bool opCallABIExtendArg()
static bool opCallArgEvaluationOrder()
static bool opGlobalWeakRef()
static bool opAllocaReference()
static bool peepholeProtection()
static bool opCallInAlloca()
static bool aarch64SMEIntrinsics()
static bool setTargetAttributes()
static bool deferredCXXGlobalInit()
static bool createInvariantGroup()
static bool mayHaveIntegerOverflow()
static bool opFuncOperandBundles()
static bool isTrivialCtorOrDtor()
static bool pointerAuthentication()
static bool cleanupAfterErrorDiags()
static bool opCallCallConv()
static bool constantFoldSwitchStatement()
static bool ptrStrideOp()
static bool lambdaCaptures()
static bool astRecordDeclAttr()
static bool opFuncCallingConv()
static bool dataLayoutTypeIsSized()
static bool asmUnwindClobber()
static bool insertBuiltinUnpredictable()
static bool ehstackBranches()
static bool opCallAttrs()
static bool aarch64TblBuiltinExpr()
static bool pointerOverflowSanitizer()
static bool countedBySize()
static bool builtinCallMathErrno()
static bool aggValueSlotVolatile()
static bool opCallImplicitObjectSizeArgs()
static bool opAllocaCaptureByInit()
static bool opCallMustTail()
static bool fastMathFlags()
static bool globalCtorAssociatedData()
static bool innermostEHScope()
static bool shouldReverseUnaryCondOnBoolExpr()
static bool tryEmitAsConstant()
static bool opScopeCleanupRegion()
static bool opCallContinueBlock()
static bool asmLLVMAssume()
static bool defaultVisibility()
static bool constEmitterAggILE()
static bool assignMemcpyizer()
static bool opFuncWillReturn()
static bool emitBranchThroughCleanup()
static bool setComdat()
static bool addressIsKnownNonNull()
static bool opFuncColdHotAttr()
static bool lowerModuleCodeGenOpts()
static bool opFuncExceptions()
static bool opFuncArmStreamingAttr()
static bool protectedVisibility()
static bool loweringPrepareAArch64XXABI()
static bool llvmLoweringPtrDiffConsidersPointee()
static bool atomicMicrosoftVolatile()
static bool deferredVtables()
static bool cxxabiUseARMGuardVarABI()
static bool stringTypeWithDifferentArraySize()
static bool atomicTypes()
static bool ctorMemcpyizer()
static bool astVarDeclInterface()
static bool atomicMapTargetSyncScope()
static bool builtinCall()
static bool cxxabiUseARMMethodPtrABI()
static bool exprNewNullCheck()
static bool cgCapturedStmtInfo()
static bool opAllocaPreciseLifetime()
static bool attributeBuiltin()
static bool cudaSupport()
static bool scalableVectors()
static bool supportIFuncAttr()
static bool opFuncMaybeHandleStaticInExternC()
static bool ehCleanupBranchFixups()
static bool coroOutsideFrameMD()
static bool requiresCleanups()
static bool opAllocaEscapeByReference()
static bool opLoadStoreNontemporal()
static bool makeTripleAlwaysPresent()
static bool emitNullCheckForDeleteCalls()
static bool ehCleanupHasPrebranchedFallthrough()
static bool opCallFnInfoOpts()
static bool cleanupAppendInsts()
static bool atomicSyncScopeID()
static bool memberFuncPtrAuthInfo()
static bool msvcCXXPersonality()
static bool generateDebugInfo()
static bool setDSOLocal()
static bool targetCIRGenInfoOS()
static bool cleanupWithPreservedValues()
static bool vtableRelativeLayout()
static bool deferredFuncDecls()
static bool simplifyCleanupEntry()
static bool emitLValueAlignmentAssumption()
static bool opFuncMultipleReturnVals()
static bool opCallCIRGenFuncInfoParamInfo()
static bool targetLoweringInfo()
static bool opFuncCPUAndFeaturesAttributes()
static bool maybeHandleStaticInExternC()
static bool cxxabiThisAlignment()
static bool setLLVMFunctionFEnvAttributes()
static bool atomicInfoGetAtomicAddress()
static bool incrementProfileCounter()