Skip to content

Commit

Permalink
Use unique_ptr for X86Subtarget pointer members.
Browse files Browse the repository at this point in the history
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210606 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
echristo committed Jun 10, 2014
1 parent fe80185 commit 9c84db6
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 22 deletions.
19 changes: 6 additions & 13 deletions lib/Target/X86/X86Subtarget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -351,19 +351,12 @@ X86Subtarget::X86Subtarget(const std::string &TT, const std::string &CPU,
resetSubtargetFeatures(CPU, FS);
// Ordering here is important. X86InstrInfo initializes X86RegisterInfo which
// X86TargetLowering needs.
InstrInfo = new X86InstrInfo(*this);
TLInfo = new X86TargetLowering(TM);
FrameLowering = new X86FrameLowering(TargetFrameLowering::StackGrowsDown,
getStackAlignment(),
is64Bit() ? -8 : -4);
JITInfo = new X86JITInfo(hasSSE1());
}

X86Subtarget::~X86Subtarget() {
delete TLInfo;
delete InstrInfo;
delete FrameLowering;
delete JITInfo;
InstrInfo = make_unique<X86InstrInfo>(*this);
TLInfo = make_unique<X86TargetLowering>(TM);
FrameLowering =
make_unique<X86FrameLowering>(TargetFrameLowering::StackGrowsDown,
getStackAlignment(), is64Bit() ? -8 : -4);
JITInfo = make_unique<X86JITInfo>(hasSSE1());
}

bool
Expand Down
19 changes: 10 additions & 9 deletions lib/Target/X86/X86Subtarget.h
Original file line number Diff line number Diff line change
Expand Up @@ -229,10 +229,10 @@ class X86Subtarget final : public X86GenSubtargetInfo {
// Calculates type size & alignment
const DataLayout DL;
X86SelectionDAGInfo TSInfo;
X86TargetLowering *TLInfo;
X86InstrInfo *InstrInfo;
X86FrameLowering *FrameLowering;
X86JITInfo *JITInfo;
std::unique_ptr<X86TargetLowering> TLInfo;
std::unique_ptr<X86InstrInfo> InstrInfo;
std::unique_ptr<X86FrameLowering> FrameLowering;
std::unique_ptr<X86JITInfo> JITInfo;

public:
/// This constructor initializes the data members to match that
Expand All @@ -241,14 +241,15 @@ class X86Subtarget final : public X86GenSubtargetInfo {
X86Subtarget(const std::string &TT, const std::string &CPU,
const std::string &FS, X86TargetMachine &TM,
unsigned StackAlignOverride);
~X86Subtarget();

const X86TargetLowering *getTargetLowering() const { return TLInfo; }
const X86InstrInfo *getInstrInfo() const { return InstrInfo; }
const X86TargetLowering *getTargetLowering() const { return TLInfo.get(); }
const X86InstrInfo *getInstrInfo() const { return InstrInfo.get(); }
const DataLayout *getDataLayout() const { return &DL; }
const X86FrameLowering *getFrameLowering() const { return FrameLowering; }
const X86FrameLowering *getFrameLowering() const {
return FrameLowering.get();
}
const X86SelectionDAGInfo *getSelectionDAGInfo() const { return &TSInfo; }
X86JITInfo *getJITInfo() { return JITInfo; }
X86JITInfo *getJITInfo() { return JITInfo.get(); }

/// getStackAlignment - Returns the minimum alignment known to hold of the
/// stack frame on entry to the function and which must be maintained by every
Expand Down

0 comments on commit 9c84db6

Please sign in to comment.