mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
For some LLVM-as-library uses it is convenient to create a
subclass of TargetMachine which "forwards" all operations to an existing internal TargetMachine member variable. In the usage context the specific-machine class derived from TargetMachine is not visible, only a reference to the generic base class TargetMachine. Although getSubtargetImpl() is public in specific-machine classes derived from TargetMachine, the TargetMachine class unfortunately has getSubtargetImpl() protected (and accessing non-const members makes abusing getSubtarget() unsuitable). Making it public in the base class allows this forwarding pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171976 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a7303360ae
commit
73b984530f
@ -59,10 +59,6 @@ protected: // Can only create subclasses.
|
||||
TargetMachine(const Target &T, StringRef TargetTriple,
|
||||
StringRef CPU, StringRef FS, const TargetOptions &Options);
|
||||
|
||||
/// getSubtargetImpl - virtual method implemented by subclasses that returns
|
||||
/// a reference to that target's TargetSubtargetInfo-derived member variable.
|
||||
virtual const TargetSubtargetInfo *getSubtargetImpl() const { return 0; }
|
||||
|
||||
/// TheTarget - The Target that this machine was created for.
|
||||
const Target &TheTarget;
|
||||
|
||||
@ -95,6 +91,10 @@ public:
|
||||
const StringRef getTargetCPU() const { return TargetCPU; }
|
||||
const StringRef getTargetFeatureString() const { return TargetFS; }
|
||||
|
||||
/// getSubtargetImpl - virtual method implemented by subclasses that returns
|
||||
/// a reference to that target's TargetSubtargetInfo-derived member variable.
|
||||
virtual const TargetSubtargetInfo *getSubtargetImpl() const { return 0; }
|
||||
|
||||
TargetOptions Options;
|
||||
|
||||
// Interfaces to the major aspects of target machine information:
|
||||
|
Loading…
Reference in New Issue
Block a user