r189542 - use the last passed -munaligned-access / -mno-unaligned-access

Manish Verma manish.verma at arm.com
Mon Sep 2 07:02:46 PDT 2013


Renato,

A few of the unit tests use the incorrect ABI token (gnueeabi) in the target
triple. [notice the extra "e"]

Regards,
Manish

> -----Original Message-----
> From: cfe-commits-bounces at cs.uiuc.edu [mailto:cfe-commits-
> bounces at cs.uiuc.edu] On Behalf Of Renato Golin
> Sent: 29 August 2013 10:06
> To: Hal Finkel
> Cc: Clang Commits
> Subject: Re: r189542 - use the last passed -munaligned-access / -mno-
> unaligned-access
> 
> Hal,
> 
> Absolutely, I think the reason why it's there is that we didn't know
> better. Please, check with Jeroen for a revised patch.
> 
> Cheers,
> Renato
> 
> On 29 Aug 2013 04:50, "Hal Finkel" <hfinkel at anl.gov> wrote:
> 
> 
> 	----- Original Message -----
> 	> Author: rengolin
> 	> Date: Wed Aug 28 18:56:07 2013
> 	> New Revision: 189542
> 	>
> 	> URL: http://llvm.org/viewvc/llvm-project?rev=189542&view=rev
> 	> Log:
> 	> use the last passed -munaligned-access / -mno-unaligned-
> access
> 	>
> 	> Passing inconsistent munaligned-access / mno-unaligned-
> access
> 	> flags, intentionally resulted in a warning and the flag
> 	> no-unaligned-access being used.
> 	>
> 	> Gcc does, at least in practice, use the last flag in such a
> 	> case. This patch updates clang behaviour accordingly; use
> the
> 	> last flag or base alignment behaviour on the target (which
> 	> llvm will do if no flag is explicitly passed)
> 	>
> 	> Patch by Jeroen Hofstee.
> 	>
> 	> Modified:
> 	>     cfe/trunk/lib/Driver/Tools.cpp
> 	>     cfe/trunk/test/Driver/arm-alignment.c
> 	>
> 	> Modified: cfe/trunk/lib/Driver/Tools.cpp
> 	> URL:
> 	> http://llvm.org/viewvc/llvm-
> project/cfe/trunk/lib/Driver/Tools.cpp?rev=189542&r1=189541&r2=189542
> &view=diff
> 	>
> =====================================================================
> =========
> 	> --- cfe/trunk/lib/Driver/Tools.cpp (original)
> 	> +++ cfe/trunk/lib/Driver/Tools.cpp Wed Aug 28 18:56:07 2013
> 	> @@ -2944,12 +2944,15 @@ void Clang::ConstructJob(Compilation
> &C,
> 	>    }
> 	>    // -mkernel implies -mstrict-align; don't add the
> redundant
> 	>    option.
> 	>    if (!KernelOrKext) {
> 	> -    if (Args.hasArg(options::OPT_mno_unaligned_access)) {
> 	> -      CmdArgs.push_back("-backend-option");
> 	> -      CmdArgs.push_back("-arm-strict-align");
> 	> -    } else if (Args.hasArg(options::OPT_munaligned_access))
> {
> 	> -      CmdArgs.push_back("-backend-option");
> 	> -      CmdArgs.push_back("-arm-no-strict-align");
> 	> +    if (Arg *A =
> Args.getLastArg(options::OPT_mno_unaligned_access,
> 	> +
> options::OPT_munaligned_access)) {
> 	> +      if (A-
> >getOption().matches(options::OPT_mno_unaligned_access))
> 	> {
> 	> +        CmdArgs.push_back("-backend-option");
> 	> +        CmdArgs.push_back("-arm-strict-align");
> 	> +      } else {
> 	> +        CmdArgs.push_back("-backend-option");
> 	> +        CmdArgs.push_back("-arm-no-strict-align");
> 
> 	From what Chandler tells me, using -backend-option plays
> horribly when the compiler is used via the tooling interface, and
> should really be avoided. This seems like something that belongs in
> TargetOptions; can we move it there?
> 
> 	 -Hal
> 
> 	> +      }
> 	>      }
> 	>    }
> 	>
> 	>
> 	> Modified: cfe/trunk/test/Driver/arm-alignment.c
> 	> URL:
> 	> http://llvm.org/viewvc/llvm-
> project/cfe/trunk/test/Driver/arm-
> alignment.c?rev=189542&r1=189541&r2=189542&view=diff
> 	>
> =====================================================================
> =========
> 	> --- cfe/trunk/test/Driver/arm-alignment.c (original)
> 	> +++ cfe/trunk/test/Driver/arm-alignment.c Wed Aug 28
> 18:56:07 2013
> 	> @@ -1,9 +1,25 @@
> 	>  // RUN: %clang -target arm-none-gnueeabi -munaligned-access
> -### %s
> 	>  2> %t
> 	>  // RUN: FileCheck --check-prefix=CHECK-UNALIGNED < %t %s
> 	>
> 	> +// RUN: %clang -target arm-none-gnueeabi -mstrict-align
> 	> -munaligned-access -### %s 2> %t
> 	> +// RUN: FileCheck --check-prefix=CHECK-UNALIGNED < %t %s
> 	> +
> 	> +// RUN: %clang -target arm-none-gnueeabi -mno-unaligned-
> access
> 	> -munaligned-access -### %s 2> %t
> 	> +// RUN: FileCheck --check-prefix=CHECK-UNALIGNED < %t %s
> 	> +
> 	>  // CHECK-UNALIGNED: "-backend-option" "-arm-no-strict-
> align"
> 	>
> 	> +
> 	>  // RUN: %clang -target arm-none-gnueeabi -mno-unaligned-
> access -###
> 	>  %s 2> %t
> 	>  // RUN: FileCheck --check-prefix=CHECK-ALIGNED < %t %s
> 	>
> 	> +// RUN: %clang -target arm-none-gnueeabi -mstrict-align -
> ### %s 2>
> 	> %t
> 	> +// RUN: FileCheck --check-prefix=CHECK-ALIGNED < %t %s
> 	> +
> 	> +// RUN: %clang -target arm-none-gnueabi -munaligned-access
> 	> -mno-unaligned-access -### %s 2> %t
> 	> +// RUN: FileCheck --check-prefix=CHECK-ALIGNED < %t %s
> 	> +
> 	> +// RUN: %clang -target arm-none-gnueabi -munaligned-access
> 	> -mstrict-align -### %s 2> %t
> 	> +// RUN: FileCheck --check-prefix=CHECK-ALIGNED < %t %s
> 	> +
> 	>  // CHECK-ALIGNED: "-backend-option" "-arm-strict-align"
> 	>
> 	>
> 	> _______________________________________________
> 	> cfe-commits mailing list
> 	> cfe-commits at cs.uiuc.edu
> 	> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> 	>
> 
> 	--
> 	Hal Finkel
> 	Assistant Computational Scientist
> 	Leadership Computing Facility
> 	Argonne National Laboratory
> 







More information about the cfe-commits mailing list