[compiler-rt] r208560 - Define CRT_HAS_128BIT even for PPC32

Hal Finkel hfinkel at anl.gov
Mon May 12 06:43:29 PDT 2014

Author: hfinkel
Date: Mon May 12 08:43:29 2014
New Revision: 208560

URL: http://llvm.org/viewvc/llvm-project?rev=208560&view=rev
Define CRT_HAS_128BIT even for PPC32

r201909, which introduced CRT_HAS_128BIT, unintentionally broke self-hosting on
PPC32. We used to define CRT_HAS_128BIT only on LP64 systems, but this is not
quite right (at least for Clang-compiled code). Even though __int128 is not
supported on PPC32, SROA can (and does) still form i128 variables at the IR
level, and operations on those variables may turn into the associated runtime
calls. As a result, we still need to compile __ashlti3, __ashrti3, __lshrti3,
and perhaps others, on PPC32.


Modified: compiler-rt/trunk/lib/builtins/int_types.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/int_types.h?rev=208560&r1=208559&r2=208560&view=diff
--- compiler-rt/trunk/lib/builtins/int_types.h (original)
+++ compiler-rt/trunk/lib/builtins/int_types.h Mon May 12 08:43:29 2014
@@ -56,7 +56,7 @@ typedef union
 } udwords;
-#if __LP64__
+#if __LP64__ || defined(__ppc__) || defined(__powerpc__)
 #define CRT_HAS_128BIT

More information about the llvm-commits mailing list