1 module llvm.constants; 2 3 import llvm.config; 4 import llvm.types; 5 6 /+ Analysis +/ 7 8 enum : LLVMVerifierFailureAction 9 { 10 LLVMAbortProcessAction, 11 LLVMPrintMessageAction, 12 LLVMReturnStatusAction 13 } 14 15 /+ Core +/ 16 17 /++ Types and Enumerations ++/ 18 19 static if (LLVM_Version < asVersion(4, 0, 0)) 20 { 21 enum : LLVMAttribute 22 { 23 LLVMZExtAttribute = 1<<0, 24 LLVMSExtAttribute = 1<<1, 25 LLVMNoReturnAttribute = 1<<2, 26 LLVMInRegAttribute = 1<<3, 27 LLVMStructRetAttribute = 1<<4, 28 LLVMNoUnwindAttribute = 1<<5, 29 LLVMNoAliasAttribute = 1<<6, 30 LLVMByValAttribute = 1<<7, 31 LLVMNestAttribute = 1<<8, 32 LLVMReadNoneAttribute = 1<<9, 33 LLVMReadOnlyAttribute = 1<<10, 34 LLVMNoInlineAttribute = 1<<11, 35 LLVMAlwaysInlineAttribute = 1<<12, 36 LLVMOptimizeForSizeAttribute = 1<<13, 37 LLVMStackProtectAttribute = 1<<14, 38 LLVMStackProtectReqAttribute = 1<<15, 39 LLVMAlignment = 31<<16, 40 LLVMNoCaptureAttribute = 1<<21, 41 LLVMNoRedZoneAttribute = 1<<22, 42 LLVMNoImplicitFloatAttribute = 1<<23, 43 LLVMNakedAttribute = 1<<24, 44 LLVMInlineHintAttribute = 1<<25, 45 LLVMStackAlignment = 7<<26, 46 LLVMReturnsTwice = 1<<29, 47 LLVMUWTable = 1<<30, 48 LLVMNonLazyBind = 1<<31 49 } 50 } 51 52 enum : LLVMOpcode 53 { 54 LLVMRet = 1, 55 LLVMBr = 2, 56 LLVMSwitch = 3, 57 LLVMIndirectBr = 4, 58 LLVMInvoke = 5, 59 LLVMUnreachable = 7, 60 LLVMAdd = 8, 61 LLVMFAdd = 9, 62 LLVMSub = 10, 63 LLVMFSub = 11, 64 LLVMMul = 12, 65 LLVMFMul = 13, 66 LLVMUDiv = 14, 67 LLVMSDiv = 15, 68 LLVMFDiv = 16, 69 LLVMURem = 17, 70 LLVMSRem = 18, 71 LLVMFRem = 19, 72 LLVMShl = 20, 73 LLVMLShr = 21, 74 LLVMAShr = 22, 75 LLVMAnd = 23, 76 LLVMOr = 24, 77 LLVMXor = 25, 78 LLVMAlloca = 26, 79 LLVMLoad = 27, 80 LLVMStore = 28, 81 LLVMGetElementPtr = 29, 82 LLVMTrunc = 30, 83 LLVMZExt = 31, 84 LLVMSExt = 32, 85 LLVMFPToUI = 33, 86 LLVMFPToSI = 34, 87 LLVMUIToFP = 35, 88 LLVMSIToFP = 36, 89 LLVMFPTrunc = 37, 90 LLVMFPExt = 38, 91 LLVMPtrToInt = 39, 92 LLVMIntToPtr = 40, 93 LLVMBitCast = 41, 94 LLVMICmp = 42, 95 LLVMFCmp = 43, 96 LLVMPHI = 44, 97 LLVMCall = 45, 98 LLVMSelect = 46, 99 LLVMUserOp1 = 47, 100 LLVMUserOp2 = 48, 101 LLVMVAArg = 49, 102 LLVMExtractElement = 50, 103 LLVMInsertElement = 51, 104 LLVMShuffleVector = 52, 105 LLVMExtractValue = 53, 106 LLVMInsertValue = 54, 107 LLVMFence = 55, 108 LLVMAtomicCmpXchg = 56, 109 LLVMAtomicRMW = 57, 110 LLVMResume = 58, 111 LLVMLandingPad = 59, 112 } 113 static if (LLVM_Version >= asVersion(3, 4, 0)) 114 { 115 enum : LLVMOpcode 116 { 117 LLVMAddrSpaceCast = 60 118 } 119 } 120 static if (LLVM_Version >= asVersion(3, 8, 0)) 121 { 122 enum : LLVMOpcode 123 { 124 LLVMCleanupRet = 61, 125 LLVMCatchRet = 62, 126 LLVMCatchPad = 63, 127 LLVMCleanupPad = 64, 128 LLVMCatchSwitch = 65 129 } 130 } 131 static if (LLVM_Version >= asVersion(8, 0, 0)) 132 { 133 enum : LLVMOpcode 134 { 135 LLVMFNeg = 66 136 } 137 } 138 static if (LLVM_Version >= asVersion(9, 0, 0)) 139 { 140 enum : LLVMOpcode 141 { 142 LLVMCallBr = 67 143 } 144 } 145 static if (LLVM_Version >= asVersion(10, 0, 0)) 146 { 147 enum : LLVMOpcode 148 { 149 LLVMFreeze = 68 150 } 151 } 152 153 static if (LLVM_Version >= asVersion(3, 9, 0)) 154 { 155 enum : LLVMValueKind 156 { 157 LLVMArgumentValueKind, 158 LLVMBasicBlockValueKind, 159 LLVMMemoryUseValueKind, 160 LLVMMemoryDefValueKind, 161 LLVMMemoryPhiValueKind, 162 LLVMFunctionValueKind, 163 LLVMGlobalAliasValueKind, 164 LLVMGlobalIFuncValueKind, 165 LLVMGlobalVariableValueKind, 166 LLVMBlockAddressValueKind, 167 LLVMConstantExprValueKind, 168 LLVMConstantArrayValueKind, 169 LLVMConstantStructValueKind, 170 LLVMConstantVectorValueKind, 171 LLVMUndefValueValueKind, 172 LLVMConstantAggregateZeroValueKind, 173 LLVMConstantDataArrayValueKind, 174 LLVMConstantDataVectorValueKind, 175 LLVMConstantIntValueKind, 176 LLVMConstantFPValueKind, 177 LLVMConstantPointerNullValueKind, 178 LLVMConstantTokenNoneValueKind, 179 LLVMMetadataAsValueValueKind, 180 LLVMInlineAsmValueKind, 181 LLVMInstructionValueKind, 182 } 183 184 enum : LLVMAttributeIndex 185 { 186 LLVMAttributeReturnIndex = 0U, 187 LLVMAttributeFunctionIndex = -1, 188 } 189 } 190 191 static if (LLVM_Version >= asVersion(3, 8, 0)) { 192 enum : LLVMTypeKind 193 { 194 LLVMVoidTypeKind, 195 LLVMHalfTypeKind, 196 LLVMFloatTypeKind, 197 LLVMDoubleTypeKind, 198 LLVMX86_FP80TypeKind, 199 LLVMFP128TypeKind, 200 LLVMPPC_FP128TypeKind, 201 LLVMLabelTypeKind, 202 LLVMIntegerTypeKind, 203 LLVMFunctionTypeKind, 204 LLVMStructTypeKind, 205 LLVMArrayTypeKind, 206 LLVMPointerTypeKind, 207 LLVMVectorTypeKind, 208 LLVMMetadataTypeKind, 209 LLVMX86_MMXTypeKind, 210 LLVMTokenTypeKind 211 } 212 } else { 213 enum : LLVMTypeKind 214 { 215 LLVMVoidTypeKind, 216 LLVMHalfTypeKind, 217 LLVMFloatTypeKind, 218 LLVMDoubleTypeKind, 219 LLVMX86_FP80TypeKind, 220 LLVMFP128TypeKind, 221 LLVMPPC_FP128TypeKind, 222 LLVMLabelTypeKind, 223 LLVMIntegerTypeKind, 224 LLVMFunctionTypeKind, 225 LLVMStructTypeKind, 226 LLVMArrayTypeKind, 227 LLVMPointerTypeKind, 228 LLVMVectorTypeKind, 229 LLVMMetadataTypeKind, 230 LLVMX86_MMXTypeKind, 231 LLVMTokenTypeKind 232 } 233 } 234 235 static if (LLVM_Version >= asVersion(3, 2, 0)) { 236 enum : LLVMLinkage 237 { 238 LLVMExternalLinkage, 239 LLVMAvailableExternallyLinkage, 240 LLVMLinkOnceAnyLinkage, 241 LLVMLinkOnceODRLinkage, 242 LLVMLinkOnceODRAutoHideLinkage, 243 LLVMWeakAnyLinkage, 244 LLVMWeakODRLinkage, 245 LLVMAppendingLinkage, 246 LLVMInternalLinkage, 247 LLVMPrivateLinkage, 248 LLVMDLLImportLinkage, 249 LLVMDLLExportLinkage, 250 LLVMExternalWeakLinkage, 251 LLVMGhostLinkage, 252 LLVMCommonLinkage, 253 LLVMLinkerPrivateLinkage, 254 LLVMLinkerPrivateWeakLinkage, 255 } 256 } else { 257 enum : LLVMLinkage 258 { 259 LLVMExternalLinkage, 260 LLVMAvailableExternallyLinkage, 261 LLVMLinkOnceAnyLinkage, 262 LLVMLinkOnceODRLinkage, 263 LLVMWeakAnyLinkage, 264 LLVMWeakODRLinkage, 265 LLVMAppendingLinkage, 266 LLVMInternalLinkage, 267 LLVMPrivateLinkage, 268 LLVMDLLImportLinkage, 269 LLVMDLLExportLinkage, 270 LLVMExternalWeakLinkage, 271 LLVMGhostLinkage, 272 LLVMCommonLinkage, 273 LLVMLinkerPrivateLinkage, 274 LLVMLinkerPrivateWeakLinkage, 275 LLVMLinkerPrivateWeakDefAutoLinkage 276 } 277 } 278 279 enum : LLVMVisibility 280 { 281 LLVMDefaultVisibility, 282 LLVMHiddenVisibility, 283 LLVMProtectedVisibility 284 } 285 286 static if (LLVM_Version >= asVersion(3, 5, 0)) 287 { 288 enum : LLVMDLLStorageClass { 289 LLVMDefaultStorageClass = 0, 290 LLVMDLLImportStorageClass = 1, 291 LLVMDLLExportStorageClass = 2 292 } 293 } 294 295 static if (LLVM_Version >= asVersion(7, 0, 0)) 296 { 297 enum : LLVMCallConv { 298 LLVMCCallConv = 0, 299 LLVMFastCallConv = 8, 300 LLVMColdCallConv = 9, 301 LLVMGHCCallConv = 10, 302 LLVMHiPECallConv = 11, 303 LLVMWebKitJSCallConv = 12, 304 LLVMAnyRegCallConv = 13, 305 LLVMPreserveMostCallConv = 14, 306 LLVMPreserveAllCallConv = 15, 307 LLVMSwiftCallConv = 16, 308 LLVMCXXFASTTLSCallConv = 17, 309 LLVMX86StdcallCallConv = 64, 310 LLVMX86FastcallCallConv = 65, 311 LLVMARMAPCSCallConv = 66, 312 LLVMARMAAPCSCallConv = 67, 313 LLVMARMAAPCSVFPCallConv = 68, 314 LLVMMSP430INTRCallConv = 69, 315 LLVMX86ThisCallCallConv = 70, 316 LLVMPTXKernelCallConv = 71, 317 LLVMPTXDeviceCallConv = 72, 318 LLVMSPIRFUNCCallConv = 75, 319 LLVMSPIRKERNELCallConv = 76, 320 LLVMIntelOCLBICallConv = 77, 321 LLVMX8664SysVCallConv = 78, 322 LLVMWin64CallConv = 79, 323 LLVMX86VectorCallCallConv = 80, 324 LLVMHHVMCallConv = 81, 325 LLVMHHVMCCallConv = 82, 326 LLVMX86INTRCallConv = 83, 327 LLVMAVRINTRCallConv = 84, 328 LLVMAVRSIGNALCallConv = 85, 329 LLVMAVRBUILTINCallConv = 86, 330 LLVMAMDGPUVSCallConv = 87, 331 LLVMAMDGPUGSCallConv = 88, 332 LLVMAMDGPUPSCallConv = 89, 333 LLVMAMDGPUCSCallConv = 90, 334 LLVMAMDGPUKERNELCallConv = 91, 335 LLVMX86RegCallCallConv = 92, 336 LLVMAMDGPUHSCallConv = 93, 337 LLVMMSP430BUILTINCallConv = 94, 338 LLVMAMDGPULSCallConv = 95, 339 LLVMAMDGPUESCallConv = 96 340 } 341 } 342 else static if (LLVM_Version >= asVersion(3, 4, 0)) 343 { 344 enum : LLVMCallConv { 345 LLVMCCallConv = 0, 346 LLVMFastCallConv = 8, 347 LLVMColdCallConv = 9, 348 LLVMWebKitJSCallConv = 12, 349 LLVMAnyRegCallConv = 13, 350 LLVMX86StdcallCallConv = 64, 351 LLVMX86FastcallCallConv = 65 352 } 353 } else { 354 enum : LLVMCallConv { 355 LLVMCCallConv = 0, 356 LLVMFastCallConv = 8, 357 LLVMColdCallConv = 9, 358 LLVMX86StdcallCallConv = 64, 359 LLVMX86FastcallCallConv = 65 360 } 361 } 362 363 enum : LLVMIntPredicate 364 { 365 LLVMIntEQ = 32, 366 LLVMIntNE, 367 LLVMIntUGT, 368 LLVMIntUGE, 369 LLVMIntULT, 370 LLVMIntULE, 371 LLVMIntSGT, 372 LLVMIntSGE, 373 LLVMIntSLT, 374 LLVMIntSLE 375 } 376 377 enum : LLVMRealPredicate 378 { 379 LLVMRealPredicateFalse, 380 LLVMRealOEQ, 381 LLVMRealOGT, 382 LLVMRealOGE, 383 LLVMRealOLT, 384 LLVMRealOLE, 385 LLVMRealONE, 386 LLVMRealORD, 387 LLVMRealUNO, 388 LLVMRealUEQ, 389 LLVMRealUGT, 390 LLVMRealUGE, 391 LLVMRealULT, 392 LLVMRealULE, 393 LLVMRealUNE, 394 LLVMRealPredicateTrue 395 } 396 397 enum : LLVMLandingPadClauseTy 398 { 399 LLVMLandingPadCatch, 400 LLVMLandingPadFilter 401 } 402 403 static if (LLVM_Version >= asVersion(3, 3, 0)) 404 { 405 enum : LLVMThreadLocalMode 406 { 407 LLVMNotThreadLocal = 0, 408 LLVMGeneralDynamicTLSModel, 409 LLVMLocalDynamicTLSModel, 410 LLVMInitialExecTLSModel, 411 LLVMLocalExecTLSModel 412 } 413 414 enum : LLVMAtomicOrdering 415 { 416 LLVMAtomicOrderingNotAtomic = 0, 417 LLVMAtomicOrderingUnordered = 1, 418 LLVMAtomicOrderingMonotonic = 2, 419 LLVMAtomicOrderingAcquire = 4, 420 LLVMAtomicOrderingRelease = 5, 421 LLVMAtomicOrderingAcquireRelease = 6, 422 LLVMAtomicOrderingSequentiallyConsistent = 7 423 } 424 425 static if (LLVM_Version >= asVersion(10, 0, 0)) 426 { 427 enum : LLVMAtomicRMWBinOp 428 { 429 LLVMAtomicRMWBinOpXchg, 430 LLVMAtomicRMWBinOpAdd, 431 LLVMAtomicRMWBinOpSub, 432 LLVMAtomicRMWBinOpAnd, 433 LLVMAtomicRMWBinOpNand, 434 LLVMAtomicRMWBinOpOr, 435 LLVMAtomicRMWBinOpXor, 436 LLVMAtomicRMWBinOpMax, 437 LLVMAtomicRMWBinOpMin, 438 LLVMAtomicRMWBinOpUMax, 439 LLVMAtomicRMWBinOpUMin, 440 LLVMAtomicRMWBinOpFAdd, 441 LLVMAtomicRMWBinOpFSub 442 } 443 } 444 else 445 { 446 enum : LLVMAtomicRMWBinOp 447 { 448 LLVMAtomicRMWBinOpXchg, 449 LLVMAtomicRMWBinOpAdd, 450 LLVMAtomicRMWBinOpSub, 451 LLVMAtomicRMWBinOpAnd, 452 LLVMAtomicRMWBinOpNand, 453 LLVMAtomicRMWBinOpOr, 454 LLVMAtomicRMWBinOpXor, 455 LLVMAtomicRMWBinOpMax, 456 LLVMAtomicRMWBinOpMin, 457 LLVMAtomicRMWBinOpUMax, 458 LLVMAtomicRMWBinOpUMin 459 } 460 } 461 } 462 static if (LLVM_Version >= asVersion(3, 5, 0)) 463 { 464 enum : LLVMDiagnosticSeverity { 465 LLVMDSError, 466 LLVMDSWarning, 467 LLVMDSRemark, 468 LLVMDSNote 469 } 470 } 471 472 /+ Disassembler +/ 473 474 //TODO: replace const with enum? 475 const 476 { 477 uint LLVMDisassembler_VariantKind_None = 0; 478 uint LLVMDisassembler_VariantKind_ARM_HI16 = 1; 479 uint LLVMDisassembler_VariantKind_ARM_LO16 = 2; 480 static if (LLVM_Version >= asVersion(3, 5, 0)) 481 { 482 uint LLVMDisassembler_VariantKind_ARM64_PAGE = 1; 483 uint LLVMDisassembler_VariantKind_ARM64_PAGEOFF = 2; 484 uint LLVMDisassembler_VariantKind_ARM64_GOTPAGE = 3; 485 uint LLVMDisassembler_VariantKind_ARM64_GOTPAGEOFF = 4; 486 uint LLVMDisassembler_VariantKind_ARM64_TLVP = 5; 487 uint LLVMDisassembler_VariantKind_ARM64_TLVOFF = 6; 488 } 489 uint LLVMDisassembler_ReferenceType_InOut_None = 0; 490 uint LLVMDisassembler_ReferenceType_In_Branch = 1; 491 uint LLVMDisassembler_ReferenceType_In_PCrel_Load = 2; 492 static if (LLVM_Version >= asVersion(3, 5, 0)) 493 { 494 ulong LLVMDisassembler_ReferenceType_In_ARM64_ADRP = 0x100000001; 495 ulong LLVMDisassembler_ReferenceType_In_ARM64_ADDXri = 0x100000002; 496 ulong LLVMDisassembler_ReferenceType_In_ARM64_LDRXui = 0x100000003; 497 ulong LLVMDisassembler_ReferenceType_In_ARM64_LDRXl = 0x100000004; 498 ulong LLVMDisassembler_ReferenceType_In_ARM64_ADR = 0x100000005; 499 } 500 uint LLVMDisassembler_ReferenceType_Out_SymbolStub = 1; 501 uint LLVMDisassembler_ReferenceType_Out_LitPool_SymAddr = 2; 502 uint LLVMDisassembler_ReferenceType_Out_LitPool_CstrAddr = 3; 503 static if (LLVM_Version >= asVersion(3, 2, 0)) 504 { 505 uint LLVMDisassembler_Option_UseMarkup = 1; 506 } 507 static if (LLVM_Version >= asVersion(3, 3, 0)) 508 { 509 uint LLVMDisassembler_Option_PrintImmHex = 2; 510 uint LLVMDisassembler_Option_AsmPrinterVariant = 4; 511 } 512 static if (LLVM_Version >= asVersion(3, 4, 0)) 513 { 514 uint LLVMDisassembler_ReferenceType_Out_Objc_CFString_Ref = 4; 515 uint LLVMDisassembler_ReferenceType_Out_Objc_Message = 5; 516 uint LLVMDisassembler_ReferenceType_Out_Objc_Message_Ref = 6; 517 uint LLVMDisassembler_ReferenceType_Out_Objc_Selector_Ref = 7; 518 uint LLVMDisassembler_ReferenceType_Out_Objc_Class_Ref = 8; 519 uint LLVMDisassembler_Option_SetInstrComments = 8; 520 uint LLVMDisassembler_Option_PrintLatency = 16; 521 } 522 static if (LLVM_Version >= asVersion(3, 5, 0)) 523 { 524 uint LLVMDisassembler_ReferenceType_DeMangled_Name = 9; 525 } 526 } 527 528 static if (LLVM_Version < asVersion(3, 3, 0)) 529 { 530 /+ Enhanced Disassembly +/ 531 532 enum : EDAssemblySyntax_t 533 { 534 kEDAssemblySyntaxX86Intel = 0, 535 kEDAssemblySyntaxX86ATT = 1, 536 kEDAssemblySyntaxARMUAL = 2 537 } 538 } 539 540 /+ Linker +/ 541 static if (LLVM_Version >= asVersion(3, 2, 0)) 542 { 543 enum : LLVMLinkerMode 544 { 545 LLVMLinkerDestroySource = 0 546 } 547 548 static if (LLVM_Version < asVersion(3, 7, 0)) 549 { 550 enum : LLVMLinkerMode 551 { 552 LLVMLinkerPreserveSource = 1 553 } 554 } 555 } 556 557 /+ Link Time Optimization +/ 558 559 enum : llvm_lto_status 560 { 561 LLVM_LTO_UNKNOWN, 562 LLVM_LTO_OPT_SUCCESS, 563 LLVM_LTO_READ_SUCCESS, 564 LLVM_LTO_READ_FAILURE, 565 LLVM_LTO_WRITE_FAILURE, 566 LLVM_LTO_NO_TARGET, 567 LLVM_LTO_NO_WORK, 568 LLVM_LTO_MODULE_MERGE_FAILURE, 569 LLVM_LTO_ASM_FAILURE, 570 LLVM_LTO_NULL_OBJECT 571 } 572 573 /+ LTO +/ 574 static if (LLVM_Version >= asVersion(10, 0, 0)) 575 { 576 const uint LTO_API_VERSION = 26; 577 } 578 else static if (LLVM_Version >= asVersion(9, 0, 0)) 579 { 580 const uint LTO_API_VERSION = 24; 581 } 582 else static if (LLVM_Version >= asVersion(8, 0, 0)) 583 { 584 const uint LTO_API_VERSION = 23; 585 } 586 else static if (LLVM_Version >= asVersion(7, 0, 0)) 587 { 588 const uint LTO_API_VERSION = 22; 589 } 590 else static if (LLVM_Version >= asVersion(4, 0, 0)) 591 { 592 const uint LTO_API_VERSION = 21; 593 } 594 else static if (LLVM_Version >= asVersion(3, 9, 0)) 595 { 596 const uint LTO_API_VERSION = 20; 597 } 598 else static if (LLVM_Version >= asVersion(3, 7, 0)) 599 { 600 const uint LTO_API_VERSION = 17; 601 } 602 else static if (LLVM_Version >= asVersion(3, 6, 0)) 603 { 604 const uint LTO_API_VERSION = 11; 605 } 606 else static if (LLVM_Version >= asVersion(3, 5, 0)) 607 { 608 const uint LTO_API_VERSION = 10; 609 } 610 else static if (LLVM_Version >= asVersion(3, 4, 0)) 611 { 612 const uint LTO_API_VERSION = 5; 613 } 614 else 615 { 616 const uint LTO_API_VERSION = 4; 617 } 618 619 enum : lto_symbol_attributes 620 { 621 LTO_SYMBOL_ALIGNMENT_MASK = 0x0000001F, 622 LTO_SYMBOL_PERMISSIONS_MASK = 0x000000E0, 623 LTO_SYMBOL_PERMISSIONS_CODE = 0x000000A0, 624 LTO_SYMBOL_PERMISSIONS_DATA = 0x000000C0, 625 LTO_SYMBOL_PERMISSIONS_RODATA = 0x00000080, 626 LTO_SYMBOL_DEFINITION_MASK = 0x00000700, 627 LTO_SYMBOL_DEFINITION_REGULAR = 0x00000100, 628 LTO_SYMBOL_DEFINITION_TENTATIVE = 0x00000200, 629 LTO_SYMBOL_DEFINITION_WEAK = 0x00000300, 630 LTO_SYMBOL_DEFINITION_UNDEFINED = 0x00000400, 631 LTO_SYMBOL_DEFINITION_WEAKUNDEF = 0x00000500, 632 LTO_SYMBOL_SCOPE_MASK = 0x00003800, 633 LTO_SYMBOL_SCOPE_INTERNAL = 0x00000800, 634 LTO_SYMBOL_SCOPE_HIDDEN = 0x00001000, 635 LTO_SYMBOL_SCOPE_PROTECTED = 0x00002000, 636 LTO_SYMBOL_SCOPE_DEFAULT = 0x00001800, 637 LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN = 0x00002800, 638 } 639 static if (LLVM_Version >= asVersion(3, 7, 0)) 640 { 641 enum : lto_symbol_attributes 642 { 643 LTO_SYMBOL_COMDAT = 0x00004000, 644 LTO_SYMBOL_ALIAS = 0x00008000 645 } 646 } 647 648 enum : lto_debug_model 649 { 650 LTO_DEBUG_MODEL_NONE = 0, 651 LTO_DEBUG_MODEL_DWARF = 1 652 } 653 654 enum : lto_codegen_model 655 { 656 LTO_CODEGEN_PIC_MODEL_STATIC = 0, 657 LTO_CODEGEN_PIC_MODEL_DYNAMIC = 1, 658 LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC = 2, 659 LTO_CODEGEN_PIC_MODEL_DEFAULT = 3 660 } 661 662 static if (LLVM_Version >= asVersion(3, 5, 0)) 663 { 664 enum : lto_codegen_diagnostic_severity_t 665 { 666 LTO_DS_ERROR = 0, 667 LTO_DS_WARNING = 1, 668 LTO_DS_REMARK = 3, 669 LTO_DS_NOTE = 2 670 } 671 } 672 673 /+ Object file reading and writing +/ 674 675 static if (LLVM_Version >= asVersion(9, 0, 0)) 676 { 677 enum : LLVMBinaryType 678 { 679 LLVMBinaryTypeArchive, 680 LLVMBinaryTypeMachOUniversalBinary, 681 LLVMBinaryTypeCOFFImportFile, 682 LLVMBinaryTypeIR, 683 LLVMBinaryTypeWinRes, 684 LLVMBinaryTypeCOFF, 685 LLVMBinaryTypeELF32L, 686 LLVMBinaryTypeELF32B, 687 LLVMBinaryTypeELF64L, 688 LLVMBinaryTypeELF64B, 689 LLVMBinaryTypeMachO32L, 690 LLVMBinaryTypeMachO32B, 691 LLVMBinaryTypeMachO64L, 692 LLVMBinaryTypeMachO64B, 693 LLVMBinaryTypeWasm 694 } 695 } 696 697 /+ Target information +/ 698 699 enum : LLVMByteOrdering 700 { 701 LLVMBigEndian, 702 LLVMLittleEndian 703 } 704 705 /+ Target machine +/ 706 707 enum : LLVMCodeGenOptLevel 708 { 709 LLVMCodeGenLevelNone, 710 LLVMCodeGenLevelLess, 711 LLVMCodeGenLevelDefault, 712 LLVMCodeGenLevelAggressive 713 } 714 715 static if (LLVM_Version >= asVersion(8, 0, 0)) { 716 enum : LLVMRelocMode 717 { 718 LLVMRelocDefault, 719 LLVMRelocStatic, 720 LLVMRelocPIC, 721 LLVMRelocDynamicNoPic, 722 LLVMRelocROPI, 723 LLVMRelocRWPI, 724 LLVMRelocROPI_RWPI 725 } 726 } else { 727 enum : LLVMRelocMode 728 { 729 LLVMRelocDefault, 730 LLVMRelocStatic, 731 LLVMRelocPIC, 732 LLVMRelocDynamicNoPic 733 } 734 } 735 736 static if (LLVM_Version >= asVersion(8, 0, 0)) { 737 enum : LLVMCodeModel 738 { 739 LLVMCodeModelDefault, 740 LLVMCodeModelJITDefault, 741 LLVMCodeModelTiny, 742 LLVMCodeModelSmall, 743 LLVMCodeModelKernel, 744 LLVMCodeModelMedium, 745 LLVMCodeModelLarge 746 } 747 } else { 748 enum : LLVMCodeModel 749 { 750 LLVMCodeModelDefault, 751 LLVMCodeModelJITDefault, 752 LLVMCodeModelSmall, 753 LLVMCodeModelKernel, 754 LLVMCodeModelMedium, 755 LLVMCodeModelLarge 756 } 757 } 758 759 enum : LLVMCodeGenFileType 760 { 761 LLVMAssemblyFile, 762 LLVMObjectFile 763 } 764 765 /+ Orc +/ 766 767 static if (LLVM_Version >= asVersion(3, 9, 0) && LLVM_Version < asVersion(8, 0, 0)) 768 { 769 enum : LLVMOrcErrorCode 770 { 771 LLVMOrcErrSuccess = 0, 772 LLVMOrcErrGeneric, 773 } 774 } 775 776 /+ Debug info flags +/ 777 778 static if (LLVM_Version >= asVersion(10, 0, 0)) 779 { 780 enum : LLVMDIFlags { 781 LLVMDIFlagZero = 0, 782 LLVMDIFlagPrivate = 1, 783 LLVMDIFlagProtected = 2, 784 LLVMDIFlagPublic = 3, 785 LLVMDIFlagFwdDecl = 1 << 2, 786 LLVMDIFlagAppleBlock = 1 << 3, 787 LLVMDIFlagReservedBit4 = 1 << 4, 788 LLVMDIFlagVirtual = 1 << 5, 789 LLVMDIFlagArtificial = 1 << 6, 790 LLVMDIFlagExplicit = 1 << 7, 791 LLVMDIFlagPrototyped = 1 << 8, 792 LLVMDIFlagObjcClassComplete = 1 << 9, 793 LLVMDIFlagObjectPointer = 1 << 10, 794 LLVMDIFlagVector = 1 << 11, 795 LLVMDIFlagStaticMember = 1 << 12, 796 LLVMDIFlagLValueReference = 1 << 13, 797 LLVMDIFlagRValueReference = 1 << 14, 798 LLVMDIFlagReserved = 1 << 15, 799 LLVMDIFlagSingleInheritance = 1 << 16, 800 LLVMDIFlagMultipleInheritance = 2 << 16, 801 LLVMDIFlagVirtualInheritance = 3 << 16, 802 LLVMDIFlagIntroducedVirtual = 1 << 18, 803 LLVMDIFlagBitField = 1 << 19, 804 LLVMDIFlagNoReturn = 1 << 20, 805 LLVMDIFlagTypePassByValue = 1 << 22, 806 LLVMDIFlagTypePassByReference = 1 << 23, 807 LLVMDIFlagEnumClass = 1 << 24, 808 LLVMDIFlagFixedEnum = LLVMDIFlagEnumClass, 809 LLVMDIFlagThunk = 1 << 25, 810 LLVMDIFlagNonTrivial = 1 << 26, 811 LLVMDIFlagBigEndian = 1 << 27, 812 LLVMDIFlagLittleEndian = 1 << 28, 813 LLVMDIFlagIndirectVirtualBase = (1 << 2) | (1 << 5), 814 LLVMDIFlagAccessibility = LLVMDIFlagPrivate | LLVMDIFlagProtected | LLVMDIFlagPublic, 815 LLVMDIFlagPtrToMemberRep = LLVMDIFlagSingleInheritance | LLVMDIFlagMultipleInheritance | LLVMDIFlagVirtualInheritance 816 } 817 } 818 else static if (LLVM_Version >= asVersion(9, 0, 0)) 819 { 820 enum : LLVMDIFlags { 821 LLVMDIFlagZero = 0, 822 LLVMDIFlagPrivate = 1, 823 LLVMDIFlagProtected = 2, 824 LLVMDIFlagPublic = 3, 825 LLVMDIFlagFwdDecl = 1 << 2, 826 LLVMDIFlagAppleBlock = 1 << 3, 827 LLVMDIFlagBlockByrefStruct = 1 << 4, 828 LLVMDIFlagVirtual = 1 << 5, 829 LLVMDIFlagArtificial = 1 << 6, 830 LLVMDIFlagExplicit = 1 << 7, 831 LLVMDIFlagPrototyped = 1 << 8, 832 LLVMDIFlagObjcClassComplete = 1 << 9, 833 LLVMDIFlagObjectPointer = 1 << 10, 834 LLVMDIFlagVector = 1 << 11, 835 LLVMDIFlagStaticMember = 1 << 12, 836 LLVMDIFlagLValueReference = 1 << 13, 837 LLVMDIFlagRValueReference = 1 << 14, 838 LLVMDIFlagReserved = 1 << 15, 839 LLVMDIFlagSingleInheritance = 1 << 16, 840 LLVMDIFlagMultipleInheritance = 2 << 16, 841 LLVMDIFlagVirtualInheritance = 3 << 16, 842 LLVMDIFlagIntroducedVirtual = 1 << 18, 843 LLVMDIFlagBitField = 1 << 19, 844 LLVMDIFlagNoReturn = 1 << 20, 845 LLVMDIFlagTypePassByValue = 1 << 22, 846 LLVMDIFlagTypePassByReference = 1 << 23, 847 LLVMDIFlagEnumClass = 1 << 24, 848 LLVMDIFlagFixedEnum = LLVMDIFlagEnumClass, 849 LLVMDIFlagThunk = 1 << 25, 850 LLVMDIFlagNonTrivial = 1 << 26, 851 LLVMDIFlagBigEndian = 1 << 27, 852 LLVMDIFlagLittleEndian = 1 << 28, 853 LLVMDIFlagIndirectVirtualBase = (1 << 2) | (1 << 5), 854 LLVMDIFlagAccessibility = LLVMDIFlagPrivate | LLVMDIFlagProtected | LLVMDIFlagPublic, 855 LLVMDIFlagPtrToMemberRep = LLVMDIFlagSingleInheritance | LLVMDIFlagMultipleInheritance | LLVMDIFlagVirtualInheritance 856 } 857 } 858 else static if (LLVM_Version >= asVersion(8, 0, 0)) 859 { 860 enum : LLVMDIFlags { 861 LLVMDIFlagZero = 0, 862 LLVMDIFlagPrivate = 1, 863 LLVMDIFlagProtected = 2, 864 LLVMDIFlagPublic = 3, 865 LLVMDIFlagFwdDecl = 1 << 2, 866 LLVMDIFlagAppleBlock = 1 << 3, 867 LLVMDIFlagBlockByrefStruct = 1 << 4, 868 LLVMDIFlagVirtual = 1 << 5, 869 LLVMDIFlagArtificial = 1 << 6, 870 LLVMDIFlagExplicit = 1 << 7, 871 LLVMDIFlagPrototyped = 1 << 8, 872 LLVMDIFlagObjcClassComplete = 1 << 9, 873 LLVMDIFlagObjectPointer = 1 << 10, 874 LLVMDIFlagVector = 1 << 11, 875 LLVMDIFlagStaticMember = 1 << 12, 876 LLVMDIFlagLValueReference = 1 << 13, 877 LLVMDIFlagRValueReference = 1 << 14, 878 LLVMDIFlagReserved = 1 << 15, 879 LLVMDIFlagSingleInheritance = 1 << 16, 880 LLVMDIFlagMultipleInheritance = 2 << 16, 881 LLVMDIFlagVirtualInheritance = 3 << 16, 882 LLVMDIFlagIntroducedVirtual = 1 << 18, 883 LLVMDIFlagBitField = 1 << 19, 884 LLVMDIFlagNoReturn = 1 << 20, 885 LLVMDIFlagMainSubprogram = 1 << 21, 886 LLVMDIFlagTypePassByValue = 1 << 22, 887 LLVMDIFlagTypePassByReference = 1 << 23, 888 LLVMDIFlagEnumClass = 1 << 24, 889 LLVMDIFlagFixedEnum = LLVMDIFlagEnumClass, 890 LLVMDIFlagThunk = 1 << 25, 891 LLVMDIFlagTrivial = 1 << 26, 892 LLVMDIFlagBigEndian = 1 << 27, 893 LLVMDIFlagLittleEndian = 1 << 28, 894 LLVMDIFlagIndirectVirtualBase = (1 << 2) | (1 << 5), 895 LLVMDIFlagAccessibility = LLVMDIFlagPrivate | LLVMDIFlagProtected | LLVMDIFlagPublic, 896 LLVMDIFlagPtrToMemberRep = LLVMDIFlagSingleInheritance | LLVMDIFlagMultipleInheritance | LLVMDIFlagVirtualInheritance 897 } 898 } 899 else static if (LLVM_Version >= asVersion(7, 0, 0)) 900 { 901 enum : LLVMDIFlags { 902 LLVMDIFlagZero = 0, 903 LLVMDIFlagPrivate = 1, 904 LLVMDIFlagProtected = 2, 905 LLVMDIFlagPublic = 3, 906 LLVMDIFlagFwdDecl = 1 << 2, 907 LLVMDIFlagAppleBlock = 1 << 3, 908 LLVMDIFlagBlockByrefStruct = 1 << 4, 909 LLVMDIFlagVirtual = 1 << 5, 910 LLVMDIFlagArtificial = 1 << 6, 911 LLVMDIFlagExplicit = 1 << 7, 912 LLVMDIFlagPrototyped = 1 << 8, 913 LLVMDIFlagObjcClassComplete = 1 << 9, 914 LLVMDIFlagObjectPointer = 1 << 10, 915 LLVMDIFlagVector = 1 << 11, 916 LLVMDIFlagStaticMember = 1 << 12, 917 LLVMDIFlagLValueReference = 1 << 13, 918 LLVMDIFlagRValueReference = 1 << 14, 919 LLVMDIFlagReserved = 1 << 15, 920 LLVMDIFlagSingleInheritance = 1 << 16, 921 LLVMDIFlagMultipleInheritance = 2 << 16, 922 LLVMDIFlagVirtualInheritance = 3 << 16, 923 LLVMDIFlagIntroducedVirtual = 1 << 18, 924 LLVMDIFlagBitField = 1 << 19, 925 LLVMDIFlagNoReturn = 1 << 20, 926 LLVMDIFlagMainSubprogram = 1 << 21, 927 LLVMDIFlagTypePassByValue = 1 << 22, 928 LLVMDIFlagTypePassByReference = 1 << 23, 929 LLVMDIFlagFixedEnum = 1 << 24, 930 LLVMDIFlagThunk = 1 << 25, 931 LLVMDIFlagTrivial = 1 << 26, 932 LLVMDIFlagIndirectVirtualBase = (1 << 2) | (1 << 5), 933 LLVMDIFlagAccessibility = LLVMDIFlagPrivate | LLVMDIFlagProtected | LLVMDIFlagPublic, 934 LLVMDIFlagPtrToMemberRep = LLVMDIFlagSingleInheritance | LLVMDIFlagMultipleInheritance | LLVMDIFlagVirtualInheritance 935 } 936 } 937 else static if (LLVM_Version >= asVersion(6, 0, 0)) 938 { 939 enum : LLVMDIFlags { 940 LLVMDIFlagZero = 0, 941 LLVMDIFlagPrivate = 1, 942 LLVMDIFlagProtected = 2, 943 LLVMDIFlagPublic = 3, 944 LLVMDIFlagFwdDecl = 1 << 2, 945 LLVMDIFlagAppleBlock = 1 << 3, 946 LLVMDIFlagBlockByrefStruct = 1 << 4, 947 LLVMDIFlagVirtual = 1 << 5, 948 LLVMDIFlagArtificial = 1 << 6, 949 LLVMDIFlagExplicit = 1 << 7, 950 LLVMDIFlagPrototyped = 1 << 8, 951 LLVMDIFlagObjcClassComplete = 1 << 9, 952 LLVMDIFlagObjectPointer = 1 << 10, 953 LLVMDIFlagVector = 1 << 11, 954 LLVMDIFlagStaticMember = 1 << 12, 955 LLVMDIFlagLValueReference = 1 << 13, 956 LLVMDIFlagRValueReference = 1 << 14, 957 LLVMDIFlagReserved = 1 << 15, 958 LLVMDIFlagSingleInheritance = 1 << 16, 959 LLVMDIFlagMultipleInheritance = 2 << 16, 960 LLVMDIFlagVirtualInheritance = 3 << 16, 961 LLVMDIFlagIntroducedVirtual = 1 << 18, 962 LLVMDIFlagBitField = 1 << 19, 963 LLVMDIFlagNoReturn = 1 << 20, 964 LLVMDIFlagMainSubprogram = 1 << 21, 965 LLVMDIFlagIndirectVirtualBase = (1 << 2) | (1 << 5), 966 LLVMDIFlagAccessibility = LLVMDIFlagPrivate | LLVMDIFlagProtected | 967 LLVMDIFlagPublic, 968 LLVMDIFlagPtrToMemberRep = LLVMDIFlagSingleInheritance | 969 LLVMDIFlagMultipleInheritance | 970 LLVMDIFlagVirtualInheritance 971 } 972 } 973 974 static if (LLVM_Version >= asVersion(6, 0, 0)) 975 { 976 enum : LLVMDWARFSourceLanguage { 977 LLVMDWARFSourceLanguageC89, 978 LLVMDWARFSourceLanguageC, 979 LLVMDWARFSourceLanguageAda83, 980 LLVMDWARFSourceLanguageC_plus_plus, 981 LLVMDWARFSourceLanguageCobol74, 982 LLVMDWARFSourceLanguageCobol85, 983 LLVMDWARFSourceLanguageFortran77, 984 LLVMDWARFSourceLanguageFortran90, 985 LLVMDWARFSourceLanguagePascal83, 986 LLVMDWARFSourceLanguageModula2, 987 // New in DWARF v3: 988 LLVMDWARFSourceLanguageJava, 989 LLVMDWARFSourceLanguageC99, 990 LLVMDWARFSourceLanguageAda95, 991 LLVMDWARFSourceLanguageFortran95, 992 LLVMDWARFSourceLanguagePLI, 993 LLVMDWARFSourceLanguageObjC, 994 LLVMDWARFSourceLanguageObjC_plus_plus, 995 LLVMDWARFSourceLanguageUPC, 996 LLVMDWARFSourceLanguageD, 997 // New in DWARF v4: 998 LLVMDWARFSourceLanguagePython, 999 // New in DWARF v5: 1000 LLVMDWARFSourceLanguageOpenCL, 1001 LLVMDWARFSourceLanguageGo, 1002 LLVMDWARFSourceLanguageModula3, 1003 LLVMDWARFSourceLanguageHaskell, 1004 LLVMDWARFSourceLanguageC_plus_plus_03, 1005 LLVMDWARFSourceLanguageC_plus_plus_11, 1006 LLVMDWARFSourceLanguageOCaml, 1007 LLVMDWARFSourceLanguageRust, 1008 LLVMDWARFSourceLanguageC11, 1009 LLVMDWARFSourceLanguageSwift, 1010 LLVMDWARFSourceLanguageJulia, 1011 LLVMDWARFSourceLanguageDylan, 1012 LLVMDWARFSourceLanguageC_plus_plus_14, 1013 LLVMDWARFSourceLanguageFortran03, 1014 LLVMDWARFSourceLanguageFortran08, 1015 LLVMDWARFSourceLanguageRenderScript, 1016 LLVMDWARFSourceLanguageBLISS, 1017 // Vendor extensions: 1018 LLVMDWARFSourceLanguageMips_Assembler, 1019 LLVMDWARFSourceLanguageGOOGLE_RenderScript, 1020 LLVMDWARFSourceLanguageBORLAND_Delphi 1021 } 1022 } 1023 1024 static if (LLVM_Version >= asVersion(6, 0, 0)) 1025 { 1026 enum : LLVMDWARFEmissionKind { 1027 LLVMDWARFEmissionNone = 0, 1028 LLVMDWARFEmissionFull, 1029 LLVMDWARFEmissionLineTablesOnly 1030 } 1031 1032 } 1033 1034 static if (LLVM_Version >= asVersion(9, 0, 0)) 1035 { 1036 enum : LLVMMetadataKind { 1037 LLVMMDStringMetadataKind, 1038 LLVMConstantAsMetadataMetadataKind, 1039 LLVMLocalAsMetadataMetadataKind, 1040 LLVMDistinctMDOperandPlaceholderMetadataKind, 1041 LLVMMDTupleMetadataKind, 1042 LLVMDILocationMetadataKind, 1043 LLVMDIExpressionMetadataKind, 1044 LLVMDIGlobalVariableExpressionMetadataKind, 1045 LLVMGenericDINodeMetadataKind, 1046 LLVMDISubrangeMetadataKind, 1047 LLVMDIEnumeratorMetadataKind, 1048 LLVMDIBasicTypeMetadataKind, 1049 LLVMDIDerivedTypeMetadataKind, 1050 LLVMDICompositeTypeMetadataKind, 1051 LLVMDISubroutineTypeMetadataKind, 1052 LLVMDIFileMetadataKind, 1053 LLVMDICompileUnitMetadataKind, 1054 LLVMDISubprogramMetadataKind, 1055 LLVMDILexicalBlockMetadataKind, 1056 LLVMDILexicalBlockFileMetadataKind, 1057 LLVMDINamespaceMetadataKind, 1058 LLVMDIModuleMetadataKind, 1059 LLVMDITemplateTypeParameterMetadataKind, 1060 LLVMDITemplateValueParameterMetadataKind, 1061 LLVMDIGlobalVariableMetadataKind, 1062 LLVMDILocalVariableMetadataKind, 1063 LLVMDILabelMetadataKind, 1064 LLVMDIObjCPropertyMetadataKind, 1065 LLVMDIImportedEntityMetadataKind, 1066 LLVMDIMacroMetadataKind, 1067 LLVMDIMacroFileMetadataKind, 1068 LLVMDICommonBlockMetadataKind 1069 } 1070 } 1071 else static if (LLVM_Version >= asVersion(8, 0, 0)) { 1072 enum : LLVMMetadataKind { 1073 LLVMMDStringMetadataKind, 1074 LLVMConstantAsMetadataMetadataKind, 1075 LLVMLocalAsMetadataMetadataKind, 1076 LLVMDistinctMDOperandPlaceholderMetadataKind, 1077 LLVMMDTupleMetadataKind, 1078 LLVMDILocationMetadataKind, 1079 LLVMDIExpressionMetadataKind, 1080 LLVMDIGlobalVariableExpressionMetadataKind, 1081 LLVMGenericDINodeMetadataKind, 1082 LLVMDISubrangeMetadataKind, 1083 LLVMDIEnumeratorMetadataKind, 1084 LLVMDIBasicTypeMetadataKind, 1085 LLVMDIDerivedTypeMetadataKind, 1086 LLVMDICompositeTypeMetadataKind, 1087 LLVMDISubroutineTypeMetadataKind, 1088 LLVMDIFileMetadataKind, 1089 LLVMDICompileUnitMetadataKind, 1090 LLVMDISubprogramMetadataKind, 1091 LLVMDILexicalBlockMetadataKind, 1092 LLVMDILexicalBlockFileMetadataKind, 1093 LLVMDINamespaceMetadataKind, 1094 LLVMDIModuleMetadataKind, 1095 LLVMDITemplateTypeParameterMetadataKind, 1096 LLVMDITemplateValueParameterMetadataKind, 1097 LLVMDIGlobalVariableMetadataKind, 1098 LLVMDILocalVariableMetadataKind, 1099 LLVMDILabelMetadataKind, 1100 LLVMDIObjCPropertyMetadataKind, 1101 LLVMDIImportedEntityMetadataKind, 1102 LLVMDIMacroMetadataKind, 1103 LLVMDIMacroFileMetadataKind 1104 } 1105 } 1106 1107 static if (LLVM_Version >= asVersion(7, 0, 0)) 1108 { 1109 enum : LLVMComdatSelectionKind { 1110 LLVMAnyComdatSelectionKind, 1111 LLVMExactMatchComdatSelectionKind, 1112 LLVMLargestComdatSelectionKind, 1113 LLVMNoDuplicatesComdatSelectionKind, 1114 LLVMSameSizeComdatSelectionKind 1115 } 1116 } 1117 1118 static if (LLVM_Version >= asVersion(7, 0, 0)) 1119 { 1120 enum : LLVMUnnamedAddr { 1121 LLVMNoUnnamedAddr, 1122 LLVMLocalUnnamedAddr, 1123 LLVMGlobalUnnamedAddr 1124 } 1125 } 1126 1127 1128 static if (LLVM_Version >= asVersion(7, 0, 0)) 1129 { 1130 enum : LLVMInlineAsmDialect { 1131 LLVMInlineAsmDialectATT, 1132 LLVMInlineAsmDialectIntel 1133 } 1134 } 1135 1136 static if (LLVM_Version >= asVersion(7, 0, 0)) 1137 { 1138 enum : LLVMModuleFlagBehavior { 1139 LLVMModuleFlagBehaviorError, 1140 LLVMModuleFlagBehaviorWarning, 1141 LLVMModuleFlagBehaviorRequire, 1142 LLVMModuleFlagBehaviorOverride, 1143 LLVMModuleFlagBehaviorAppend, 1144 LLVMModuleFlagBehaviorAppendUnique, 1145 } 1146 } 1147 1148 static if (LLVM_Version >= asVersion(10, 0, 0)) 1149 { 1150 enum : LLVMDWARFMacinfoRecordType { 1151 LLVMDWARFMacinfoRecordTypeDefine = 0x01, 1152 LLVMDWARFMacinfoRecordTypeMacro = 0x02, 1153 LLVMDWARFMacinfoRecordTypeStartFile = 0x03, 1154 LLVMDWARFMacinfoRecordTypeEndFile = 0x04, 1155 LLVMDWARFMacinfoRecordTypeVendorExt = 0xff 1156 } 1157 } 1158 1159 1160 /+ Error +/ 1161 1162 static if (LLVM_Version >= asVersion(8, 0, 0)) { 1163 enum LLVMErrorSuccess = 0; 1164 } 1165 1166 /+ Remarks / OptRemarks +/ 1167 1168 static if (LLVM_Version >= asVersion(9, 0, 0)) { 1169 1170 static if (LLVM_Version >= asVersion(10, 0, 0)) { 1171 enum REMARKS_API_VERSION = 1; 1172 } 1173 else { 1174 enum REMARKS_API_VERSION = 0; 1175 } 1176 1177 enum : LLVMRemarkType { 1178 LLVMRemarkTypeUnknown, 1179 LLVMRemarkTypePassed, 1180 LLVMRemarkTypeMissed, 1181 LLVMRemarkTypeAnalysis, 1182 LLVMRemarkTypeAnalysisFPCommute, 1183 LLVMRemarkTypeAnalysisAliasing, 1184 LLVMRemarkTypeFailure 1185 } 1186 } else static if (LLVM_Version >= asVersion(8, 0, 0)) { 1187 enum OPT_REMARKS_API_VERSION = 0; 1188 }