? "e-m:o-i64:64-i128:128-n32:64-S128"
: (LittleEndian ? "e-m:e-i64:64-i128:128-n32:64-S128"
: "E-m:e-i64:64-i128:128-n32:64-S128")),
- FrameLowering() {
+ FrameLowering(), TSInfo(&DL) {
// Determine default and user-specified characteristics
if (CPUString.empty())
#include "AArch64FrameLowering.h"
#include "AArch64RegisterInfo.h"
+#include "AArch64SelectionDAGInfo.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/Target/TargetSubtargetInfo.h"
#include <string>
const DataLayout DL;
AArch64FrameLowering FrameLowering;
+ AArch64SelectionDAGInfo TSInfo;
public:
/// This constructor initializes the data members to match that
AArch64Subtarget(const std::string &TT, const std::string &CPU,
const std::string &FS, bool LittleEndian);
+ const AArch64SelectionDAGInfo *getSelectionDAGInfo() const { return &TSInfo; }
const AArch64FrameLowering *getFrameLowering() const {
return &FrameLowering;
}
bool LittleEndian)
: LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL),
Subtarget(TT, CPU, FS, LittleEndian),
- InstrInfo(Subtarget), TLInfo(*this), TSInfo(getDataLayout()) {
+ InstrInfo(Subtarget), TLInfo(*this) {
initAsmInfo();
}
private:
AArch64InstrInfo InstrInfo;
AArch64TargetLowering TLInfo;
- AArch64SelectionDAGInfo TSInfo;
public:
AArch64TargetMachine(const Target &T, StringRef TT, StringRef CPU,
return &InstrInfo.getRegisterInfo();
}
const AArch64SelectionDAGInfo *getSelectionDAGInfo() const override {
- return &TSInfo;
+ return getSubtargetImpl()->getSelectionDAGInfo();
}
// Pass Pipeline Configuration