Re: [Mesa-dev] [PATCH 2/4] gallivm: allow additional llc options

2017-10-02 Thread Ben Crocker

- Original Message -
> From: "Nicolai Hähnle" <nhaeh...@gmail.com>
> To: "Ben Crocker" <bcroc...@redhat.com>, mesa-dev@lists.freedesktop.org
> Cc: "Emil Velikov" <emil.l.veli...@gmail.com>, "17.2" 
> <mesa-sta...@lists.freedesktop.org>
> Sent: Monday, October 2, 2017 5:40:31 AM
> Subject: Re: [Mesa-dev] [PATCH 2/4] gallivm: allow additional llc options
> 
> On 28.09.2017 20:09, Ben Crocker wrote:
> > In init_native_targets, allow the passing of additional options to
> > the LLC compiler via new GALLIVM_LLC_OPTIONS environmental control.
> > This option is available only #ifdef DEBUG, initially.
> > At top, add #include  for LLVMParseCommandLineOptions()
> > declaration.
> > 
> > Cc: "17.2" <mesa-sta...@lists.freedesktop.org>
> > 
> > Signed-off-by: Ben Crocker <bcroc...@redhat.com>
> > ---
> >   src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 21 +
> >   1 file changed, 21 insertions(+)
> > 
> > diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
> > b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
> > index 342cb38..0b43c96 100644
> > --- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
> > +++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
> > @@ -49,6 +49,7 @@
> >   #endif
> >   
> >   #include 
> > +#include 
> >   #include 
> >   #include 
> >   #include 
> > @@ -122,6 +123,26 @@ static void init_native_targets()
> >  llvm::InitializeNativeTargetAsmPrinter();
> >   
> >  llvm::InitializeNativeTargetDisassembler();
> > +#if DEBUG
> > +   {
> > +  char *env_llc_options = getenv("GALLIVM_LLC_OPTIONS");
> > +  if (env_llc_options) {
> > + char *option;
> > + char *options[64] = {(char *) "llc"};  // Warning without
> > cast
> > + int   n;
> > + for (n = 0, option = strtok(env_llc_options, " "); option; n++,
> > option = strtok(NULL, " ")) {
> > +options[n + 1] = option;
> > + }
> > + if (gallivm_debug & (GALLIVM_DEBUG_IR | GALLIVM_DEBUG_ASM |
> > GALLIVM_DEBUG_DUMP_BC)) {
> > +debug_printf("llc additional options (%d):\n", n);
> > +for (int i = 1; i <= n; i++)
> > +   debug_printf("\t%s\n", options[i]);
> > +debug_printf("\n");
> > + }
> > + LLVMParseCommandLineOptions(n + 1, options, NULL);
> > +  }
> > +   }
> > +#endif
> 
> Just FYI, we're also calling LLVMParseCommandLineOptions from
> ac_llvm_util.c, and that function doesn't seem to appreciate being
> called multiple times. Not really an issue here since this will surely
> only be used for llvmpipe, so:
> 

Indeed, I used the code in ac_llvm_util.c as a model for my code.
And you're right: my change is for llvmpipe only.

> Acked-by: Nicolai Hähnle <nicolai.haeh...@amd.com>

Thanks for the review and ack

-- Ben

> 
> 
> >   }
> >   
> >   extern "C" void
> > 
> 
> 
> --
> Lerne, wie die Welt wirklich ist,
> Aber vergiss niemals, wie sie sein sollte.
> 
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH 2/4] gallivm: allow additional llc options

2017-10-02 Thread Nicolai Hähnle

On 28.09.2017 20:09, Ben Crocker wrote:

In init_native_targets, allow the passing of additional options to
the LLC compiler via new GALLIVM_LLC_OPTIONS environmental control.
This option is available only #ifdef DEBUG, initially.
At top, add #include  for LLVMParseCommandLineOptions()
declaration.

Cc: "17.2" 

Signed-off-by: Ben Crocker 
---
  src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 21 +
  1 file changed, 21 insertions(+)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp 
b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
index 342cb38..0b43c96 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
@@ -49,6 +49,7 @@
  #endif
  
  #include 

+#include 
  #include 
  #include 
  #include 
@@ -122,6 +123,26 @@ static void init_native_targets()
 llvm::InitializeNativeTargetAsmPrinter();
  
 llvm::InitializeNativeTargetDisassembler();

+#if DEBUG
+   {
+  char *env_llc_options = getenv("GALLIVM_LLC_OPTIONS");
+  if (env_llc_options) {
+ char *option;
+ char *options[64] = {(char *) "llc"};  // Warning without cast
+ int   n;
+ for (n = 0, option = strtok(env_llc_options, " "); option; n++, option = 
strtok(NULL, " ")) {
+options[n + 1] = option;
+ }
+ if (gallivm_debug & (GALLIVM_DEBUG_IR | GALLIVM_DEBUG_ASM | 
GALLIVM_DEBUG_DUMP_BC)) {
+debug_printf("llc additional options (%d):\n", n);
+for (int i = 1; i <= n; i++)
+   debug_printf("\t%s\n", options[i]);
+debug_printf("\n");
+ }
+ LLVMParseCommandLineOptions(n + 1, options, NULL);
+  }
+   }
+#endif


Just FYI, we're also calling LLVMParseCommandLineOptions from 
ac_llvm_util.c, and that function doesn't seem to appreciate being 
called multiple times. Not really an issue here since this will surely 
only be used for llvmpipe, so:


Acked-by: Nicolai Hähnle 



  }
  
  extern "C" void





--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH 2/4] gallivm: allow additional llc options

2017-09-28 Thread Ben Crocker
In init_native_targets, allow the passing of additional options to
the LLC compiler via new GALLIVM_LLC_OPTIONS environmental control.
This option is available only #ifdef DEBUG, initially.
At top, add #include  for LLVMParseCommandLineOptions()
declaration.

Cc: "17.2" 

Signed-off-by: Ben Crocker 
---
 src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 21 +
 1 file changed, 21 insertions(+)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp 
b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
index 342cb38..0b43c96 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
@@ -49,6 +49,7 @@
 #endif
 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -122,6 +123,26 @@ static void init_native_targets()
llvm::InitializeNativeTargetAsmPrinter();
 
llvm::InitializeNativeTargetDisassembler();
+#if DEBUG
+   {
+  char *env_llc_options = getenv("GALLIVM_LLC_OPTIONS");
+  if (env_llc_options) {
+ char *option;
+ char *options[64] = {(char *) "llc"};  // Warning without cast
+ int   n;
+ for (n = 0, option = strtok(env_llc_options, " "); option; n++, 
option = strtok(NULL, " ")) {
+options[n + 1] = option;
+ }
+ if (gallivm_debug & (GALLIVM_DEBUG_IR | GALLIVM_DEBUG_ASM | 
GALLIVM_DEBUG_DUMP_BC)) {
+debug_printf("llc additional options (%d):\n", n);
+for (int i = 1; i <= n; i++)
+   debug_printf("\t%s\n", options[i]);
+debug_printf("\n");
+ }
+ LLVMParseCommandLineOptions(n + 1, options, NULL);
+  }
+   }
+#endif
 }
 
 extern "C" void
-- 
2.7.4

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