Re: [Mesa-dev] [PATCH] clover: adapt to new error API since LLVM r286752
On Mon, Nov 14, 2016 at 01:44:18PM +0100, Dieter Nützel wrote: > Tested-by: Dieter Nützel > > Thanks Vedran! > Pushed, thanks! -Tom > Dieter > > Am 14.11.2016 12:17, schrieb Vedran Miletić: > > --- > > src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp | 10 > > -- > > 1 file changed, 8 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 8e89a49..5dcc4f8 100644 > > --- a/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp > > +++ b/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp > > @@ -98,8 +98,14 @@ clover::llvm::parse_module_library(const module &m, > > ::llvm::LLVMContext &ctx, > > std::string &r_log) { > > auto mod = ::llvm::parseBitcodeFile(::llvm::MemoryBufferRef( > > as_string(m.secs[0].data), " > > "), ctx); > > - if (!mod) > > - fail(r_log, error(CL_INVALID_PROGRAM), > > mod.getError().message()); > > + > > + if (::llvm::Error err = mod.takeError()) { > > + std::string msg; > > + ::llvm::handleAllErrors(std::move(err), > > [&](::llvm::ErrorInfoBase &EIB) { > > + msg = EIB.message(); > > + fail(r_log, error(CL_INVALID_PROGRAM), msg.c_str()); > > + }); > > + } > > > > return std::unique_ptr<::llvm::Module>(std::move(*mod)); > > } > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] clover: adapt to new error API since LLVM r286752
On 11/14/2016 04:49 PM, Tom Stellard wrote: > On Mon, Nov 14, 2016 at 01:44:18PM +0100, Dieter Nützel wrote: >> Tested-by: Dieter Nützel >> >> Thanks Vedran! >> > > Pushed, thanks! > > -Tom > Thank you! Vedran -- Vedran Miletić vedran.miletic.net ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH] clover: adapt to new error API since LLVM r286752
On Mon, 2016-11-14 at 12:17 +0100, Vedran Miletić wrote: > --- > src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp | 10 -- > 1 file changed, 8 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 8e89a49..5dcc4f8 100644 > --- a/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp > +++ b/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp > @@ -98,8 +98,14 @@ clover::llvm::parse_module_library(const module &m, > ::llvm::LLVMContext &ctx, > std::string &r_log) { > auto mod = ::llvm::parseBitcodeFile(::llvm::MemoryBufferRef( > as_string(m.secs[0].data), " "), > ctx); > - if (!mod) > - fail(r_log, error(CL_INVALID_PROGRAM), mod.getError().message()); > + > + if (::llvm::Error err = mod.takeError()) { > + std::string msg; Any particular reason to keep this outside of the function? > + ::llvm::handleAllErrors(std::move(err), [&](::llvm::ErrorInfoBase > &EIB) { > + msg = EIB.message(); > + fail(r_log, error(CL_INVALID_PROGRAM), msg.c_str()); This could be EIB.message().c_str(), but that's just bikeshedding. Jan > + }); > + } > > return std::unique_ptr<::llvm::Module>(std::move(*mod)); > } 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
Re: [Mesa-dev] [PATCH] clover: adapt to new error API since LLVM r286752
Jan Vesely writes: > On Mon, 2016-11-14 at 12:17 +0100, Vedran Miletić wrote: >> --- >> src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp | 10 -- >> 1 file changed, 8 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 8e89a49..5dcc4f8 100644 >> --- a/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp >> +++ b/src/gallium/state_trackers/clover/llvm/codegen/bitcode.cpp >> @@ -98,8 +98,14 @@ clover::llvm::parse_module_library(const module &m, >> ::llvm::LLVMContext &ctx, >> std::string &r_log) { >> auto mod = ::llvm::parseBitcodeFile(::llvm::MemoryBufferRef( >> as_string(m.secs[0].data), " "), >> ctx); >> - if (!mod) >> - fail(r_log, error(CL_INVALID_PROGRAM), mod.getError().message()); >> + >> + if (::llvm::Error err = mod.takeError()) { >> + std::string msg; > > Any particular reason to keep this outside of the function? > Yeah, just drop the definition altogether, no reason to capture the useless temporary into the closure below. >> + ::llvm::handleAllErrors(std::move(err), [&](::llvm::ErrorInfoBase >> &EIB) { >> + msg = EIB.message(); >> + fail(r_log, error(CL_INVALID_PROGRAM), msg.c_str()); > > This could be EIB.message().c_str(), but that's just bikeshedding. > > Jan > >> + }); >> + } >> Isn't this going to break the build with previous LLVM versions? Sounds like you need to define a small wrapper function in llvm/compat.hpp. >> return std::unique_ptr<::llvm::Module>(std::move(*mod)); >> } > ___ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev signature.asc Description: PGP signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev