[cfe-commits] r154389 - in /cfe/trunk: lib/Driver/Tools.cpp test/Driver/linux-as.c

Evgeniy Stepanov eugeni.stepanov at gmail.com
Mon Apr 23 05:53:41 PDT 2012


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 <hfinkel at anl.gov> wrote:
> On Mon, 23 Apr 2012 07:14:19 -0500
> Hal Finkel <hfinkel at anl.gov> wrote:
>
>> On Mon, 23 Apr 2012 11:14:04 +0400
>> Evgeniy Stepanov <eugeni.stepanov at gmail.com> wrote:
>>
>> > On Sun, Apr 22, 2012 at 5:41 AM, Hal Finkel <hfinkel at 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.stepanov at 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 at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 1.patch
Type: application/octet-stream
Size: 1677 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120423/0b86cddc/attachment.obj>


More information about the cfe-commits mailing list