class AArch64TargetMachine : public LLVMTargetMachine {
protected:
+ const DataLayout DL;
+ std::unique_ptr<TargetLoweringObjectFile> TLOF;
AArch64Subtarget Subtarget;
mutable StringMap<std::unique_ptr<AArch64Subtarget>> SubtargetMap;
Reloc::Model RM, CodeModel::Model CM,
CodeGenOpt::Level OL, bool IsLittleEndian);
+ ~AArch64TargetMachine() override;
+
+ const DataLayout *getDataLayout() const override { return &DL; }
const AArch64Subtarget *getSubtargetImpl() const override {
return &Subtarget;
}
/// \brief Register AArch64 analysis passes with a pass manager.
void addAnalysisPasses(PassManagerBase &PM) override;
- /// \brief Query if the PBQP register allocator is being used
- bool isPBQPUsed() const { return usingPBQP; }
+ TargetLoweringObjectFile* getObjFileLowering() const override {
+ return TLOF.get();
+ }
private:
bool isLittle;
- bool usingPBQP;
};
// AArch64leTargetMachine - AArch64 little endian target machine.