| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 252646
|
|
|
|
| |
llvm-svn: 252640
|
|
|
|
|
|
|
|
|
| |
is not defined for 32bit mode, but __sparcv9 is. Pass down the correct
-target-cpu flags to the backend, so that instruction restrictions are
applied correctly. Pass down the correct -A flag when not using IAS.
The latter is limited to NetBSD targets in this commit.
llvm-svn: 252545
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D14394
llvm-svn: 252501
|
|
|
|
|
|
|
|
| |
This patch fixes one more thing in MCU psABI support: LongDoubleWidth should be set to 64.
Differential Revision: http://reviews.llvm.org/D14285
llvm-svn: 252156
|
|
|
|
|
|
|
|
|
| |
we can't load that file due to a configuration mismatch, and implicit module
building is disabled, and the user turns off the error-by-default warning for
that situation, then fall back to textual inclusion for the module rather than
giving an error if any of its headers are included.
llvm-svn: 252114
|
|
|
|
|
|
|
|
|
|
|
| |
This patch implements two things in front-end for MCU psABI support:
1) "long double type is the same as double."
2) "New predefined C/C++ pre-processor symbols: iamcu and iamcu__.
Differential Revision: http://reviews.llvm.org/D14205
llvm-svn: 251786
|
|
|
|
| |
llvm-svn: 251710
|
|
|
|
|
|
|
| |
This sets the mostly expected Darwin default ABI options for these two
platforms. Active changes from these defaults for watchOS are in a later patch.
llvm-svn: 251708
|
|
|
|
| |
llvm-svn: 251707
|
|
|
|
|
|
|
|
|
|
| |
GCC uses the x87DoubleExtended model for long doubles, and passes them
indirectly by address through function calls.
Also replace the existing mingw-long-double assembly emitting test with
an IR-level test.
llvm-svn: 251567
|
|
|
|
|
|
| |
Patch by Richard.
llvm-svn: 251214
|
|
|
|
| |
llvm-svn: 251124
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, __weak was silently accepted and ignored in MRC mode.
That makes this a potentially source-breaking change that we have to
roll out cautiously. Accordingly, for the time being, actual support
for __weak references in MRC is experimental, and the compiler will
reject attempts to actually form such references. The intent is to
eventually enable the feature by default in all non-GC modes.
(It is, of course, incompatible with ObjC GC's interpretation of
__weak.)
If you like, you can enable this feature with
-Xclang -fobjc-weak
but like any -Xclang option, this option may be removed at any point,
e.g. if/when it is eventually enabled by default.
This patch also enables the use of the ARC __unsafe_unretained qualifier
in MRC. Unlike __weak, this is being enabled immediately. Since
variables are essentially __unsafe_unretained by default in MRC,
the only practical uses are (1) communication and (2) changing the
default behavior of by-value block capture.
As an implementation matter, this means that the ObjC ownership
qualifiers may appear in any ObjC language mode, and so this patch
removes a number of checks for getLangOpts().ObjCAutoRefCount
that were guarding the processing of these qualifiers. I don't
expect this to be a significant drain on performance; it may even
be faster to just check for these qualifiers directly on a type
(since it's probably in a register anyway) than to do N dependent
loads to grab the LangOptions.
rdar://9674298
llvm-svn: 251041
|
|
|
|
|
|
|
| |
Add -fcoroutines flag (just for -cc1 for now) to enable the feature. Early
indications are that this will be part of -std=c++1z.
llvm-svn: 250980
|
|
|
|
|
|
| |
eventually creating a StringRef. NFC
llvm-svn: 250902
|
|
|
|
|
|
|
|
|
| |
The logic for parsing FP capabilities to set __ARM_FP was mistakenly removing
the Half-Precision capability when handling fp-only-sp resulting in a value
of 0x4. Section 6.5.1 of ACLE states that for such FP architectures the value
should be 0x6
llvm-svn: 250888
|
|
|
|
| |
llvm-svn: 250881
|
|
|
|
| |
llvm-svn: 250880
|
|
|
|
|
|
| |
positive and casting to unsigned. Since we know the string starts with a digit it couldn't be negative anyway. NFCI
llvm-svn: 250879
|
|
|
|
| |
llvm-svn: 250878
|
|
|
|
| |
llvm-svn: 250876
|
|
|
|
|
|
|
|
|
|
| |
Summary: It breaks the build for the ASTMatchers
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D13893
llvm-svn: 250827
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Replace empty bodies of default constructors and destructors with '= default'.
Reviewers: bkramer, klimek
Subscribers: klimek, alexfh, cfe-commits
Differential Revision: http://reviews.llvm.org/D13890
llvm-svn: 250822
|
|
|
|
| |
llvm-svn: 250764
|
|
|
|
|
|
| |
parameters of a pointer and length. NFC
llvm-svn: 250681
|
|
|
|
|
|
| |
pointer and length. NFC". Hopefully this time the bots will be happy.
llvm-svn: 250678
|
|
|
|
|
|
| |
pointer and length. NFC"
llvm-svn: 250677
|
|
|
|
|
|
| |
length. NFC
llvm-svn: 250676
|
|
|
|
| |
llvm-svn: 250647
|
|
|
|
|
|
| |
for loops worked with arrays.
llvm-svn: 250646
|
|
|
|
| |
llvm-svn: 250645
|
|
|
|
| |
llvm-svn: 250621
|
|
|
|
| |
llvm-svn: 250617
|
|
|
|
|
|
|
|
|
| |
If you increase the number of diags of a particular type by one more than the
number available you get the nice assert message. If you do it by two more
than available you get the old non-helpful message. Combining the two makes
sense I think.
llvm-svn: 250546
|
|
|
|
| |
llvm-svn: 250498
|
|
|
|
|
|
|
| |
The core C library has already been ported over to aarch64 successfully,
meaning there is no reason to hold this change back.
llvm-svn: 250416
|
|
|
|
|
|
| |
defines for the same. And add the flags to correct CPU names.
llvm-svn: 250368
|
|
|
|
|
|
|
|
| |
X86 feature controls. NFC
This simplifies the constructor initialization list and makes it less likely a feature flag will be forgotten there.
llvm-svn: 250348
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a more principled version of what I did earlier. Path
normalization is generally a good thing, but may break users in strange
environments, e. g. using lots of symlinks. Let the user choose and
default it to on.
This also changes adding a duplicated file into returning an error if
the file contents are different instead of an assertion failure.
Differential Revision: http://reviews.llvm.org/D13658
llvm-svn: 250060
|
|
|
|
|
|
|
| |
Actually the only special path we have to handle is ./foo, the rest is
tricky to get right so do the same thing as the existing YAML vfs here.
llvm-svn: 250036
|
|
|
|
|
|
|
|
|
| |
This can fail badly if we're overlaying a real file system and there are
symlinks there. Just keep the path as-is for now.
This essentially reverts r249830.
llvm-svn: 250021
|
|
|
|
|
|
| |
TargetInfo class.
llvm-svn: 249872
|
|
|
|
|
|
| |
change the set of features.
llvm-svn: 249871
|
|
|
|
|
|
|
|
| |
classes
Hopefully fixes the MSVC build. NFC intended.
llvm-svn: 249832
|
|
|
|
|
|
| |
This simplifies the code and gets us support for .. for free.
llvm-svn: 249830
|
|
|
|
| |
llvm-svn: 249751
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rationale :
// sse3
__m128d test_mm_addsub_pd(__m128d A, __m128d B) {
return _mm_addsub_pd(A, B);
}
// mmx
void shift(__m64 a, __m64 b, int c) {
_mm_slli_pi16(a, c);
_mm_slli_pi32(a, c);
_mm_slli_si64(a, c);
_mm_srli_pi16(a, c);
_mm_srli_pi32(a, c);
_mm_srli_si64(a, c);
_mm_srai_pi16(a, c);
_mm_srai_pi32(a, c);
}
clang -msse3 -mno-mmx file.c -c
For this code we should be able to explicitly turn off MMX
without affecting the compilation of the SSE3 function and then
diagnose and error on compiling the MMX function.
This is a preparatory patch to the actual diagnosis code which is
coming in a future patch. This sets us up to have the correct information
where we need it and verifies that it's being emitted for the backend
to handle.
llvm-svn: 249733
|
|
|
|
|
|
|
|
| |
that we can build up an accurate set of features rather than relying on
TargetInfo initialization via handleTargetFeatures to munge the list
of features.
llvm-svn: 249732
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Simplifying the convoluted CPU handling in ARMTargetInfo.
The default base CPU on ARM is ARM7TDMI, arch ARMv4T, and
ARMTargetInfo had a different one. This wasn't visible from
Clang because the driver selects the defaults and sets the
Arch/CPU features directly, but the constructor depended
on the CPU, which was never used.
This patch corrects the mistake and greatly simplifies
how CPU is dealt with (essentially by removing the duplicated
DefaultCPU field).
Tests updated.
llvm-svn: 249699
|