[Mesa-dev] 761131ce4591e5f55f38d13f2c4d2194bc9cb0fd build regression with llvm 2.8

Jose Fonseca jfonseca at vmware.com
Thu Jul 26 11:35:22 PDT 2012



----- Original Message -----
> On Thu, 2012-07-26 at 10:31 -0700, Jose Fonseca wrote:
> > ----- Original Message -----
> > > On Thu, 2012-07-26 at 07:52 -0700, Jose Fonseca wrote:
> > > > ----- Original Message -----
> > > > > On 7/21/12 5:53 AM, Jose Fonseca wrote:
> > > > > > ----- Original Message -----
> > > > > >> Hi guys
> > > > > >>
> > > > > >> LLVM 2.8 doesn't appear to have mcjit, so we end up with
> > > > > >> no
> > > > > >> llvm
> > > > > >> libs
> > > > > >> defined,
> > > > > >
> > > > > > Yes, mcjit is only used/necessary from llvm-3.1 onwards, so
> > > > > > the
> > > > > > autoconf code should check conditiionally.
> > > > > >
> > > > > > BTW, I'll soon commit a change that will stop using mcjit
> > > > > > from
> > > > > > 3.2
> > > > > > onwards (as with the current LLVM 3.2 trunk, AVX is
> > > > > > supported
> > > > > > by
> > > > > > the old jit, which is more stable/polished).
> > > 
> > > Can you clarify the scope of "will stop using mcjit from 3.2
> > > onwards"?
> > 
> > What I meant by that was already done in commit
> > c30bf68946433d26f672c741a763bba4712aada7.
> 
> > > Is that specific to (the Intel AVX extensions?) related matters,
> > > or
> > > is
> > > that a mesa-wide statement?    (I am specifically interested in
> > > the
> > > llvmpipe related parts that Adam touched on below).
> > 
> > The MC-JIT vs old JIT is currently a build time choice (based on
> > #ifdef's). Essentially, we only use MC-JIT for LLVM 3.1, if AVX
> > support hasn't been backported (ie. when not using my backports_31
> > branch below).
> 
> Ok.  Between the explanation and the commit you mentioned above, it's
> clearer now.  Thanks. :-)    Additional comment below.
> 
> > It could be made into a runtime choice if you prefer, ie., based of
> > the availability of AVX. Or we could just disable MC-JIT
> > altogether,
> > and wait until it replaces the old jit upstream.
> 
> Per the "Help with PPC64 JIT" comments on llvm-dev last week, we are
> currently working on MC-JIT, rather than oldJIT (This ultimately in
> support of mesa/llvmpipe functionality on ppc64).   Some of the work
> is
> occurring with fedora17 based sources, but most on Trunk/HEAD.  (so
> HAVE_LLVM == 0x0302 ).
> 
> So would prefer some way to specify that MC-JIT be used.  A run-time
> (or
> easy build-time configure option) choice would be nice.

That's easy: you can just add a #ifdef stanza to that code saying

#if HAVE_LLVM >= 0x0302 && defined(PIPE_ARCH_PPC) //(or something like it)
# define USE_MCJIT 1
# define HAVE_AVX 0
#elif ...

When you're ready.

I'll ensure that the current support for MC-JIT doesn't degrade.

Jose


More information about the mesa-dev mailing list