summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Complain about attempts to use 'protected' visibility on targetsJohn McCall2012-01-291-0/+6
| | | | | | | | 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
* Use defined-at-zero behavior for CLZ/CTZ builtins on PowerPC.Bob Wilson2012-01-281-0/+2
| | | | llvm-svn: 149181
* Make clz/ctz builtins defined for zero on ARM targets. rdar://10732455Bob Wilson2012-01-261-0/+1
| | | | | | | | | | | | | | | | 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
* rename -ccc-host-triple into -targetSebastian Pop2012-01-201-1/+1
| | | | llvm-svn: 148582
* fix for PR11655Anton Yartsev2012-01-171-0/+3
| | | | | | changes i64 alignment from 64 to 32 for powerpc-darwin llvm-svn: 148345
* Remove unreachable code in Clang. (replace with llvm_unreachable where ↵David Blaikie2012-01-171-2/+0
| | | | | | appropriate or when GCC requires it) llvm-svn: 148292
* Revert r148138; it's causing test failures.Eli Friedman2012-01-131-1/+1
| | | | llvm-svn: 148141
* remove assertions in the Hexagon backend specific clang driverSebastian Pop2012-01-131-0/+12
| | | | | | | | | | | | | | | | | | | 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
* rename -ccc-host-triple into -targetSebastian Pop2012-01-131-1/+1
| | | | llvm-svn: 148138
* Fix -mfpu parsing on ARM.Evgeniy Stepanov2012-01-111-1/+1
| | | | | | | | | - 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
* Add definitions for AMD's bobcat (aka btver1)Benjamin Kramer2012-01-101-2/+18
| | | | llvm-svn: 147849
* Enable POPCNT and LZCNT with sse4a.Benjamin Kramer2012-01-101-1/+1
| | | | llvm-svn: 147848
* Factor the repetitive cpu macro definition into a helper function.Benjamin Kramer2012-01-101-45/+23
| | | | llvm-svn: 147847
* Merge AVX/AVX2 into the SSE level.Craig Topper2012-01-091-23/+12
| | | | llvm-svn: 147771
* __FLT_EVAL_METHOD__ should be 1 on NetBSD/i386, since it defaults toJoerg Sonnenberger2012-01-061-1/+15
| | | | | | "double" rounding. llvm-svn: 147669
* Penryn doesn't support sse4.2, don't enable it in the first place.Benjamin Kramer2012-01-041-2/+1
| | | | | | | 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
* Add FMA4 feature flag. Intrinsics coming soon. Also make sse4a feature flag ↵Craig Topper2011-12-301-7/+25
| | | | | | imply sse3. Matches gcc behavior. llvm-svn: 147370
* Add popcnt feature flag to match gcc. This flag is implied when sse42 is ↵Craig Topper2011-12-291-4/+19
| | | | | | enabled, but can be disabled separately. Move popcnt intrinsics to popcntintrin.h to match gcc. llvm-svn: 147340
* Add a target hook for FLT_EVAL_METHOD and use it to set the value on x86 ↵Benjamin Kramer2011-12-281-0/+4
| | | | | | | | | with sse disabled. x87 math evaluates everything with 80 bits precision, so we have to set FLT_EVAL_METHOD to "2". llvm-svn: 147311
* Add BMI, BMI2, and LZCNT feature flags to enable adding intrinsics.Craig Topper2011-12-251-1/+47
| | | | llvm-svn: 147262
* Add support for bitcasts to vector type in Evaluate.Eli Friedman2011-12-221-1/+10
| | | | llvm-svn: 147137
* Bump suitable alignment on darwin ppc 32/64 and x86-32 to 16 bytes. I don'tNick Lewycky2011-12-211-1/+3
| | | | | | actually know about the other OSes on X86-32 besides Linux... llvm-svn: 147034
* objc-arc: bridge casts in non-objc-arc mode are ignord.Fariborz Jahanian2011-12-191-7/+0
| | | | | | But, warn too. // rdar://10597832 llvm-svn: 146904
* Add -mavx2 and -mno-avx2 command line support. Also add core-avx2 processor ↵Craig Topper2011-12-171-2/+27
| | | | | | type. llvm-svn: 146835
* Add the value of "suitably aligned" from the C++11 standard to Basic/TargetInfo.Nick Lewycky2011-12-161-1/+7
| | | | | | | | 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
* Fix 80-column violation and whitespace. No functionality change.Nick Lewycky2011-12-161-2/+3
| | | | llvm-svn: 146761
* gcov-style profiling support for OpenBSD. Patch by Jonathan Gray.Eli Friedman2011-12-151-1/+20
| | | | llvm-svn: 146631
* Hexagon backend supportTony Linthicum2011-12-121-1/+134
| | | | llvm-svn: 146413
* Misc Minix-specific changes to clang:Eli Friedman2011-12-081-0/+1
| | | | | | | | | | | . 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
* Add support for AVX registers to clang inline asm. Add a small testcaseEric Christopher2011-12-021-0/+2
| | | | | | | | | and update the Sema testcase with a register that we won't hit for a while I hope. Fixes rdar://10510405 llvm-svn: 145671
* When we're passing a vector with an illegal type through memory on x86-64, ↵Eli Friedman2011-12-021-1/+5
| | | | | | 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
* Add support for AMD's bulldozer.Benjamin Kramer2011-12-011-0/+26
| | | | llvm-svn: 145606
* Make our handling of MMX x SSE closer to what gcc does:Rafael Espindola2011-11-271-11/+34
| | | | | | | | * 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 compliance - 32-bit wchar_t should be unsigned for both aapcs and ↵James Molloy2011-11-231-0/+5
| | | | | | | | 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
* Define some built-ins macros on mips32 platform, from Simon Atanasyan!Douglas Gregor2011-11-091-0/+4
| | | | llvm-svn: 144189
* Move definitions of SizeType and PtrDiffType to Mips32TargetInfoBase.Akira Hatanaka2011-11-051-5/+5
| | | | llvm-svn: 143775
* Fix various minor issues find via unreachable code warnings, fromDouglas Gregor2011-11-021-0/+2
| | | | | | Ahmed Charles! llvm-svn: 143569
* In x86_64, when calling an Objective-C method that returns a _Complex long ↵Anders Carlsson2011-10-311-0/+3
| | | | | | 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
* Add support for sse4a and enable it for amdfam10 cpu.Roman Divacky2011-10-301-3/+9
| | | | llvm-svn: 143312
* Add support for amdfam10 cpu.Roman Divacky2011-10-301-0/+9
| | | | llvm-svn: 143305
* Remove the Blackfin backend.Dan Gohman2011-10-251-79/+0
| | | | llvm-svn: 142881
* Remove the SystemZ backend.Dan Gohman2011-10-241-63/+0
| | | | llvm-svn: 142879
* Make changes necessary for N32/64 ABI conformance.Akira Hatanaka2011-10-221-9/+25
| | | | | | | - 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
* Use llvm::Triple's methods to parse FreeBSD version numbers.Benjamin Kramer2011-10-181-4/+5
| | | | | | | Who could've thought that FreeBSD would ever reach version 10! Patch from Dimitry Andric. llvm-svn: 142349
* Place static initializers on linux into the ".text.startup" section, so the ↵Benjamin Kramer2011-10-151-0/+4
| | | | | | | | 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
* Misc fixes for atomics. Biggest fix is doing alignment correctly for ↵Eli Friedman2011-10-141-0/+18
| | | | | | _Atomic types. llvm-svn: 142002
* Add target info for Linux on PPC & Sparc.Anton Korobeynikov2011-10-121-0/+6
| | | | | | Patch by Hal Finkel! llvm-svn: 141772
* Allow regparm attribute for PNaCl targetDavid Meyer2011-10-111-0/+1
| | | | llvm-svn: 141638
* Fixed natural stack alignment for Linux x86-32. Thanks Eli.Lang Hames2011-10-111-1/+1
| | | | llvm-svn: 141617
* Update target data strings for ARM and X86 to include the natural stackLang Hames2011-10-101-9/+9
| | | | | | alignment parameter "S<size>" that was introduced in r141599. llvm-svn: 141601
OpenPOWER on IntegriCloud