forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
//===- llvm/CodeGen/DwarfStringPool.h - Dwarf Debug Framework ---*- C++ -*-===//
 | 
						|
//
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file is distributed under the University of Illinois Open Source
 | 
						|
// License. See LICENSE.TXT for details.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#ifndef LLVM_LIB_CODEGEN_ASMPRINTER_DWARFSTRINGPOOL_H
 | 
						|
#define LLVM_LIB_CODEGEN_ASMPRINTER_DWARFSTRINGPOOL_H
 | 
						|
 | 
						|
#include "llvm/ADT/StringMap.h"
 | 
						|
#include "llvm/ADT/StringRef.h"
 | 
						|
#include "llvm/CodeGen/DwarfStringPoolEntry.h"
 | 
						|
#include "llvm/Support/Allocator.h"
 | 
						|
 | 
						|
namespace llvm {
 | 
						|
 | 
						|
class AsmPrinter;
 | 
						|
class MCSection;
 | 
						|
 | 
						|
// Collection of strings for this unit and assorted symbols.
 | 
						|
// A String->Symbol mapping of strings used by indirect
 | 
						|
// references.
 | 
						|
class DwarfStringPool {
 | 
						|
  using EntryTy = DwarfStringPoolEntry;
 | 
						|
 | 
						|
  StringMap<EntryTy, BumpPtrAllocator &> Pool;
 | 
						|
  StringRef Prefix;
 | 
						|
  unsigned NumBytes = 0;
 | 
						|
  bool ShouldCreateSymbols;
 | 
						|
 | 
						|
public:
 | 
						|
  using EntryRef = DwarfStringPoolEntryRef;
 | 
						|
 | 
						|
  DwarfStringPool(BumpPtrAllocator &A, AsmPrinter &Asm, StringRef Prefix);
 | 
						|
 | 
						|
  void emit(AsmPrinter &Asm, MCSection *StrSection,
 | 
						|
            MCSection *OffsetSection = nullptr,
 | 
						|
            bool UseRelativeOffsets = false);
 | 
						|
 | 
						|
  bool empty() const { return Pool.empty(); }
 | 
						|
 | 
						|
  unsigned size() const { return Pool.size(); }
 | 
						|
 | 
						|
  /// Get a reference to an entry in the string pool.
 | 
						|
  EntryRef getEntry(AsmPrinter &Asm, StringRef Str);
 | 
						|
};
 | 
						|
 | 
						|
} // end namespace llvm
 | 
						|
 | 
						|
#endif // LLVM_LIB_CODEGEN_ASMPRINTER_DWARFSTRINGPOOL_H
 |