Re: [Mesa-dev] [PATCH] radeon/llvm: Specify the DataLayout when running optimizations

2013-10-30 Thread Tom Stellard
On Mon, Oct 28, 2013 at 11:59:51AM -0500, Aaron Watry wrote:
 I just ran a quick.tests run on evergreen without any regressions.
 
 Patch looks good to me, and doesn't seem to cause any regressions on
 the hardware I have available to test with.
 

I have pushed this patch, thanks for testing.

 --Aaron
 
 On Tue, Oct 22, 2013 at 11:28 AM, Tom Stellard t...@stellard.net wrote:
  From: Tom Stellard thomas.stell...@amd.com
 
  Without DataLayout, a lot of optimization passes aren't run and the ones
  that are don't work as well.
  ---
   src/gallium/drivers/radeon/radeon_llvm_util.c | 4 
   1 file changed, 4 insertions(+)
 
  diff --git a/src/gallium/drivers/radeon/radeon_llvm_util.c 
  b/src/gallium/drivers/radeon/radeon_llvm_util.c
  index 25be245..7192dee 100644
  --- a/src/gallium/drivers/radeon/radeon_llvm_util.c
  +++ b/src/gallium/drivers/radeon/radeon_llvm_util.c
  @@ -29,6 +29,7 @@
 
   #include llvm-c/BitReader.h
   #include llvm-c/Core.h
  +#include llvm-c/Target.h
   #include llvm-c/Transforms/PassManagerBuilder.h
 
   LLVMModuleRef radeon_llvm_parse_bitcode(const unsigned char * bitcode,
  @@ -53,8 +54,11 @@ unsigned radeon_llvm_get_num_kernels(const unsigned char 
  *bitcode,
 
   static void radeon_llvm_optimize(LLVMModuleRef mod)
   {
  +   const char *data_layout = LLVMGetDataLayout(mod);
  +   LLVMTargetDataRef TD = LLVMCreateTargetData(data_layout);
  LLVMPassManagerBuilderRef builder = LLVMPassManagerBuilderCreate();
  LLVMPassManagerRef pass_manager = LLVMCreatePassManager();
  +   LLVMAddTargetData(TD, pass_manager);
 
  LLVMPassManagerBuilderUseInlinerWithThreshold(builder, 10);
  LLVMPassManagerBuilderPopulateModulePassManager(builder, 
  pass_manager);
  --
  1.7.11.4
 
  ___
  mesa-dev mailing list
  mesa-dev@lists.freedesktop.org
  http://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] radeon/llvm: Specify the DataLayout when running optimizations

2013-10-28 Thread Aaron Watry
I ran this through a piglit CL test run on my 7850, no test fixes or
regressions.

--Aaron

On Tue, Oct 22, 2013 at 11:28 AM, Tom Stellard t...@stellard.net wrote:
 From: Tom Stellard thomas.stell...@amd.com

 Without DataLayout, a lot of optimization passes aren't run and the ones
 that are don't work as well.
 ---
  src/gallium/drivers/radeon/radeon_llvm_util.c | 4 
  1 file changed, 4 insertions(+)

 diff --git a/src/gallium/drivers/radeon/radeon_llvm_util.c 
 b/src/gallium/drivers/radeon/radeon_llvm_util.c
 index 25be245..7192dee 100644
 --- a/src/gallium/drivers/radeon/radeon_llvm_util.c
 +++ b/src/gallium/drivers/radeon/radeon_llvm_util.c
 @@ -29,6 +29,7 @@

  #include llvm-c/BitReader.h
  #include llvm-c/Core.h
 +#include llvm-c/Target.h
  #include llvm-c/Transforms/PassManagerBuilder.h

  LLVMModuleRef radeon_llvm_parse_bitcode(const unsigned char * bitcode,
 @@ -53,8 +54,11 @@ unsigned radeon_llvm_get_num_kernels(const unsigned char 
 *bitcode,

  static void radeon_llvm_optimize(LLVMModuleRef mod)
  {
 +   const char *data_layout = LLVMGetDataLayout(mod);
 +   LLVMTargetDataRef TD = LLVMCreateTargetData(data_layout);
 LLVMPassManagerBuilderRef builder = LLVMPassManagerBuilderCreate();
 LLVMPassManagerRef pass_manager = LLVMCreatePassManager();
 +   LLVMAddTargetData(TD, pass_manager);

 LLVMPassManagerBuilderUseInlinerWithThreshold(builder, 10);
 LLVMPassManagerBuilderPopulateModulePassManager(builder, 
 pass_manager);
 --
 1.7.11.4

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


Re: [Mesa-dev] [PATCH] radeon/llvm: Specify the DataLayout when running optimizations

2013-10-28 Thread Aaron Watry
I just ran a quick.tests run on evergreen without any regressions.

Patch looks good to me, and doesn't seem to cause any regressions on
the hardware I have available to test with.

--Aaron

On Tue, Oct 22, 2013 at 11:28 AM, Tom Stellard t...@stellard.net wrote:
 From: Tom Stellard thomas.stell...@amd.com

 Without DataLayout, a lot of optimization passes aren't run and the ones
 that are don't work as well.
 ---
  src/gallium/drivers/radeon/radeon_llvm_util.c | 4 
  1 file changed, 4 insertions(+)

 diff --git a/src/gallium/drivers/radeon/radeon_llvm_util.c 
 b/src/gallium/drivers/radeon/radeon_llvm_util.c
 index 25be245..7192dee 100644
 --- a/src/gallium/drivers/radeon/radeon_llvm_util.c
 +++ b/src/gallium/drivers/radeon/radeon_llvm_util.c
 @@ -29,6 +29,7 @@

  #include llvm-c/BitReader.h
  #include llvm-c/Core.h
 +#include llvm-c/Target.h
  #include llvm-c/Transforms/PassManagerBuilder.h

  LLVMModuleRef radeon_llvm_parse_bitcode(const unsigned char * bitcode,
 @@ -53,8 +54,11 @@ unsigned radeon_llvm_get_num_kernels(const unsigned char 
 *bitcode,

  static void radeon_llvm_optimize(LLVMModuleRef mod)
  {
 +   const char *data_layout = LLVMGetDataLayout(mod);
 +   LLVMTargetDataRef TD = LLVMCreateTargetData(data_layout);
 LLVMPassManagerBuilderRef builder = LLVMPassManagerBuilderCreate();
 LLVMPassManagerRef pass_manager = LLVMCreatePassManager();
 +   LLVMAddTargetData(TD, pass_manager);

 LLVMPassManagerBuilderUseInlinerWithThreshold(builder, 10);
 LLVMPassManagerBuilderPopulateModulePassManager(builder, 
 pass_manager);
 --
 1.7.11.4

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