You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.167
Former-commit-id: 289509151e0fee68a1b591a20c9f109c3c789d3a
This commit is contained in:
parent
e19d552987
commit
b084638f15
88
external/llvm/lib/Target/ARM/ARMTargetMachine.h
vendored
88
external/llvm/lib/Target/ARM/ARMTargetMachine.h
vendored
@ -1,88 +0,0 @@
|
||||
//===-- ARMTargetMachine.h - Define TargetMachine for ARM -------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// This file declares the ARM specific subclass of TargetMachine.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_LIB_TARGET_ARM_ARMTARGETMACHINE_H
|
||||
#define LLVM_LIB_TARGET_ARM_ARMTARGETMACHINE_H
|
||||
|
||||
#include "ARMSubtarget.h"
|
||||
#include "llvm/ADT/Optional.h"
|
||||
#include "llvm/ADT/StringMap.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/Analysis/TargetTransformInfo.h"
|
||||
#include "llvm/Support/CodeGen.h"
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
#include <memory>
|
||||
|
||||
namespace llvm {
|
||||
|
||||
class ARMBaseTargetMachine : public LLVMTargetMachine {
|
||||
public:
|
||||
enum ARMABI {
|
||||
ARM_ABI_UNKNOWN,
|
||||
ARM_ABI_APCS,
|
||||
ARM_ABI_AAPCS, // ARM EABI
|
||||
ARM_ABI_AAPCS16
|
||||
} TargetABI;
|
||||
|
||||
protected:
|
||||
std::unique_ptr<TargetLoweringObjectFile> TLOF;
|
||||
bool isLittle;
|
||||
mutable StringMap<std::unique_ptr<ARMSubtarget>> SubtargetMap;
|
||||
|
||||
public:
|
||||
ARMBaseTargetMachine(const Target &T, const Triple &TT, StringRef CPU,
|
||||
StringRef FS, const TargetOptions &Options,
|
||||
Optional<Reloc::Model> RM, Optional<CodeModel::Model> CM,
|
||||
CodeGenOpt::Level OL, bool isLittle);
|
||||
~ARMBaseTargetMachine() override;
|
||||
|
||||
const ARMSubtarget *getSubtargetImpl(const Function &F) const override;
|
||||
// DO NOT IMPLEMENT: There is no such thing as a valid default subtarget,
|
||||
// subtargets are per-function entities based on the target-specific
|
||||
// attributes of each function.
|
||||
const ARMSubtarget *getSubtargetImpl() const = delete;
|
||||
bool isLittleEndian() const { return isLittle; }
|
||||
|
||||
TargetTransformInfo getTargetTransformInfo(const Function &F) override;
|
||||
|
||||
// Pass Pipeline Configuration
|
||||
TargetPassConfig *createPassConfig(PassManagerBase &PM) override;
|
||||
|
||||
TargetLoweringObjectFile *getObjFileLowering() const override {
|
||||
return TLOF.get();
|
||||
}
|
||||
};
|
||||
|
||||
/// ARM/Thumb little endian target machine.
|
||||
///
|
||||
class ARMLETargetMachine : public ARMBaseTargetMachine {
|
||||
public:
|
||||
ARMLETargetMachine(const Target &T, const Triple &TT, StringRef CPU,
|
||||
StringRef FS, const TargetOptions &Options,
|
||||
Optional<Reloc::Model> RM, Optional<CodeModel::Model> CM,
|
||||
CodeGenOpt::Level OL, bool JIT);
|
||||
};
|
||||
|
||||
/// ARM/Thumb big endian target machine.
|
||||
///
|
||||
class ARMBETargetMachine : public ARMBaseTargetMachine {
|
||||
public:
|
||||
ARMBETargetMachine(const Target &T, const Triple &TT, StringRef CPU,
|
||||
StringRef FS, const TargetOptions &Options,
|
||||
Optional<Reloc::Model> RM, Optional<CodeModel::Model> CM,
|
||||
CodeGenOpt::Level OL, bool JIT);
|
||||
};
|
||||
|
||||
} // end namespace llvm
|
||||
|
||||
#endif // LLVM_LIB_TARGET_ARM_ARMTARGETMACHINE_H
|
Reference in New Issue
Block a user