diff options
| author | David Tweed <david.tweed@arm.com> | 2013-01-09 16:21:47 +0000 |
|---|---|---|
| committer | David Tweed <david.tweed@arm.com> | 2013-01-09 16:21:47 +0000 |
| commit | f42bdf7c77f16af8fac3c488ef6bf71e8e2f4b09 (patch) | |
| tree | 1324fe82a9e8aec94a87d6b311473aae8890e6f4 | |
| parent | 06358bd07892238ff940ecc8c6d71305731c2bb0 (diff) | |
| download | bcm5719-llvm-f42bdf7c77f16af8fac3c488ef6bf71e8e2f4b09.tar.gz bcm5719-llvm-f42bdf7c77f16af8fac3c488ef6bf71e8e2f4b09.zip | |
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.
llvm-svn: 171976
| -rw-r--r-- | llvm/include/llvm/Target/TargetMachine.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/include/llvm/Target/TargetMachine.h b/llvm/include/llvm/Target/TargetMachine.h index aa049f02fc0..35cf20a7028 100644 --- a/llvm/include/llvm/Target/TargetMachine.h +++ b/llvm/include/llvm/Target/TargetMachine.h @@ -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: |

