| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
like Darwin that don't support it. We should also complain about
invalid -fvisibility=protected, but that information doesn't seem
to exist at the most appropriate time, so I've left a FIXME behind.
llvm-svn: 149186
|
|
|
|
| |
llvm-svn: 149181
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ARM supports clz and ctz directly and both operations have well-defined
results for zero. There is no disadvantage in performance to using the
defined-at-zero versions of llvm.ctlz/cttz intrinsics. We're running into
ARM-specific code written with the assumption that __builtin_clz(0) == 32,
even though that value is technically undefined. The code is failing now
because of llvm optimizations that are taking advantage of the undef
behavior (specifically svn r147255). There's nothing wrong with that
optimization on x86 where any incorrect assumptions about __builtin_clz(0)
will quickly be exposed. For ARM, though, optimizations based on that undef
behavior are likely to cause subtle bugs. Other targets with defined-at-zero
clz/ctz support may want to override the default behavior as well.
llvm-svn: 149086
|
|
|
|
| |
llvm-svn: 148582
|
|
|
|
|
|
| |
changes i64 alignment from 64 to 32 for powerpc-darwin
llvm-svn: 148345
|
|
|
|
|
|
| |
appropriate or when GCC requires it)
llvm-svn: 148292
|
|
|
|
| |
llvm-svn: 148141
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch from Jyotsna Verma:
I have made the changes to remove assertions in the Hexagon backend
specific clang driver. Instead of asserting on invalid arch name, it has
been modified to use the default value.
I have changed the implementation of the CPU flag validation for the
Hexagon backend. Earlier, the clang driver performed the check and
asserted on invalid inputs. In the new implementation, the driver passes
the last CPU flag (or sets to "v4" if not specified) to the compiler (and
also to the assembler and linker which perform their own check) instead of
asserting on incorrect values. This patch changes the setCPU function for
the Hexagon backend in clang/lib/Basic/Targets.cpp which causes the
compiler to error out on incorrect CPU flag values.
llvm-svn: 148139
|
|
|
|
| |
llvm-svn: 148138
|
|
|
|
|
|
|
|
|
| |
- Support gcc-compatible vfpv3 name in addition to vfp3.
- Support vfpv3-d16.
- Disable neon feature for -mfpu=vfp* (yes, we were emitting Neon instructions
for those!).
llvm-svn: 147943
|
|
|
|
| |
llvm-svn: 147849
|
|
|
|
| |
llvm-svn: 147848
|
|
|
|
| |
llvm-svn: 147847
|
|
|
|
| |
llvm-svn: 147771
|
|
|
|
|
|
| |
"double" rounding.
llvm-svn: 147669
|
|
|
|
|
|
|
| |
While the code took care of disabling the sse42 flag it didn't know
about popcnt. This broke -march=native on penryn.
llvm-svn: 147531
|
|
|
|
|
|
| |
imply sse3. Matches gcc behavior.
llvm-svn: 147370
|
|
|
|
|
|
| |
enabled, but can be disabled separately. Move popcnt intrinsics to popcntintrin.h to match gcc.
llvm-svn: 147340
|
|
|
|
|
|
|
|
|
| |
with sse disabled.
x87 math evaluates everything with 80 bits precision, so we have to set FLT_EVAL_METHOD
to "2".
llvm-svn: 147311
|
|
|
|
| |
llvm-svn: 147262
|
|
|
|
| |
llvm-svn: 147137
|
|
|
|
|
|
| |
actually know about the other OSes on X86-32 besides Linux...
llvm-svn: 147034
|
|
|
|
|
|
| |
But, warn too. // rdar://10597832
llvm-svn: 146904
|
|
|
|
|
|
| |
type.
llvm-svn: 146835
|
|
|
|
|
|
|
|
| |
This is equal to alignof(std::max_align_t) on the platform and equal to the
alignment provided by malloc. (Platform owners please double-check your
platform's value.)
llvm-svn: 146762
|
|
|
|
| |
llvm-svn: 146761
|
|
|
|
| |
llvm-svn: 146631
|
|
|
|
| |
llvm-svn: 146413
|
|
|
|
|
|
|
|
|
|
|
| |
. move compiler-rt to a separate directory so the -L argument only includes compiler-rt (thanks joerg)
. build all clang subdirs
. switches the Minix platform to ELF
. normalizes toolchain invocation
Patch by Ben Gras.
llvm-svn: 146206
|
|
|
|
|
|
|
|
|
| |
and update the Sema testcase with a register that we won't hit for a while
I hope.
Fixes rdar://10510405
llvm-svn: 145671
|
|
|
|
|
|
| |
use byval so we're sure the backend does the right thing. Fixes va_arg with illegal vectors and an obscure ABI mismatch with __m64 vectors.
llvm-svn: 145652
|
|
|
|
| |
llvm-svn: 145606
|
|
|
|
|
|
|
|
| |
* Enabling sse enables mmx.
* Disabling (-mno-mmx) mmx, doesn't disable sse (we got this right already).
* The order in not important. -msse -mno-mmx is the same as -mno-mmx -msse.
llvm-svn: 145194
|
|
|
|
|
|
|
|
| |
aapcs-linux.
Original behaviour of defining wchar_t as signed int has been kept for apcs-gnu as I don't have any spec for this to validate against.
llvm-svn: 145102
|
|
|
|
| |
llvm-svn: 144189
|
|
|
|
| |
llvm-svn: 143775
|
|
|
|
|
|
| |
Ahmed Charles!
llvm-svn: 143569
|
|
|
|
|
|
| |
double, make sure to use the objc_msgSend_fp2ret function which ensures that the return value will be {0, 0} if the receiver is nil.
llvm-svn: 143350
|
|
|
|
| |
llvm-svn: 143312
|
|
|
|
| |
llvm-svn: 143305
|
|
|
|
| |
llvm-svn: 142881
|
|
|
|
| |
llvm-svn: 142879
|
|
|
|
|
|
|
| |
- Size of long double is 16 bytes for both N32 and N64.
- Size of pointers and long is 8 bytes for N64.
llvm-svn: 142705
|
|
|
|
|
|
|
| |
Who could've thought that FreeBSD would ever reach version 10!
Patch from Dimitry Andric.
llvm-svn: 142349
|
|
|
|
|
|
|
|
| |
linker can group them together for performance.
This only has an effect with fairly new binutils (2.21.51 or later). Other ELF targets probably want this as well, but on BSDs binutils is usually old so it doesn't matter.
llvm-svn: 142076
|
|
|
|
|
|
| |
_Atomic types.
llvm-svn: 142002
|
|
|
|
|
|
| |
Patch by Hal Finkel!
llvm-svn: 141772
|
|
|
|
| |
llvm-svn: 141638
|
|
|
|
| |
llvm-svn: 141617
|
|
|
|
|
|
| |
alignment parameter "S<size>" that was introduced in r141599.
llvm-svn: 141601
|