> For the moment, I think this commit should stay in place as-is, there's no 
> point expending extra effort on it I don't think!

You mean you don't want me to commit this?

Sorry I should have been more clear - I assumed the code has already been 
committed, and thats why I wrote my response in that tense.

I have no immediate problem with the code as-is - if other reviewers have 
signed off on it then for sure commit it. I'll try and get a cleaner solution 
together in the driver changes later.

Cheers,

James

-----Original Message-----
From: Evgeniy Stepanov [mailto:eugeni.stepa...@gmail.com] 
Sent: 24 April 2012 09:14
To: James Molloy
Cc: Hal Finkel; cfe-commits@cs.uiuc.edu
Subject: Re: [cfe-commits] r154389 - in /cfe/trunk: lib/Driver/Tools.cpp 
test/Driver/linux-as.c

On Tue, Apr 24, 2012 at 12:10 PM, James Molloy <james.mol...@arm.com> wrote:
> I think we should make sure the "universal driver" can deal with this, and 
> remove the functionality then.
>
> I'm actively working on this now (I was pre-February at which point I had a 
> brief hiatus for the LLVM conference. Back on again.), and have a patch 
> outstanding on the driver.
>
> The problem with testing is a difficult one, but one I'm going to try and 
> solve by building up a database of known driver behaviour - inputs and 
> outputs - for both Clang in its current state and GCC on as many different 
> platforms as I can find (I will be asking the community to help with this at 
> some point).
>
> From there I can create a test suite that should run on any platform and test 
> all platforms. The ideal goal being that the driver is "known to be as 
> correct as GCC" on supported platforms, and easy to extend for nonsupported 
> platforms.

Sounds great!

>
> For the moment, I think this commit should stay in place as-is, there's no 
> point expending extra effort on it I don't think!

You mean you don't want me to commit this?

>
> Cheers,
>
> James
>
> -----Original Message-----
> From: Evgeniy Stepanov [mailto:eugeni.stepa...@gmail.com]
> Sent: 24 April 2012 08:59
> To: James Molloy
> Cc: Hal Finkel; cfe-commits@cs.uiuc.edu
> Subject: Re: [cfe-commits] r154389 - in /cfe/trunk: lib/Driver/Tools.cpp 
> test/Driver/linux-as.c
>
> Not a hack, but unimplemented functionality.
> Ideally, every other platform should also have a set of forwarded (and
> maybe transformed) options, but I'm reluctant to do this now. I can't
> test it easily, and I don't know enough about most of them to be sure
> that I don't screw something up.
> WDYT?
>
>
> On Mon, Apr 23, 2012 at 6:12 PM, James Molloy <james.mol...@arm.com> wrote:
>> It still sounds like a pretty dirty hack to get something to work in the 
>> interim.
>>
>> People will wonder why passing -mcpu only works for ARM and not for any 
>> other platform...
>>
>> -----Original Message-----
>> From: cfe-commits-boun...@cs.uiuc.edu 
>> [mailto:cfe-commits-boun...@cs.uiuc.edu] On Behalf Of Hal Finkel
>> Sent: 23 April 2012 15:08
>> To: Evgeniy Stepanov
>> Cc: cfe-commits@cs.uiuc.edu
>> Subject: Re: [cfe-commits] r154389 - in /cfe/trunk: lib/Driver/Tools.cpp 
>> test/Driver/linux-as.c
>>
>> LGTM, thanks!
>>
>>  -Hal
>>
>> On Mon, 23 Apr 2012 16:53:41 +0400
>> Evgeniy Stepanov <eugeni.stepa...@gmail.com> wrote:
>>
>>> Ok, I moved this options under if(arm).
>>> Please take a look at the patch.
>>>
>>> On Mon, Apr 23, 2012 at 4:35 PM, Hal Finkel <hfin...@anl.gov> wrote:
>>> > On Mon, 23 Apr 2012 07:14:19 -0500
>>> > Hal Finkel <hfin...@anl.gov> wrote:
>>> >
>>> >> On Mon, 23 Apr 2012 11:14:04 +0400
>>> >> Evgeniy Stepanov <eugeni.stepa...@gmail.com> wrote:
>>> >>
>>> >> > On Sun, Apr 22, 2012 at 5:41 AM, Hal Finkel <hfin...@anl.gov>
>>> >> > wrote:
>>> >> > > Evgeniy,
>>> >> > >
>>> >> > > Unfortunately, we need to be much more careful here. While gas
>>> >> > > for ARM does support -mcpu, -march and -mfpu, this is not true
>>> >> > > for other ISAs. Looking at the man page, it seems that the
>>> >> > > supported flags are:
>>> >> > >
>>> >> > > ARM: -mcpu=, -march=, -mfpu=
>>> >> > > i386: -march= (-mtune=: should we map -mcpu= to -mtune=?)
>>> >> > > MIPS: (same as i386)
>>> >> > > PowerPC: supports cpu, but as -m<cpu> (meaning
>>> >> > > -m403|-m405|-mppc64|...) SPARC: supports arch, but as -xarch=
>>> >> > >
>>> >> > > How do you think we should fix this?
>>> >> >
>>> >> > Well, we can make the set of forwarded options dependent on the
>>> >> > target.
>>> >>
>>> >> That makes sense.
>>> >>
>>> >> >
>>> >> > But what's the failing use case? I mean, why do you pass these
>>> >> > options to the compiler in the first place?
>>> >>
>>> >> This patch broke building on PPC with a non-default cpu type. I
>>> >> pass -mcpu=, as you do, to select appropriate cpu features and
>>> >> itineraries. The default clang behavior on PPC is to pass -many to
>>> >> the assembler. As you might imagine, this enables instructions for
>>> >> all known cpu types. With this patch, the assembler also gets the
>>> >> -mcpu=<cpu> flag provided to the driver. This is incorrect, it
>>> >> would need to be translated as -m<cpu> for PPC. I think it is
>>> >> unfortunate that gas cannot accept a common set of command-line
>>> >> parameters across platforms, but that I cannot fix ;)
>>> >
>>> > I should also add that it is quite possible for LLVM to have
>>> > itineraries for cpus that gas knows nothing about in particular.
>>> >
>>> >  -Hal
>>> >
>>> >>
>>> >> Thanks again,
>>> >> Hal
>>> >>
>>> >> >
>>> >> > >
>>> >> > >  -Hal
>>> >> > >
>>> >> > > On Tue, 10 Apr 2012 09:05:41 -0000
>>> >> > > Evgeniy Stepanov <eugeni.stepa...@gmail.com> wrote:
>>> >> > >
>>> >> > >> Author: eugenis
>>> >> > >> Date: Tue Apr 10 04:05:40 2012
>>> >> > >> New Revision: 154389
>>> >> > >>
>>> >> > >> URL: http://llvm.org/viewvc/llvm-project?rev=154389&view=rev
>>> >> > >> Log:
>>> >> > >> Pass -march, -mcpu, -mfpu to linuxtools assembler.
>>> >> > >>
>>> >> > >> Added:
>>> >> > >>     cfe/trunk/test/Driver/linux-as.c
>>> >> > >> Modified:
>>> >> > >>     cfe/trunk/lib/Driver/Tools.cpp
>>> >> > >>
>>> >> > >> Modified: cfe/trunk/lib/Driver/Tools.cpp
>>> >> > >> URL:
>>> >> > >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=154389&r1=154388&r2=154389&view=diff
>>> >> > >> ==============================================================================
>>> >> > >> --- cfe/trunk/lib/Driver/Tools.cpp (original) +++
>>> >> > >> cfe/trunk/lib/Driver/Tools.cpp Tue Apr 10 04:05:40 2012 @@
>>> >> > >> -5089,6 +5089,10 @@ CmdArgs.push_back("-EL");
>>> >> > >>    }
>>> >> > >>
>>> >> > >> +  Args.AddLastArg(CmdArgs, options::OPT_march_EQ);
>>> >> > >> +  Args.AddLastArg(CmdArgs, options::OPT_mcpu_EQ);
>>> >> > >> +  Args.AddLastArg(CmdArgs, options::OPT_mfpu_EQ);
>>> >> > >> +
>>> >> > >>    Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,
>>> >> > >>                         options::OPT_Xassembler);
>>> >> > >>
>>> >> > >>
>>> >> > >> Added: cfe/trunk/test/Driver/linux-as.c
>>> >> > >> URL:
>>> >> > >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/linux-as.c?rev=154389&view=auto
>>> >> > >> ==============================================================================
>>> >> > >> --- cfe/trunk/test/Driver/linux-as.c (added) +++
>>> >> > >> cfe/trunk/test/Driver/linux-as.c Tue Apr 10 04:05:40 2012 @@
>>> >> > >> -0,0 +1,31 @@ +// Check passing options to the assembler for
>>> >> > >> ARM targets. +//
>>> >> > >> +// RUN: %clang -target arm-linux -### \
>>> >> > >> +// RUN:   -no-integrated-as -c %s 2>&1 \
>>> >> > >> +// RUN:   | FileCheck -check-prefix=ARM %s
>>> >> > >> +// CHECK-ARM: as{{(.exe)?}}"
>>> >> > >> +//
>>> >> > >> +// RUN: %clang -target arm-linux -mcpu=cortex-a8 -### \
>>> >> > >> +// RUN:   -no-integrated-as -c %s 2>&1 \
>>> >> > >> +// RUN:   | FileCheck -check-prefix=ARM-MCPU %s
>>> >> > >> +// CHECK-ARM-MCPU: as{{(.exe)?}}" "-mcpu=cortex-a8"
>>> >> > >> +//
>>> >> > >> +// RUN: %clang -target arm-linux -mfpu=neon -### \
>>> >> > >> +// RUN:   -no-integrated-as -c %s 2>&1 \
>>> >> > >> +// RUN:   | FileCheck -check-prefix=ARM-MFPU %s
>>> >> > >> +// CHECK-ARM-MFPU: as{{(.exe)?}}" "-mfpu=neon"
>>> >> > >> +//
>>> >> > >> +// RUN: %clang -target arm-linux -march=armv7-a -### \
>>> >> > >> +// RUN:   -no-integrated-as -c %s 2>&1 \
>>> >> > >> +// RUN:   | FileCheck -check-prefix=ARM-MARCH %s
>>> >> > >> +// CHECK-ARM-MARCH: as{{(.exe)?}}" "-march=armv7-a"
>>> >> > >> +//
>>> >> > >> +// RUN: %clang -target arm-linux -mcpu=cortex-a8 -mfpu=neon
>>> >> > >> -march=armv7-a -### \ +// RUN:   -no-integrated-as -c %s 2>&1
>>> >> > >> \ +// RUN:   | FileCheck -check-prefix=ARM-ALL %s
>>> >> > >> +// CHECK-ARM-ALL: as{{(.exe)?}}" "-march=armv7-a"
>>> >> > >> "-mcpu=cortex-a8" "-mfpu=neon" +//
>>> >> > >> +// RUN: %clang -target armv7-linux -mcpu=cortex-a8 -### \
>>> >> > >> +// RUN:   -no-integrated-as -c %s 2>&1 \
>>> >> > >> +// RUN:   | FileCheck -check-prefix=ARM-TARGET %s
>>> >> > >> +// CHECK-ARM-TARGET: as{{(.exe)?}}" "-mfpu=neon"
>>> >> > >> "-mcpu=cortex-a8"
>>> >> > >>
>>> >> > >>
>>> >> > >> _______________________________________________
>>> >> > >> cfe-commits mailing list
>>> >> > >> cfe-commits@cs.uiuc.edu
>>> >> > >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>> >> > >
>>> >> > >
>>> >> > >
>>> >> > > --
>>> >> > > Hal Finkel
>>> >> > > Postdoctoral Appointee
>>> >> > > Leadership Computing Facility
>>> >> > > Argonne National Laboratory
>>> >>
>>> >>
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Hal Finkel
>>> > Postdoctoral Appointee
>>> > Leadership Computing Facility
>>> > Argonne National Laboratory
>>
>>
>>
>> --
>> Hal Finkel
>> Postdoctoral Appointee
>> Leadership Computing Facility
>> Argonne National Laboratory
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits@cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>
>>
>
>
>




_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to