| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
selected CPU model to the enumeration. This parses the string
representation once using a StringSwitch on SetCPU. It returns an error
for strings which are not recognized (yay!). Finally it replaces
ridiculous if-chains with switches that cover all enumerators.
The last change required adding several missing entries to the features
function. These were obvious on inspection. Yay for a pattern that gives
warnings when we miss one.
No new test cases yet, as I want to get the 64-bit errors working first.
I'll then start fleshing out the testing more. Currently I'm primarily
testing on Linux, but I'm hoping check whether there are interesting
differences on darwin before long...
llvm-svn: 140685
|
|
|
|
|
|
|
| |
tried to give these nice doxyments, but if I've gotten any of my history
wrong, please chime in.
llvm-svn: 140684
|
|
|
|
|
|
|
|
|
|
|
|
| |
it an error if a CPU is provided for a target that doesn't implement
logic handling CPU settings, to match the ABI settings. It also removes
the CPU parameter from the getDefaultFeatures method. This parameter was
always filled in with the same value as setCPU was called with, and at
this point every single target implementation that referenced the CPU
within this function has needed to store the CPU via setCPU anyways in
order to implement other interface points.
llvm-svn: 140683
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is *very* much a WIP that I'll be refining over the next several
commits, but I need to get this checkpoint in place for sanity.
This also adds a much more comprehensive test for architecture macros,
which is roughly generated by inspecting the behavior of a trunk build
of GCC. It still requires some massaging, but eventually I'll even check
in the script that generates these so that others can use it to append
more tests for more architectures, etc.
Next up is a bunch of simplification of the Targets.cpp code, followed
by a lot more test cases once we can reject invalid architectures.
llvm-svn: 140673
|
|
|
|
| |
llvm-svn: 140478
|
|
|
|
| |
llvm-svn: 140368
|
|
|
|
| |
llvm-svn: 140367
|
|
|
|
| |
llvm-svn: 140320
|
|
|
|
| |
llvm-svn: 140174
|
|
|
|
|
|
| |
of Mips32 big and little endian derive.
llvm-svn: 140170
|
|
|
|
|
|
|
|
|
| |
IntPtrType,
change __builtin_va_list to from a structure to int[4] (same alignment
and size, but with a simpler representation). Patch by David Meyer!
llvm-svn: 140144
|
|
|
|
|
|
|
|
| |
that this flag must be used only for Microsoft extensions and not emulation; to avoid confusion with the new LangOptions::MicrosoftMode flag.
Many of the code now under LangOptions::MicrosoftExt will eventually be moved under the LangOptions::MicrosoftMode flag.
llvm-svn: 139987
|
|
|
|
| |
llvm-svn: 139789
|
|
|
|
| |
llvm-svn: 139700
|
|
|
|
| |
llvm-svn: 139655
|
|
|
|
| |
llvm-svn: 139654
|
|
|
|
|
|
|
|
|
|
| |
language options. Use that .def file to declare the LangOptions class
and initialize all of its members, eliminating a source of annoying
initialization bugs.
AST serialization changes are next up.
llvm-svn: 139605
|
|
|
|
|
|
|
|
|
|
| |
nits:
- wrong alignment for double (it was 4, but 8 is desired),
- added checks for _REENTRANT define,
- fixed the issue that defines were not tested (because the check for inside #ifdef).
llvm-svn: 138775
|
|
|
|
|
|
| |
the test
llvm-svn: 138607
|
|
|
|
|
|
| |
wrong patch.
llvm-svn: 138489
|
|
|
|
| |
llvm-svn: 138470
|
|
|
|
| |
llvm-svn: 137905
|
|
|
|
| |
llvm-svn: 136892
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
alignment. This fixes cases where the anonymous bitfield is followed by a
non-bitfield member. E.g.,
struct t4
{
int foo : 1;
long : 0;
char bar;
};
Part of rdar://9859156
llvm-svn: 136858
|
|
|
|
| |
llvm-svn: 136581
|
|
|
|
|
|
| |
Fixes rdar://9866494
llvm-svn: 136524
|
|
|
|
|
|
| |
the preferred alignment. Thus, revert r135934, r135935, and r135940.
llvm-svn: 136062
|
|
|
|
|
|
|
|
|
| |
care of
FIXME: Override "preferred align" for double and long long for ARM apcs-gnu ABI.
Also part of rdar://9802874
llvm-svn: 135940
|
|
|
|
|
|
|
|
| |
LLVM.h imports
them into the clang namespace.
llvm-svn: 135852
|
|
|
|
| |
llvm-svn: 135675
|
|
|
|
|
|
| |
(good call!).
llvm-svn: 135510
|
|
|
|
|
|
|
|
| |
arch-pc-win32-macho (e.g., x86_64-pc-win32-macho), which appears to be a false
positive.
rdar://9786307
llvm-svn: 135502
|
|
|
|
| |
llvm-svn: 135170
|
|
|
|
| |
llvm-svn: 135166
|
|
|
|
|
|
|
|
|
| |
-mavx is
specified, 128 avx code is used and we're not sure yet if this the behavior
we want (and if it does, some improvements are needed before relying on it).
llvm-svn: 134939
|
|
|
|
| |
llvm-svn: 134935
|
|
|
|
|
|
|
|
|
|
|
|
| |
should not imply -mno-sse.
Note that because we don't usually touch the MMX registers anyway, all -mno-mmx needs to do is tweak the x86-32 calling convention a little for vectors that look like MMX vectors, and prevent the definition of __MMX__.
clang doesn't actually stop the user from using MMX inline asm operands or MMX builtins in -mno-mmx mode; as a QOI issue, it would be nice to diagnose, but I doubt it really matters much.
<rdar://problem/9694837>
llvm-svn: 134770
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
change.
Previously clang was passing the following feature strings to the ARM backend
when CPU is cortex-a8: +neon,-vfp2,-vfp3
This used to work because -vfp2,-vfp3 had no effect after +neon. Now that the
features are controlled by individual bits (with implied hierarchy), the net
effect is all three features will be turned off.
llvm-svn: 134691
|
|
|
|
|
|
| |
Fixes PR10299 and rdar://9740322
llvm-svn: 134654
|
|
|
|
| |
llvm-svn: 134619
|
|
|
|
| |
llvm-svn: 134490
|
|
|
|
| |
llvm-svn: 134443
|
|
|
|
| |
llvm-svn: 134425
|
|
|
|
| |
llvm-svn: 134422
|
|
|
|
| |
llvm-svn: 134411
|
|
|
|
| |
llvm-svn: 134410
|
|
|
|
| |
llvm-svn: 134399
|
|
|
|
| |
llvm-svn: 134393
|
|
|
|
| |
llvm-svn: 134392
|
|
|
|
|
|
| |
Fixes rdar://9714064
llvm-svn: 134292
|