On Wed, Jan 14, 2015 at 11:06:50AM +0900, Michel Dänzer wrote:
> On 14.01.2015 04:07, Tom Stellard wrote:
> > On Tue, Jan 13, 2015 at 06:47:00PM +0900, Michel Dänzer wrote:
> >> On 07.01.2015 10:10, Michel Dänzer wrote:
> >>> On 07.01.2015 06:33, Tom Stellard wrote:
> >>>> On Wed, Dec 24, 2014 at 12:48:31PM +0900, Michel Dänzer wrote:
> >>>>> On 24.12.2014 02:49, Tom Stellard wrote:
> >>>>>> Rather than building a new one every compile.  This should reduce some
> >>>>>> of the overhead of compiling shaders.
> >>>>>
> >>>>> Thanks, though unfortunately it doesn't seem to make much difference for
> >>>>> piglit for me.
> >>>>>
> >>>>>
> >>>>>> One consequence of this change is that we lose the MachineInstrs dumps
> >>>>>> when dumping the shaders via R600_DEBUG.  The LLVM IR and assembly is
> >>>>>> still dumped, and if you still want to see the MachineInstr dump, you
> >>>>>> can run the dumped LLVM IR through llc.
> >>>>>
> >>>>> Sounds reasonable, but...
> >>>>>
> >>>>>
> >>>>>> @@ -503,5 +510,12 @@ struct pipe_screen *radeonsi_screen_create(struct 
> >>>>>> radeon_winsys *ws)
> >>>>>>        /* Create the auxiliary context. This must be done last. */
> >>>>>>        sscreen->b.aux_context = 
> >>>>>> sscreen->b.b.context_create(&sscreen->b.b, NULL);
> >>>>>>  
> >>>>>> +      /* Initialize LLVM TargetMachine */
> >>>>>> +      r600_target = radeon_llvm_get_r600_target();
> >>>>>> +      sscreen->tm = LLVMCreateTargetMachine(r600_target, "r600--",
> >>>>>> +                              
> >>>>>> r600_get_llvm_processor_name(sscreen->b.family),
> >>>>>> +                              "+DumpCode", LLVMCodeGenLevelDefault, 
> >>>>>> LLVMRelocDefault,
> >>>>>> +                              LLVMCodeModelDefault);
> >>>>>> +
> >>>>>>        return &sscreen->b.b;
> >>>>>>  }
> >>>>>
> >>>>> ... since you pass "+DumpCode" here, the MachineInstrs are actually
> >>>>> always dumped unconditionally. With that fixed, this patch is
> >>>>>
> >>>>
> >>>> I've removed the MF.dump() call in the LLVM tree, so this won't happen.
> >>>
> >>> That won't help people using LLVM 3.4 (or 3.5?), will it?
> >>
> >> Tom, users of LLVM 3.4/5 get spammed by MachineInstr dumps with this
> >> change, right? Do you have a plan to address this?
> >>
> > 
> > I disabled target machine caching for < LLVM 3.6, so this shouldn't be
> > an issue.
> 
> I see, thanks for the clarification.
> 
> BTW, do you think it would also be possible to keep around the LLVM
> module / context between shader compilations?
> 

We can cache the context.  We could cache the module too, but I'm not
sure if there are any advantages to doing that.

-Tom

> 
> -- 
> Earthling Michel Dänzer               |               http://www.amd.com
> Libre software enthusiast             |             Mesa and X developer
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to