From 9bb9bf24c83ecbf8c5aea837d17011e6dae2872e Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Fri, 17 Jul 2015 22:22:50 -0500 Subject: [PATCH] More work towards getting the compiler to not crash. --- lib/Support/Triple.cpp | 4 ++++ lib/Target/WDC65816/WDC65816TargetMachine.cpp | 4 ++++ lib/Target/WDC65816/WDC65816TargetMachine.h | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/Support/Triple.cpp b/lib/Support/Triple.cpp index b2f47385..f3646ca5 100644 --- a/lib/Support/Triple.cpp +++ b/lib/Support/Triple.cpp @@ -90,6 +90,7 @@ const char *Triple::getArchTypePrefix(ArchType Kind) { case amdil: return "amdil"; case spir: return "spir"; case spir64: return "spir"; + case wdc65816: return "wdc65816"; } } @@ -188,6 +189,7 @@ Triple::ArchType Triple::getArchTypeForLLVMName(StringRef Name) { .Case("amdil", amdil) .Case("spir", spir) .Case("spir64", spir64) + .Case("wdc65816", wdc65816) .Default(UnknownArch); } @@ -214,6 +216,7 @@ const char *Triple::getArchNameForAssembler() { .Case("amdil", "amdil") .Case("spir", "spir") .Case("spir64", "spir64") + .Case("wdc65816", "wdc65816") .Default(NULL); } @@ -251,6 +254,7 @@ static Triple::ArchType parseArch(StringRef ArchName) { .Case("amdil", Triple::amdil) .Case("spir", Triple::spir) .Case("spir64", Triple::spir64) + .Case("wdc65816", Triple::wdc65816) .Default(Triple::UnknownArch); } diff --git a/lib/Target/WDC65816/WDC65816TargetMachine.cpp b/lib/Target/WDC65816/WDC65816TargetMachine.cpp index 79bb2baf..1443b224 100644 --- a/lib/Target/WDC65816/WDC65816TargetMachine.cpp +++ b/lib/Target/WDC65816/WDC65816TargetMachine.cpp @@ -54,6 +54,10 @@ namespace { }; } // namespace +TargetPassConfig *WDC65816TargetMachine::createPassConfig(PassManagerBase &PM) { + return new WDC65816PassConfig(this, PM); +} + bool WDC65816PassConfig::addInstSelector() { addPass(createWDC65816ISelDag(getWDC65816TargetMachine())); return false; diff --git a/lib/Target/WDC65816/WDC65816TargetMachine.h b/lib/Target/WDC65816/WDC65816TargetMachine.h index edc359f5..8390b362 100644 --- a/lib/Target/WDC65816/WDC65816TargetMachine.h +++ b/lib/Target/WDC65816/WDC65816TargetMachine.h @@ -52,9 +52,9 @@ namespace llvm { } virtual const DataLayout *getDataLayout() const { return &DL; } -#if 0 // WDC_TODO - Do I need this? I think these are both related to JIT // Pass Pipeline Configuration virtual TargetPassConfig *createPassConfig(PassManagerBase &PM); +#if 0 // WDC_TODO - Do I need this? I think this is related to JIT virtual bool addCodeEmitter(PassManagerBase &PM, JITCodeEmitter &JCE); #endif };