[Mesa-dev] [PATCH 1/1] clover: Fix build after llvm r325155 and r325160

Francisco Jerez currojerez at riseup.net
Thu Feb 15 21:57:45 UTC 2018


Jan Vesely <jan.vesely at rutgers.edu> writes:

> r325155 ("Pass a reference to a module to the bitcode writer.")
> and
> r325160 ("Pass module reference to CloneModule")
>
> change function interface from pointer to reference.
>
> Signed-off-by: Jan Vesely <jan.vesely at rutgers.edu>
> ---
>  .../state_trackers/clover/llvm/codegen/bitcode.cpp |  2 +-
>  .../state_trackers/clover/llvm/codegen/native.cpp  |  2 +-
>  src/gallium/state_trackers/clover/llvm/compat.hpp  | 28 ++++++++++++++++++++++
>  3 files changed, 30 insertions(+), 2 deletions(-)
>
> diff --git a/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp b/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp
> index 679ecd8758..40bb426218 100644
> --- a/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp
> +++ b/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp
> @@ -66,7 +66,7 @@ namespace {
>     emit_code(const ::llvm::Module &mod) {
>        ::llvm::SmallVector<char, 1024> data;
>        ::llvm::raw_svector_ostream os { data };
> -      WriteBitcodeToFile(&mod, os);
> +      compat::write_bitcode_to_file(mod, os);
>        return { os.str().begin(), os.str().end() };
>     }
>  }
> diff --git a/src/gallium/state_trackers/clover/llvm/codegen/native.cpp b/src/gallium/state_trackers/clover/llvm/codegen/native.cpp
> index 12c83a92b6..409f8ac32f 100644
> --- a/src/gallium/state_trackers/clover/llvm/codegen/native.cpp
> +++ b/src/gallium/state_trackers/clover/llvm/codegen/native.cpp
> @@ -156,7 +156,7 @@ clover::llvm::print_module_native(const ::llvm::Module &mod,
>                                    const target &target) {
>     std::string log;
>     try {
> -      std::unique_ptr< ::llvm::Module> cmod { CloneModule(&mod) };
> +      std::unique_ptr< ::llvm::Module> cmod { compat::clone_module(mod) };
>        return as_string(emit_code(*cmod, target,
>                                   TargetMachine::CGFT_AssemblyFile, log));
>     } catch (...) {
> diff --git a/src/gallium/state_trackers/clover/llvm/compat.hpp b/src/gallium/state_trackers/clover/llvm/compat.hpp
> index 6fc75fb250..db9e8020cf 100644
> --- a/src/gallium/state_trackers/clover/llvm/compat.hpp
> +++ b/src/gallium/state_trackers/clover/llvm/compat.hpp
> @@ -36,9 +36,17 @@
>  
>  #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>
> @@ -217,6 +225,26 @@ namespace clover {
>             ctx.setDiagnosticHandler(diagnostic_handler, data);
>  #endif
>          }
> +
> +	inline std::unique_ptr< ::llvm::Module>
> +	clone_module(const ::llvm::Module &mod)
> +	{
> +#if HAVE_LLVM >= 0x0700
> +		return ::llvm::CloneModule(mod);
> +#else
> +		return ::llvm::CloneModule(&mod);
> +#endif
> +	}
> +
> +        template<typename T> void

Weird indentation.  Other than that:

Reviewed-by: Francisco Jerez <currojerez at riseup.net>

> +	write_bitcode_to_file(const ::llvm::Module &mod, T &os)
> +	{
> +#if HAVE_LLVM >= 0x0700
> +		::llvm::WriteBitcodeToFile(mod, os);
> +#else
> +		::llvm::WriteBitcodeToFile(&mod, os);
> +#endif
> +	}
>        }
>     }
>  }
> -- 
> 2.14.3
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 227 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180215/fc3a0341/attachment.sig>


More information about the mesa-dev mailing list