mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-01 15:33:33 +00:00
298414ec18
a new getSectionForMergableConstant hook. This removes one dependence of TAI on Type, and provides the hook with enough info to make the right decision based on whether the global has relocations etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76705 91177308-0d34-0410-b5e6-96231b3b80d8
52 lines
1.7 KiB
C++
52 lines
1.7 KiB
C++
//===---- ELFTargetAsmInfo.h - ELF asm properties ---------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file defines target asm properties related what form asm statements
|
|
// should take in general on ELF-based targets
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_ELF_TARGET_ASM_INFO_H
|
|
#define LLVM_ELF_TARGET_ASM_INFO_H
|
|
|
|
#include "llvm/Target/TargetAsmInfo.h"
|
|
|
|
namespace llvm {
|
|
class GlobalValue;
|
|
class GlobalVariable;
|
|
class Type;
|
|
|
|
struct ELFTargetAsmInfo: public TargetAsmInfo {
|
|
explicit ELFTargetAsmInfo(const TargetMachine &TM);
|
|
|
|
/// getSectionForMergableConstant - Given a mergable constant with the
|
|
/// specified size and relocation information, return a section that it
|
|
/// should be placed in.
|
|
virtual const Section *
|
|
getSectionForMergableConstant(uint64_t Size, unsigned ReloInfo) const;
|
|
|
|
|
|
SectionKind::Kind SectionKindForGlobal(const GlobalValue *GV) const;
|
|
virtual const Section* SelectSectionForGlobal(const GlobalValue *GV) const;
|
|
virtual std::string printSectionFlags(unsigned flags) const;
|
|
|
|
const Section* DataRelSection;
|
|
const Section* DataRelLocalSection;
|
|
const Section* DataRelROSection;
|
|
const Section* DataRelROLocalSection;
|
|
|
|
private:
|
|
const Section* MergeableConstSection(const Type *Ty) const;
|
|
const Section* MergeableStringSection(const GlobalVariable *GV) const;
|
|
};
|
|
}
|
|
|
|
|
|
#endif // LLVM_ELF_TARGET_ASM_INFO_H
|