On Wed, 2018-10-31 at 13:30 +0000, Emil Velikov wrote:
> From: Emil Velikov <emil.veli...@collabora.com>
> 
> LLVM versions earlier than 5.0.1 are no longer supported.

I'd prefer to keep llvm-3.9, since it's the last version that supports
images for r600, but I'd leave the final decision to Francisco.

Jan

> 
> Cc: Jan Vesely <jan.ves...@rutgers.edu>
> Cc: Francisco Jerez <curroje...@riseup.net>
> Cc: Aaron Watry <awa...@gmail.com>
> Signed-off-by: Emil Velikov <emil.veli...@collabora.com>
> ---
> I guess some of compat.hpp can be cleaned-up, but I'd suggest sticking
> with that as a follow-up.
> ---
>  .../clover/llvm/codegen/bitcode.cpp           |  4 ---
>  .../state_trackers/clover/llvm/compat.hpp     | 26 ----------------
>  .../state_trackers/clover/llvm/metadata.hpp   | 30 -------------------
>  3 files changed, 60 deletions(-)
> 
> diff --git a/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp 
> b/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp
> index 40bb426218d..b67afb34542 100644
> --- a/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp
> +++ b/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp
> @@ -38,12 +38,8 @@
>  #include "util/algorithm.hpp"
>  
>  #include <map>
> -#if HAVE_LLVM < 0x0400
> -#include <llvm/Bitcode/ReaderWriter.h>
> -#else
>  #include <llvm/Bitcode/BitcodeReader.h>
>  #include <llvm/Bitcode/BitcodeWriter.h>
> -#endif
>  #include <llvm/Support/raw_ostream.h>
>  
>  using namespace clover;
> diff --git a/src/gallium/state_trackers/clover/llvm/compat.hpp 
> b/src/gallium/state_trackers/clover/llvm/compat.hpp
> index 975012cbda4..5f526ec155d 100644
> --- a/src/gallium/state_trackers/clover/llvm/compat.hpp
> +++ b/src/gallium/state_trackers/clover/llvm/compat.hpp
> @@ -36,23 +36,15 @@
>  
>  #include "util/algorithm.hpp"
>  
> -#if HAVE_LLVM < 0x0400
> -#include <llvm/Bitcode/ReaderWriter.h>
> -#else
>  #include <llvm/Bitcode/BitcodeReader.h>
>  #include <llvm/Bitcode/BitcodeWriter.h>
> -#endif
>  
>  #include <llvm/IR/LLVMContext.h>
>  #include <llvm/Linker/Linker.h>
>  #include <llvm/Transforms/IPO.h>
>  #include <llvm/Transforms/Utils/Cloning.h>
>  #include <llvm/Target/TargetMachine.h>
> -#if HAVE_LLVM >= 0x0400
>  #include <llvm/Support/Error.h>
> -#else
> -#include <llvm/Support/ErrorOr.h>
> -#endif
>  
>  #include <llvm/IR/LegacyPassManager.h>
>  #include <llvm/Analysis/TargetLibraryInfo.h>
> @@ -67,34 +59,21 @@ namespace clover {
>           template<typename T, typename AS>
>           unsigned target_address_space(const T &target, const AS lang_as) {
>              const auto &map = target.getAddressSpaceMap();
> -#if HAVE_LLVM >= 0x0500
>              return map[static_cast<unsigned>(lang_as)];
> -#else
> -            return map[lang_as - clang::LangAS::Offset];
> -#endif
>           }
>  
> -#if HAVE_LLVM >= 0x0500
>           const clang::InputKind ik_opencl = clang::InputKind::OpenCL;
>           const clang::LangStandard::Kind lang_opencl10 = 
> clang::LangStandard::lang_opencl10;
> -#else
> -         const clang::InputKind ik_opencl = clang::IK_OpenCL;
> -         const clang::LangStandard::Kind lang_opencl10 = 
> clang::LangStandard::lang_opencl;
> -#endif
>  
>           inline void
>           add_link_bitcode_file(clang::CodeGenOptions &opts,
>                                 const std::string &path) {
> -#if HAVE_LLVM >= 0x0500
>              clang::CodeGenOptions::BitcodeFileToLink F;
>  
>              F.Filename = path;
>              F.PropagateAttrs = true;
>              F.LinkFlags = ::llvm::Linker::Flags::None;
>              opts.LinkBitcodeFiles.emplace_back(F);
> -#else
> -            opts.LinkBitcodeFiles.emplace_back(::llvm::Linker::Flags::None, 
> path);
> -#endif
>           }
>  
>  #if HAVE_LLVM >= 0x0600
> @@ -105,15 +84,10 @@ namespace clover {
>  
>           template<typename M, typename F> void
>           handle_module_error(M &mod, const F &f) {
> -#if HAVE_LLVM >= 0x0400
>              if (::llvm::Error err = mod.takeError())
>                 ::llvm::handleAllErrors(std::move(err), 
> [&](::llvm::ErrorInfoBase &eib) {
>                       f(eib.message());
>                    });
> -#else
> -            if (!mod)
> -               f(mod.getError().message());
> -#endif
>           }
>  
>          template<typename T> void
> diff --git a/src/gallium/state_trackers/clover/llvm/metadata.hpp 
> b/src/gallium/state_trackers/clover/llvm/metadata.hpp
> index 825008d4974..f020e85e915 100644
> --- a/src/gallium/state_trackers/clover/llvm/metadata.hpp
> +++ b/src/gallium/state_trackers/clover/llvm/metadata.hpp
> @@ -57,44 +57,14 @@ namespace clover {
>  
>           inline bool
>           is_kernel(const ::llvm::Function &f) {
> -#if HAVE_LLVM >= 0x0309
>              return f.getMetadata("kernel_arg_type");
> -#else
> -            return clover::any_of(is_kernel_node_for(f),
> -                                  get_kernel_nodes(*f.getParent()));
> -#endif
>           }
>  
>           inline iterator_range< ::llvm::MDNode::op_iterator>
>           get_kernel_metadata_operands(const ::llvm::Function &f,
>                                        const std::string &name) {
> -#if HAVE_LLVM >= 0x0309
> -            // On LLVM v3.9+ kernel argument attributes are stored as
> -            // function metadata.
>              const auto data_node = f.getMetadata(name);
>              return range(data_node->op_begin(), data_node->op_end());
> -#else
> -            using ::llvm::cast;
> -            using ::llvm::dyn_cast;
> -            const auto kernel_node = find(is_kernel_node_for(f),
> -                                          get_kernel_nodes(*f.getParent()));
> -
> -            const auto data_node = cast< ::llvm::MDNode>(
> -               find([&](const ::llvm::MDOperand &op) {
> -                     if (auto m = dyn_cast< ::llvm::MDNode>(op))
> -                        if (m->getNumOperands())
> -                           if (auto m_name = dyn_cast< ::llvm::MDString>(
> -                                  m->getOperand(0).get()))
> -                              return m_name->getString() == name;
> -
> -                     return false;
> -                  },
> -                  kernel_node->operands()));
> -
> -            // Skip the first operand node which is just the metadata
> -            // attribute name.
> -            return range(data_node->op_begin() + 1, data_node->op_end());
> -#endif
>           }
>        }
>  

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to