projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
RDF: Dead code elimination
[oota-llvm.git]
/
lib
/
Target
/
Hexagon
/
HexagonTargetMachine.h
diff --git
a/lib/Target/Hexagon/HexagonTargetMachine.h
b/lib/Target/Hexagon/HexagonTargetMachine.h
index d917d5b89a1edf4007f7d8fd28adb8a260a5e068..968814b3ea3212b53a9a5f2e80889e8c5ebae5f3 100644
(file)
--- a/
lib/Target/Hexagon/HexagonTargetMachine.h
+++ b/
lib/Target/Hexagon/HexagonTargetMachine.h
@@
-16,6
+16,7
@@
#include "HexagonInstrInfo.h"
#include "HexagonSubtarget.h"
#include "HexagonInstrInfo.h"
#include "HexagonSubtarget.h"
+#include "HexagonTargetObjectFile.h"
#include "llvm/Target/TargetMachine.h"
namespace llvm {
#include "llvm/Target/TargetMachine.h"
namespace llvm {
@@
-23,23
+24,26
@@
namespace llvm {
class Module;
class HexagonTargetMachine : public LLVMTargetMachine {
class Module;
class HexagonTargetMachine : public LLVMTargetMachine {
- HexagonSubtarget Subtarget;
+ std::unique_ptr<TargetLoweringObjectFile> TLOF;
+ mutable StringMap<std::unique_ptr<HexagonSubtarget>> SubtargetMap;
public:
public:
- HexagonTargetMachine(const Target &T,
StringRef TT,
StringRef CPU,
+ HexagonTargetMachine(const Target &T,
const Triple &TT,
StringRef CPU,
StringRef FS, const TargetOptions &Options,
Reloc::Model RM, CodeModel::Model CM,
CodeGenOpt::Level OL);
StringRef FS, const TargetOptions &Options,
Reloc::Model RM, CodeModel::Model CM,
CodeGenOpt::Level OL);
+ ~HexagonTargetMachine() override;
+ const HexagonSubtarget *getSubtargetImpl(const Function &F) const override;
- const HexagonSubtarget *getSubtargetImpl() const override {
- return &Subtarget;
- }
static unsigned getModuleMatchQuality(const Module &M);
TargetPassConfig *createPassConfig(PassManagerBase &PM) override;
static unsigned getModuleMatchQuality(const Module &M);
TargetPassConfig *createPassConfig(PassManagerBase &PM) override;
-
}
;
+
TargetIRAnalysis getTargetIRAnalysis() override
;
-extern bool flag_aligned_memcpy;
+ HexagonTargetObjectFile *getObjFileLowering() const override {
+ return static_cast<HexagonTargetObjectFile*>(TLOF.get());
+ }
+};
} // end namespace llvm
} // end namespace llvm