[Llvm-bgq-discuss] Interpreting CLANG assembly

Hal Finkel hfinkel at anl.gov
Mon Apr 22 23:22:40 CDT 2013


----- Original Message -----
> From: "Hal Finkel" <hfinkel at anl.gov>
> To: "Thomas Gooding" <tgooding at us.ibm.com>
> Cc: llvm-bgq-discuss at lists.alcf.anl.gov
> Sent: Monday, April 22, 2013 11:56:27 AM
> Subject: Re: [Llvm-bgq-discuss] Interpreting CLANG assembly
> 
> ----- Original Message -----
> > From: "Thomas Gooding" <tgooding at us.ibm.com>
> > To: llvm-bgq-discuss at lists.alcf.anl.gov
> > Sent: Monday, April 22, 2013 11:16:53 AM
> > Subject: Re: [Llvm-bgq-discuss] Interpreting CLANG assembly
> > 
> > 
> > 
> > 
> > Hal Finkel <hfinkel at anl.gov> wrote on 04/18/2013 03:45:45 PM:
> > > > After increasing the verbosity (bgclang -v), the assembler call
> > > > looks
> > > > incorrect:
> > > > "/bgsys/drivers/ppcfloor/gnu-linux/lib/gcc/powerpc64-bgq-linux/4.
> > > 4.6/../../../../powerpc64-bgq-linux/bin/as"
> > > > -a64 -mppc64 -many -o start.o /tmp/start-9mU46t.s
> > > > 
> > > > Whereas I think it should be:
> > > > "/bgsys/drivers/ppcfloor/gnu-linux/lib/gcc/powerpc64-bgq-linux/4.
> > > 4.6/../../../../powerpc64-bgq-linux/bin/as"
> > > > -a64 -ma2q -many -o start.o /tmp/start-9mU46t.s
> > > > 
> > > > Maybe there's a way to configure this somewhere?
> > > 
> > > I'll need to update it in the driver; thanks for investigating
> > > this!
> > > The problem is that Clang tries to cheat, in a sense, and instead
> > > of
> > > trying to figure out exactly which architecture to use for
> > > different
> > > ppc64 cores, it just passes -many (which should enable all
> > > extensions). However, this may fall down where embedded
> > > extensions
> > > are involved. If you take the assembly file and compile it with
> > > the
> > > default as command line, but add -mbooke, does that make it work?
> > > 
> > > -Hal
> > 
> > Unfortunately, adding -mbooke does not help. I get same error
> > messages:
> > 
> > /bgsys/drivers/ppcfloor/gnu-linux/lib/gcc/powerpc64-bgq-linux/4.4.6/../../../../powerpc64-bgq-linux/bin/as
> > -a64 -mppc64 -many -o start.o a.s -mbooke
> > start.S: Assembler messages:
> > start.S:278: Error: junk at end of line: `1,0'
> > start.S:938: Error: junk at end of line: `1,0'
> > start.S:1189: Error: junk at end of line: `1,0'
> > start.S:1428: Error: junk at end of line: `1,0'
> > start.S:1630: Error: junk at end of line: `1,0'
> 
> Okay; looking at the binutils source, it seems that form of the mtfsf
> instruction is indeed tied to specific processors
> (POWER6|PPCA2|PPC476 specifically), and not enabled by 'any'. Clang
> will need to stop cheating, I'll fix this.

Also, for now, you should be able to add: -Xassembler -ma2 to your command line.

 -Hal

> 
> Thanks again,
> Hal
> 
> > 
> > Tom Gooding
> > Senior Engineer / Blue Gene Kernels
> > 507-253-0747 (internal: 553-0747)
> > 
> > _______________________________________________
> > llvm-bgq-discuss mailing list
> > llvm-bgq-discuss at lists.alcf.anl.gov
> > https://lists.alcf.anl.gov/mailman/listinfo/llvm-bgq-discuss
> > 
> _______________________________________________
> llvm-bgq-discuss mailing list
> llvm-bgq-discuss at lists.alcf.anl.gov
> https://lists.alcf.anl.gov/mailman/listinfo/llvm-bgq-discuss
> 


More information about the llvm-bgq-discuss mailing list