[LLVMdev] arch-specific predefines in LLVM's source
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
> __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
> 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
> 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?
> What would be a suitable place for these proposed macros?
> include/llvm/Support/Arch.h (new)?
> David Fang
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the llvm-dev