brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 4043494 Raw
45 lines · c
1//===-- LanaiTargetObjectFile.h - Lanai Object Info -----------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_LIB_TARGET_LANAI_LANAITARGETOBJECTFILE_H10#define LLVM_LIB_TARGET_LANAI_LANAITARGETOBJECTFILE_H11 12#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"13 14namespace llvm {15class LanaiTargetObjectFile : public TargetLoweringObjectFileELF {16  MCSection *SmallDataSection;17  MCSection *SmallBSSSection;18 19  bool isGlobalInSmallSection(const GlobalObject *GO, const TargetMachine &TM,20                              SectionKind Kind) const;21  bool isGlobalInSmallSectionImpl(const GlobalObject *GO,22                                  const TargetMachine &TM) const;23 24public:25  void Initialize(MCContext &Ctx, const TargetMachine &TM) override;26 27  /// Return true if this global address should be placed into small data/bss28  /// section.29  bool isGlobalInSmallSection(const GlobalObject *GO,30                              const TargetMachine &TM) const;31 32  MCSection *SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind,33                                    const TargetMachine &TM) const override;34 35  /// Return true if this constant should be placed into small data section.36  bool isConstantInSmallSection(const DataLayout &DL, const Constant *CN) const;37 38  MCSection *getSectionForConstant(const DataLayout &DL, SectionKind Kind,39                                   const Constant *C,40                                   Align &Alignment) const override;41};42} // end namespace llvm43 44#endif // LLVM_LIB_TARGET_LANAI_LANAITARGETOBJECTFILE_H45