LLVM: include/llvm/IR/Module.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_IR_MODULE_H

15#define LLVM_IR_MODULE_H

16

36#include

37#include

38#include

39#include

40#include

41#include

42#include

43

44namespace llvm {

45

55

56

57

58

59

60

61

62

63

64

65

66

68

69

70public:

71

73

75

77

79

81

83

85

86

88

90

91

93

95

96

98

100

101

103

105

106

108

110

111

113

115

116

118

119

121

122

123

125

126

127

128

129

130

131

132

134

135

136

137

139

140

142

143

144

145

147

148

150

151

153

154

157 };

158

159

160

161 static bool isValidModFlagBehavior(Metadata *MD, ModFlagBehavior &MFB);

162

171

172

173

174

175private:

176 LLVMContext &Context;

177

178 GlobalListType GlobalList;

179 FunctionListType FunctionList;

180 AliasListType AliasList;

181 IFuncListType IFuncList;

182 NamedMDListType NamedMDList;

183 std::string GlobalScopeAsm;

184 std::unique_ptr ValSymTab;

185 ComdatSymTabType ComdatSymTab;

186 std::unique_ptr

187 OwnedMemoryBuffer;

188

189 std::unique_ptr

190 Materializer;

191 std::string ModuleID;

192 std::string SourceFileName;

193

194

195

196

198 NamedMDSymTabType NamedMDSymTab;

199 DataLayout DL;

201 CurrentIntrinsicIds;

202

204 UniquedIntrinsicNames;

205

206

207

208

209

211

213

214

215

216

217public:

218

219

220

222

223

225 for (auto &F : *this) {

226 F.convertToNewDbgValues();

227 }

228 }

229

230

232 for (auto &F : *this) {

233 F.convertFromNewDbgValues();

234 }

235 }

236

237

238

240

242

243

245

246

247

248

249

250

251

253

254

255

256

257 unsigned getInstructionCount() const;

258

259

260

261

262

264

265

266

267

268

270

271

272

274 return DL.getStringRepresentation();

275 }

276

277

279

280

282

283

284

286

287

288

290

291

292

293

294

295

296

297

298

299

300 std::unique_ptr createRNG(const StringRef Name) const;

301

302

303

305 return getContext().getDiagHandlerPtr()->isAnalysisRemarkEnabled(

306 "size-info");

307 }

308

309

310

311

312

313

315

316

318

319

322

323

325

326

327

329 GlobalScopeAsm = std::string(Asm);

330 if (!GlobalScopeAsm.empty() && GlobalScopeAsm.back() != '\n')

331 GlobalScopeAsm += '\n';

332 }

333

334

335

337 GlobalScopeAsm += Asm;

338 if (!GlobalScopeAsm.empty() && GlobalScopeAsm.back() != '\n')

339 GlobalScopeAsm += '\n';

340 }

341

342

343

344

345

346

347

348

350

351

352 unsigned getNumNamedValues() const;

353

354

355

356 unsigned getMDKindID(StringRef Name) const;

357

358

359

361

362

363

364

366

367 std::vector<StructType *> getIdentifiedStructTypes() const;

368

369

370

373

374

375

376

377

378

379

380

381

382

383

384

385

386

387

389 AttributeList AttributeList);

390

392

393

394

395 template <typename... ArgsTy>

397 AttributeList AttributeList, Type *RetTy,

398 ArgsTy... Args) {

402 AttributeList);

403 }

404

405

406 template <typename... ArgsTy>

408 ArgsTy... Args) {

410 }

411

412

413 template <typename... ArgsTy>

417

418

419

421

422

423

424

425

426

427

428

429

433

435

437 bool AllowInternal = false) {

439 AllowInternal);

440 }

441

442

443

444

450 static_cast<const Module *>(this)->getNamedGlobal(Name));

451 }

452

453

454

455

459

460

461

463

464

465

466

467

468

469

470

472

473

474

475

476

477

478

479

481

482

483

484

485

486

487

489

490

491

492

494

495

496 void eraseNamedMetadata(NamedMDNode *NMD);

497

498

499

500

501

502

503

505

506

507

508

509

510

512

513

514

516

517

518

520

521

522

523

524 NamedMDNode *getOrInsertModuleFlagsMetadata();

525

526

527

532

536

537

538

539

540

541

542

543

544

545

546

547

549

552

553

555

556

557

559

561

562

564

566

567

571

572

574 GlobalList.insert(Where, GV);

575 }

576

577

578

579private:

580

581

582

583

584

585 const GlobalListType &getGlobalList() const { return GlobalList; }

586

587 GlobalListType &getGlobalList() { return GlobalList; }

588

590 return &Module::GlobalList;

591 }

593

594public:

595

597

600 return &Module::FunctionList;

601 }

602

603

605

607

609

610

611

612

614

616

618

619

620

621

623

625

627 NamedMDList.push_back(MDNode);

628 }

629

630

631

632private:

633

634 const AliasListType &getAliasList() const { return AliasList; }

635

636 AliasListType &getAliasList() { return AliasList; }

637

639 return &Module::AliasList;

640 }

642

643

644 const IFuncListType &getIFuncList() const { return IFuncList; }

645

646 IFuncListType &getIFuncList() { return IFuncList; }

647

649 return &Module::IFuncList;

650 }

652

653

654 const NamedMDListType &getNamedMDList() const { return NamedMDList; }

655

656 NamedMDListType &getNamedMDList() { return NamedMDList; }

657

658 static NamedMDListType Module::*getSublistAccess(NamedMDNode*) {

659 return &Module::NamedMDList;

660 }

661

662public:

663

665

667

668

670

672

673

674

675

676

681 size_t global_size () const { return GlobalList.size(); }

683

690

691

692

693

694

703 size_t size() const { return FunctionList.size(); }

704 bool empty() const { return FunctionList.empty(); }

705

712

713

714

717 [](Function &F) { return F.isDeclaration(); });

718 }

723

724

725

726

727

732 size_t alias_size () const { return AliasList.size(); }

733 bool alias_empty() const { return AliasList.empty(); }

734

741

742

743

744

745

750 size_t ifunc_size () const { return IFuncList.size(); }

751 bool ifunc_empty() const { return IFuncList.empty(); }

752

759

760

761

762

763

769

772

779

782

783

784

785

786

789 return NamedMDList.begin();

790 }

791

794 return NamedMDList.end();

795 }

796

799

806

807

810 unsigned Idx;

811

812 LLVM_ABI void SkipNoDebugCUs();

813

814 public:

820

822 : CUs(CUs), Idx(Idx) {

823 SkipNoDebugCUs();

824 }

825

827 ++Idx;

828 SkipNoDebugCUs();

829 return *this;

830 }

831

834 ++Idx;

835 return T;

836 }

837

839 return Idx == I.Idx;

840 }

841

843 return Idx != I.Idx;

844 }

845

848 };

849

854

859

860

861

862

869

870

871

872

873

874

875

876

877

879 bool ShouldPreserveUseListOrder = false,

880 bool IsForDebug = false) const;

881

882

883 void dump() const;

884

885

886

887

888

889

890

891 void dropAllReferences();

892

893

894

895

896

897

898

899 unsigned getNumberRegisterParameters() const;

900

901

902 unsigned getDwarfVersion() const;

903

904

905 bool isDwarf64() const;

906

907

908

909 unsigned getCodeViewFlag() const;

910

911

912

913

914

915

917

918

920

921

922

923

924

925

926

928

929

931

932

933

934

935

936

937

938 std::optionalCodeModel::Model getCodeModel() const;

939

940

942

943

944

945

946

947

948

949 std::optional<uint64_t> getLargeDataThreshold() const;

950

951

952 void setLargeDataThreshold(uint64_t Threshold);

953

954

955

956

957

958

960

961

962

963 Metadata *getProfileSummary(bool IsCS) const;

964

965

966

967 bool getSemanticInterposition() const;

968

969

970 void setSemanticInterposition(bool);

971

972

973 bool getRtLibUseGOT() const;

974

975

976 void setRtLibUseGOT();

977

978

979

980 bool getDirectAccessExternalData() const;

981 void setDirectAccessExternalData(bool Value);

982

983

986

987

988

991

992

993 StringRef getStackProtectorGuard() const;

994 void setStackProtectorGuard(StringRef Kind);

995

996

997

998

999 StringRef getStackProtectorGuardReg() const;

1000 void setStackProtectorGuardReg(StringRef Reg);

1001

1002

1003 StringRef getStackProtectorGuardSymbol() const;

1004 void setStackProtectorGuardSymbol(StringRef Symbol);

1005

1006

1007 int getStackProtectorGuardOffset() const;

1008 void setStackProtectorGuardOffset(int Offset);

1009

1010

1011 unsigned getOverrideStackAlignment() const;

1012 void setOverrideStackAlignment(unsigned Align);

1013

1014 unsigned getMaxTLSAlignment() const;

1015

1016

1017

1018

1019

1021

1022

1023

1024

1026

1027

1028

1029 void setOwnedMemoryBuffer(std::unique_ptr MB);

1030

1031

1032

1034

1035

1036

1037

1038

1039 StringRef getDarwinTargetVariantTriple() const;

1040

1041

1042

1043 void setDarwinTargetVariantTriple(StringRef T);

1044

1045

1046

1047

1048 VersionTuple getDarwinTargetVariantSDKVersion() const;

1049

1050

1052

1053

1055

1056

1057

1059};

1060

1061

1062

1063

1066 bool CompilerUsed);

1067

1068

1070 M.print(O, nullptr);

1071 return O;

1072}

1073

1074

1076

1077

1078

1079

1081 return reinterpret_cast<Module*>(MP);

1082}

1083

1084}

1085

1086#endif

This file defines the StringMap class.

Lower uses of LDS variables from non kernel functions

MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL

static void print(raw_ostream &Out, object::Archive::Kind Kind, T Val)

This file contains the simple types necessary to represent the attributes associated with functions a...

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

#define DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ty, ref)

This file contains the declaration of the GlobalIFunc class, which represents a single indirect funct...

Machine Check Debug Module

static Constant * getOrInsertGlobal(Module &M, StringRef Name, Type *Ty)

static CodeModel::Model getCodeModel(const PPCSubtarget &S, const TargetMachine &TM, const MachineOperand &MO)

static Function * getFunction(FunctionType *Ty, const Twine &Name, Module *M)

static GlobalVariable * getGlobalVariable(Module &M, Type *Ty, WebAssemblyTargetMachine &TM, const char *Name)

This is an important base class in LLVM.

A parsed version of the target data layout string in and methods for querying it.

Lightweight error class with error context and mandatory checking.

A handy container for a FunctionType+Callee-pointer pair, which can be passed around as a single enti...

Class to represent function types.

static LLVM_ABI FunctionType * get(Type *Result, ArrayRef< Type * > Params, bool isVarArg)

This static method is the primary way of constructing a FunctionType.

This is an important class for using LLVM in a threaded context.

This interface provides simple read-only access to a block of memory, and provides simple methods for...

Class to hold module path string table and global value map, and encapsulate methods for operating on...

An iterator for DICompileUnits that skips those marked NoDebug.

Definition Module.h:808

debug_compile_units_iterator & operator++()

Definition Module.h:826

bool operator==(const debug_compile_units_iterator &I) const

Definition Module.h:838

value_type & reference

Definition Module.h:819

value_type * pointer

Definition Module.h:818

debug_compile_units_iterator operator++(int)

Definition Module.h:832

std::input_iterator_tag iterator_category

Definition Module.h:815

std::ptrdiff_t difference_type

Definition Module.h:817

DICompileUnit * value_type

Definition Module.h:816

debug_compile_units_iterator(NamedMDNode *CUs, unsigned Idx)

Definition Module.h:821

bool operator!=(const debug_compile_units_iterator &I) const

Definition Module.h:842

A Module instance is used to store all the information related to an LLVM module.

Definition Module.h:67

const Triple & getTargetTriple() const

Get the target triple which is a string describing the target host.

Definition Module.h:281

StringMap< Comdat > ComdatSymTabType

The type of the comdat "symbol" table.

Definition Module.h:82

global_iterator global_begin()

Definition Module.h:677

void removeIFunc(GlobalIFunc *IFunc)

Detach IFunc from the list but don't delete it.

Definition Module.h:613

const_global_iterator global_begin() const

Definition Module.h:678

const_iterator begin() const

Definition Module.h:696

NamedMDNode * getNamedMetadata(StringRef Name) const

Return the first NamedMDNode in the module with the specified name.

ifunc_iterator ifunc_begin()

Definition Module.h:746

void eraseNamedMDNode(NamedMDNode *MDNode)

Remove MDNode from the list and delete it.

Definition Module.h:624

const std::string & getModuleInlineAsm() const

Get any module-scope inline assembly blocks.

Definition Module.h:289

ModFlagBehavior

This enumeration defines the supported behaviors of module flags.

Definition Module.h:117

@ AppendUnique

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

Definition Module.h:146

@ Override

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

Definition Module.h:138

@ Warning

Emits a warning if two values disagree.

Definition Module.h:124

@ Error

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

Definition Module.h:120

@ ModFlagBehaviorFirstVal

Definition Module.h:155

@ Min

Takes the min of the two values, which are required to be integers.

Definition Module.h:152

@ Append

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

Definition Module.h:141

@ Max

Takes the max of the two values, which are required to be integers.

Definition Module.h:149

@ ModFlagBehaviorLastVal

Definition Module.h:156

@ Require

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

Definition Module.h:133

LLVMContext & getContext() const

Get the global data context.

Definition Module.h:285

void insertIFunc(GlobalIFunc *IFunc)

Insert IFunc at the end of the alias list and take ownership.

Definition Module.h:617

iterator_range< const_alias_iterator > aliases() const

Definition Module.h:738

void setModuleInlineAsm(StringRef Asm)

Set the module-scope inline assembly blocks.

Definition Module.h:328

const ComdatSymTabType & getComdatSymbolTable() const

Get the Module's symbol table for COMDATs (constant).

Definition Module.h:669

global_iterator global_end()

Definition Module.h:679

GlobalVariable * getNamedGlobal(StringRef Name)

Definition Module.h:448

void setTargetTriple(Triple T)

Set the target triple.

Definition Module.h:324

NamedMDListType::iterator named_metadata_iterator

The named metadata iterators.

Definition Module.h:112

size_t alias_size() const

Definition Module.h:732

const_global_iterator global_end() const

Definition Module.h:680

bool global_empty() const

Definition Module.h:682

iterator begin()

Definition Module.h:695

void convertToNewDbgValues()

Definition Module.h:224

FunctionCallee getOrInsertFunction(StringRef Name, AttributeList AttributeList, Type *RetTy, ArgsTy... Args)

Same as above, but takes a list of function arguments, which makes it easier for clients to use.

Definition Module.h:396

const_ifunc_iterator ifunc_end() const

Definition Module.h:749

void convertFromNewDbgValues()

Definition Module.h:231

iterator_range< ifunc_iterator > ifuncs()

Definition Module.h:753

bool named_metadata_empty() const

Definition Module.h:798

Module(StringRef ModuleID, LLVMContext &C)

The Module constructor.

ilist< NamedMDNode > NamedMDListType

The type for the list of named metadata.

Definition Module.h:80

SymbolTableList< Function > FunctionListType

The type for the list of functions.

Definition Module.h:74

void removeDebugIntrinsicDeclarations()

Used when printing this module in the new debug info format; removes all declarations of debug intrin...

ValueSymbolTable & getValueSymbolTable()

Get the Module's symbol table of global variable and function identifiers.

Definition Module.h:666

NamedMDListType::const_iterator const_named_metadata_iterator

The named metadata constant iterators.

Definition Module.h:114

const_named_metadata_iterator named_metadata_begin() const

Definition Module.h:788

size_t global_size() const

Definition Module.h:681

iterator_range< debug_compile_units_iterator > debug_compile_units() const

Return an iterator for all DICompileUnits listed in this Module's llvm.dbg.cu named metadata node and...

Definition Module.h:863

iterator_range< iterator > functions()

Definition Module.h:706

StringRef getName() const

Get a short "name" for the module.

Definition Module.h:269

GVMaterializer * getMaterializer() const

Retrieves the GVMaterializer, if any, for this Module.

Definition Module.h:550

const std::string & getSourceFileName() const

Get the module's original source file name.

Definition Module.h:263

IFuncListType::iterator ifunc_iterator

The Global IFunc iterators.

Definition Module.h:107

const_alias_iterator alias_end() const

Definition Module.h:731

void removeAlias(GlobalAlias *Alias)

Detach Alias from the list but don't delete it.

Definition Module.h:604

iterator_range< named_metadata_iterator > named_metadata()

Definition Module.h:800

friend class Constant

Definition Module.h:212

named_metadata_iterator named_metadata_begin()

Definition Module.h:787

ifunc_iterator ifunc_end()

Definition Module.h:748

GlobalListType::const_iterator const_global_iterator

The Global Variable constant iterator.

Definition Module.h:89

iterator_range< alias_iterator > aliases()

Definition Module.h:735

void insertGlobalVariable(GlobalListType::iterator Where, GlobalVariable *GV)

Insert global variable GV into the global variable list before Where and take ownership.

Definition Module.h:573

alias_iterator alias_end()

Definition Module.h:730

const_alias_iterator alias_begin() const

Definition Module.h:729

const_reverse_iterator rbegin() const

Definition Module.h:700

alias_iterator alias_begin()

Definition Module.h:728

reverse_iterator rend()

Definition Module.h:701

FunctionListType::iterator iterator

The Function iterators.

Definition Module.h:92

GlobalVariable * getGlobalVariable(StringRef Name, bool AllowInternal=false)

Definition Module.h:436

void eraseIFunc(GlobalIFunc *IFunc)

Remove IFunc from the list and delete it.

Definition Module.h:615

bool shouldEmitInstrCountChangedRemark()

Return true if size-info optimization remark is enabled, false otherwise.

Definition Module.h:304

StringMap< NamedMDNode * > NamedMDSymTabType

The type for mapping names to named metadata.

Definition Module.h:84

auto getFunctionDefs()

Get an iterator range over all function definitions (excluding declarations).

Definition Module.h:715

GlobalListType::iterator global_iterator

The Global Variable iterator.

Definition Module.h:87

size_t size() const

Definition Module.h:703

FunctionListType::const_reverse_iterator const_reverse_iterator

The Function constant reverse iterator.

Definition Module.h:99

bool alias_empty() const

Definition Module.h:733

FunctionCallee getOrInsertFunction(StringRef Name, AttributeList AttributeList, FunctionType *Invalid, ArgsTy... Args)=delete

iterator_range< global_iterator > globals()

Definition Module.h:684

const FunctionListType & getFunctionList() const

Get the Module's list of functions (constant).

Definition Module.h:596

const_reverse_iterator rend() const

Definition Module.h:702

iterator_range< const_named_metadata_iterator > named_metadata() const

Definition Module.h:803

concat_iterator< GlobalObject, iterator, global_iterator > global_object_iterator

Definition Module.h:764

IFuncListType::const_iterator const_ifunc_iterator

The Global IFunc constant iterator.

Definition Module.h:109

size_t ifunc_size() const

Definition Module.h:750

SymbolTableList< GlobalVariable > GlobalListType

The type for the list of global variables.

Definition Module.h:72

FunctionListType & getFunctionList()

Get the Module's list of functions.

Definition Module.h:598

void eraseAlias(GlobalAlias *Alias)

Remove Alias from the list and delete it.

Definition Module.h:606

const std::string & getModuleIdentifier() const

Get the module identifier which is, essentially, the name of the module.

Definition Module.h:252

void eraseGlobalVariable(GlobalVariable *GV)

Remove global variable GV from the list and delete it.

Definition Module.h:565

reverse_iterator rbegin()

Definition Module.h:699

FunctionCallee getOrInsertFunction(StringRef Name, Type *RetTy, ArgsTy... Args)

Same as above, but without the attributes.

Definition Module.h:407

void insertNamedMDNode(NamedMDNode *MDNode)

Insert MDNode at the end of the alias list and take ownership.

Definition Module.h:626

const_named_metadata_iterator named_metadata_end() const

Definition Module.h:793

bool empty() const

Definition Module.h:704

void removeNamedMDNode(NamedMDNode *MDNode)

Detach MDNode from the list but don't delete it.

Definition Module.h:622

AliasListType::iterator alias_iterator

The Global Alias iterators.

Definition Module.h:102

iterator end()

Definition Module.h:697

GlobalVariable * getGlobalVariable(StringRef Name) const

Look up the specified global variable in the module symbol table.

Definition Module.h:430

void insertGlobalVariable(GlobalVariable *GV)

Insert global variable GV at the end of the global variable list and take ownership.

Definition Module.h:568

const ValueSymbolTable & getValueSymbolTable() const

Get the symbol table of global variable and function identifiers.

Definition Module.h:664

size_t named_metadata_size() const

Definition Module.h:797

iterator_range< global_object_iterator > global_objects()

named_metadata_iterator named_metadata_end()

Definition Module.h:792

bool isMaterialized() const

Definition Module.h:551

const GlobalVariable * getNamedGlobal(StringRef Name) const

Return the global variable in the module with the specified name, of arbitrary type.

Definition Module.h:445

AliasListType::const_iterator const_alias_iterator

The Global Alias constant iterator.

Definition Module.h:104

FunctionCallee getOrInsertFunction(StringRef Name, FunctionType *T, AttributeList AttributeList)

Look up the specified function in the module symbol table.

ComdatSymTabType & getComdatSymbolTable()

Get the Module's symbol table for COMDATs.

Definition Module.h:671

FunctionListType::reverse_iterator reverse_iterator

The Function reverse iterator.

Definition Module.h:97

const DataLayout & getDataLayout() const

Get the data layout for the module's target platform.

Definition Module.h:278

iterator_range< const_iterator > functions() const

Definition Module.h:709

concat_iterator< GlobalValue, iterator, global_iterator, alias_iterator, ifunc_iterator > global_value_iterator

Definition Module.h:773

NamedMDNode * getModuleFlagsMetadata() const

Returns the NamedMDNode in the module that represents module-level flags.

Definition Module.h:519

iterator_range< const_global_iterator > globals() const

Definition Module.h:687

void setModuleIdentifier(StringRef ID)

Set the module identifier.

Definition Module.h:314

iterator_range< const_ifunc_iterator > ifuncs() const

Definition Module.h:756

SymbolTableList< GlobalAlias > AliasListType

The type for the list of aliases.

Definition Module.h:76

const_iterator end() const

Definition Module.h:698

void setSourceFileName(StringRef Name)

Set the module's original source file name.

Definition Module.h:317

SymbolTableList< GlobalIFunc > IFuncListType

The type for the list of ifuncs.

Definition Module.h:78

auto getFunctionDefs() const

Definition Module.h:719

const_ifunc_iterator ifunc_begin() const

Definition Module.h:747

concat_iterator< const GlobalObject, const_iterator, const_global_iterator > const_global_object_iterator

Definition Module.h:766

const std::string & getDataLayoutStr() const

Get the data layout string for the module's target platform.

Definition Module.h:273

static FunctionListType Module::* getSublistAccess(Function *)

Definition Module.h:599

void appendModuleInlineAsm(StringRef Asm)

Append to the module-scope inline assembly blocks.

Definition Module.h:336

FunctionListType::const_iterator const_iterator

The Function constant iterator.

Definition Module.h:94

concat_iterator< const GlobalValue, const_iterator, const_global_iterator, const_alias_iterator, const_ifunc_iterator > const_global_value_iterator

Definition Module.h:776

void insertAlias(GlobalAlias *Alias)

Insert Alias at the end of the alias list and take ownership.

Definition Module.h:608

debug_compile_units_iterator debug_compile_units_begin() const

Definition Module.h:850

bool ifunc_empty() const

Definition Module.h:751

iterator_range< global_value_iterator > global_values()

void removeGlobalVariable(GlobalVariable *GV)

Detach global variable GV from the list but don't delete it.

Definition Module.h:563

debug_compile_units_iterator debug_compile_units_end() const

Definition Module.h:855

A random number generator.

This class consists of common code factored out of the SmallVector class to reduce code duplication b...

This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.

StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...

StringRef - Represent a constant reference to a string, i.e.

Class to represent struct types.

List that automatically updates parent links and symbol tables.

Triple - Helper class for working with autoconf configuration names.

The instances of the Type class are immutable: once they are created, they are never changed.

This class provides a symbol table of name/value pairs.

LLVM Value Representation.

Represents a version number in the form major[.minor[.subminor[.build]]].

Iterator wrapper that concatenates sequences together.

An efficient, type-erasing, non-owning reference to a callable.

typename base_list_type::const_reverse_iterator const_reverse_iterator

typename base_list_type::reverse_iterator reverse_iterator

typename base_list_type::iterator iterator

typename base_list_type::const_iterator const_iterator

A range adaptor for a pair of iterators.

This class implements an extremely fast bulk output stream that can only output to a stream.

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.

This provides a very simple, boring adaptor for a begin and end iterator into a range type.

This file contains the declaration of the Comdat class, which represents a single COMDAT in LLVM.

unsigned ID

LLVM IR allows to use arbitrary numbers as calling convention identifiers.

@ C

The default llvm calling convention, compatible with C.

This is an optimization pass for GlobalISel generic memory operations.

void dump(const SparseBitVector< ElementSize > &LHS, raw_ostream &out)

APInt operator*(APInt a, uint64_t RHS)

iterator_range< T > make_range(T x, T y)

Convenience function for iterating over sub-ranges.

iplist< T, Options... > ilist

FunctionAddr VTableAddr uintptr_t uintptr_t Version

iterator_range< filter_iterator< detail::IterOfRange< RangeT >, PredicateT > > make_filter_range(RangeT &&Range, PredicateT Pred)

Convenience function that takes a range of elements and a predicate, and return a new filter_iterator...

LLVM_ATTRIBUTE_VISIBILITY_DEFAULT AnalysisKey InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key

Attribute unwrap(LLVMAttributeRef Attr)

raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)

LLVM_ABI GlobalVariable * collectUsedGlobalVariables(const Module &M, SmallVectorImpl< GlobalValue * > &Vec, bool CompilerUsed)

Given "llvm.used" or "llvm.compiler.used" as a global name, collect the initializer elements of that ...

This struct is a compact representation of a valid (non-zero power of two) alignment.

Metadata * Val

Definition Module.h:166

MDString * Key

Definition Module.h:165

ModFlagBehavior Behavior

Definition Module.h:164

ModuleFlagEntry(ModFlagBehavior B, MDString *K, Metadata *V)

Definition Module.h:168