clover/llvm: fix build after llvm 10 commit 1dfede3122ee
authorAaron Watry <awatry@gmail.com>
Fri, 15 Nov 2019 04:44:02 +0000 (22:44 -0600)
committerAaron Watry <awatry@gmail.com>
Sat, 16 Nov 2019 04:54:31 +0000 (22:54 -0600)
CodeGenFileType moved from ::llvm::TargetMachine in
llvm/Target/TargetMachine.h to ::llvm:: in llvm/Support/CodeGen.h

Signed-off-by: Aaron Watry <awatry@gmail.com>
Reviewed-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
src/gallium/state_trackers/clover/llvm/codegen/native.cpp
src/gallium/state_trackers/clover/llvm/compat.hpp

index b8ed01c7289731a6d1d4b617858b7d842df59962..523461312006b9c6e42ac1b8fe9b8c074e76a06d 100644 (file)
@@ -105,7 +105,7 @@ namespace {
 
    std::vector<char>
    emit_code(::llvm::Module &mod, const target &target,
-             TargetMachine::CodeGenFileType ft,
+             compat::CodeGenFileType ft,
              std::string &r_log) {
       std::string err;
       auto t = ::llvm::TargetRegistry::lookupTarget(target.triple, err);
@@ -128,7 +128,7 @@ namespace {
 
          mod.setDataLayout(tm->createDataLayout());
          tm->Options.MCOptions.AsmVerbose =
-            (ft == TargetMachine::CGFT_AssemblyFile);
+            (ft == compat::CGFT_AssemblyFile);
 
          if (compat::add_passes_to_emit_file(*tm, pm, os, ft))
             fail(r_log, build_error(), "TargetMachine can't emit this file");
@@ -145,7 +145,7 @@ clover::llvm::build_module_native(::llvm::Module &mod, const target &target,
                                   const clang::CompilerInstance &c,
                                   std::string &r_log) {
    const auto code = emit_code(mod, target,
-                               TargetMachine::CGFT_ObjectFile, r_log);
+                               compat::CGFT_ObjectFile, r_log);
    return build_module_common(mod, code, get_symbol_offsets(code, r_log), c);
 }
 
@@ -156,7 +156,7 @@ clover::llvm::print_module_native(const ::llvm::Module &mod,
    try {
       std::unique_ptr< ::llvm::Module> cmod { compat::clone_module(mod) };
       return as_string(emit_code(*cmod, target,
-                                 TargetMachine::CGFT_AssemblyFile, log));
+                                 compat::CGFT_AssemblyFile, log));
    } catch (...) {
       return "Couldn't output native disassembly: " + log;
    }
index 2015fccaf8cba35f4e07f06d897f7d65ccaf6e78..51902739acc0459ebdd91f326580153e9a2b1e75 100644 (file)
 #include <clang/Frontend/CodeGenOptions.h>
 #endif
 
+#if LLVM_VERSION_MAJOR >= 10
+#include <llvm/Support/CodeGen.h>
+#endif
+
 namespace clover {
    namespace llvm {
       namespace compat {
+
+#if LLVM_VERSION_MAJOR >= 10
+         const auto CGFT_ObjectFile = ::llvm::CGFT_ObjectFile;
+         const auto CGFT_AssemblyFile = ::llvm::CGFT_AssemblyFile;
+         typedef ::llvm::CodeGenFileType CodeGenFileType;
+#else
+         const auto CGFT_ObjectFile = ::llvm::TargetMachine::CGFT_ObjectFile;
+         const auto CGFT_AssemblyFile =
+            ::llvm::TargetMachine::CGFT_AssemblyFile;
+         typedef ::llvm::TargetMachine::CodeGenFileType CodeGenFileType;
+#endif
+
          template<typename T, typename AS>
          unsigned target_address_space(const T &target, const AS lang_as) {
             const auto &map = target.getAddressSpaceMap();