[LLVMdev] arch-specific predefines in LLVM's source
Hal Finkel
hfinkel at anl.gov
Fri Jul 26 14:03:24 PDT 2013
----- Original Message -----
> Hi all,
> My recent commit r187027 fixed a simple oversight of forgetting to
> check for __ppc__ (only checking __powerpc__), which broke my
> powerpc-apple-darwin8 stage1 tests, since the system gcc only
> provided
> __ppc__. I was wondering if this justifies using simpler macros like
>
> #define LLVM_PPC (defined(__ppc__) || defined(__powerpc__) ...)
> #define LLVM_PPC64 (defined(__ppc64__) || defined(__powerpc64__) ...)
A general note: Given all of the compiler variance out there regarding whether the 32-bit macros are also defined on the 64-bit systems, I really think that you'll need to arrange these as:
#define LLVM_PPC64 (defined(__ppc64__) || defined(__powerpc64__) ...)
#define LLVM_PPC !LLVM_PPC64 && (defined(__ppc__) || defined(__powerpc__) ...)
>
> I've even seen __POWERPC__, _POWER, _ARCH_PPC being tested in
> conditionals.
>
> These proposed standardized macros would only be used in LLVM project
> sources; there's no reason to exported them.
> The standardized macros would simplify conditionals and make their
> use
> less error-prone.
>
> What predefines do other architectures use?
Would all uses of these macros be restricted to the PPC backend, or would they appear elsewhere as well?
-Hal
>
> What would be a suitable place for these proposed macros?
> include/llvm/Support/Compiler.h?
> include/llvm/Support/Arch.h (new)?
>
> Fang
>
> --
> David Fang
> http://www.csl.cornell.edu/~fang/
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the llvm-dev
mailing list