Go to the documentation of this file.
9 #ifndef LLVM_CODEGEN_NONRELOCATABLESTRINGPOOL_H
10 #define LLVM_CODEGEN_NONRELOCATABLESTRINGPOOL_H
32 bool PutEmptyString =
false)
33 : Translator(Translator) {
61 unsigned NumEntries = 0;
67 template <
typename T,
typename S>
class StrongType :
public T {
69 template <
typename...
Args>
83 #endif // LLVM_CODEGEN_NONRELOCATABLESTRINGPOOL_H
This is an optimization pass for GlobalISel generic memory operations.
String pool entry reference.
It's very easy to introduce bugs by passing the wrong string pool.
StringMap< DwarfStringPoolEntry, BumpPtrAllocator > MapTy
Entries are stored into the StringMap and simply linked together through the second element of this p...
std::vector< DwarfStringPoolEntryRef > getEntriesForEmission() const
Return the list of strings to be emitted.
uint64_t getStringOffset(StringRef S)
Get the offset of string S in the string table.
StringRef internString(StringRef S)
Get permanent storage for S (but do not necessarily emit S in the output section).
DwarfStringPoolEntryRef getEntry(StringRef S)
NonRelocatableStringpool(std::function< StringRef(StringRef Input)> Translator=nullptr, bool PutEmptyString=false)
uint64_t getOffset() const
print Print MemDeps of function
StringRef - Represent a constant reference to a string, i.e.
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
A string table that doesn't need relocations.
Helper for making strong types.
constexpr char Args[]
Key for Kernel::Metadata::mArgs.