1 //===-- llvm/Target/TargetAsmInfo.h -----------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // Interface to provide the information necessary for producing assembly files.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_TARGET_TARGETASMINFO_H
15 #define LLVM_TARGET_TARGETASMINFO_H
17 #include "llvm/Target/TargetLoweringObjectFile.h"
18 #include "llvm/Target/TargetFrameLowering.h"
19 #include "llvm/Target/TargetRegisterInfo.h"
22 template <typename T> class ArrayRef;
25 class TargetLoweringObjectFile;
28 const TargetFrameLowering *TFI;
29 const TargetLoweringObjectFile *TLOF;
32 explicit TargetAsmInfo(const TargetMachine &TM);
34 const MCSection *getDwarfLineSection() const {
35 return TLOF->getDwarfLineSection();
38 const MCSection *getEHFrameSection() const {
39 return TLOF->getEHFrameSection();
42 const MCSection *getCompactUnwindSection() const {
43 return TLOF->getCompactUnwindSection();
46 const MCSection *getDwarfFrameSection() const {
47 return TLOF->getDwarfFrameSection();
50 const MCSection *getWin64EHFuncTableSection(StringRef Suffix) const {
51 return TLOF->getWin64EHFuncTableSection(Suffix);
54 const MCSection *getWin64EHTableSection(StringRef Suffix) const {
55 return TLOF->getWin64EHTableSection(Suffix);
58 unsigned getFDEEncoding(bool CFI) const {
59 return TLOF->getFDEEncoding(CFI);
62 bool isFunctionEHFrameSymbolPrivate() const {
63 return TLOF->isFunctionEHFrameSymbolPrivate();
66 int getCompactUnwindEncoding(ArrayRef<MCCFIInstruction> Instrs,
67 int DataAlignmentFactor,
69 return TFI->getCompactUnwindEncoding(Instrs, DataAlignmentFactor, IsEH);