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 .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