LLVM: include/llvm-c/Core.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#ifndef LLVM_C_CORE_H

16#define LLVM_C_CORE_H

17

22

24

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61typedef enum {

62

68

71

72

74

75

88

89

96

97

102

103

118

119

134

135

139

140

149

173

174typedef enum {

179

183

186

196

202

208

214

258

259typedef enum {

265

275

284

287

293

306

325

333

334typedef enum {

337

339

340

342

343

345

346

348

349

350

352

353

354

355

356

357

358

360

361typedef enum {

370

371

373

374

376

377

379

380

382

384

386

387

389

390

392

394

396

399

400

402

403

405

412

417

418typedef enum {

419

420

421

422

423

424

426

427

428

429

430

431

433

434

435

436

437

438

439

440

441

442

443

445

446

447

448

449

450

451

453

454

455

456

457

459

460

461

462

463

464

465

468

469

470

471

472

473enum {

475

476

477

479};

480

482

483

484

485

486

487

488

489

496

497enum {

510};

511

512

513

514

515

516

517

519

520enum {

524};

525

526

527

528

529

530

531

533

540

541

542

543

544

545

546

547

549

550

551

552

553

554

555

556

557

559 unsigned *Patch);

560

561

562

565

566

567

568

569

570

571

572

573

574

575

576

577

580

581

582

583

584

585

586

588

589

590

591

594 "Use of the global context is deprecated, create "

595 "one using LLVMContextCreate instead");

596

597

598

599

602 void *DiagnosticContext);

603

604

605

606

609

610

611

612

614

615

616

617

618

619

622 void *OpaqueHandle);

623

624

625

626

627

628

630

631

632

633

634

635

636

637

638

641

642

643

644

645

646

647

649

650

651

652

653

654

655

657

658

659

660

661

662

665

667 unsigned SLen);

669 unsigned LLVMGetMDKindID(const char *Name, unsigned SLen),

670 "Use of the global context is deprecated, use LLVMGetMDKindIDInContext "

671 "instead");

672

673

674

675

677 size_t SLen);

678

679

680

681

682

683

684

685

686

687

688

689

691 size_t SLen);

693

694

695

696

698 unsigned KindID,

700

701

702

703

704

706

707

708

709

711

712

713

714

716 unsigned KindID,

718

719

720

721

723

724

725

726

727

728

729

733

734

735

736

738 const char *K,

739 unsigned KLength,

740 const char *V,

741 unsigned VLength);

742

743

744

745

747 unsigned *Length);

748

749

750

751

753 unsigned *Length);

754

755

756

757

761

762

763

764

766

767

768

769

770

771

772

773

774

775

776

777

778

779

780

781

782

783

784

785

786

787

788

789

792 "Use of the global context is deprecated, use "

793 "LLVMModuleCreateWithNameInContext instead");

794

795

796

797

798

799

800

803

804

805

807

808

809

810

811

812

813

815

816

817

818

819

820

821

822

823

825

826

827

828

829

830

831

834

835

836

837

838

839

840

841

842

844

845

846

847

848

849

850

851

852

854 size_t Len);

855

856

857

858

859

860

861

862

863

865

866

867

868

869

870

871

872

873

874

876 size_t Len);

877

878

879

880

881

882

883

884

885

886

889

890

891

892

893

894

896

897

898

899

900

901

903

904

905

906

907

908

910

911

912

913

914

915

916

917

919 size_t *Len);

920

921

922

923

925

926

927

928

929

930

933

934

935

936

937

938

940 unsigned Index, size_t *Len);

941

942

943

944

945

946

949

950

951

952

953

954

955

957 size_t KeyLen);

958

959

960

961

962

963

964

967 const char *Key, size_t KeyLen,

969

970

971

972

973

974

976

977

978

979

980

981

982

984 char **ErrorMessage);

985

986

987

988

989

990

991

993

994

995

996

997

998

1000

1001

1002

1003

1004

1005

1007 size_t Len);

1008

1009

1010

1011

1012

1013

1015 size_t Len);

1016

1017

1018

1019

1020

1021

1023 LLVMTypeRef Ty, const char *AsmString, size_t AsmStringSize,

1024 const char *Constraints, size_t ConstraintsSize, LLVMBool HasSideEffects,

1026

1027

1028

1029

1030

1032 size_t *Len);

1033

1034

1035

1036

1037

1040

1041

1042

1043

1044

1047

1048

1049

1050

1051

1052

1053

1054

1056

1057

1058

1059

1060

1062

1063

1064

1065

1066

1069

1070

1071

1072

1073

1075

1076

1077

1078

1079

1080

1082

1083

1085

1086

1087

1088

1089

1090

1092

1093

1094

1095

1096

1097

1099

1100

1101

1102

1103

1104

1105

1108

1109

1110

1111

1112

1113

1114

1117

1118

1119

1120

1121

1122

1123

1125 const char *Name,

1126 size_t NameLen);

1127

1128

1129

1130

1131

1132

1133

1135 const char *Name,

1136 size_t NameLen);

1137

1138

1139

1140

1141

1142

1144 size_t *NameLen);

1145

1146

1147

1148

1149

1150

1152 const char *Name);

1153

1154

1155

1156

1157

1158

1159

1160

1161

1162

1163

1164

1167

1168

1169

1170

1171

1172

1173

1176

1177

1178

1179

1180

1181

1182

1183

1184

1186 unsigned *Length);

1187

1188

1189

1190

1191

1192

1193

1194

1195

1197 unsigned *Length);

1198

1199

1200

1201

1202

1203

1204

1205

1206

1208

1209

1210

1211

1212

1213

1214

1216

1217

1218

1219

1220

1221

1224

1225

1226

1227

1228

1229

1230

1231

1232

1233

1234

1235

1237 const char *Name,

1238 size_t NameLen,

1240

1241

1242

1243

1244

1245

1246

1247

1249

1250

1251

1252

1253

1254

1255

1256

1258 const char *Name,

1259 size_t Length);

1260

1261

1262

1263

1264

1265

1267

1268

1269

1270

1271

1272

1274

1275

1276

1277

1278

1279

1280

1282

1283

1284

1285

1286

1287

1288

1290

1291

1293

1294

1295

1296

1297

1298

1299

1300

1301

1302

1303

1304

1305

1306

1307

1308

1309

1310

1311

1312

1313

1314

1315

1316

1317

1318

1319

1320

1321

1322

1323

1324

1325

1326

1327

1328

1329

1330

1331

1333

1334

1335

1336

1337

1338

1339

1340

1342

1343

1344

1345

1346

1347

1349

1350

1351

1352

1353

1354

1356

1357

1358

1359

1360

1361

1362

1364

1365

1366

1367

1368

1369

1370

1371

1372

1373

1374

1375

1383

1384

1385

1386

1387

1390 "Use of the global context is deprecated, use "

1391 "LLVMInt1TypeInContext instead");

1394 "Use of the global context is deprecated, use "

1395 "LLVMInt8TypeInContext instead");

1398 "Use of the global context is deprecated, use "

1399 "LLVMInt16TypeInContext instead");

1402 "Use of the global context is deprecated, use "

1403 "LLVMInt32TypeInContext instead");

1406 "Use of the global context is deprecated, use "

1407 "LLVMInt64TypeInContext instead");

1410 "Use of the global context is deprecated, use "

1411 "LLVMInt128TypeInContext instead");

1414 "Use of the global context is deprecated, use "

1415 "LLVMIntTypeInContext instead");

1416

1418

1419

1420

1421

1422

1423

1424

1425

1426

1427

1428

1429

1430

1431

1433

1434

1435

1436

1438

1439

1440

1441

1443

1444

1445

1446

1448

1449

1450

1451

1453

1454

1455

1456

1457

1459

1460

1461

1462

1464

1465

1466

1467

1468

1469

1472 "Use of the global context is deprecated, use "

1473 "LLVMHalfTypeInContext instead");

1476 "Use of the global context is deprecated, use "

1477 "LLVMBFloatTypeInContext instead");

1480 "Use of the global context is deprecated, use "

1481 "LLVMFloatTypeInContext instead");

1484 "Use of the global context is deprecated, use "

1485 "LLVMDoubleTypeInContext instead");

1488 "Use of the global context is deprecated, use "

1489 "LLVMX86FP80TypeInContext instead");

1492 "Use of the global context is deprecated, use "

1493 "LLVMFP128TypeInContext instead");

1496 "Use of the global context is deprecated, use "

1497 "LLVMPPCFP128TypeInContext instead");

1498

1499

1500

1501

1502

1503

1504

1505

1506

1507

1508

1509

1510

1511

1512

1513

1514

1517 unsigned ParamCount, LLVMBool IsVarArg);

1518

1519

1520

1521

1523

1524

1525

1526

1528

1529

1530

1531

1533

1534

1535

1536

1537

1538

1539

1540

1541

1542

1543

1544

1546

1547

1548

1549

1550

1551

1552

1553

1554

1555

1556

1557

1558

1559

1560

1561

1562

1563

1564

1565

1566

1567

1568

1571 unsigned ElementCount,

1573

1574

1575

1576

1577

1578

1582 "Use of the global context is deprecated, use LLVMStructTypeInContext "

1583 "instead");

1584

1585

1586

1587

1588

1589

1591 const char *Name);

1592

1593

1594

1595

1596

1597

1599

1600

1601

1602

1603

1604

1607 unsigned ElementCount, LLVMBool Packed);

1608

1609

1610

1611

1612

1613

1615

1616

1617

1618

1619

1620

1621

1622

1623

1624

1625

1628

1629

1630

1631

1632

1633

1635 unsigned i);

1636

1637

1638

1639

1640

1641

1643

1644

1645

1646

1647

1648

1650

1651

1652

1653

1654

1655

1657

1658

1659

1660

1661

1662

1663

1664

1665

1666

1667

1668

1669

1670

1671

1672

1673

1674

1675

1677

1678

1679

1680

1681

1682

1684

1685

1686

1687

1688

1689

1691

1692

1693

1694

1695

1696

1697

1698

1699

1700

1701

1703 unsigned ElementCount);

1704

1705

1706

1707

1708

1709

1710

1711

1712

1715

1716

1717

1718

1719

1720

1721

1722

1723

1724

1726

1727

1728

1729

1730

1731

1732

1733

1735

1736

1737

1738

1739

1740

1741

1742

1743

1745 unsigned AddressSpace);

1746

1747

1748

1749

1750

1751

1752

1753

1755

1756

1757

1758

1759

1760

1762 unsigned AddressSpace);

1763

1764

1765

1766

1767

1768

1769

1770

1772

1773

1774

1775

1776

1777

1778

1779

1780

1781

1783 unsigned ElementCount);

1784

1785

1786

1787

1788

1789

1790

1791

1792

1793

1795 unsigned ElementCount);

1796

1797

1798

1799

1800

1801

1802

1803

1805

1806

1807

1808

1809

1810

1812

1813

1814

1815

1816

1817

1819

1820

1821

1822

1823

1824

1827

1828

1829

1830

1831

1832

1833

1836

1837

1838

1839

1840

1841

1842

1843

1844

1845

1846

1847

1848

1849

1851

1852

1853

1854

1856

1857

1858

1859

1861

1862

1863

1864

1866

1867

1868

1869

1871

1872

1873

1874

1875

1878 "Use of the global context is deprecated, use "

1879 "LLVMVoidTypeInContext instead");

1882 "Use of the global context is deprecated, use "

1883 "LLVMLabelTypeInContext instead");

1886 "Use of the global context is deprecated, use "

1887 "LLVMX86AMXTypeInContext instead");

1888

1889

1890

1891

1894 unsigned TypeParamCount, unsigned *IntParams, unsigned IntParamCount);

1895

1896

1897

1898

1899

1900

1902

1903

1904

1905

1906

1907

1909

1910

1911

1912

1913

1914

1916 unsigned Idx);

1917

1918

1919

1920

1921

1922

1924

1925

1926

1927

1928

1929

1931 unsigned Idx);

1932

1933

1934

1935

1936

1937

1938

1939

1940

1941

1942

1943

1944

1945

1946

1947

1948

1949

1950

1951

1952

1953

1954

1955

1956

1957

1958

1959

1960

1961

1962

1963

1964

1965

1966#define LLVM_FOR_EACH_VALUE_SUBCLASS(macro) \

1967 macro(Argument) \

1968 macro(BasicBlock) \

1969 macro(InlineAsm) \

1970 macro(User) \

1971 macro(Constant) \

1972 macro(BlockAddress) \

1973 macro(ConstantAggregateZero) \

1974 macro(ConstantArray) \

1975 macro(ConstantDataSequential) \

1976 macro(ConstantDataArray) \

1977 macro(ConstantDataVector) \

1978 macro(ConstantExpr) \

1979 macro(ConstantFP) \

1980 macro(ConstantInt) \

1981 macro(ConstantPointerNull) \

1982 macro(ConstantStruct) \

1983 macro(ConstantTokenNone) \

1984 macro(ConstantVector) \

1985 macro(ConstantPtrAuth) \

1986 macro(GlobalValue) \

1987 macro(GlobalAlias) \

1988 macro(GlobalObject) \

1989 macro(Function) \

1990 macro(GlobalVariable) \

1991 macro(GlobalIFunc) \

1992 macro(UndefValue) \

1993 macro(PoisonValue) \

1994 macro(Instruction) \

1995 macro(UnaryOperator) \

1996 macro(BinaryOperator) \

1997 macro(CallInst) \

1998 macro(IntrinsicInst) \

1999 macro(DbgInfoIntrinsic) \

2000 macro(DbgVariableIntrinsic) \

2001 macro(DbgDeclareInst) \

2002 macro(DbgLabelInst) \

2003 macro(MemIntrinsic) \

2004 macro(MemCpyInst) \

2005 macro(MemMoveInst) \

2006 macro(MemSetInst) \

2007 macro(CmpInst) \

2008 macro(FCmpInst) \

2009 macro(ICmpInst) \

2010 macro(ExtractElementInst) \

2011 macro(GetElementPtrInst) \

2012 macro(InsertElementInst) \

2013 macro(InsertValueInst) \

2014 macro(LandingPadInst) \

2015 macro(PHINode) \

2016 macro(SelectInst) \

2017 macro(ShuffleVectorInst) \

2018 macro(StoreInst) \

2019 macro(BranchInst) \

2020 macro(IndirectBrInst) \

2021 macro(InvokeInst) \

2022 macro(ReturnInst) \

2023 macro(SwitchInst) \

2024 macro(UnreachableInst) \

2025 macro(ResumeInst) \

2026 macro(CleanupReturnInst) \

2027 macro(CatchReturnInst) \

2028 macro(CatchSwitchInst) \

2029 macro(CallBrInst) \

2030 macro(FuncletPadInst) \

2031 macro(CatchPadInst) \

2032 macro(CleanupPadInst) \

2033 macro(UnaryInstruction) \

2034 macro(AllocaInst) \

2035 macro(CastInst) \

2036 macro(AddrSpaceCastInst) \

2037 macro(BitCastInst) \

2038 macro(FPExtInst) \

2039 macro(FPToSIInst) \

2040 macro(FPToUIInst) \

2041 macro(FPTruncInst) \

2042 macro(IntToPtrInst) \

2043 macro(PtrToIntInst) \

2044 macro(SExtInst) \

2045 macro(SIToFPInst) \

2046 macro(TruncInst) \

2047 macro(UIToFPInst) \

2048 macro(ZExtInst) \

2049 macro(ExtractValueInst) \

2050 macro(LoadInst) \

2051 macro(VAArgInst) \

2052 macro(FreezeInst) \

2053 macro(AtomicCmpXchgInst) \

2054 macro(AtomicRMWInst) \

2055 macro(FenceInst)

2056

2057

2058

2059

2060

2061

2062

2063

2064

2065

2066

2067

2068

2069

2070

2071

2072

2073

2075

2076

2077

2078

2079

2080

2082

2083

2084

2085

2086

2087

2089

2090

2091

2092

2093

2094

2096 size_t NameLen);

2097

2098

2099

2100

2101

2102

2104

2105

2106

2107

2108

2109

2110

2112

2113

2114

2115

2116

2117

2119

2120

2121

2122

2123

2124

2125

2127

2128

2129

2130

2131

2132

2135

2136

2137

2138

2140

2141

2142

2143

2145

2146

2147

2148

2150

2151

2152

2153

2154

2155

2156

2157

2158

2159

2160

2161

2162#define LLVM_DECLARE_VALUE_CAST(name) \

2163 LLVM_C_ABI LLVMValueRef LLVMIsA##name(LLVMValueRef Val);

2165

2169

2170

2172

2174

2175

2176

2177

2178

2179

2180

2181

2182

2183

2184

2185

2186

2187

2188

2189

2190

2191

2192

2193

2194

2195

2196

2197

2198

2199

2200

2201

2203

2204

2205

2206

2207

2208

2209

2211

2212

2213

2214

2215

2216

2217

2218

2220

2221

2222

2223

2224

2225

2227

2228

2229

2230

2231

2232

2233

2234

2235

2236

2237

2238

2239

2240

2241

2242

2243

2244

2245

2246

2248

2249

2250

2251

2252

2253

2255

2256

2257

2258

2259

2260

2263

2264

2265

2266

2267

2268

2270

2271

2272

2273

2274

2275

2276

2277

2278

2279

2280

2281

2282

2283

2284

2285

2286

2287

2288

2289

2290

2291

2293

2294

2295

2296

2297

2298

2299

2300

2301

2303

2304

2305

2306

2307

2308

2310

2311

2312

2313

2314

2315

2317

2318

2319

2320

2321

2322

2324

2325

2326

2327

2328

2330

2331

2332

2333

2334

2335

2336

2337

2338

2339

2340

2341

2342

2343

2344

2345

2346

2347

2348

2349

2350

2351

2352

2353

2354

2355

2356

2357

2360

2361

2362

2363

2364

2365

2368

2369

2370

2371

2372

2373

2374

2375

2376

2377

2379 const char *Text, uint8_t Radix);

2380

2381

2382

2383

2384

2385

2386

2388 const char *Text,

2389 unsigned SLen,

2391

2392

2393

2394

2396

2397

2398

2399

2400

2401

2402

2404 const char *Text);

2405

2406

2407

2408

2410 const char *Text,

2411 unsigned SLen);

2412

2413

2414

2415

2416

2417

2418

2420

2421

2422

2423

2424

2425

2428

2429

2430

2431

2432

2433

2435

2436

2437

2438

2439

2440

2441

2444

2445

2446

2447

2448

2449

2450

2451

2452

2453

2454

2455

2456

2457

2458

2459

2460

2461

2462

2463

2465 const char *Str,

2466 unsigned Length,

2467 LLVMBool DontNullTerminate);

2468

2469

2470

2471

2472

2473

2475 const char *Str,

2476 size_t Length,

2477 LLVMBool DontNullTerminate);

2478

2479

2480

2481

2482

2483

2484

2485

2486

2487

2490 LLVMBool DontNullTerminate),

2491 "Use of the global context is deprecated, use LLVMConstStringInContext2 "

2492 "instead");

2493

2494

2495

2496

2497

2498

2500

2501

2502

2503

2504

2505

2507

2508

2509

2510

2511

2512

2513

2514

2515

2517 size_t *SizeInBytes);

2518

2519

2520

2521

2522

2523

2526 unsigned Count,

2528

2529

2530

2531

2532

2533

2534

2535

2536

2540 "Use of the global context is deprecated, use LLVMConstStructInContext "

2541 "instead");

2542

2543

2544

2545

2546

2547

2548

2549

2552 unsigned Length);

2553

2554

2555

2556

2557

2558

2562

2563

2564

2565

2566

2567

2568

2569

2570

2571

2573 const char *Data,

2574 size_t SizeInBytes);

2575

2576

2577

2578

2579

2580

2583 unsigned Count);

2584

2585

2586

2587

2588

2589

2590

2591

2592

2594

2595

2596

2597

2598

2599

2602 "Use LLVMGetAggregateElement instead");

2603

2604

2605

2606

2607

2608

2610 unsigned Size);

2611

2612

2613

2614

2615

2616

2620

2621

2622

2623

2624

2625

2626

2627

2628

2629

2630

2631

2632

2633

2641 "Use LLVMConstNull instead.");

2659 unsigned NumIndices);

2663 unsigned NumIndices);

2664

2665

2666

2667

2668

2669

2696

2697

2698

2699

2701

2702

2703

2704

2707

2708

2710 const char *AsmString,

2711 const char *Constraints,

2714

2715

2716

2717

2718

2719

2720

2721

2722

2723

2724

2725

2726

2727

2728

2729

2744

2745

2746

2747

2748

2749

2750

2751

2753

2754

2756

2759

2760

2761

2762

2763

2764

2765

2766

2767

2768

2769

2770

2771

2772

2773

2774

2775

2777

2778

2779

2780

2781

2782

2783

2784

2785

2786

2788

2789

2790

2791

2792

2793

2794

2797

2798

2799

2800

2801

2802

2805

2806

2807

2808

2809

2810

2812

2813

2814

2815

2816

2817

2819

2820

2821

2822

2823

2824

2827

2828

2829

2830

2831

2832

2833

2834

2837

2838

2839

2840

2843

2844

2845

2846

2849 unsigned Index);

2850

2851

2852

2853

2854

2857

2858

2859

2860

2861

2862

2863

2864

2865

2866

2867

2868

2869

2870

2872 const char *Name);

2875 const char *Name,

2876 unsigned AddressSpace);

2879 const char *Name,

2880 size_t Length);

2901

2902

2903

2904

2905

2906

2907

2908

2909

2910

2911

2912

2913

2914

2915

2916

2917

2918

2919

2920

2923 const char *Name);

2924

2925

2926

2927

2928

2929

2930

2931

2933 const char *Name,

2934 size_t NameLen);

2935

2936

2937

2938

2939

2940

2942

2943

2944

2945

2946

2947

2949

2950

2951

2952

2953

2954

2955

2957

2958

2959

2960

2961

2962

2963

2965

2966

2967

2968

2970

2971

2972

2973

2975

2976

2977

2978

2979

2980

2981

2982

2983

2984

2985

2986

2987

2988

2989

2990

2991

2992

2993

2994

2995

2997

2998

2999

3000

3001

3002

3004

3005

3006

3007

3008

3009

3011

3012

3013

3014

3015

3016

3019

3020

3021

3022

3023

3024

3026

3027

3028

3029

3030

3031

3033

3034

3035

3036

3037

3038

3039

3041 unsigned ID,

3043 size_t ParamCount);

3044

3045

3046

3047

3048

3049

3050

3053 size_t ParamCount);

3054

3055

3056

3057

3058

3059

3061

3062

3065 size_t ParamCount,

3066 size_t *NameLength);

3067

3068

3069

3070

3071

3072

3073

3074

3075

3076

3077

3078

3080 unsigned ID,

3082 size_t ParamCount,

3083 size_t *NameLength);

3084

3085

3086

3087

3088

3089

3091

3092

3093

3094

3095

3096

3097

3098

3100

3101

3102

3103

3104

3105

3106

3107

3108

3110

3111

3112

3113

3114

3115

3116

3118

3119

3120

3121

3122

3123

3125

3126

3127

3128

3129

3130

3132

3133

3134

3135

3136

3138

3139

3140

3141

3142

3144

3145

3146

3147

3148

3149

3151

3152

3153

3154

3155

3157

3158

3159

3160

3161

3163

3164

3165

3166

3167

3168

3177 unsigned KindID);

3182 unsigned KindID);

3185 const char *K, unsigned KLen);

3186

3187

3188

3189

3190

3192 const char *A,

3193 const char *V);

3194

3195

3196

3197

3198

3199

3200

3201

3202

3203

3204

3205

3206

3207

3208

3209

3210

3212

3213

3214

3215

3216

3217

3218

3219

3220

3221

3222

3223

3225

3226

3227

3228

3229

3230

3231

3232

3234

3235

3236

3237

3238

3239

3240

3241

3242

3243

3245

3246

3247

3248

3249

3250

3252

3253

3254

3255

3256

3257

3259

3260

3261

3262

3263

3264

3265

3266

3268

3269

3270

3271

3272

3273

3275

3276

3277

3278

3279

3280

3281

3283

3284

3285

3286

3287

3288

3289

3290

3291

3292

3293

3294

3295

3296

3297

3298

3299

3300

3301

3302

3303

3306 unsigned AddrSpace,

3308

3309

3310

3311

3312

3313

3314

3315

3317 const char *Name,

3318 size_t NameLen);

3319

3320

3321

3322

3323

3324

3326

3327

3328

3329

3330

3331

3333

3334

3335

3336

3337

3338

3339

3341

3342

3343

3344

3345

3346

3347

3349

3350

3351

3352

3353

3354

3355

3357

3358

3359

3360

3361

3362

3365

3366

3367

3368

3369

3370

3372

3373

3374

3375

3376

3377

3378

3379

3380

3382

3383

3384

3385

3386

3387

3388

3389

3390

3391

3392

3393

3394

3395

3396

3397

3398

3399

3400

3401

3402

3403

3404

3405

3406

3407

3408

3409

3410

3411

3412

3414 const char *Str, size_t SLen);

3415

3416

3417

3418

3419

3420

3423 size_t Count);

3424

3425

3426

3427

3430

3431

3432

3433

3435

3436

3437

3438

3439

3440

3441

3442

3444

3445

3446

3447

3448

3449

3450

3452

3453

3454

3455

3456

3457

3458

3459

3460

3461

3462

3463

3465

3466

3467

3468

3469

3470

3473

3474

3476 unsigned SLen);

3477

3480 "Use of the global context is deprecated, use LLVMMDStringInContext2 "

3481 "instead");

3482

3485

3488 "Use of the global context is deprecated, use LLVMMDNodeInContext2 "

3489 "instead");

3490

3491

3492

3493

3494

3495

3496

3497

3498

3499

3500

3501

3502

3503

3504

3505

3506

3507

3508

3509

3510

3511

3512

3513

3514

3515

3516

3518 size_t TagLen,

3520 unsigned NumArgs);

3521

3522

3523

3524

3525

3526

3527

3529

3530

3531

3532

3533

3534

3535

3536

3537

3539 size_t *Len);

3540

3541

3542

3543

3544

3545

3546

3547

3549

3550

3551

3552

3553

3554

3555

3556

3557

3560

3561

3562

3563

3564

3565

3566

3567

3568

3569

3570

3571

3572

3573

3574

3575

3576

3577

3578

3579

3580

3581

3582

3583

3584

3586

3587

3588

3589

3591

3592

3593

3594

3596

3597

3598

3599

3601

3602

3603

3604

3605

3606

3608

3609

3610

3611

3612

3613

3614

3615

3616

3617

3618

3620

3621

3622

3623

3624

3625

3627

3628

3629

3630

3631

3632

3633

3634

3635

3638

3639

3640

3641

3642

3643

3644

3645

3646

3648

3649

3650

3651

3652

3653

3655

3656

3657

3658

3660

3661

3662

3663

3665

3666

3667

3668

3669

3670

3671

3673

3674

3675

3676

3677

3678

3679

3680

3684

3685

3686

3687

3688

3689

3692

3693

3694

3695

3696

3697

3699 const char *Name);

3700

3701

3702

3703

3704

3705

3708 const char *Name);

3709

3710

3711

3712

3713

3714

3715

3718 "Use of the global context is deprecated, use "

3719 "LLVMAppendBasicBlockInContext instead");

3720

3721

3722

3723

3724

3725

3726

3727

3728

3731 const char *Name);

3732

3733

3734

3735

3736

3737

3740 const char *Name),

3741 "Use of the global context is deprecated, use "

3742 "LLVMInsertBasicBlockInContext instead");

3743

3744

3745

3746

3747

3748

3749

3750

3751

3753

3754

3755

3756

3757

3758

3759

3760

3761

3763

3764

3765

3766

3767

3768

3771

3772

3773

3774

3775

3776

3779

3780

3781

3782

3783

3784

3785

3787

3788

3789

3790

3791

3792

3794

3795

3796

3797

3798

3799

3800

3801

3802

3803

3804

3805

3806

3807

3808

3809

3810

3811

3812

3813

3814

3815

3816

3817

3818

3820

3821

3822

3823

3825

3826

3827

3828

3831

3832

3833

3834

3835

3836

3837

3840 size_t *NumEntries);

3841

3842

3843

3844

3845

3846

3848

3849

3850

3851

3852

3853

3854

3855

3856

3858

3859

3860

3861

3862

3863

3864

3866

3867

3868

3869

3870

3871

3872

3873

3874

3876

3877

3878

3879

3880

3881

3882

3883

3884

3886

3887

3888

3889

3890

3891

3892

3893

3894

3896

3897

3898

3899

3900

3901

3903

3904

3905

3906

3907

3908

3909

3910

3912

3913

3914

3915

3916

3917

3918

3919

3921

3922

3923

3924

3925

3926

3927

3928

3930

3931

3932

3933

3934

3935

3936

3937

3939

3940

3941

3942

3943

3944

3945

3946

3947

3949

3950

3951

3952

3953

3954

3955

3956

3958

3959

3960

3961

3962

3963

3964

3965

3966

3967

3968

3970

3971

3972

3973

3974

3975

3976

3977

3979

3980

3981

3982

3983

3984

3986

3987

3988

3989

3990

3991

3994

3995

3996

3997

3998

3999

4001

4003

4004

4005

4006

4007

4008

4010 unsigned OpIdx);

4011

4012

4013

4014

4015

4016

4018

4019

4020

4021

4022

4023

4025

4026

4027

4028

4029

4030

4031

4032

4033

4034

4035

4036

4037

4038

4039

4040

4041

4042

4043

4044

4045

4047

4048

4049

4050

4051

4052

4053

4054

4055

4056

4058

4059

4060

4061

4062

4063

4064

4065

4066

4068

4071 unsigned Align);

4072

4082 unsigned KindID);

4087 unsigned KindID);

4090 const char *K, unsigned KLen);

4091

4092

4093

4094

4095

4096

4098

4099

4100

4101

4102

4103

4104

4105

4106

4107

4109

4110

4111

4112

4113

4114

4115

4116

4118

4119

4120

4121

4122

4123

4124

4126 unsigned Index);

4127

4128

4129

4130

4131

4132

4133

4134

4136

4137

4138

4139

4140

4141

4142

4143

4145

4146

4147

4148

4149

4150

4152

4153

4154

4155

4156

4157

4160

4161

4162

4163

4164

4165

4166

4167

4169

4170

4171

4172

4173

4174

4175

4176

4177

4178

4179

4181

4182

4183

4184

4185

4186

4187

4188

4190

4191

4192

4193

4194

4195

4196

4197

4198

4199

4200

4202

4203

4204

4205

4206

4207

4209

4210

4211

4212

4213

4214

4215

4217

4218

4219

4220

4221

4222

4224 unsigned Idx);

4225

4226

4227

4228

4229

4230

4231

4232

4233

4234

4235

4236

4237

4238

4239

4240

4241

4242

4243

4245

4246

4247

4248

4249

4250

4252

4253

4254

4255

4256

4257

4260

4261

4262

4263

4264

4265

4266

4267

4269

4270

4271

4272

4273

4274

4275

4276

4278

4279

4280

4281

4282

4283

4284

4285

4287

4288

4289

4290

4291

4292

4293

4294

4296

4297

4298

4299

4300

4301

4302

4303

4304

4305

4306

4307

4308

4309

4310

4311

4312

4314

4315

4316

4317

4318

4319

4320

4321

4322

4323

4324

4325

4326

4327

4328

4329

4330

4332

4333

4334

4335

4337

4338

4339

4340

4342

4343

4344

4345

4346

4347

4349

4350

4351

4352

4353

4354

4357

4358

4359

4360

4361

4362

4363

4364

4365

4366

4367

4368

4369

4370

4371

4372

4373

4377 unsigned Count);

4378

4379

4380

4381

4383

4384

4385

4386

4388 unsigned Index);

4389

4390

4391

4392

4394 unsigned Index);

4395

4396

4397

4398

4399

4400

4401

4402

4403

4404

4405

4406

4407

4408

4409

4410

4411

4412

4413

4415

4416

4417

4418

4420

4421

4422

4423

4424

4425

4426

4427

4428

4429

4430

4431

4432

4433

4434

4435

4436

4437

4438

4439

4440

4441

4445 "Use of the global context is deprecated, use "

4446 "LLVMCreateBuilderInContext instead");

4447

4448

4449

4450

4454

4455

4456

4457

4461

4462

4463

4466

4467

4468

4480 const char *Name);

4482

4483

4484

4485

4486

4487

4488

4489

4491

4492

4493

4494

4495

4496

4497

4498

4501

4502

4503

4504

4505

4506

4507

4508

4509

4510

4511

4514

4515

4516

4517

4518

4519

4522

4523

4524

4525

4526

4527

4530

4531

4532

4533

4534

4535

4536

4537

4540

4541

4542

4543

4544

4545

4547

4548

4549

4550

4551

4554

4555

4556

4557

4559

4560

4565 unsigned N);

4572 unsigned NumCases);

4574 unsigned NumDests);

4578 unsigned NumIndirectDests, LLVMValueRef *Args, unsigned NumArgs,

4582 unsigned NumArgs,

4585 const char *Name);

4591

4592

4596 unsigned NumClauses,

4597 const char *Name);

4607 const char *Name);

4611 unsigned NumArgs, const char *Name);

4615 unsigned NumHandlers,

4616 const char *Name);

4617

4618

4621

4622

4625

4626

4628

4629

4631

4632

4634

4635

4637

4638

4640

4641

4644

4645

4647

4648

4649

4650

4651

4652

4653

4654

4655

4656

4657

4658

4661

4662

4663

4664

4666

4667

4670

4671

4672

4673

4674

4675

4676

4677

4679

4680

4681

4682

4683

4684

4685

4686

4689

4690

4745 const char *Name);

4747 const char *Name);

4749 const char *Name);

4752 const char *Name),

4753 "Use LLVMBuildNeg + LLVMSetNUW instead.");

4755 const char *Name);

4757 const char *Name);

4758

4765

4766

4767

4768

4769

4771

4772

4773

4774

4776

4777

4778

4779

4780

4781

4782

4783

4785

4786

4787

4788

4789

4790

4791

4792

4795

4796

4797

4798

4799

4800

4801

4802

4804

4805

4806

4807

4808

4810

4811

4812

4813

4815

4816

4818 const char *Name);

4821 const char *Name);

4822

4823

4824

4825

4826

4827

4828

4831 unsigned Align);

4832

4833

4834

4835

4836

4840

4841

4842

4843

4844

4848

4850 const char *Name);

4853 const char *Name);

4857 const char *Name);

4863 unsigned NumIndices, const char *Name);

4867 unsigned NumIndices,

4868 const char *Name);

4869

4870

4871

4872

4873

4874

4877 LLVMValueRef *Indices, unsigned NumIndices, const char *Name,

4881 const char *Name);

4883 const char *Name);

4884

4885

4886

4888 const char *Str,

4889 const char *Name);

4901

4902

4929 const char *Name);

4932 const char *Name);

4935 const char *Name);

4939 const char *Name);

4942 const char *Name);

4945 const char *Name);

4948 const char *Name);

4951

4952

4956

4960

4961

4964 const char *Name);

4967 const char *Name);

4968

4969

4971 const char *Name);

4974 unsigned NumArgs, const char *Name);

4978 const char *Name);

4981 const char *Name);

4987 const char *Name);

4992 const char *Name);

4996 const char *Name);

4999 unsigned Index, const char *Name);

5003 unsigned Index, const char *Name);

5005 const char *Name);

5006

5008 const char *Name);

5010 const char *Name);

5013 const char *Name);

5016 LLVMBool singleThread, const char *Name);

5019 unsigned SSID,

5020 const char *Name);

5036 unsigned SSID);

5037

5038

5039

5040

5042

5043

5044

5045

5046

5048

5049

5050

5051

5052

5053

5054

5055

5057

5061

5062

5063

5064

5065

5067

5068

5069

5070

5072

5073

5074

5075

5077 unsigned SSID);

5078

5087

5088

5089

5090

5091

5092

5093

5094

5095

5096

5097

5098

5099

5100

5101

5104

5105

5106

5107

5109

5110

5111

5112

5113

5114

5115

5116

5117

5118

5119

5125 const char *InputData, size_t InputDataLength, const char *BufferName,

5126 LLVMBool RequiresNullTerminator);

5128 const char *InputData, size_t InputDataLength, const char *BufferName);

5132

5133

5134

5135

5136

5137

5138

5139

5140

5141

5142

5143

5144

5145

5146

5148

5149

5150

5151

5152

5155

5156

5159

5160

5161

5162

5163

5165

5166

5167

5168

5170

5171

5172

5173

5174

5177

5178

5179

5180

5182

5183

5184

5185

5187

5188

5189

5190

5191

5192

5193

5194

5195

5196

5197

5198

5199

5200

5201

5202

5204

5205

5206

5208

5209

5210

5212

5213

5214

5215

5216

5217

5218

5219

5220

5221

5222

5223

5224

5226

5227#endif

static GCRegistry::Add< ShadowStackGC > C("shadow-stack", "Very portable GC for uncooperative code generators")

static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")

static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")

#define LLVM_ATTRIBUTE_C_DEPRECATED(decl, message)

#define LLVM_C_EXTERN_C_BEGIN

#define LLVM_C_EXTERN_C_END

LLVMTypeRef LLVMFP128Type(void)

LLVMValueRef LLVMGetElementAsConstant(LLVMValueRef C, unsigned idx)

LLVMTypeRef LLVMInt64Type(void)

LLVMValueRef LLVMConstStruct(LLVMValueRef *ConstantVals, unsigned Count, LLVMBool Packed)

LLVMBasicBlockRef LLVMAppendBasicBlock(LLVMValueRef FnRef, const char *Name)

LLVMTypeRef LLVMVoidType(void)

LLVMValueRef LLVMMDString(const char *Str, unsigned SLen)

LLVMTypeRef LLVMBFloatType(void)

LLVMTypeRef LLVMInt32Type(void)

LLVMTypeRef LLVMHalfType(void)

LLVMTypeRef LLVMIntType(unsigned NumBits)

LLVMTypeRef LLVMX86AMXType(void)

LLVMTypeRef LLVMStructType(LLVMTypeRef *ElementTypes, unsigned ElementCount, LLVMBool Packed)

LLVMModuleRef LLVMModuleCreateWithName(const char *ModuleID)

LLVMTypeRef LLVMX86FP80Type(void)

LLVMBasicBlockRef LLVMInsertBasicBlock(LLVMBasicBlockRef BBRef, const char *Name)

LLVMValueRef LLVMBuildNUWNeg(LLVMBuilderRef B, LLVMValueRef V, const char *Name)

LLVMTypeRef LLVMPPCFP128Type(void)

LLVMTypeRef LLVMFloatType(void)

LLVMTypeRef LLVMLabelType(void)

LLVMValueRef LLVMConstString(const char *Str, unsigned Length, LLVMBool DontNullTerminate)

unsigned LLVMGetMDKindID(const char *Name, unsigned SLen)

LLVMTypeRef LLVMInt8Type(void)

LLVMTypeRef LLVMDoubleType(void)

LLVMTypeRef LLVMInt1Type(void)

LLVMBuilderRef LLVMCreateBuilder(void)

LLVMTypeRef LLVMInt128Type(void)

LLVMValueRef LLVMConstNUWNeg(LLVMValueRef ConstantVal)

LLVMTypeRef LLVMInt16Type(void)

LLVMValueRef LLVMMDNode(LLVMValueRef *Vals, unsigned Count)

LLVMContextRef LLVMGetGlobalContext()

static cl::opt< bool > SingleThread("licm-force-thread-model-single", cl::Hidden, cl::init(false), cl::desc("Force thread model single in LICM pass"))

MachineInstr unsigned OpIdx

if(auto Err=PB.parsePassPipeline(MPM, Passes)) return wrap(std MPM run * Mod

const SmallVectorImpl< MachineOperand > & Cond

static cl::opt< RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode > Mode("regalloc-enable-advisor", cl::Hidden, cl::init(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Default), cl::desc("Enable regalloc advisor mode"), cl::values(clEnumValN(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Default, "default", "Default"), clEnumValN(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Release, "release", "precompiled"), clEnumValN(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Development, "development", "for training")))

unify loop Fixup each natural loop to have a single exit block

#define LLVM_C_ABI

LLVM_C_ABI is the export/visibility macro used to mark symbols declared in llvm-c as exported when bu...

LLVM_C_ABI LLVMTypeRef LLVMGetTypeByName2(LLVMContextRef C, const char *Name)

Obtain a Type from a context by its registered name.

LLVM_C_ABI LLVMBool LLVMIsEnumAttribute(LLVMAttributeRef A)

Check for the different types of attributes.

LLVM_C_ABI LLVMTypeRef LLVMGetTypeAttributeValue(LLVMAttributeRef A)

Get the type attribute's value.

LLVM_C_ABI void LLVMContextSetDiagnosticHandler(LLVMContextRef C, LLVMDiagnosticHandler Handler, void *DiagnosticContext)

Set the diagnostic handler for this context.

LLVM_C_ABI const char * LLVMGetStringAttributeValue(LLVMAttributeRef A, unsigned *Length)

Get the string attribute's value.

LLVM_C_ABI uint64_t LLVMGetEnumAttributeValue(LLVMAttributeRef A)

Get the enum attribute's value.

LLVM_C_ABI LLVMBool LLVMIsStringAttribute(LLVMAttributeRef A)

LLVM_C_ABI LLVMAttributeRef LLVMCreateConstantRangeAttribute(LLVMContextRef C, unsigned KindID, unsigned NumBits, const uint64_t LowerWords[], const uint64_t UpperWords[])

Create a ConstantRange attribute.

LLVM_C_ABI unsigned LLVMGetEnumAttributeKindForName(const char *Name, size_t SLen)

Return an unique id given the name of a enum attribute, or 0 if no attribute by that name exists.

LLVM_C_ABI LLVMDiagnosticHandler LLVMContextGetDiagnosticHandler(LLVMContextRef C)

Get the diagnostic handler of this context.

LLVM_C_ABI void LLVMContextSetYieldCallback(LLVMContextRef C, LLVMYieldCallback Callback, void *OpaqueHandle)

Set the yield callback function for this context.

LLVM_C_ABI char * LLVMGetDiagInfoDescription(LLVMDiagnosticInfoRef DI)

Return a string representation of the DiagnosticInfo.

LLVM_C_ABI LLVMAttributeRef LLVMCreateStringAttribute(LLVMContextRef C, const char *K, unsigned KLength, const char *V, unsigned VLength)

Create a string attribute.

LLVM_C_ABI unsigned LLVMGetSyncScopeID(LLVMContextRef C, const char *Name, size_t SLen)

Maps a synchronization scope name to a ID unique within this context.

LLVM_C_ABI void LLVMContextSetDiscardValueNames(LLVMContextRef C, LLVMBool Discard)

Set whether the given context discards all value names.

LLVM_C_ABI unsigned LLVMGetMDKindIDInContext(LLVMContextRef C, const char *Name, unsigned SLen)

LLVM_C_ABI unsigned LLVMGetEnumAttributeKind(LLVMAttributeRef A)

Get the unique id corresponding to the enum attribute passed as argument.

LLVM_C_ABI void * LLVMContextGetDiagnosticContext(LLVMContextRef C)

Get the diagnostic context of this context.

LLVM_C_ABI LLVMAttributeRef LLVMCreateTypeAttribute(LLVMContextRef C, unsigned KindID, LLVMTypeRef type_ref)

Create a type attribute.

LLVM_C_ABI unsigned LLVMGetLastEnumAttributeKind(void)

LLVM_C_ABI LLVMBool LLVMContextShouldDiscardValueNames(LLVMContextRef C)

Retrieve whether the given context is set to discard all value names.

LLVM_C_ABI LLVMBool LLVMIsTypeAttribute(LLVMAttributeRef A)

LLVM_C_ABI void LLVMContextDispose(LLVMContextRef C)

Destroy a context instance.

void(* LLVMYieldCallback)(LLVMContextRef, void *)

Definition Core.h:579

LLVM_C_ABI LLVMAttributeRef LLVMCreateEnumAttribute(LLVMContextRef C, unsigned KindID, uint64_t Val)

Create an enum attribute.

LLVM_C_ABI const char * LLVMGetStringAttributeKind(LLVMAttributeRef A, unsigned *Length)

Get the string attribute's kind.

LLVM_C_ABI LLVMContextRef LLVMContextCreate(void)

Create a new context.

void(* LLVMDiagnosticHandler)(LLVMDiagnosticInfoRef, void *)

Definition Core.h:578

LLVM_C_ABI LLVMDiagnosticSeverity LLVMGetDiagInfoSeverity(LLVMDiagnosticInfoRef DI)

Return an enum LLVMDiagnosticSeverity.

LLVM_C_ABI LLVMValueRef LLVMBuildAggregateRet(LLVMBuilderRef, LLVMValueRef *RetVals, unsigned N)

LLVM_C_ABI LLVMValueRef LLVMBuildMul(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildRetVoid(LLVMBuilderRef)

LLVM_C_ABI LLVMValueRef LLVMBuildSub(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildNUWMul(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMBool LLVMGetWeak(LLVMValueRef CmpXchgInst)

LLVM_C_ABI LLVMValueRef LLVMBuildCast(LLVMBuilderRef B, LLVMOpcode Op, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildIsNull(LLVMBuilderRef, LLVMValueRef Val, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildGEPWithNoWrapFlags(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, LLVMValueRef *Indices, unsigned NumIndices, const char *Name, LLVMGEPNoWrapFlags NoWrapFlags)

Creates a GetElementPtr instruction.

LLVM_C_ABI LLVMValueRef LLVMBuildAdd(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI void LLVMSetWeak(LLVMValueRef CmpXchgInst, LLVMBool IsWeak)

LLVM_C_ABI LLVMValueRef LLVMBuildOr(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildBitCast(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildExactUDiv(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildGEP2(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, LLVMValueRef *Indices, unsigned NumIndices, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildNSWSub(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI void LLVMPositionBuilderBeforeInstrAndDbgRecords(LLVMBuilderRef Builder, LLVMValueRef Instr)

Set the builder position before Instr and any attached debug records.

LLVM_C_ABI LLVMValueRef LLVMBuildIsNotNull(LLVMBuilderRef, LLVMValueRef Val, const char *Name)

LLVM_C_ABI void LLVMDisposeBuilder(LLVMBuilderRef Builder)

LLVM_C_ABI void LLVMClearInsertionPosition(LLVMBuilderRef Builder)

LLVM_C_ABI LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef PersFn, unsigned NumClauses, const char *Name)

LLVM_C_ABI void LLVMSetIsDisjoint(LLVMValueRef Inst, LLVMBool IsDisjoint)

Sets the disjoint flag for the instruction.

LLVM_C_ABI LLVMBool LLVMIsAtomicSingleThread(LLVMValueRef AtomicInst)

LLVM_C_ABI LLVMValueRef LLVMBuildResume(LLVMBuilderRef B, LLVMValueRef Exn)

LLVM_C_ABI void LLVMSetAtomicRMWBinOp(LLVMValueRef AtomicRMWInst, LLVMAtomicRMWBinOp BinOp)

LLVM_C_ABI LLVMValueRef LLVMBuildFDiv(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildInvokeWithOperandBundles(LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, LLVMOperandBundleRef *Bundles, unsigned NumBundles, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildXor(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMBool LLVMGetExact(LLVMValueRef DivOrShrInst)

LLVM_C_ABI LLVMValueRef LLVMBuildAddrSpaceCast(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI unsigned LLVMGetNumMaskElements(LLVMValueRef ShuffleVectorInst)

Get the number of elements in the mask of a ShuffleVector instruction.

LLVM_C_ABI void LLVMInsertIntoBuilder(LLVMBuilderRef Builder, LLVMValueRef Instr)

LLVM_C_ABI LLVMValueRef LLVMBuildCleanupRet(LLVMBuilderRef B, LLVMValueRef CatchPad, LLVMBasicBlockRef BB)

LLVM_C_ABI LLVMValueRef LLVMBuildFPToSI(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI void LLVMGetHandlers(LLVMValueRef CatchSwitch, LLVMBasicBlockRef *Handlers)

Obtain the basic blocks acting as handlers for a catchswitch instruction.

LLVM_C_ABI LLVMValueRef LLVMBuildTrunc(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMGetArgOperand(LLVMValueRef Funclet, unsigned i)

LLVM_C_ABI LLVMValueRef LLVMBuildAnd(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI unsigned LLVMGetNumHandlers(LLVMValueRef CatchSwitch)

LLVM_C_ABI LLVMValueRef LLVMBuildCallBr(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Fn, LLVMBasicBlockRef DefaultDest, LLVMBasicBlockRef *IndirectDests, unsigned NumIndirectDests, LLVMValueRef *Args, unsigned NumArgs, LLVMOperandBundleRef *Bundles, unsigned NumBundles, const char *Name)

LLVM_C_ABI LLVMBasicBlockRef LLVMGetInsertBlock(LLVMBuilderRef Builder)

LLVM_C_ABI LLVMValueRef LLVMBuildSDiv(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildSExtOrBitCast(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildCall2(LLVMBuilderRef, LLVMTypeRef, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, const char *Name)

LLVM_C_ABI void LLVMSetNSW(LLVMValueRef ArithInst, LLVMBool HasNSW)

LLVM_C_ABI LLVMMetadataRef LLVMGetCurrentDebugLocation2(LLVMBuilderRef Builder)

Get location information used by debugging information.

LLVM_C_ABI LLVMValueRef LLVMBuildUDiv(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildSelect(LLVMBuilderRef, LLVMValueRef If, LLVMValueRef Then, LLVMValueRef Else, const char *Name)

LLVM_C_ABI void LLVMPositionBuilderBefore(LLVMBuilderRef Builder, LLVMValueRef Instr)

Set the builder position before Instr but after any attached debug records.

LLVM_C_ABI LLVMBool LLVMCanValueUseFastMathFlags(LLVMValueRef Inst)

Check if a given value can potentially have fast math flags.

LLVM_C_ABI void LLVMSetArgOperand(LLVMValueRef Funclet, unsigned i, LLVMValueRef value)

LLVM_C_ABI LLVMValueRef LLVMBuildCondBr(LLVMBuilderRef, LLVMValueRef If, LLVMBasicBlockRef Then, LLVMBasicBlockRef Else)

LLVM_C_ABI LLVMBool LLVMGetNUW(LLVMValueRef ArithInst)

LLVM_C_ABI LLVMOpcode LLVMGetCastOpcode(LLVMValueRef Src, LLVMBool SrcIsSigned, LLVMTypeRef DestTy, LLVMBool DestIsSigned)

LLVM_C_ABI void LLVMInsertIntoBuilderWithName(LLVMBuilderRef Builder, LLVMValueRef Instr, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildSRem(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildCleanupPad(LLVMBuilderRef B, LLVMValueRef ParentPad, LLVMValueRef *Args, unsigned NumArgs, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildIntCast(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

Deprecated: This cast is always signed.

LLVM_C_ABI LLVMValueRef LLVMGetCurrentDebugLocation(LLVMBuilderRef Builder)

Deprecated: Returning the NULL location will crash.

LLVM_C_ABI LLVMValueRef LLVMBuildExtractElement(LLVMBuilderRef, LLVMValueRef VecVal, LLVMValueRef Index, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildShl(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMBuilderRef LLVMCreateBuilderInContext(LLVMContextRef C)

LLVM_C_ABI LLVMValueRef LLVMBuildCatchRet(LLVMBuilderRef B, LLVMValueRef CatchPad, LLVMBasicBlockRef BB)

LLVM_C_ABI LLVMValueRef LLVMBuildMemMove(LLVMBuilderRef B, LLVMValueRef Dst, unsigned DstAlign, LLVMValueRef Src, unsigned SrcAlign, LLVMValueRef Size)

Creates and inserts a memmove between the specified pointers.

LLVM_C_ABI LLVMAtomicOrdering LLVMGetOrdering(LLVMValueRef MemoryAccessInst)

LLVM_C_ABI LLVMValueRef LLVMBuildStructGEP2(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, unsigned Idx, const char *Name)

LLVM_C_ABI int LLVMGetMaskValue(LLVMValueRef ShuffleVectorInst, unsigned Elt)

Get the mask value at position Elt in the mask of a ShuffleVector instruction.

LLVM_C_ABI void LLVMAddCase(LLVMValueRef Switch, LLVMValueRef OnVal, LLVMBasicBlockRef Dest)

LLVM_C_ABI LLVMValueRef LLVMBuildBr(LLVMBuilderRef, LLVMBasicBlockRef Dest)

LLVM_C_ABI LLVMValueRef LLVMBuildInsertElement(LLVMBuilderRef, LLVMValueRef VecVal, LLVMValueRef EltVal, LLVMValueRef Index, const char *Name)

LLVM_C_ABI void LLVMPositionBuilderBeforeDbgRecords(LLVMBuilderRef Builder, LLVMBasicBlockRef Block, LLVMValueRef Inst)

Set the builder position before Instr and any attached debug records, or if Instr is null set the pos...

LLVM_C_ABI void LLVMSetFastMathFlags(LLVMValueRef FPMathInst, LLVMFastMathFlags FMF)

Sets the flags for which fast-math-style optimizations are allowed for this value.

LLVM_C_ABI LLVMValueRef LLVMBuildIntCast2(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, LLVMBool IsSigned, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildNUWSub(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildFAdd(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildCatchPad(LLVMBuilderRef B, LLVMValueRef ParentPad, LLVMValueRef *Args, unsigned NumArgs, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildCallWithOperandBundles(LLVMBuilderRef, LLVMTypeRef, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, LLVMOperandBundleRef *Bundles, unsigned NumBundles, const char *Name)

LLVM_C_ABI LLVMBool LLVMIsCleanup(LLVMValueRef LandingPad)

LLVM_C_ABI LLVMValueRef LLVMBuildZExtOrBitCast(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMBool LLVMGetVolatile(LLVMValueRef Inst)

LLVM_C_ABI LLVMValueRef LLVMBuildFPCast(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildPtrToInt(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildPtrDiff2(LLVMBuilderRef, LLVMTypeRef ElemTy, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildTruncOrBitCast(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildArrayAlloca(LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Val, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMGetClause(LLVMValueRef LandingPad, unsigned Idx)

LLVM_C_ABI unsigned LLVMGetAtomicSyncScopeID(LLVMValueRef AtomicInst)

Returns the synchronization scope ID of an atomic instruction.

LLVM_C_ABI LLVMValueRef LLVMBuildVAArg(LLVMBuilderRef, LLVMValueRef List, LLVMTypeRef Ty, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildAtomicCmpXchgSyncScope(LLVMBuilderRef B, LLVMValueRef Ptr, LLVMValueRef Cmp, LLVMValueRef New, LLVMAtomicOrdering SuccessOrdering, LLVMAtomicOrdering FailureOrdering, unsigned SSID)

LLVM_C_ABI LLVMValueRef LLVMBuildBinOp(LLVMBuilderRef B, LLVMOpcode Op, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMBool LLVMIsAtomic(LLVMValueRef Inst)

Returns whether an instruction is an atomic instruction, e.g., atomicrmw, cmpxchg,...

LLVM_C_ABI void LLVMSetVolatile(LLVMValueRef MemoryAccessInst, LLVMBool IsVolatile)

LLVM_C_ABI void LLVMSetAtomicSingleThread(LLVMValueRef AtomicInst, LLVMBool SingleThread)

LLVM_C_ABI LLVMValueRef LLVMBuildFRem(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildURem(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildIntToPtr(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMBool LLVMGetNSW(LLVMValueRef ArithInst)

LLVM_C_ABI LLVMValueRef LLVMBuildNSWMul(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildFree(LLVMBuilderRef, LLVMValueRef PointerVal)

LLVM_C_ABI LLVMValueRef LLVMBuildNeg(LLVMBuilderRef, LLVMValueRef V, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildFSub(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildCatchSwitch(LLVMBuilderRef B, LLVMValueRef ParentPad, LLVMBasicBlockRef UnwindBB, unsigned NumHandlers, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildLoad2(LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef PointerVal, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildInBoundsGEP2(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, LLVMValueRef *Indices, unsigned NumIndices, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildArrayMalloc(LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Val, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildAtomicCmpXchg(LLVMBuilderRef B, LLVMValueRef Ptr, LLVMValueRef Cmp, LLVMValueRef New, LLVMAtomicOrdering SuccessOrdering, LLVMAtomicOrdering FailureOrdering, LLVMBool SingleThread)

LLVM_C_ABI LLVMValueRef LLVMBuildIndirectBr(LLVMBuilderRef B, LLVMValueRef Addr, unsigned NumDests)

LLVM_C_ABI LLVMValueRef LLVMBuildUnreachable(LLVMBuilderRef)

LLVM_C_ABI LLVMValueRef LLVMBuildSIToFP(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildSExt(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildFPToUI(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI void LLVMSetInstDebugLocation(LLVMBuilderRef Builder, LLVMValueRef Inst)

Attempts to set the debug location for the given instruction using the current debug location for the...

LLVM_C_ABI void LLVMSetCurrentDebugLocation2(LLVMBuilderRef Builder, LLVMMetadataRef Loc)

Set location information used by debugging information.

LLVM_C_ABI LLVMValueRef LLVMBuildAlloca(LLVMBuilderRef, LLVMTypeRef Ty, const char *Name)

LLVM_C_ABI void LLVMSetCurrentDebugLocation(LLVMBuilderRef Builder, LLVMValueRef L)

Deprecated: Passing the NULL location will crash.

LLVM_C_ABI LLVMValueRef LLVMBuildPhi(LLVMBuilderRef, LLVMTypeRef Ty, const char *Name)

LLVM_C_ABI void LLVMAddDestination(LLVMValueRef IndirectBr, LLVMBasicBlockRef Dest)

LLVM_C_ABI LLVMBool LLVMGetNNeg(LLVMValueRef NonNegInst)

Gets if the instruction has the non-negative flag set.

LLVM_C_ABI LLVMValueRef LLVMBuildAtomicRMWSyncScope(LLVMBuilderRef B, LLVMAtomicRMWBinOp op, LLVMValueRef PTR, LLVMValueRef Val, LLVMAtomicOrdering ordering, unsigned SSID)

LLVM_C_ABI LLVMValueRef LLVMBuildRet(LLVMBuilderRef, LLVMValueRef V)

LLVM_C_ABI LLVMMetadataRef LLVMBuilderGetDefaultFPMathTag(LLVMBuilderRef Builder)

Get the dafult floating-point math metadata for a given builder.

LLVM_C_ABI LLVMValueRef LLVMBuildExtractValue(LLVMBuilderRef, LLVMValueRef AggVal, unsigned Index, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildGlobalStringPtr(LLVMBuilderRef B, const char *Str, const char *Name)

Deprecated: Use LLVMBuildGlobalString instead, which has identical behavior.

LLVM_C_ABI LLVMValueRef LLVMBuildNSWAdd(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI void LLVMPositionBuilderAtEnd(LLVMBuilderRef Builder, LLVMBasicBlockRef Block)

LLVM_C_ABI LLVMValueRef LLVMBuildFMul(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildLShr(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMAtomicRMWBinOp LLVMGetAtomicRMWBinOp(LLVMValueRef AtomicRMWInst)

LLVM_C_ABI LLVMValueRef LLVMBuildFNeg(LLVMBuilderRef, LLVMValueRef V, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildMemSet(LLVMBuilderRef B, LLVMValueRef Ptr, LLVMValueRef Val, LLVMValueRef Len, unsigned Align)

Creates and inserts a memset to the specified pointer and the specified value.

LLVM_C_ABI void LLVMSetAtomicSyncScopeID(LLVMValueRef AtomicInst, unsigned SSID)

Sets the synchronization scope ID of an atomic instruction.

LLVM_C_ABI LLVMContextRef LLVMGetBuilderContext(LLVMBuilderRef Builder)

Obtain the context to which this builder is associated.

LLVM_C_ABI LLVMValueRef LLVMBuildMalloc(LLVMBuilderRef, LLVMTypeRef Ty, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildFreeze(LLVMBuilderRef, LLVMValueRef Val, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildGlobalString(LLVMBuilderRef B, const char *Str, const char *Name)

LLVM_C_ABI void LLVMSetNUW(LLVMValueRef ArithInst, LLVMBool HasNUW)

LLVM_C_ABI LLVMAtomicOrdering LLVMGetCmpXchgSuccessOrdering(LLVMValueRef CmpXchgInst)

LLVM_C_ABI LLVMValueRef LLVMBuildFCmp(LLVMBuilderRef, LLVMRealPredicate Op, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildPointerCast(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildExactSDiv(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildShuffleVector(LLVMBuilderRef, LLVMValueRef V1, LLVMValueRef V2, LLVMValueRef Mask, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildFPExt(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI void LLVMSetCleanup(LLVMValueRef LandingPad, LLVMBool Val)

LLVM_C_ABI LLVMValueRef LLVMBuildICmp(LLVMBuilderRef, LLVMIntPredicate Op, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI void LLVMSetCmpXchgFailureOrdering(LLVMValueRef CmpXchgInst, LLVMAtomicOrdering Ordering)

LLVM_C_ABI void LLVMAddClause(LLVMValueRef LandingPad, LLVMValueRef ClauseVal)

LLVM_C_ABI LLVMValueRef LLVMBuildFence(LLVMBuilderRef B, LLVMAtomicOrdering ordering, LLVMBool singleThread, const char *Name)

LLVM_C_ABI void LLVMSetParentCatchSwitch(LLVMValueRef CatchPad, LLVMValueRef CatchSwitch)

Set the parent catchswitch instruction of a catchpad instruction.

LLVM_C_ABI LLVMValueRef LLVMBuildFenceSyncScope(LLVMBuilderRef B, LLVMAtomicOrdering ordering, unsigned SSID, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildUIToFP(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI void LLVMPositionBuilder(LLVMBuilderRef Builder, LLVMBasicBlockRef Block, LLVMValueRef Instr)

Set the builder position before Instr but after any attached debug records, or if Instr is null set t...

LLVM_C_ABI unsigned LLVMGetNumClauses(LLVMValueRef LandingPad)

LLVM_C_ABI int LLVMGetUndefMaskElem(void)

LLVM_C_ABI void LLVMSetCmpXchgSuccessOrdering(LLVMValueRef CmpXchgInst, LLVMAtomicOrdering Ordering)

LLVM_C_ABI LLVMValueRef LLVMGetParentCatchSwitch(LLVMValueRef CatchPad)

Get the parent catchswitch instruction of a catchpad instruction.

LLVM_C_ABI LLVMFastMathFlags LLVMGetFastMathFlags(LLVMValueRef FPMathInst)

Get the flags for which fast-math-style optimizations are allowed for this value.

LLVM_C_ABI LLVMBool LLVMGetIsDisjoint(LLVMValueRef Inst)

Gets whether the instruction has the disjoint flag set.

LLVM_C_ABI LLVMValueRef LLVMBuildSwitch(LLVMBuilderRef, LLVMValueRef V, LLVMBasicBlockRef Else, unsigned NumCases)

LLVM_C_ABI void LLVMSetNNeg(LLVMValueRef NonNegInst, LLVMBool IsNonNeg)

Sets the non-negative flag for the instruction.

LLVM_C_ABI LLVMValueRef LLVMBuildMemCpy(LLVMBuilderRef B, LLVMValueRef Dst, unsigned DstAlign, LLVMValueRef Src, unsigned SrcAlign, LLVMValueRef Size)

Creates and inserts a memcpy between the specified pointers.

LLVM_C_ABI void LLVMAddHandler(LLVMValueRef CatchSwitch, LLVMBasicBlockRef Dest)

LLVM_C_ABI void LLVMSetExact(LLVMValueRef DivOrShrInst, LLVMBool IsExact)

LLVM_C_ABI LLVMValueRef LLVMBuildNSWNeg(LLVMBuilderRef B, LLVMValueRef V, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildAShr(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildInvoke2(LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, const char *Name)

LLVM_C_ABI void LLVMSetOrdering(LLVMValueRef MemoryAccessInst, LLVMAtomicOrdering Ordering)

LLVM_C_ABI LLVMValueRef LLVMBuildFPTrunc(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildStore(LLVMBuilderRef, LLVMValueRef Val, LLVMValueRef Ptr)

LLVM_C_ABI void LLVMAddMetadataToInst(LLVMBuilderRef Builder, LLVMValueRef Inst)

Adds the metadata registered with the given builder to the given instruction.

LLVM_C_ABI LLVMAtomicOrdering LLVMGetCmpXchgFailureOrdering(LLVMValueRef CmpXchgInst)

LLVM_C_ABI LLVMValueRef LLVMBuildNUWAdd(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildInsertValue(LLVMBuilderRef, LLVMValueRef AggVal, LLVMValueRef EltVal, unsigned Index, const char *Name)

LLVM_C_ABI void LLVMBuilderSetDefaultFPMathTag(LLVMBuilderRef Builder, LLVMMetadataRef FPMathTag)

Set the default floating-point math metadata for the given builder.

LLVM_C_ABI LLVMValueRef LLVMBuildZExt(LLVMBuilderRef, LLVMValueRef Val, LLVMTypeRef DestTy, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildNot(LLVMBuilderRef, LLVMValueRef V, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMBuildAtomicRMW(LLVMBuilderRef B, LLVMAtomicRMWBinOp op, LLVMValueRef PTR, LLVMValueRef Val, LLVMAtomicOrdering ordering, LLVMBool singleThread)

LLVM_C_ABI LLVMMemoryBufferRef LLVMCreateMemoryBufferWithMemoryRange(const char *InputData, size_t InputDataLength, const char *BufferName, LLVMBool RequiresNullTerminator)

LLVM_C_ABI size_t LLVMGetBufferSize(LLVMMemoryBufferRef MemBuf)

LLVM_C_ABI LLVMMemoryBufferRef LLVMCreateMemoryBufferWithMemoryRangeCopy(const char *InputData, size_t InputDataLength, const char *BufferName)

LLVM_C_ABI const char * LLVMGetBufferStart(LLVMMemoryBufferRef MemBuf)

LLVM_C_ABI LLVMBool LLVMCreateMemoryBufferWithContentsOfFile(const char *Path, LLVMMemoryBufferRef *OutMemBuf, char **OutMessage)

LLVM_C_ABI LLVMBool LLVMCreateMemoryBufferWithSTDIN(LLVMMemoryBufferRef *OutMemBuf, char **OutMessage)

LLVM_C_ABI void LLVMDisposeMemoryBuffer(LLVMMemoryBufferRef MemBuf)

LLVM_C_ABI LLVMModuleProviderRef LLVMCreateModuleProviderForExistingModule(LLVMModuleRef M)

Changes the type of M so it can be passed to FunctionPassManagers and the JIT.

LLVM_C_ABI void LLVMDisposeModuleProvider(LLVMModuleProviderRef M)

Destroys the module M.

LLVM_C_ABI char * LLVMPrintModuleToString(LLVMModuleRef M)

Return a string representation of the module.

LLVM_C_ABI LLVMNamedMDNodeRef LLVMGetOrInsertNamedMetadata(LLVMModuleRef M, const char *Name, size_t NameLen)

Retrieve a NamedMDNode with the given name, creating a new node if no such node exists.

LLVM_C_ABI LLVMValueRef LLVMGetNamedFunctionWithLength(LLVMModuleRef M, const char *Name, size_t Length)

Obtain a Function value from a Module by its name.

LLVM_C_ABI unsigned LLVMGetDebugLocColumn(LLVMValueRef Val)

Return the column number of the debug location for this value, which must be an llvm::Instruction.

LLVM_C_ABI LLVMNamedMDNodeRef LLVMGetNamedMetadata(LLVMModuleRef M, const char *Name, size_t NameLen)

Retrieve a NamedMDNode with the given name, returning NULL if no such node exists.

LLVM_C_ABI LLVMModuleRef LLVMModuleCreateWithNameInContext(const char *ModuleID, LLVMContextRef C)

Create a new, empty module in a specific context.

LLVM_C_ABI const char * LLVMGetTarget(LLVMModuleRef M)

Obtain the target triple for a module.

LLVM_C_ABI LLVMBool LLVMGetInlineAsmCanUnwind(LLVMValueRef InlineAsmVal)

Get if the inline asm snippet may unwind the stack.

LLVM_C_ABI const char * LLVMGetModuleInlineAsm(LLVMModuleRef M, size_t *Len)

Get inline assembly for a module.

LLVM_C_ABI LLVMBool LLVMGetInlineAsmNeedsAlignedStack(LLVMValueRef InlineAsmVal)

Get if the inline asm snippet needs an aligned stack.

LLVM_C_ABI LLVMBool LLVMGetInlineAsmHasSideEffects(LLVMValueRef InlineAsmVal)

Get if the inline asm snippet has side effects.

LLVM_C_ABI unsigned LLVMGetNamedMetadataNumOperands(LLVMModuleRef M, const char *Name)

Obtain the number of operands for named metadata in a module.

LLVM_C_ABI void LLVMDumpModule(LLVMModuleRef M)

Dump a representation of a module to stderr.

LLVM_C_ABI void LLVMSetTarget(LLVMModuleRef M, const char *Triple)

Set the target triple for a module.

LLVM_C_ABI LLVMTypeRef LLVMGetInlineAsmFunctionType(LLVMValueRef InlineAsmVal)

Get the function type of the inline assembly snippet.

LLVM_C_ABI LLVMBool LLVMIsNewDbgInfoFormat(LLVMModuleRef M)

Soon to be deprecated.

LLVM_C_ABI LLVMContextRef LLVMGetModuleContext(LLVMModuleRef M)

Obtain the context to which this module is associated.

LLVM_C_ABI LLVMInlineAsmDialect LLVMGetInlineAsmDialect(LLVMValueRef InlineAsmVal)

Get the dialect used by the inline asm snippet.

LLVM_C_ABI LLVMModuleRef LLVMCloneModule(LLVMModuleRef M)

Return an exact copy of the specified module.

LLVM_C_ABI void LLVMSetModuleInlineAsm(LLVMModuleRef M, const char *Asm)

Deprecated: Use LLVMSetModuleInlineAsm2 instead.

LLVM_C_ABI LLVMValueRef LLVMGetNextFunction(LLVMValueRef Fn)

Advance a Function iterator to the next Function.

LLVM_C_ABI const char * LLVMGetModuleIdentifier(LLVMModuleRef M, size_t *Len)

Obtain the identifier of a module.

LLVM_C_ABI const char * LLVMGetSourceFileName(LLVMModuleRef M, size_t *Len)

Obtain the module's original source file name.

LLVM_C_ABI const char * LLVMGetDataLayoutStr(LLVMModuleRef M)

Obtain the data layout for a module.

LLVM_C_ABI LLVMModuleFlagBehavior LLVMModuleFlagEntriesGetFlagBehavior(LLVMModuleFlagEntry *Entries, unsigned Index)

Returns the flag behavior for a module flag entry at a specific index.

LLVM_C_ABI void LLVMSetIsNewDbgInfoFormat(LLVMModuleRef M, LLVMBool UseNewFormat)

Soon to be deprecated.

LLVM_C_ABI LLVMTypeRef LLVMGetTypeByName(LLVMModuleRef M, const char *Name)

Deprecated: Use LLVMGetTypeByName2 instead.

LLVM_C_ABI void LLVMSetModuleIdentifier(LLVMModuleRef M, const char *Ident, size_t Len)

Set the identifier of a module to a string Ident with length Len.

LLVM_C_ABI const char * LLVMGetInlineAsmAsmString(LLVMValueRef InlineAsmVal, size_t *Len)

Get the template string used for an inline assembly snippet.

LLVM_C_ABI LLVMValueRef LLVMGetInlineAsm(LLVMTypeRef Ty, const char *AsmString, size_t AsmStringSize, const char *Constraints, size_t ConstraintsSize, LLVMBool HasSideEffects, LLVMBool IsAlignStack, LLVMInlineAsmDialect Dialect, LLVMBool CanThrow)

Create the specified uniqued inline asm string.

LLVM_C_ABI LLVMValueRef LLVMGetOrInsertFunction(LLVMModuleRef M, const char *Name, size_t NameLen, LLVMTypeRef FunctionTy)

Obtain or insert a function into a module.

LLVM_C_ABI const char * LLVMGetInlineAsmConstraintString(LLVMValueRef InlineAsmVal, size_t *Len)

Get the raw constraint string for an inline assembly snippet.

LLVM_C_ABI LLVMNamedMDNodeRef LLVMGetNextNamedMetadata(LLVMNamedMDNodeRef NamedMDNode)

Advance a NamedMDNode iterator to the next NamedMDNode.

LLVM_C_ABI void LLVMGetNamedMetadataOperands(LLVMModuleRef M, const char *Name, LLVMValueRef *Dest)

Obtain the named metadata operands for a module.

LLVM_C_ABI LLVMMetadataRef LLVMGetModuleFlag(LLVMModuleRef M, const char *Key, size_t KeyLen)

Add a module-level flag to the module-level flags metadata if it doesn't already exist.

LLVM_C_ABI LLVMValueRef LLVMAddFunction(LLVMModuleRef M, const char *Name, LLVMTypeRef FunctionTy)

Add a function to a module under a specified name.

LLVM_C_ABI LLVMValueRef LLVMGetPreviousFunction(LLVMValueRef Fn)

Decrement a Function iterator to the previous Function.

LLVM_C_ABI const char * LLVMGetDebugLocDirectory(LLVMValueRef Val, unsigned *Length)

Return the directory of the debug location for this value, which must be an llvm::Instruction,...

LLVM_C_ABI void LLVMAddNamedMetadataOperand(LLVMModuleRef M, const char *Name, LLVMValueRef Val)

Add an operand to named metadata.

LLVM_C_ABI unsigned LLVMGetDebugLocLine(LLVMValueRef Val)

Return the line number of the debug location for this value, which must be an llvm::Instruction,...

LLVM_C_ABI LLVMMetadataRef LLVMModuleFlagEntriesGetMetadata(LLVMModuleFlagEntry *Entries, unsigned Index)

Returns the metadata for a module flag entry at a specific index.

LLVM_C_ABI void LLVMAddModuleFlag(LLVMModuleRef M, LLVMModuleFlagBehavior Behavior, const char *Key, size_t KeyLen, LLVMMetadataRef Val)

Add a module-level flag to the module-level flags metadata if it doesn't already exist.

LLVM_C_ABI LLVMValueRef LLVMGetLastFunction(LLVMModuleRef M)

Obtain an iterator to the last Function in a Module.

LLVM_C_ABI LLVMNamedMDNodeRef LLVMGetPreviousNamedMetadata(LLVMNamedMDNodeRef NamedMDNode)

Decrement a NamedMDNode iterator to the previous NamedMDNode.

LLVM_C_ABI const char * LLVMGetNamedMetadataName(LLVMNamedMDNodeRef NamedMD, size_t *NameLen)

Retrieve the name of a NamedMDNode.

LLVM_C_ABI LLVMValueRef LLVMGetNamedFunction(LLVMModuleRef M, const char *Name)

Obtain a Function value from a Module by its name.

LLVM_C_ABI const char * LLVMGetDebugLocFilename(LLVMValueRef Val, unsigned *Length)

Return the filename of the debug location for this value, which must be an llvm::Instruction,...

LLVM_C_ABI void LLVMAppendModuleInlineAsm(LLVMModuleRef M, const char *Asm, size_t Len)

Append inline assembly to a module.

LLVM_C_ABI void LLVMSetDataLayout(LLVMModuleRef M, const char *DataLayoutStr)

Set the data layout for a module.

LLVM_C_ABI void LLVMDisposeModuleFlagsMetadata(LLVMModuleFlagEntry *Entries)

Destroys module flags metadata entries.

LLVM_C_ABI void LLVMDisposeModule(LLVMModuleRef M)

Destroy a module instance.

LLVM_C_ABI LLVMNamedMDNodeRef LLVMGetLastNamedMetadata(LLVMModuleRef M)

Obtain an iterator to the last NamedMDNode in a Module.

LLVM_C_ABI void LLVMSetModuleInlineAsm2(LLVMModuleRef M, const char *Asm, size_t Len)

Set inline assembly for a module.

LLVM_C_ABI LLVMValueRef LLVMGetFirstFunction(LLVMModuleRef M)

Obtain an iterator to the first Function in a Module.

LLVM_C_ABI LLVMNamedMDNodeRef LLVMGetFirstNamedMetadata(LLVMModuleRef M)

Obtain an iterator to the first NamedMDNode in a Module.

LLVM_C_ABI const char * LLVMModuleFlagEntriesGetKey(LLVMModuleFlagEntry *Entries, unsigned Index, size_t *Len)

Returns the key for a module flag entry at a specific index.

LLVM_C_ABI void LLVMSetSourceFileName(LLVMModuleRef M, const char *Name, size_t Len)

Set the original source file name of a module to a string Name with length Len.

LLVM_C_ABI LLVMBool LLVMPrintModuleToFile(LLVMModuleRef M, const char *Filename, char **ErrorMessage)

Print a representation of a module to a file.

LLVM_C_ABI const char * LLVMGetDataLayout(LLVMModuleRef M)

LLVM_C_ABI LLVMModuleFlagEntry * LLVMCopyModuleFlagsMetadata(LLVMModuleRef M, size_t *Len)

Returns the module flags as an array of flag-key-value triples.

LLVM_C_ABI LLVMOperandBundleRef LLVMCreateOperandBundle(const char *Tag, size_t TagLen, LLVMValueRef *Args, unsigned NumArgs)

Create a new operand bundle.

LLVM_C_ABI unsigned LLVMGetNumOperandBundleArgs(LLVMOperandBundleRef Bundle)

Obtain the number of operands for an operand bundle.

LLVM_C_ABI const char * LLVMGetOperandBundleTag(LLVMOperandBundleRef Bundle, size_t *Len)

Obtain the tag of an operand bundle as a string.

LLVM_C_ABI void LLVMDisposeOperandBundle(LLVMOperandBundleRef Bundle)

Destroy an operand bundle.

LLVM_C_ABI LLVMValueRef LLVMGetOperandBundleArgAtIndex(LLVMOperandBundleRef Bundle, unsigned Index)

Obtain the operand for an operand bundle at the given index.

LLVM_C_ABI LLVMPassManagerRef LLVMCreateFunctionPassManager(LLVMModuleProviderRef MP)

Deprecated: Use LLVMCreateFunctionPassManagerForModule instead.

LLVM_C_ABI LLVMPassManagerRef LLVMCreateFunctionPassManagerForModule(LLVMModuleRef M)

Constructs a new function-by-function pass pipeline over the module provider.

LLVM_C_ABI LLVMBool LLVMFinalizeFunctionPassManager(LLVMPassManagerRef FPM)

Finalizes all of the function passes scheduled in the function pass manager.

LLVM_C_ABI void LLVMDisposePassManager(LLVMPassManagerRef PM)

Frees the memory of a pass pipeline.

LLVM_C_ABI LLVMBool LLVMRunFunctionPassManager(LLVMPassManagerRef FPM, LLVMValueRef F)

Executes all of the function passes scheduled in the function pass manager on the provided function.

LLVM_C_ABI LLVMBool LLVMInitializeFunctionPassManager(LLVMPassManagerRef FPM)

Initializes all of the function passes scheduled in the function pass manager.

LLVM_C_ABI LLVMBool LLVMRunPassManager(LLVMPassManagerRef PM, LLVMModuleRef M)

Initializes, executes on the provided module, and finalizes all of the passes scheduled in the pass m...

LLVM_C_ABI LLVMPassManagerRef LLVMCreatePassManager(void)

Constructs a new whole-module pass pipeline.

LLVM_C_ABI void LLVMStopMultithreaded(void)

Deprecated: Multi-threading can only be enabled/disabled with the compile time define LLVM_ENABLE_THR...

LLVM_C_ABI LLVMBool LLVMStartMultithreaded(void)

Deprecated: Multi-threading can only be enabled/disabled with the compile time define LLVM_ENABLE_THR...

LLVM_C_ABI LLVMBool LLVMIsMultithreaded(void)

Check whether LLVM is executing in thread-safe mode or not.

LLVM_C_ABI LLVMTypeRef LLVMHalfTypeInContext(LLVMContextRef C)

Obtain a 16-bit floating point type from a context.

LLVM_C_ABI LLVMTypeRef LLVMBFloatTypeInContext(LLVMContextRef C)

Obtain a 16-bit brain floating point type from a context.

LLVM_C_ABI LLVMTypeRef LLVMPPCFP128TypeInContext(LLVMContextRef C)

Obtain a 128-bit floating point type (two 64-bits) from a context.

LLVM_C_ABI LLVMTypeRef LLVMDoubleTypeInContext(LLVMContextRef C)

Obtain a 64-bit floating point type from a context.

LLVM_C_ABI LLVMTypeRef LLVMFloatTypeInContext(LLVMContextRef C)

Obtain a 32-bit floating point type from a context.

LLVM_C_ABI LLVMTypeRef LLVMFP128TypeInContext(LLVMContextRef C)

Obtain a 128-bit floating point type (112-bit mantissa) from a context.

LLVM_C_ABI LLVMTypeRef LLVMX86FP80TypeInContext(LLVMContextRef C)

Obtain a 80-bit floating point type (X87) from a context.

LLVM_C_ABI LLVMTypeRef LLVMGetReturnType(LLVMTypeRef FunctionTy)

Obtain the Type this function Type returns.

LLVM_C_ABI LLVMTypeRef LLVMFunctionType(LLVMTypeRef ReturnType, LLVMTypeRef *ParamTypes, unsigned ParamCount, LLVMBool IsVarArg)

Obtain a function type consisting of a specified signature.

LLVM_C_ABI LLVMBool LLVMIsFunctionVarArg(LLVMTypeRef FunctionTy)

Returns whether a function type is variadic.

LLVM_C_ABI unsigned LLVMCountParamTypes(LLVMTypeRef FunctionTy)

Obtain the number of parameters this function accepts.

LLVM_C_ABI void LLVMGetParamTypes(LLVMTypeRef FunctionTy, LLVMTypeRef *Dest)

Obtain the types of a function's parameters.

LLVM_C_ABI LLVMTypeRef LLVMInt1TypeInContext(LLVMContextRef C)

Obtain an integer type from a context with specified bit width.

LLVM_C_ABI LLVMTypeRef LLVMInt8TypeInContext(LLVMContextRef C)

LLVM_C_ABI LLVMTypeRef LLVMInt32TypeInContext(LLVMContextRef C)

LLVM_C_ABI LLVMTypeRef LLVMIntTypeInContext(LLVMContextRef C, unsigned NumBits)

LLVM_C_ABI LLVMTypeRef LLVMInt64TypeInContext(LLVMContextRef C)

LLVM_C_ABI LLVMTypeRef LLVMInt16TypeInContext(LLVMContextRef C)

LLVM_C_ABI unsigned LLVMGetIntTypeWidth(LLVMTypeRef IntegerTy)

LLVM_C_ABI LLVMTypeRef LLVMInt128TypeInContext(LLVMContextRef C)

LLVM_C_ABI unsigned LLVMGetTargetExtTypeNumTypeParams(LLVMTypeRef TargetExtTy)

Obtain the number of type parameters for this target extension type.

LLVM_C_ABI LLVMTypeRef LLVMX86AMXTypeInContext(LLVMContextRef C)

Create a X86 AMX type in a context.

LLVM_C_ABI const char * LLVMGetTargetExtTypeName(LLVMTypeRef TargetExtTy)

Obtain the name for this target extension type.

LLVM_C_ABI LLVMTypeRef LLVMVoidTypeInContext(LLVMContextRef C)

Create a void type in a context.

LLVM_C_ABI LLVMTypeRef LLVMTokenTypeInContext(LLVMContextRef C)

Create a token type in a context.

LLVM_C_ABI unsigned LLVMGetTargetExtTypeNumIntParams(LLVMTypeRef TargetExtTy)

Obtain the number of int parameters for this target extension type.

LLVM_C_ABI LLVMTypeRef LLVMLabelTypeInContext(LLVMContextRef C)

Create a label type in a context.

LLVM_C_ABI LLVMTypeRef LLVMMetadataTypeInContext(LLVMContextRef C)

Create a metadata type in a context.

LLVM_C_ABI LLVMTypeRef LLVMGetTargetExtTypeTypeParam(LLVMTypeRef TargetExtTy, unsigned Idx)

Get the type parameter at the given index for the target extension type.

LLVM_C_ABI LLVMTypeRef LLVMTargetExtTypeInContext(LLVMContextRef C, const char *Name, LLVMTypeRef *TypeParams, unsigned TypeParamCount, unsigned *IntParams, unsigned IntParamCount)

Create a target extension type in LLVM context.

LLVM_C_ABI unsigned LLVMGetTargetExtTypeIntParam(LLVMTypeRef TargetExtTy, unsigned Idx)

Get the int parameter at the given index for the target extension type.

LLVM_C_ABI LLVMValueRef LLVMGetConstantPtrAuthAddrDiscriminator(LLVMValueRef PtrAuth)

Get the address discriminator value for the associated ConstantPtrAuth constant.

LLVM_C_ABI LLVMBool LLVMPointerTypeIsOpaque(LLVMTypeRef Ty)

Determine whether a pointer is opaque.

LLVM_C_ABI LLVMTypeRef LLVMPointerTypeInContext(LLVMContextRef C, unsigned AddressSpace)

Create an opaque pointer type in a context.

LLVM_C_ABI LLVMTypeRef LLVMVectorType(LLVMTypeRef ElementType, unsigned ElementCount)

Create a vector type that contains a defined type and has a specific number of elements.

LLVM_C_ABI LLVMTypeRef LLVMGetElementType(LLVMTypeRef Ty)

Obtain the element type of an array or vector type.

LLVM_C_ABI LLVMTypeRef LLVMScalableVectorType(LLVMTypeRef ElementType, unsigned ElementCount)

Create a vector type that contains a defined type and has a scalable number of elements.

LLVM_C_ABI LLVMValueRef LLVMGetConstantPtrAuthDiscriminator(LLVMValueRef PtrAuth)

Get the discriminator value for the associated ConstantPtrAuth constant.

LLVM_C_ABI uint64_t LLVMGetArrayLength2(LLVMTypeRef ArrayTy)

Obtain the length of an array type.

LLVM_C_ABI LLVMValueRef LLVMGetConstantPtrAuthKey(LLVMValueRef PtrAuth)

Get the key value for the associated ConstantPtrAuth constant.

LLVM_C_ABI unsigned LLVMGetArrayLength(LLVMTypeRef ArrayTy)

Obtain the length of an array type.

LLVM_C_ABI LLVMValueRef LLVMGetConstantPtrAuthPointer(LLVMValueRef PtrAuth)

Get the pointer value for the associated ConstantPtrAuth constant.

LLVM_C_ABI unsigned LLVMGetPointerAddressSpace(LLVMTypeRef PointerTy)

Obtain the address space of a pointer type.

LLVM_C_ABI LLVMTypeRef LLVMArrayType2(LLVMTypeRef ElementType, uint64_t ElementCount)

Create a fixed size array type that refers to a specific type.

LLVM_C_ABI unsigned LLVMGetVectorSize(LLVMTypeRef VectorTy)

Obtain the (possibly scalable) number of elements in a vector type.

LLVM_C_ABI LLVMTypeRef LLVMArrayType(LLVMTypeRef ElementType, unsigned ElementCount)

Create a fixed size array type that refers to a specific type.

LLVM_C_ABI void LLVMGetSubtypes(LLVMTypeRef Tp, LLVMTypeRef *Arr)

Returns type's subtypes.

LLVM_C_ABI LLVMTypeRef LLVMPointerType(LLVMTypeRef ElementType, unsigned AddressSpace)

Create a pointer type that points to a defined type.

LLVM_C_ABI unsigned LLVMGetNumContainedTypes(LLVMTypeRef Tp)

Return the number of types in the derived type.

LLVM_C_ABI LLVMTypeRef LLVMStructTypeInContext(LLVMContextRef C, LLVMTypeRef *ElementTypes, unsigned ElementCount, LLVMBool Packed)

Create a new structure type in a context.

LLVM_C_ABI void LLVMGetStructElementTypes(LLVMTypeRef StructTy, LLVMTypeRef *Dest)

Get the elements within a structure.

LLVM_C_ABI LLVMTypeRef LLVMStructGetTypeAtIndex(LLVMTypeRef StructTy, unsigned i)

Get the type of the element at a given index in the structure.

LLVM_C_ABI LLVMBool LLVMIsPackedStruct(LLVMTypeRef StructTy)

Determine whether a structure is packed.

LLVM_C_ABI LLVMTypeRef LLVMStructCreateNamed(LLVMContextRef C, const char *Name)

Create an empty structure in a context having a specified name.

LLVM_C_ABI void LLVMStructSetBody(LLVMTypeRef StructTy, LLVMTypeRef *ElementTypes, unsigned ElementCount, LLVMBool Packed)

Set the contents of a structure type.

LLVM_C_ABI LLVMBool LLVMIsOpaqueStruct(LLVMTypeRef StructTy)

Determine whether a structure is opaque.

LLVM_C_ABI unsigned LLVMCountStructElementTypes(LLVMTypeRef StructTy)

Get the number of elements defined inside the structure.

LLVM_C_ABI const char * LLVMGetStructName(LLVMTypeRef Ty)

Obtain the name of a structure.

LLVM_C_ABI LLVMBool LLVMIsLiteralStruct(LLVMTypeRef StructTy)

Determine whether a structure is literal.

LLVM_C_ABI void LLVMDumpType(LLVMTypeRef Val)

Dump a representation of a type to stderr.

LLVM_C_ABI LLVMBool LLVMTypeIsSized(LLVMTypeRef Ty)

Whether the type has a known size.

LLVM_C_ABI LLVMContextRef LLVMGetTypeContext(LLVMTypeRef Ty)

Obtain the context to which this type instance is associated.

LLVM_C_ABI char * LLVMPrintTypeToString(LLVMTypeRef Val)

Return a string representation of the type.

LLVM_C_ABI LLVMTypeKind LLVMGetTypeKind(LLVMTypeRef Ty)

Obtain the enumerated type of a Type instance.

LLVMTailCallKind

Tail call kind for LLVMSetTailCallKind and LLVMGetTailCallKind.

Definition Core.h:490

LLVMLinkage

Definition Core.h:174

LLVMOpcode

External users depend on the following values being stable.

Definition Core.h:61

LLVMRealPredicate

Definition Core.h:307

LLVMTypeKind

Definition Core.h:150

LLVMDLLStorageClass

Definition Core.h:209

LLVMValueKind

Definition Core.h:259

unsigned LLVMAttributeIndex

Definition Core.h:481

LLVMCallConv

Definition Core.h:215

LLVMDbgRecordKind

Definition Core.h:534

LLVMIntPredicate

Definition Core.h:294

unsigned LLVMFastMathFlags

Flags to indicate what fast-math-style optimizations are allowed on operations.

Definition Core.h:518

LLVMUnnamedAddr

Definition Core.h:203

LLVMModuleFlagBehavior

Definition Core.h:418

LLVMDiagnosticSeverity

Definition Core.h:406

LLVMVisibility

Definition Core.h:197

LLVMAtomicRMWBinOp

Definition Core.h:361

LLVMThreadLocalMode

Definition Core.h:326

unsigned LLVMGEPNoWrapFlags

Flags that constrain the allowed wrap semantics of a getelementptr instruction.

Definition Core.h:532

LLVMAtomicOrdering

Definition Core.h:334

LLVMInlineAsmDialect

Definition Core.h:413

@ LLVMTailCallKindNoTail

Definition Core.h:494

@ LLVMTailCallKindNone

Definition Core.h:491

@ LLVMTailCallKindTail

Definition Core.h:492

@ LLVMTailCallKindMustTail

Definition Core.h:493

@ LLVMDLLImportLinkage

Obsolete.

Definition Core.h:188

@ LLVMInternalLinkage

Rename collisions when linking (static functions)

Definition Core.h:185

@ LLVMLinkOnceAnyLinkage

Keep one copy of function when linking (inline)

Definition Core.h:177

@ LLVMExternalLinkage

Externally visible function.

Definition Core.h:175

@ LLVMExternalWeakLinkage

ExternalWeak linkage description.

Definition Core.h:190

@ LLVMLinkOnceODRLinkage

Same, but only replaced by something equivalent.

Definition Core.h:178

@ LLVMPrivateLinkage

Like Internal, but omit from symbol table.

Definition Core.h:187

@ LLVMDLLExportLinkage

Obsolete.

Definition Core.h:189

@ LLVMLinkerPrivateLinkage

Like Private, but linker removes.

Definition Core.h:193

@ LLVMWeakODRLinkage

Same, but only replaced by something equivalent.

Definition Core.h:182

@ LLVMGhostLinkage

Obsolete.

Definition Core.h:191

@ LLVMWeakAnyLinkage

Keep one copy of function when linking (weak)

Definition Core.h:181

@ LLVMAppendingLinkage

Special purpose, only applies to global arrays.

Definition Core.h:184

@ LLVMCommonLinkage

Tentative definitions.

Definition Core.h:192

@ LLVMLinkOnceODRAutoHideLinkage

Obsolete.

Definition Core.h:180

@ LLVMLinkerPrivateWeakLinkage

Like LinkerPrivate, but is weak.

Definition Core.h:194

@ LLVMAvailableExternallyLinkage

Definition Core.h:176

@ LLVMAttributeReturnIndex

Definition Core.h:474

@ LLVMAttributeFunctionIndex

Definition Core.h:478

@ LLVMFastMathAllowReassoc

Definition Core.h:498

@ LLVMFastMathNoSignedZeros

Definition Core.h:501

@ LLVMFastMathApproxFunc

Definition Core.h:504

@ LLVMFastMathNoInfs

Definition Core.h:500

@ LLVMFastMathNoNaNs

Definition Core.h:499

@ LLVMFastMathAll

Definition Core.h:506

@ LLVMFastMathNone

Definition Core.h:505

@ LLVMFastMathAllowContract

Definition Core.h:503

@ LLVMFastMathAllowReciprocal

Definition Core.h:502

@ LLVMSelect

Definition Core.h:124

@ LLVMSRem

Definition Core.h:86

@ LLVMOr

Definition Core.h:94

@ LLVMCallBr

Definition Core.h:70

@ LLVMUIToFP

Definition Core.h:109

@ LLVMIntToPtr

Definition Core.h:115

@ LLVMAtomicRMW

Definition Core.h:138

@ LLVMFMul

Definition Core.h:81

@ LLVMLoad

Definition Core.h:99

@ LLVMIndirectBr

Definition Core.h:66

@ LLVMUnreachable

Definition Core.h:69

@ LLVMCatchSwitch

Definition Core.h:147

@ LLVMCall

Definition Core.h:123

@ LLVMGetElementPtr

Definition Core.h:101

@ LLVMAdd

Definition Core.h:76

@ LLVMSub

Definition Core.h:78

@ LLVMExtractValue

Definition Core.h:131

@ LLVMUserOp1

Definition Core.h:125

@ LLVMICmp

Definition Core.h:120

@ LLVMFDiv

Definition Core.h:84

@ LLVMLShr

Definition Core.h:91

@ LLVMFPTrunc

Definition Core.h:111

@ LLVMResume

Definition Core.h:141

@ LLVMAddrSpaceCast

Definition Core.h:117

@ LLVMFNeg

Definition Core.h:73

@ LLVMRet

Definition Core.h:63

@ LLVMFPToSI

Definition Core.h:108

@ LLVMCatchRet

Definition Core.h:144

@ LLVMFreeze

Definition Core.h:133

@ LLVMFRem

Definition Core.h:87

@ LLVMSIToFP

Definition Core.h:110

@ LLVMPHI

Definition Core.h:122

@ LLVMPtrToAddr

Definition Core.h:114

@ LLVMUDiv

Definition Core.h:82

@ LLVMInvoke

Definition Core.h:67

@ LLVMCleanupPad

Definition Core.h:146

@ LLVMSDiv

Definition Core.h:83

@ LLVMFence

Definition Core.h:136

@ LLVMAnd

Definition Core.h:93

@ LLVMBr

Definition Core.h:64

@ LLVMFPToUI

Definition Core.h:107

@ LLVMLandingPad

Definition Core.h:142

@ LLVMURem

Definition Core.h:85

@ LLVMCleanupRet

Definition Core.h:143

@ LLVMTrunc

Definition Core.h:104

@ LLVMVAArg

Definition Core.h:127

@ LLVMShuffleVector

Definition Core.h:130

@ LLVMSExt

Definition Core.h:106

@ LLVMBitCast

Definition Core.h:116

@ LLVMUserOp2

Definition Core.h:126

@ LLVMMul

Definition Core.h:80

@ LLVMCatchPad

Definition Core.h:145

@ LLVMAShr

Definition Core.h:92

@ LLVMPtrToInt

Definition Core.h:113

@ LLVMInsertElement

Definition Core.h:129

@ LLVMFAdd

Definition Core.h:77

@ LLVMFSub

Definition Core.h:79

@ LLVMStore

Definition Core.h:100

@ LLVMZExt

Definition Core.h:105

@ LLVMShl

Definition Core.h:90

@ LLVMInsertValue

Definition Core.h:132

@ LLVMExtractElement

Definition Core.h:128

@ LLVMXor

Definition Core.h:95

@ LLVMFCmp

Definition Core.h:121

@ LLVMFPExt

Definition Core.h:112

@ LLVMAlloca

Definition Core.h:98

@ LLVMAtomicCmpXchg

Definition Core.h:137

@ LLVMSwitch

Definition Core.h:65

@ LLVMGEPFlagInBounds

Definition Core.h:521

@ LLVMGEPFlagNUSW

Definition Core.h:522

@ LLVMGEPFlagNUW

Definition Core.h:523

@ LLVMRealUNE

True if unordered or not equal.

Definition Core.h:322

@ LLVMRealUGT

True if unordered or greater than.

Definition Core.h:318

@ LLVMRealULE

True if unordered, less than, or equal.

Definition Core.h:321

@ LLVMRealOLE

True if ordered and less than or equal.

Definition Core.h:313

@ LLVMRealOGE

True if ordered and greater than or equal.

Definition Core.h:311

@ LLVMRealULT

True if unordered or less than.

Definition Core.h:320

@ LLVMRealPredicateFalse

Always false (always folded)

Definition Core.h:308

@ LLVMRealPredicateTrue

Always true (always folded)

Definition Core.h:323

@ LLVMRealUNO

True if unordered: isnan(X) | isnan(Y)

Definition Core.h:316

@ LLVMRealOEQ

True if ordered and equal.

Definition Core.h:309

@ LLVMRealOLT

True if ordered and less than.

Definition Core.h:312

@ LLVMRealUEQ

True if unordered or equal.

Definition Core.h:317

@ LLVMRealORD

True if ordered (no nans)

Definition Core.h:315

@ LLVMRealOGT

True if ordered and greater than.

Definition Core.h:310

@ LLVMRealUGE

True if unordered, greater than, or equal.

Definition Core.h:319

@ LLVMRealONE

True if ordered and operands are unequal.

Definition Core.h:314

@ LLVMHalfTypeKind

16 bit floating point type

Definition Core.h:152

@ LLVMFP128TypeKind

128 bit floating point type (112-bit mantissa)

Definition Core.h:156

@ LLVMIntegerTypeKind

Arbitrary bit width integers.

Definition Core.h:159

@ LLVMPointerTypeKind

Pointers.

Definition Core.h:163

@ LLVMX86_FP80TypeKind

80 bit floating point type (X87)

Definition Core.h:155

@ LLVMX86_AMXTypeKind

X86 AMX.

Definition Core.h:170

@ LLVMMetadataTypeKind

Metadata.

Definition Core.h:165

@ LLVMScalableVectorTypeKind

Scalable SIMD vector type.

Definition Core.h:168

@ LLVMArrayTypeKind

Arrays.

Definition Core.h:162

@ LLVMBFloatTypeKind

16 bit brain floating point type

Definition Core.h:169

@ LLVMStructTypeKind

Structures.

Definition Core.h:161

@ LLVMLabelTypeKind

Labels.

Definition Core.h:158

@ LLVMDoubleTypeKind

64 bit floating point type

Definition Core.h:154

@ LLVMVoidTypeKind

type with no size

Definition Core.h:151

@ LLVMTokenTypeKind

Tokens.

Definition Core.h:167

@ LLVMFloatTypeKind

32 bit floating point type

Definition Core.h:153

@ LLVMFunctionTypeKind

Functions.

Definition Core.h:160

@ LLVMVectorTypeKind

Fixed width SIMD vector type.

Definition Core.h:164

@ LLVMPPC_FP128TypeKind

128 bit floating point type (two 64-bits)

Definition Core.h:157

@ LLVMTargetExtTypeKind

Target extension type.

Definition Core.h:171

@ LLVMDefaultStorageClass

Definition Core.h:210

@ LLVMDLLExportStorageClass

Function to be accessible from DLL.

Definition Core.h:212

@ LLVMDLLImportStorageClass

Function to be imported from DLL.

Definition Core.h:211

@ LLVMMemoryDefValueKind

Definition Core.h:263

@ LLVMConstantDataVectorValueKind

Definition Core.h:279

@ LLVMConstantIntValueKind

Definition Core.h:280

@ LLVMConstantDataArrayValueKind

Definition Core.h:278

@ LLVMUndefValueValueKind

Definition Core.h:276

@ LLVMFunctionValueKind

Definition Core.h:266

@ LLVMConstantVectorValueKind

Definition Core.h:274

@ LLVMMemoryPhiValueKind

Definition Core.h:264

@ LLVMConstantTokenNoneValueKind

Definition Core.h:283

@ LLVMArgumentValueKind

Definition Core.h:260

@ LLVMInlineAsmValueKind

Definition Core.h:286

@ LLVMConstantAggregateZeroValueKind

Definition Core.h:277

@ LLVMGlobalAliasValueKind

Definition Core.h:267

@ LLVMMetadataAsValueValueKind

Definition Core.h:285

@ LLVMConstantTargetNoneValueKind

Definition Core.h:290

@ LLVMConstantStructValueKind

Definition Core.h:273

@ LLVMInstructionValueKind

Definition Core.h:288

@ LLVMConstantArrayValueKind

Definition Core.h:272

@ LLVMMemoryUseValueKind

Definition Core.h:262

@ LLVMConstantPtrAuthValueKind

Definition Core.h:291

@ LLVMConstantPointerNullValueKind

Definition Core.h:282

@ LLVMBasicBlockValueKind

Definition Core.h:261

@ LLVMBlockAddressValueKind

Definition Core.h:270

@ LLVMConstantExprValueKind

Definition Core.h:271

@ LLVMPoisonValueValueKind

Definition Core.h:289

@ LLVMGlobalVariableValueKind

Definition Core.h:269

@ LLVMGlobalIFuncValueKind

Definition Core.h:268

@ LLVMConstantFPValueKind

Definition Core.h:281

@ LLVMCXXFASTTLSCallConv

Definition Core.h:225

@ LLVMX86INTRCallConv

Definition Core.h:243

@ LLVMAMDGPUCSCallConv

Definition Core.h:250

@ LLVMAMDGPUHSCallConv

Definition Core.h:253

@ LLVMSwiftCallConv

Definition Core.h:224

@ LLVMPTXDeviceCallConv

Definition Core.h:234

@ LLVMX86VectorCallCallConv

Definition Core.h:240

@ LLVMPreserveAllCallConv

Definition Core.h:223

@ LLVMAMDGPUGSCallConv

Definition Core.h:248

@ LLVMMSP430INTRCallConv

Definition Core.h:231

@ LLVMCCallConv

Definition Core.h:216

@ LLVMARMAPCSCallConv

Definition Core.h:228

@ LLVMAVRSIGNALCallConv

Definition Core.h:245

@ LLVMX86RegCallCallConv

Definition Core.h:252

@ LLVMAMDGPUVSCallConv

Definition Core.h:247

@ LLVMSPIRKERNELCallConv

Definition Core.h:236

@ LLVMGHCCallConv

Definition Core.h:219

@ LLVMX86ThisCallCallConv

Definition Core.h:232

@ LLVMPTXKernelCallConv

Definition Core.h:233

@ LLVMAnyRegCallConv

Definition Core.h:221

@ LLVMAVRINTRCallConv

Definition Core.h:244

@ LLVMAMDGPUPSCallConv

Definition Core.h:249

@ LLVMSPIRFUNCCallConv

Definition Core.h:235

@ LLVMPreserveMostCallConv

Definition Core.h:222

@ LLVMMSP430BUILTINCallConv

Definition Core.h:254

@ LLVMAMDGPUKERNELCallConv

Definition Core.h:251

@ LLVMX8664SysVCallConv

Definition Core.h:238

@ LLVMARMAAPCSCallConv

Definition Core.h:229

@ LLVMColdCallConv

Definition Core.h:218

@ LLVMAMDGPULSCallConv

Definition Core.h:255

@ LLVMX86FastcallCallConv

Definition Core.h:227

@ LLVMAMDGPUESCallConv

Definition Core.h:256

@ LLVMX86StdcallCallConv

Definition Core.h:226

@ LLVMFastCallConv

Definition Core.h:217

@ LLVMAVRBUILTINCallConv

Definition Core.h:246

@ LLVMHHVMCallConv

Definition Core.h:241

@ LLVMIntelOCLBICallConv

Definition Core.h:237

@ LLVMWin64CallConv

Definition Core.h:239

@ LLVMHiPECallConv

Definition Core.h:220

@ LLVMHHVMCCallConv

Definition Core.h:242

@ LLVMARMAAPCSVFPCallConv

Definition Core.h:230

@ LLVMDbgRecordValue

Definition Core.h:537

@ LLVMDbgRecordDeclare

Definition Core.h:536

@ LLVMDbgRecordLabel

Definition Core.h:535

@ LLVMDbgRecordAssign

Definition Core.h:538

@ LLVMIntSGT

signed greater than

Definition Core.h:301

@ LLVMIntULE

unsigned less or equal

Definition Core.h:300

@ LLVMIntEQ

equal

Definition Core.h:295

@ LLVMIntUGE

unsigned greater or equal

Definition Core.h:298

@ LLVMIntSGE

signed greater or equal

Definition Core.h:302

@ LLVMIntULT

unsigned less than

Definition Core.h:299

@ LLVMIntUGT

unsigned greater than

Definition Core.h:297

@ LLVMIntSLE

signed less or equal

Definition Core.h:304

@ LLVMIntSLT

signed less than

Definition Core.h:303

@ LLVMIntNE

not equal

Definition Core.h:296

@ LLVMGlobalUnnamedAddr

Address of the GV is globally insignificant.

Definition Core.h:206

@ LLVMLocalUnnamedAddr

Address of the GV is locally insignificant.

Definition Core.h:205

@ LLVMNoUnnamedAddr

Address of the GV is significant.

Definition Core.h:204

@ LLVMModuleFlagBehaviorRequire

Adds a requirement that another module flag be present and have a specified value after linking is pe...

Definition Core.h:444

@ LLVMModuleFlagBehaviorWarning

Emits a warning if two values disagree.

Definition Core.h:432

@ LLVMModuleFlagBehaviorOverride

Uses the specified value, regardless of the behavior or value of the other module.

Definition Core.h:452

@ LLVMModuleFlagBehaviorAppendUnique

Appends the two values, which are required to be metadata nodes.

Definition Core.h:466

@ LLVMModuleFlagBehaviorAppend

Appends the two values, which are required to be metadata nodes.

Definition Core.h:458

@ LLVMModuleFlagBehaviorError

Emits an error if two values disagree, otherwise the resulting value is that of the operands.

Definition Core.h:425

@ LLVMDSWarning

Definition Core.h:408

@ LLVMDSNote

Definition Core.h:410

@ LLVMDSError

Definition Core.h:407

@ LLVMDSRemark

Definition Core.h:409

@ LLVMProtectedVisibility

The GV is protected.

Definition Core.h:200

@ LLVMDefaultVisibility

The GV is visible.

Definition Core.h:198

@ LLVMHiddenVisibility

The GV is hidden.

Definition Core.h:199

@ LLVMAtomicRMWBinOpXor

Xor a value and return the old one.

Definition Core.h:368

@ LLVMAtomicRMWBinOpXchg

Set the new value and return the one old.

Definition Core.h:362

@ LLVMAtomicRMWBinOpSub

Subtract a value and return the old one.

Definition Core.h:364

@ LLVMAtomicRMWBinOpUMax

Sets the value if it's greater than the original using an unsigned comparison and return the old one.

Definition Core.h:375

@ LLVMAtomicRMWBinOpUSubSat

Subtracts the value, clamping to zero.

Definition Core.h:397

@ LLVMAtomicRMWBinOpAnd

And a value and return the old one.

Definition Core.h:365

@ LLVMAtomicRMWBinOpUDecWrap

Decrements the value, wrapping back to the input value when decremented below zero.

Definition Core.h:393

@ LLVMAtomicRMWBinOpFMax

Sets the value if it's greater than the original using an floating point comparison and return the ol...

Definition Core.h:385

@ LLVMAtomicRMWBinOpMin

Sets the value if it's Smaller than the original using a signed comparison and return the old one.

Definition Core.h:372

@ LLVMAtomicRMWBinOpOr

OR a value and return the old one.

Definition Core.h:367

@ LLVMAtomicRMWBinOpFMin

Sets the value if it's smaller than the original using an floating point comparison and return the ol...

Definition Core.h:388

@ LLVMAtomicRMWBinOpMax

Sets the value if it's greater than the original using a signed comparison and return the old one.

Definition Core.h:369

@ LLVMAtomicRMWBinOpFMaximum

Sets the value if it's greater than the original using an floating point comparison and return the ol...

Definition Core.h:398

@ LLVMAtomicRMWBinOpFMinimum

Sets the value if it's smaller than the original using an floating point comparison and return the ol...

Definition Core.h:401

@ LLVMAtomicRMWBinOpUIncWrap

Increments the value, wrapping back to zero when incremented above input value.

Definition Core.h:391

@ LLVMAtomicRMWBinOpFAdd

Add a floating point value and return the old one.

Definition Core.h:381

@ LLVMAtomicRMWBinOpFSub

Subtract a floating point value and return the old one.

Definition Core.h:383

@ LLVMAtomicRMWBinOpAdd

Add a value and return the old one.

Definition Core.h:363

@ LLVMAtomicRMWBinOpUMin

Sets the value if it's greater than the original using an unsigned comparison and return the old one.

Definition Core.h:378

@ LLVMAtomicRMWBinOpNand

Not-And a value and return the old one.

Definition Core.h:366

@ LLVMAtomicRMWBinOpUSubCond

Subtracts the value only if no unsigned overflow.

Definition Core.h:395

@ LLVMGeneralDynamicTLSModel

Definition Core.h:328

@ LLVMLocalDynamicTLSModel

Definition Core.h:329

@ LLVMNotThreadLocal

Definition Core.h:327

@ LLVMInitialExecTLSModel

Definition Core.h:330

@ LLVMLocalExecTLSModel

Definition Core.h:331

@ LLVMAtomicOrderingAcquireRelease

provides both an Acquire and a Release barrier (for fences and operations which both read and write m...

Definition Core.h:347

@ LLVMAtomicOrderingRelease

Release is similar to Acquire, but with a barrier of the sort necessary to release a lock.

Definition Core.h:344

@ LLVMAtomicOrderingAcquire

Acquire provides a barrier of the sort necessary to acquire a lock to access other memory with normal...

Definition Core.h:341

@ LLVMAtomicOrderingMonotonic

guarantees that if you take all the operations affecting a specific address, a consistent ordering ex...

Definition Core.h:338

@ LLVMAtomicOrderingSequentiallyConsistent

provides Acquire semantics for loads and Release semantics for stores.

Definition Core.h:351

@ LLVMAtomicOrderingNotAtomic

A load or store which is not atomic.

Definition Core.h:335

@ LLVMAtomicOrderingUnordered

Lowest level of atomicity, guarantees somewhat sane results, lock free.

Definition Core.h:336

@ LLVMInlineAsmDialectATT

Definition Core.h:414

@ LLVMInlineAsmDialectIntel

Definition Core.h:415

LLVM_C_ABI LLVMValueRef LLVMGetLastInstruction(LLVMBasicBlockRef BB)

Obtain the last instruction in a basic block.

LLVM_C_ABI void LLVMMoveBasicBlockAfter(LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos)

Move a basic block to after another one.

LLVM_C_ABI LLVMBasicBlockRef LLVMGetFirstBasicBlock(LLVMValueRef Fn)

Obtain the first basic block in a function.

LLVM_C_ABI LLVMBasicBlockRef LLVMCreateBasicBlockInContext(LLVMContextRef C, const char *Name)

Create a new basic block without inserting it into a function.

LLVM_C_ABI LLVMBasicBlockRef LLVMGetPreviousBasicBlock(LLVMBasicBlockRef BB)

Go backwards in a basic block iterator.

LLVM_C_ABI LLVMBasicBlockRef LLVMGetLastBasicBlock(LLVMValueRef Fn)

Obtain the last basic block in a function.

LLVM_C_ABI LLVMValueRef LLVMGetBasicBlockTerminator(LLVMBasicBlockRef BB)

Obtain the terminator instruction for a basic block.

LLVM_C_ABI const char * LLVMGetBasicBlockName(LLVMBasicBlockRef BB)

Obtain the string name of a basic block.

LLVM_C_ABI void LLVMAppendExistingBasicBlock(LLVMValueRef Fn, LLVMBasicBlockRef BB)

Append the given basic block to the basic block list of the given function.

LLVM_C_ABI void LLVMDeleteBasicBlock(LLVMBasicBlockRef BB)

Remove a basic block from a function and delete it.

LLVM_C_ABI LLVMBasicBlockRef LLVMInsertBasicBlockInContext(LLVMContextRef C, LLVMBasicBlockRef BB, const char *Name)

Insert a basic block in a function before another basic block.

LLVM_C_ABI void LLVMGetBasicBlocks(LLVMValueRef Fn, LLVMBasicBlockRef *BasicBlocks)

Obtain all of the basic blocks in a function.

LLVM_C_ABI void LLVMMoveBasicBlockBefore(LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos)

Move a basic block to before another one.

LLVM_C_ABI LLVMValueRef LLVMGetBasicBlockParent(LLVMBasicBlockRef BB)

Obtain the function to which a basic block belongs.

LLVM_C_ABI LLVMBasicBlockRef LLVMGetEntryBasicBlock(LLVMValueRef Fn)

Obtain the basic block that corresponds to the entry point of a function.

LLVM_C_ABI LLVMValueRef LLVMGetFirstInstruction(LLVMBasicBlockRef BB)

Obtain the first instruction in a basic block.

LLVM_C_ABI void LLVMInsertExistingBasicBlockAfterInsertBlock(LLVMBuilderRef Builder, LLVMBasicBlockRef BB)

Insert the given basic block after the insertion point of the given builder.

LLVM_C_ABI LLVMValueRef LLVMBasicBlockAsValue(LLVMBasicBlockRef BB)

Convert a basic block instance to a value type.

LLVM_C_ABI LLVMBasicBlockRef LLVMValueAsBasicBlock(LLVMValueRef Val)

Convert an LLVMValueRef to an LLVMBasicBlockRef instance.

LLVM_C_ABI void LLVMRemoveBasicBlockFromParent(LLVMBasicBlockRef BB)

Remove a basic block from a function.

LLVM_C_ABI LLVMBasicBlockRef LLVMGetNextBasicBlock(LLVMBasicBlockRef BB)

Advance a basic block iterator.

LLVM_C_ABI unsigned LLVMCountBasicBlocks(LLVMValueRef Fn)

Obtain the number of basic blocks in a function.

LLVM_C_ABI LLVMBasicBlockRef LLVMAppendBasicBlockInContext(LLVMContextRef C, LLVMValueRef Fn, const char *Name)

Append a basic block to the end of a function.

LLVM_C_ABI LLVMBool LLVMValueIsBasicBlock(LLVMValueRef Val)

Determine whether an LLVMValueRef is itself a basic block.

LLVM_C_ABI LLVMValueRef LLVMConstantPtrAuth(LLVMValueRef Ptr, LLVMValueRef Key, LLVMValueRef Disc, LLVMValueRef AddrDisc)

Create a ConstantPtrAuth constant with the given values.

LLVM_C_ABI LLVMValueRef LLVMGetAggregateElement(LLVMValueRef C, unsigned Idx)

Get element of a constant aggregate (struct, array or vector) at the specified index.

LLVM_C_ABI LLVMValueRef LLVMConstVector(LLVMValueRef *ScalarConstantVals, unsigned Size)

Create a ConstantVector from values.

LLVM_C_ABI LLVMValueRef LLVMConstStringInContext2(LLVMContextRef C, const char *Str, size_t Length, LLVMBool DontNullTerminate)

Create a ConstantDataSequential and initialize it with a string.

LLVM_C_ABI LLVMValueRef LLVMConstDataArray(LLVMTypeRef ElementTy, const char *Data, size_t SizeInBytes)

Create a ConstantDataArray from raw values.

LLVM_C_ABI LLVMValueRef LLVMConstArray(LLVMTypeRef ElementTy, LLVMValueRef *ConstantVals, unsigned Length)

Create a ConstantArray from values.

LLVM_C_ABI LLVMBool LLVMIsConstantString(LLVMValueRef c)

Returns true if the specified constant is an array of i8.

LLVM_C_ABI LLVMValueRef LLVMConstStringInContext(LLVMContextRef C, const char *Str, unsigned Length, LLVMBool DontNullTerminate)

Create a ConstantDataSequential and initialize it with a string.

LLVM_C_ABI LLVMValueRef LLVMConstArray2(LLVMTypeRef ElementTy, LLVMValueRef *ConstantVals, uint64_t Length)

Create a ConstantArray from values.

LLVM_C_ABI const char * LLVMGetAsString(LLVMValueRef c, size_t *Length)

Get the given constant data sequential as a string.

LLVM_C_ABI LLVMValueRef LLVMConstNamedStruct(LLVMTypeRef StructTy, LLVMValueRef *ConstantVals, unsigned Count)

Create a non-anonymous ConstantStruct from values.

LLVM_C_ABI const char * LLVMGetRawDataValues(LLVMValueRef c, size_t *SizeInBytes)

Get the raw, underlying bytes of the given constant data sequential.

LLVM_C_ABI LLVMValueRef LLVMConstStructInContext(LLVMContextRef C, LLVMValueRef *ConstantVals, unsigned Count, LLVMBool Packed)

Create an anonymous ConstantStruct with the specified values.

LLVM_C_ABI LLVMValueRef LLVMConstAddrSpaceCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType)

LLVM_C_ABI LLVMValueRef LLVMSizeOf(LLVMTypeRef Ty)

LLVM_C_ABI LLVMValueRef LLVMConstAdd(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

LLVM_C_ABI LLVMValueRef LLVMConstSub(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

LLVM_C_ABI LLVMValueRef LLVMConstTruncOrBitCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType)

LLVM_C_ABI LLVMValueRef LLVMAlignOf(LLVMTypeRef Ty)

LLVM_C_ABI LLVMValueRef LLVMConstBitCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType)

LLVM_C_ABI LLVMValueRef LLVMConstNUWSub(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

LLVM_C_ABI LLVMValueRef LLVMConstGEPWithNoWrapFlags(LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef *ConstantIndices, unsigned NumIndices, LLVMGEPNoWrapFlags NoWrapFlags)

Creates a constant GetElementPtr expression.

LLVM_C_ABI LLVMOpcode LLVMGetConstOpcode(LLVMValueRef ConstantVal)

LLVM_C_ABI LLVMValueRef LLVMConstExtractElement(LLVMValueRef VectorConstant, LLVMValueRef IndexConstant)

LLVM_C_ABI LLVMValueRef LLVMConstNSWAdd(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

LLVM_C_ABI LLVMValueRef LLVMConstNeg(LLVMValueRef ConstantVal)

LLVM_C_ABI LLVMValueRef LLVMConstPointerCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType)

LLVM_C_ABI LLVMValueRef LLVMConstInsertElement(LLVMValueRef VectorConstant, LLVMValueRef ElementValueConstant, LLVMValueRef IndexConstant)

LLVM_C_ABI LLVMValueRef LLVMConstXor(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

LLVM_C_ABI LLVMValueRef LLVMConstNSWSub(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

LLVM_C_ABI LLVMValueRef LLVMConstShuffleVector(LLVMValueRef VectorAConstant, LLVMValueRef VectorBConstant, LLVMValueRef MaskConstant)

LLVM_C_ABI LLVMValueRef LLVMConstTrunc(LLVMValueRef ConstantVal, LLVMTypeRef ToType)

LLVM_C_ABI LLVMValueRef LLVMConstGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef *ConstantIndices, unsigned NumIndices)

LLVM_C_ABI LLVMValueRef LLVMBlockAddress(LLVMValueRef F, LLVMBasicBlockRef BB)

LLVM_C_ABI LLVMValueRef LLVMConstNot(LLVMValueRef ConstantVal)

LLVM_C_ABI LLVMValueRef LLVMConstNUWAdd(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)

LLVM_C_ABI LLVMValueRef LLVMConstPtrToInt(LLVMValueRef ConstantVal, LLVMTypeRef ToType)

LLVM_C_ABI LLVMValueRef LLVMConstIntToPtr(LLVMValueRef ConstantVal, LLVMTypeRef ToType)

LLVM_C_ABI LLVMValueRef LLVMConstInBoundsGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef *ConstantIndices, unsigned NumIndices)

LLVM_C_ABI LLVMValueRef LLVMConstInlineAsm(LLVMTypeRef Ty, const char *AsmString, const char *Constraints, LLVMBool HasSideEffects, LLVMBool IsAlignStack)

Deprecated: Use LLVMGetInlineAsm instead.

LLVM_C_ABI LLVMValueRef LLVMConstNSWNeg(LLVMValueRef ConstantVal)

LLVM_C_ABI LLVMValueRef LLVMGetBlockAddressFunction(LLVMValueRef BlockAddr)

Gets the function associated with a given BlockAddress constant value.

LLVM_C_ABI LLVMBasicBlockRef LLVMGetBlockAddressBasicBlock(LLVMValueRef BlockAddr)

Gets the basic block associated with a given BlockAddress constant value.

LLVM_C_ABI LLVMUnnamedAddr LLVMGetUnnamedAddress(LLVMValueRef Global)

LLVM_C_ABI LLVMTypeRef LLVMGlobalGetValueType(LLVMValueRef Global)

Returns the "value type" of a global value.

LLVM_C_ABI unsigned LLVMGetAlignment(LLVMValueRef V)

Obtain the preferred alignment of the value.

LLVM_C_ABI void LLVMSetSection(LLVMValueRef Global, const char *Section)

LLVM_C_ABI void LLVMSetUnnamedAddress(LLVMValueRef Global, LLVMUnnamedAddr UnnamedAddr)

LLVM_C_ABI void LLVMGlobalSetMetadata(LLVMValueRef Global, unsigned Kind, LLVMMetadataRef MD)

Sets a metadata attachment, erasing the existing metadata attachment if it already exists for the giv...

LLVM_C_ABI void LLVMSetLinkage(LLVMValueRef Global, LLVMLinkage Linkage)

LLVM_C_ABI void LLVMSetUnnamedAddr(LLVMValueRef Global, LLVMBool HasUnnamedAddr)

Deprecated: Use LLVMSetUnnamedAddress instead.

LLVM_C_ABI LLVMModuleRef LLVMGetGlobalParent(LLVMValueRef Global)

LLVM_C_ABI unsigned LLVMValueMetadataEntriesGetKind(LLVMValueMetadataEntry *Entries, unsigned Index)

Returns the kind of a value metadata entry at a specific index.

LLVM_C_ABI void LLVMSetDLLStorageClass(LLVMValueRef Global, LLVMDLLStorageClass Class)

LLVM_C_ABI LLVMVisibility LLVMGetVisibility(LLVMValueRef Global)

LLVM_C_ABI LLVMValueMetadataEntry * LLVMGlobalCopyAllMetadata(LLVMValueRef Value, size_t *NumEntries)

Retrieves an array of metadata entries representing the metadata attached to this value.

LLVM_C_ABI void LLVMSetAlignment(LLVMValueRef V, unsigned Bytes)

Set the preferred alignment of the value.

LLVM_C_ABI const char * LLVMGetSection(LLVMValueRef Global)

LLVM_C_ABI void LLVMSetVisibility(LLVMValueRef Global, LLVMVisibility Viz)

LLVM_C_ABI LLVMLinkage LLVMGetLinkage(LLVMValueRef Global)

LLVM_C_ABI void LLVMGlobalEraseMetadata(LLVMValueRef Global, unsigned Kind)

Erases a metadata attachment of the given kind if it exists.

LLVM_C_ABI LLVMDLLStorageClass LLVMGetDLLStorageClass(LLVMValueRef Global)

LLVM_C_ABI LLVMBool LLVMIsDeclaration(LLVMValueRef Global)

LLVM_C_ABI void LLVMGlobalClearMetadata(LLVMValueRef Global)

Removes all metadata attachments from this value.

LLVM_C_ABI void LLVMGlobalAddMetadata(LLVMValueRef Global, unsigned Kind, LLVMMetadataRef MD)

Adds a metadata attachment.

LLVM_C_ABI LLVMBool LLVMHasUnnamedAddr(LLVMValueRef Global)

Deprecated: Use LLVMGetUnnamedAddress instead.

LLVM_C_ABI LLVMMetadataRef LLVMValueMetadataEntriesGetMetadata(LLVMValueMetadataEntry *Entries, unsigned Index)

Returns the underlying metadata node of a value metadata entry at a specific index.

LLVM_C_ABI void LLVMDisposeValueMetadataEntries(LLVMValueMetadataEntry *Entries)

Destroys value metadata entries.

LLVM_C_ABI void LLVMGlobalAddDebugInfo(LLVMValueRef Global, LLVMMetadataRef GVE)

Add debuginfo metadata to this global.

LLVM_C_ABI LLVMValueRef LLVMConstRealOfStringAndSize(LLVMTypeRef RealTy, const char *Text, unsigned SLen)

Obtain a constant for a floating point value parsed from a string.

LLVM_C_ABI LLVMValueRef LLVMConstIntOfStringAndSize(LLVMTypeRef IntTy, const char *Text, unsigned SLen, uint8_t Radix)

Obtain a constant value for an integer parsed from a string with specified length.

LLVM_C_ABI LLVMValueRef LLVMConstIntOfString(LLVMTypeRef IntTy, const char *Text, uint8_t Radix)

Obtain a constant value for an integer parsed from a string.

LLVM_C_ABI LLVMValueRef LLVMConstInt(LLVMTypeRef IntTy, unsigned long long N, LLVMBool SignExtend)

Obtain a constant value for an integer type.

LLVM_C_ABI LLVMValueRef LLVMConstFPFromBits(LLVMTypeRef Ty, const uint64_t N[])

Obtain a constant for a floating point value from array of 64 bit values.

LLVM_C_ABI LLVMValueRef LLVMConstIntOfArbitraryPrecision(LLVMTypeRef IntTy, unsigned NumWords, const uint64_t Words[])

Obtain a constant value for an integer of arbitrary precision.

LLVM_C_ABI long long LLVMConstIntGetSExtValue(LLVMValueRef ConstantVal)

Obtain the sign extended value for an integer constant value.

LLVM_C_ABI LLVMValueRef LLVMConstRealOfString(LLVMTypeRef RealTy, const char *Text)

Obtain a constant for a floating point value parsed from a string.

LLVM_C_ABI double LLVMConstRealGetDouble(LLVMValueRef ConstantVal, LLVMBool *losesInfo)

Obtain the double value for an floating point constant value.

LLVM_C_ABI LLVMValueRef LLVMConstReal(LLVMTypeRef RealTy, double N)

Obtain a constant value referring to a double floating point value.

LLVM_C_ABI unsigned long long LLVMConstIntGetZExtValue(LLVMValueRef ConstantVal)

Obtain the zero extended value for an integer constant value.

LLVM_C_ABI LLVMValueRef LLVMGetPoison(LLVMTypeRef Ty)

Obtain a constant value referring to a poison value of a type.

LLVM_C_ABI LLVMValueRef LLVMConstPointerNull(LLVMTypeRef Ty)

Obtain a constant that is a constant pointer pointing to NULL for a specified type.

LLVM_C_ABI LLVMValueRef LLVMGetUndef(LLVMTypeRef Ty)

Obtain a constant value referring to an undefined value of a type.

LLVM_C_ABI LLVMBool LLVMIsNull(LLVMValueRef Val)

Determine whether a value instance is null.

LLVM_C_ABI LLVMValueRef LLVMConstNull(LLVMTypeRef Ty)

Obtain a constant value referring to the null instance of a type.

LLVM_C_ABI LLVMValueRef LLVMConstAllOnes(LLVMTypeRef Ty)

Obtain a constant value referring to the instance of a type consisting of all ones.

LLVM_C_ABI LLVMValueRef LLVMGetPreviousParam(LLVMValueRef Arg)

Obtain the previous parameter to a function.

LLVM_C_ABI void LLVMSetParamAlignment(LLVMValueRef Arg, unsigned Align)

Set the alignment for a function parameter.

LLVM_C_ABI unsigned LLVMCountParams(LLVMValueRef Fn)

Obtain the number of parameters in a function.

LLVM_C_ABI void LLVMGetParams(LLVMValueRef Fn, LLVMValueRef *Params)

Obtain the parameters in a function.

LLVM_C_ABI LLVMValueRef LLVMGetFirstParam(LLVMValueRef Fn)

Obtain the first parameter to a function.

LLVM_C_ABI LLVMValueRef LLVMGetLastParam(LLVMValueRef Fn)

Obtain the last parameter to a function.

LLVM_C_ABI LLVMValueRef LLVMGetParam(LLVMValueRef Fn, unsigned Index)

Obtain the parameter at the specified index.

LLVM_C_ABI LLVMValueRef LLVMGetNextParam(LLVMValueRef Arg)

Obtain the next parameter to a function.

LLVM_C_ABI LLVMValueRef LLVMGetParamParent(LLVMValueRef Inst)

Obtain the function to which this argument belongs.

LLVM_C_ABI void LLVMAddAttributeAtIndex(LLVMValueRef F, LLVMAttributeIndex Idx, LLVMAttributeRef A)

Add an attribute to a function.

LLVM_C_ABI LLVMValueRef LLVMGetPrefixData(LLVMValueRef Fn)

Gets the prefix data associated with a function.

LLVM_C_ABI LLVMValueRef LLVMGetPrologueData(LLVMValueRef Fn)

Gets the prologue data associated with a function.

LLVM_C_ABI LLVMTypeRef LLVMIntrinsicGetType(LLVMContextRef Ctx, unsigned ID, LLVMTypeRef *ParamTypes, size_t ParamCount)

Retrieves the type of an intrinsic.

LLVM_C_ABI unsigned LLVMGetIntrinsicID(LLVMValueRef Fn)

Obtain the ID number from a function instance.

LLVM_C_ABI LLVMValueRef LLVMGetPersonalityFn(LLVMValueRef Fn)

Obtain the personality function attached to the function.

LLVM_C_ABI unsigned LLVMGetAttributeCountAtIndex(LLVMValueRef F, LLVMAttributeIndex Idx)

LLVM_C_ABI LLVMBool LLVMHasPersonalityFn(LLVMValueRef Fn)

Check whether the given function has a personality function.

LLVM_C_ABI void LLVMRemoveStringAttributeAtIndex(LLVMValueRef F, LLVMAttributeIndex Idx, const char *K, unsigned KLen)

LLVM_C_ABI void LLVMSetPrefixData(LLVMValueRef Fn, LLVMValueRef prefixData)

Sets the prefix data for the function.

LLVM_C_ABI char * LLVMIntrinsicCopyOverloadedName(unsigned ID, LLVMTypeRef *ParamTypes, size_t ParamCount, size_t *NameLength)

Deprecated: Use LLVMIntrinsicCopyOverloadedName2 instead.

LLVM_C_ABI const char * LLVMGetGC(LLVMValueRef Fn)

Obtain the name of the garbage collector to use during code generation.

LLVM_C_ABI void LLVMSetGC(LLVMValueRef Fn, const char *Name)

Define the garbage collector to use during code generation.

LLVM_C_ABI void LLVMSetPrologueData(LLVMValueRef Fn, LLVMValueRef prologueData)

Sets the prologue data for the function.

LLVM_C_ABI void LLVMSetPersonalityFn(LLVMValueRef Fn, LLVMValueRef PersonalityFn)

Set the personality function attached to the function.

LLVM_C_ABI void LLVMGetAttributesAtIndex(LLVMValueRef F, LLVMAttributeIndex Idx, LLVMAttributeRef *Attrs)

LLVM_C_ABI unsigned LLVMGetFunctionCallConv(LLVMValueRef Fn)

Obtain the calling function of a function.

LLVM_C_ABI LLVMBool LLVMIntrinsicIsOverloaded(unsigned ID)

Obtain if the intrinsic identified by the given ID is overloaded.

LLVM_C_ABI char * LLVMIntrinsicCopyOverloadedName2(LLVMModuleRef Mod, unsigned ID, LLVMTypeRef *ParamTypes, size_t ParamCount, size_t *NameLength)

Copies the name of an overloaded intrinsic identified by a given list of parameter types.

LLVM_C_ABI void LLVMDeleteFunction(LLVMValueRef Fn)

Remove a function from its containing module and deletes it.

LLVM_C_ABI void LLVMRemoveEnumAttributeAtIndex(LLVMValueRef F, LLVMAttributeIndex Idx, unsigned KindID)

LLVM_C_ABI LLVMAttributeRef LLVMGetEnumAttributeAtIndex(LLVMValueRef F, LLVMAttributeIndex Idx, unsigned KindID)

LLVM_C_ABI unsigned LLVMLookupIntrinsicID(const char *Name, size_t NameLen)

Obtain the intrinsic ID number which matches the given function name.

LLVM_C_ABI const char * LLVMIntrinsicGetName(unsigned ID, size_t *NameLength)

Retrieves the name of an intrinsic.

LLVM_C_ABI LLVMValueRef LLVMGetIntrinsicDeclaration(LLVMModuleRef Mod, unsigned ID, LLVMTypeRef *ParamTypes, size_t ParamCount)

Get or insert the declaration of an intrinsic.

LLVM_C_ABI LLVMBool LLVMHasPrologueData(LLVMValueRef Fn)

Check if a given function has prologue data.

LLVM_C_ABI LLVMBool LLVMHasPrefixData(LLVMValueRef Fn)

Check if a given function has prefix data.

LLVM_C_ABI void LLVMSetFunctionCallConv(LLVMValueRef Fn, unsigned CC)

Set the calling convention of a function.

LLVM_C_ABI void LLVMAddTargetDependentFunctionAttr(LLVMValueRef Fn, const char *A, const char *V)

Add a target-dependent attribute to a function.

LLVM_C_ABI LLVMAttributeRef LLVMGetStringAttributeAtIndex(LLVMValueRef F, LLVMAttributeIndex Idx, const char *K, unsigned KLen)

LLVM_C_ABI LLVMValueRef LLVMIsAMDString(LLVMValueRef Val)

LLVM_C_ABI LLVMBool LLVMIsPoison(LLVMValueRef Val)

Determine whether a value instance is poisonous.

LLVM_C_ABI LLVMValueKind LLVMGetValueKind(LLVMValueRef Val)

Obtain the enumerated type of a Value instance.

LLVM_C_ABI void LLVMDumpValue(LLVMValueRef Val)

Dump a representation of a value to stderr.

LLVM_C_ABI const char * LLVMGetValueName(LLVMValueRef Val)

Deprecated: Use LLVMGetValueName2 instead.

LLVM_C_ABI LLVMContextRef LLVMGetValueContext(LLVMValueRef Val)

Obtain the context to which this value is associated.

LLVM_C_ABI void LLVMReplaceAllUsesWith(LLVMValueRef OldVal, LLVMValueRef NewVal)

Replace all uses of a value with another one.

LLVM_C_ABI const char * LLVMGetValueName2(LLVMValueRef Val, size_t *Length)

Obtain the string name of a value.

LLVM_C_ABI void LLVMSetValueName(LLVMValueRef Val, const char *Name)

Deprecated: Use LLVMSetValueName2 instead.

LLVM_C_ABI LLVMValueRef LLVMIsAMDNode(LLVMValueRef Val)

LLVM_C_ABI char * LLVMPrintDbgRecordToString(LLVMDbgRecordRef Record)

Return a string representation of the DbgRecord.

LLVM_C_ABI LLVMBool LLVMIsUndef(LLVMValueRef Val)

Determine whether a value instance is undefined.

LLVM_C_ABI LLVMTypeRef LLVMTypeOf(LLVMValueRef Val)

Obtain the type of a value.

LLVM_C_ABI char * LLVMPrintValueToString(LLVMValueRef Val)

Return a string representation of the value.

LLVM_C_ABI LLVMValueRef LLVMIsAValueAsMetadata(LLVMValueRef Val)

#define LLVM_DECLARE_VALUE_CAST(name)

Convert value instances between types.

Definition Core.h:2162

LLVM_C_ABI LLVMBool LLVMIsConstant(LLVMValueRef Val)

Determine whether the specified value instance is constant.

LLVM_C_ABI void LLVMSetValueName2(LLVMValueRef Val, const char *Name, size_t NameLen)

Set the string name of a value.

LLVM_C_ABI LLVMValueRef LLVMGetFirstGlobalIFunc(LLVMModuleRef M)

Obtain an iterator to the first GlobalIFunc in a Module.

LLVM_C_ABI LLVMValueRef LLVMGetNamedGlobalIFunc(LLVMModuleRef M, const char *Name, size_t NameLen)

Obtain a GlobalIFunc value from a Module by its name.

LLVM_C_ABI void LLVMRemoveGlobalIFunc(LLVMValueRef IFunc)

Remove a global indirect function from its parent module.

LLVM_C_ABI LLVMValueRef LLVMAddGlobalIFunc(LLVMModuleRef M, const char *Name, size_t NameLen, LLVMTypeRef Ty, unsigned AddrSpace, LLVMValueRef Resolver)

Add a global indirect function to a module under a specified name.

LLVM_C_ABI LLVMValueRef LLVMGetNextGlobalIFunc(LLVMValueRef IFunc)

Advance a GlobalIFunc iterator to the next GlobalIFunc.

LLVM_C_ABI LLVMValueRef LLVMGetPreviousGlobalIFunc(LLVMValueRef IFunc)

Decrement a GlobalIFunc iterator to the previous GlobalIFunc.

LLVM_C_ABI LLVMValueRef LLVMGetGlobalIFuncResolver(LLVMValueRef IFunc)

Retrieves the resolver function associated with this indirect function, or NULL if it doesn't not exi...

LLVM_C_ABI void LLVMSetGlobalIFuncResolver(LLVMValueRef IFunc, LLVMValueRef Resolver)

Sets the resolver function associated with this indirect function.

LLVM_C_ABI LLVMValueRef LLVMGetLastGlobalIFunc(LLVMModuleRef M)

Obtain an iterator to the last GlobalIFunc in a Module.

LLVM_C_ABI void LLVMEraseGlobalIFunc(LLVMValueRef IFunc)

Remove a global indirect function from its parent module and delete it.

LLVM_C_ABI LLVMTypeRef LLVMGetAllocatedType(LLVMValueRef Alloca)

Obtain the type that is being allocated by the alloca instruction.

LLVM_C_ABI void LLVMSetTailCall(LLVMValueRef CallInst, LLVMBool IsTailCall)

Set whether a call instruction is a tail call.

LLVM_C_ABI void LLVMAddCallSiteAttribute(LLVMValueRef C, LLVMAttributeIndex Idx, LLVMAttributeRef A)

LLVM_C_ABI unsigned LLVMGetNumOperandBundles(LLVMValueRef C)

Obtain the number of operand bundles attached to this instruction.

LLVM_C_ABI void LLVMRemoveCallSiteEnumAttribute(LLVMValueRef C, LLVMAttributeIndex Idx, unsigned KindID)

LLVM_C_ABI void LLVMRemoveCallSiteStringAttribute(LLVMValueRef C, LLVMAttributeIndex Idx, const char *K, unsigned KLen)

LLVM_C_ABI LLVMAttributeRef LLVMGetCallSiteEnumAttribute(LLVMValueRef C, LLVMAttributeIndex Idx, unsigned KindID)

LLVM_C_ABI unsigned LLVMGetInstructionCallConv(LLVMValueRef Instr)

Obtain the calling convention for a call instruction.

LLVM_C_ABI LLVMBasicBlockRef LLVMGetCallBrDefaultDest(LLVMValueRef CallBr)

Get the default destination of a CallBr instruction.

LLVM_C_ABI LLVMValueRef LLVMGetCalledValue(LLVMValueRef Instr)

Obtain the pointer to the function invoked by this instruction.

LLVM_C_ABI void LLVMSetNormalDest(LLVMValueRef InvokeInst, LLVMBasicBlockRef B)

Set the normal destination basic block.

LLVM_C_ABI LLVMBool LLVMIsTailCall(LLVMValueRef CallInst)

Obtain whether a call instruction is a tail call.

LLVM_C_ABI LLVMAttributeRef LLVMGetCallSiteStringAttribute(LLVMValueRef C, LLVMAttributeIndex Idx, const char *K, unsigned KLen)

LLVM_C_ABI unsigned LLVMGetCallBrNumIndirectDests(LLVMValueRef CallBr)

Get the number of indirect destinations of a CallBr instruction.

LLVM_C_ABI void LLVMGetCallSiteAttributes(LLVMValueRef C, LLVMAttributeIndex Idx, LLVMAttributeRef *Attrs)

LLVM_C_ABI LLVMBasicBlockRef LLVMGetNormalDest(LLVMValueRef InvokeInst)

Return the normal destination basic block.

LLVM_C_ABI unsigned LLVMGetNumArgOperands(LLVMValueRef Instr)

Obtain the argument count for a call instruction.

LLVM_C_ABI void LLVMSetTailCallKind(LLVMValueRef CallInst, LLVMTailCallKind kind)

Set the call kind of the call instruction.

LLVM_C_ABI LLVMOperandBundleRef LLVMGetOperandBundleAtIndex(LLVMValueRef C, unsigned Index)

Obtain the operand bundle attached to this instruction at the given index.

LLVM_C_ABI LLVMBasicBlockRef LLVMGetCallBrIndirectDest(LLVMValueRef CallBr, unsigned Idx)

Get the indirect destination of a CallBr instruction at the given index.

LLVM_C_ABI LLVMTailCallKind LLVMGetTailCallKind(LLVMValueRef CallInst)

Obtain a tail call kind of the call instruction.

LLVM_C_ABI void LLVMSetUnwindDest(LLVMValueRef InvokeInst, LLVMBasicBlockRef B)

Set the unwind destination basic block.

LLVM_C_ABI LLVMTypeRef LLVMGetCalledFunctionType(LLVMValueRef C)

Obtain the function type called by this instruction.

LLVM_C_ABI LLVMBasicBlockRef LLVMGetUnwindDest(LLVMValueRef InvokeInst)

Return the unwind destination basic block.

LLVM_C_ABI void LLVMSetInstrParamAlignment(LLVMValueRef Instr, LLVMAttributeIndex Idx, unsigned Align)

LLVM_C_ABI unsigned LLVMGetCallSiteAttributeCount(LLVMValueRef C, LLVMAttributeIndex Idx)

LLVM_C_ABI void LLVMSetInstructionCallConv(LLVMValueRef Instr, unsigned CC)

Set the calling convention for a call instruction.

LLVM_C_ABI LLVMGEPNoWrapFlags LLVMGEPGetNoWrapFlags(LLVMValueRef GEP)

Get the no-wrap related flags for the given GEP instruction.

LLVM_C_ABI LLVMBool LLVMIsInBounds(LLVMValueRef GEP)

Check whether the given GEP operator is inbounds.

LLVM_C_ABI void LLVMSetIsInBounds(LLVMValueRef GEP, LLVMBool InBounds)

Set the given GEP instruction to be inbounds or not.

LLVM_C_ABI LLVMTypeRef LLVMGetGEPSourceElementType(LLVMValueRef GEP)

Get the source element type of the given GEP operator.

LLVM_C_ABI void LLVMGEPSetNoWrapFlags(LLVMValueRef GEP, LLVMGEPNoWrapFlags NoWrapFlags)

Set the no-wrap related flags for the given GEP instruction.

LLVM_C_ABI unsigned LLVMGetNumIndices(LLVMValueRef Inst)

Obtain the number of indices.

LLVM_C_ABI const unsigned * LLVMGetIndices(LLVMValueRef Inst)

Obtain the indices as an array.

LLVM_C_ABI LLVMBasicBlockRef LLVMGetIncomingBlock(LLVMValueRef PhiNode, unsigned Index)

Obtain an incoming value to a PHI node as an LLVMBasicBlockRef.

LLVM_C_ABI LLVMValueRef LLVMGetIncomingValue(LLVMValueRef PhiNode, unsigned Index)

Obtain an incoming value to a PHI node as an LLVMValueRef.

LLVM_C_ABI void LLVMAddIncoming(LLVMValueRef PhiNode, LLVMValueRef *IncomingValues, LLVMBasicBlockRef *IncomingBlocks, unsigned Count)

Add an incoming value to the end of a PHI list.

LLVM_C_ABI unsigned LLVMCountIncoming(LLVMValueRef PhiNode)

Obtain the number of incoming basic blocks to a PHI node.

LLVM_C_ABI LLVMValueRef LLVMGetCondition(LLVMValueRef Branch)

Return the condition of a branch instruction.

LLVM_C_ABI LLVMBasicBlockRef LLVMGetSuccessor(LLVMValueRef Term, unsigned i)

Return the specified successor.

LLVM_C_ABI void LLVMSetCondition(LLVMValueRef Branch, LLVMValueRef Cond)

Set the condition of a branch instruction.

LLVM_C_ABI void LLVMSetSuccessor(LLVMValueRef Term, unsigned i, LLVMBasicBlockRef block)

Update the specified successor to point at the provided block.

LLVM_C_ABI LLVMBool LLVMIsConditional(LLVMValueRef Branch)

Return if a branch is conditional.

LLVM_C_ABI LLVMBasicBlockRef LLVMGetSwitchDefaultDest(LLVMValueRef SwitchInstr)

Obtain the default destination basic block of a switch instruction.

LLVM_C_ABI unsigned LLVMGetNumSuccessors(LLVMValueRef Term)

Return the number of successors that this terminator has.

LLVM_C_ABI LLVMRealPredicate LLVMGetFCmpPredicate(LLVMValueRef Inst)

Obtain the float predicate of an instruction.

LLVM_C_ABI int LLVMHasMetadata(LLVMValueRef Val)

Determine whether an instruction has any metadata attached.

LLVM_C_ABI void LLVMInstructionRemoveFromParent(LLVMValueRef Inst)

Remove an instruction.

LLVM_C_ABI LLVMValueRef LLVMGetPreviousInstruction(LLVMValueRef Inst)

Obtain the instruction that occurred before this one.

LLVM_C_ABI LLVMDbgRecordRef LLVMGetPreviousDbgRecord(LLVMDbgRecordRef DbgRecord)

Obtain the previous DbgRecord in the sequence or NULL if there are no more.

LLVM_C_ABI LLVMDbgRecordRef LLVMGetFirstDbgRecord(LLVMValueRef Inst)

Obtain the first debug record attached to an instruction.

LLVM_C_ABI LLVMOpcode LLVMGetInstructionOpcode(LLVMValueRef Inst)

Obtain the code opcode for an individual instruction.

LLVM_C_ABI LLVMDbgRecordRef LLVMGetNextDbgRecord(LLVMDbgRecordRef DbgRecord)

Obtain the next DbgRecord in the sequence or NULL if there are no more.

LLVM_C_ABI LLVMDbgRecordRef LLVMGetLastDbgRecord(LLVMValueRef Inst)

Obtain the last debug record attached to an instruction.

LLVM_C_ABI LLVMValueRef LLVMIsATerminatorInst(LLVMValueRef Inst)

Determine whether an instruction is a terminator.

LLVMMetadataRef LLVMDbgVariableRecordGetExpression(LLVMDbgRecordRef Rec)

Get the debug info expression of the DbgVariableRecord.

LLVM_C_ABI LLVMValueMetadataEntry * LLVMInstructionGetAllMetadataOtherThanDebugLoc(LLVMValueRef Instr, size_t *NumEntries)

Returns the metadata associated with an instruction value, but filters out all the debug locations.

LLVM_C_ABI void LLVMDeleteInstruction(LLVMValueRef Inst)

Delete an instruction.

LLVMMetadataRef LLVMDbgRecordGetDebugLoc(LLVMDbgRecordRef Rec)

Get the debug location attached to the debug record.

LLVM_C_ABI LLVMBasicBlockRef LLVMGetInstructionParent(LLVMValueRef Inst)

Obtain the basic block to which an instruction belongs.

LLVMValueRef LLVMDbgVariableRecordGetValue(LLVMDbgRecordRef Rec, unsigned OpIdx)

Get the value of the DbgVariableRecord.

LLVM_C_ABI LLVMBool LLVMGetICmpSameSign(LLVMValueRef Inst)

Get whether or not an icmp instruction has the samesign flag.

LLVM_C_ABI LLVMValueRef LLVMInstructionClone(LLVMValueRef Inst)

Create a copy of 'this' instruction that is identical in all ways except the following:

LLVM_C_ABI void LLVMInstructionEraseFromParent(LLVMValueRef Inst)

Remove and delete an instruction.

LLVM_C_ABI void LLVMSetMetadata(LLVMValueRef Val, unsigned KindID, LLVMValueRef Node)

Set metadata associated with an instruction value.

LLVM_C_ABI LLVMValueRef LLVMGetMetadata(LLVMValueRef Val, unsigned KindID)

Return metadata associated with an instruction value.

LLVM_C_ABI LLVMIntPredicate LLVMGetICmpPredicate(LLVMValueRef Inst)

Obtain the predicate of an instruction.

LLVM_C_ABI LLVMValueRef LLVMGetNextInstruction(LLVMValueRef Inst)

Obtain the instruction that occurs after the one specified.

LLVMMetadataRef LLVMDbgVariableRecordGetVariable(LLVMDbgRecordRef Rec)

Get the debug info variable of the DbgVariableRecord.

LLVMDbgRecordKind LLVMDbgRecordGetKind(LLVMDbgRecordRef Rec)

LLVM_C_ABI void LLVMSetICmpSameSign(LLVMValueRef Inst, LLVMBool SameSign)

Set the samesign flag on an icmp instruction.

LLVM_C_ABI LLVMUseRef LLVMGetOperandUse(LLVMValueRef Val, unsigned Index)

Obtain the use of an operand at a specific index in a llvm::User value.

LLVM_C_ABI int LLVMGetNumOperands(LLVMValueRef Val)

Obtain the number of operands in a llvm::User value.

LLVM_C_ABI void LLVMSetOperand(LLVMValueRef User, unsigned Index, LLVMValueRef Val)

Set an operand at a specific index in a llvm::User value.

LLVM_C_ABI LLVMValueRef LLVMGetOperand(LLVMValueRef Val, unsigned Index)

Obtain an operand at a specific index in a llvm::User value.

LLVM_C_ABI LLVMValueRef LLVMGetUser(LLVMUseRef U)

Obtain the user value for a user.

LLVM_C_ABI LLVMValueRef LLVMGetUsedValue(LLVMUseRef U)

Obtain the value this use corresponds to.

LLVM_C_ABI LLVMUseRef LLVMGetNextUse(LLVMUseRef U)

Obtain the next use of a value.

LLVM_C_ABI LLVMUseRef LLVMGetFirstUse(LLVMValueRef Val)

Obtain the first use of a value.

#define LLVM_FOR_EACH_VALUE_SUBCLASS(macro)

Definition Core.h:1966

LLVM_C_ABI void LLVMDisposeMessage(char *Message)

LLVM_C_ABI char * LLVMCreateMessage(const char *Message)

LLVM_C_ABI void LLVMGetVersion(unsigned *Major, unsigned *Minor, unsigned *Patch)

Return the major, minor, and patch version of LLVM.

LLVM_C_ABI void LLVMShutdown(void)

Deallocate and destroy all ManagedStatic variables.

struct LLVMOpaqueValue * LLVMValueRef

Represents an individual value in LLVM IR.

struct LLVMOpaqueAttributeRef * LLVMAttributeRef

Used to represent an attributes.

struct LLVMOpaqueModuleFlagEntry LLVMModuleFlagEntry

struct LLVMOpaqueNamedMDNode * LLVMNamedMDNodeRef

Represents an LLVM Named Metadata Node.

struct LLVMOpaquePassManager * LLVMPassManagerRef

struct LLVMOpaqueDbgRecord * LLVMDbgRecordRef

struct LLVMOpaqueDiagnosticInfo * LLVMDiagnosticInfoRef

struct LLVMOpaqueValueMetadataEntry LLVMValueMetadataEntry

Represents an entry in a Global Object's metadata attachments.

struct LLVMOpaqueMemoryBuffer * LLVMMemoryBufferRef

LLVM uses a polymorphic type hierarchy which C cannot represent, therefore parameters must be passed ...

struct LLVMOpaqueContext * LLVMContextRef

The top-level container for all LLVM global data.

struct LLVMOpaqueBuilder * LLVMBuilderRef

Represents an LLVM basic block builder.

struct LLVMOpaqueUse * LLVMUseRef

Used to get the users and usees of a Value.

struct LLVMOpaqueBasicBlock * LLVMBasicBlockRef

Represents a basic block of instructions in LLVM IR.

struct LLVMOpaqueType * LLVMTypeRef

Each value in the LLVM IR has a type, an LLVMTypeRef.

struct LLVMOpaqueMetadata * LLVMMetadataRef

Represents an LLVM Metadata.

struct LLVMOpaqueModule * LLVMModuleRef

The top-level container for all other LLVM Intermediate Representation (IR) objects.

struct LLVMOpaqueModuleProvider * LLVMModuleProviderRef

Interface used to provide a module to JIT or interpreter.

struct LLVMOpaqueOperandBundle * LLVMOperandBundleRef

LLVM_C_ABI LLVMValueRef LLVMAddAlias2(LLVMModuleRef M, LLVMTypeRef ValueTy, unsigned AddrSpace, LLVMValueRef Aliasee, const char *Name)

Add a GlobalAlias with the given value type, address space and aliasee.

LLVM_C_ABI LLVMValueRef LLVMGetLastGlobalAlias(LLVMModuleRef M)

Obtain an iterator to the last GlobalAlias in a Module.

LLVM_C_ABI LLVMValueRef LLVMGetPreviousGlobalAlias(LLVMValueRef GA)

Decrement a GlobalAlias iterator to the previous GlobalAlias.

LLVM_C_ABI void LLVMAliasSetAliasee(LLVMValueRef Alias, LLVMValueRef Aliasee)

Set the target value of an alias.

LLVM_C_ABI LLVMValueRef LLVMGetFirstGlobalAlias(LLVMModuleRef M)

Obtain an iterator to the first GlobalAlias in a Module.

LLVM_C_ABI LLVMValueRef LLVMAliasGetAliasee(LLVMValueRef Alias)

Retrieve the target value of an alias.

LLVM_C_ABI LLVMValueRef LLVMGetNamedGlobalAlias(LLVMModuleRef M, const char *Name, size_t NameLen)

Obtain a GlobalAlias value from a Module by its name.

LLVM_C_ABI LLVMValueRef LLVMGetNextGlobalAlias(LLVMValueRef GA)

Advance a GlobalAlias iterator to the next GlobalAlias.

LLVM_C_ABI LLVMBool LLVMIsThreadLocal(LLVMValueRef GlobalVar)

LLVM_C_ABI LLVMThreadLocalMode LLVMGetThreadLocalMode(LLVMValueRef GlobalVar)

LLVM_C_ABI LLVMBool LLVMIsGlobalConstant(LLVMValueRef GlobalVar)

LLVM_C_ABI LLVMValueRef LLVMGetPreviousGlobal(LLVMValueRef GlobalVar)

LLVM_C_ABI void LLVMSetThreadLocal(LLVMValueRef GlobalVar, LLVMBool IsThreadLocal)

LLVM_C_ABI LLVMBool LLVMIsExternallyInitialized(LLVMValueRef GlobalVar)

LLVM_C_ABI LLVMValueRef LLVMGetLastGlobal(LLVMModuleRef M)

LLVM_C_ABI LLVMValueRef LLVMGetNamedGlobalWithLength(LLVMModuleRef M, const char *Name, size_t Length)

LLVM_C_ABI LLVMValueRef LLVMGetFirstGlobal(LLVMModuleRef M)

LLVM_C_ABI void LLVMSetThreadLocalMode(LLVMValueRef GlobalVar, LLVMThreadLocalMode Mode)

LLVM_C_ABI LLVMValueRef LLVMGetNextGlobal(LLVMValueRef GlobalVar)

LLVM_C_ABI void LLVMSetExternallyInitialized(LLVMValueRef GlobalVar, LLVMBool IsExtInit)

LLVM_C_ABI LLVMValueRef LLVMGetNamedGlobal(LLVMModuleRef M, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMAddGlobalInAddressSpace(LLVMModuleRef M, LLVMTypeRef Ty, const char *Name, unsigned AddressSpace)

LLVM_C_ABI void LLVMDeleteGlobal(LLVMValueRef GlobalVar)

LLVM_C_ABI void LLVMSetGlobalConstant(LLVMValueRef GlobalVar, LLVMBool IsConstant)

LLVM_C_ABI LLVMValueRef LLVMAddGlobal(LLVMModuleRef M, LLVMTypeRef Ty, const char *Name)

LLVM_C_ABI LLVMValueRef LLVMGetInitializer(LLVMValueRef GlobalVar)

LLVM_C_ABI void LLVMSetInitializer(LLVMValueRef GlobalVar, LLVMValueRef ConstantVal)