Re: [Mesa-dev] [PATCH] clover: adapt to new error API since LLVM r286752

2016-11-14 Thread Francisco Jerez
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 , 
>> ::llvm::LLVMContext ,
>> std::string _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 
>> ) {
>> + 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


Re: [Mesa-dev] [PATCH] clover: adapt to new error API since LLVM r286752

2016-11-14 Thread Jan Vesely
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 , 
> ::llvm::LLVMContext ,
> std::string _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 
> ) {
> + 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

2016-11-14 Thread Vedran Miletić
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

2016-11-14 Thread Tom Stellard
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 ,
> > ::llvm::LLVMContext ,
> > std::string _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 ) {
> > + 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


[Mesa-dev] [PATCH] clover: adapt to new error API since LLVM r286752

2016-11-14 Thread Dieter Nützel

Tested-by: Dieter Nützel 

Thanks Vedran!

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 ,
::llvm::LLVMContext ,
std::string _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 ) {

+ 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] [PATCH] clover: adapt to new error API since LLVM r286752

2016-11-14 Thread 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 , 
::llvm::LLVMContext ,
std::string _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 ) {
+ msg = EIB.message();
+ fail(r_log, error(CL_INVALID_PROGRAM), msg.c_str());
+  });
+   }
 
return std::unique_ptr<::llvm::Module>(std::move(*mod));
 }
-- 
2.7.4

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