| Commit message (Collapse) | Author | Age | Files | Lines | 
| ... |  | 
| | 
| 
| 
| 
| 
|  | 
supported on AArch64.
llvm-svn: 243417
 | 
| | 
| 
| 
| 
| 
| 
|  | 
This path add the aarch64 __builtin_thread_pointer support.  It will be
lowered to llvm.aarch64.thread.pointer.
llvm-svn: 243413
 | 
| | 
| 
| 
| 
| 
|  | 
Differential Revision: http://reviews.llvm.org/D11526
llvm-svn: 243409
 | 
| | 
| 
| 
| 
| 
|  | 
http://reviews.llvm.org/D11526
llvm-svn: 243406
 | 
| | 
| 
| 
| 
| 
|  | 
http://reviews.llvm.org/D11526
llvm-svn: 243402
 | 
| | 
| 
| 
| 
| 
|  | 
Change-Id: I2ebc40f77af75ec6b43ce8364d6d5a1d29988bd6
Phabricator: http://reviews.llvm.org/D11501
llvm-svn: 243398
 | 
| | 
| 
| 
| 
| 
|  | 
http://reviews.llvm.org/D11526
llvm-svn: 243394
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
super message expression.
rdar://21427916
llvm-svn: 243387
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
namespace
per the coding standard. Thanks Craig Tooper for noticing this.
llvm-svn: 243381
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This was calling FD->hasBody(), meaning "Does the function that this
decl refers to have a body?", rather than
FD->doesThisDeclarationHaveABody(), meaning "Is this decl a
non-deleted definition?".
We might want to consider renaming these APIs :/
llvm-svn: 243360
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
This patch allows Clang to pass on -Wa,-mfpu, -Wa,-mhwdiv and
-Wa,-mcpu to the integrated assembler (via target-features), but
-march is still not being passed, but validated.
In case the command line has both -mxxx and -Wa,-mxxx, we warn
that the naked one will not be used in assembler mode.
llvm-svn: 243353
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
To be able to handle -Wa, options in the assembler (ClangAs), we need to
make the handling of options based on the value of the options, not direct
Arguments from the list, since the list is immutable.
No functional change in this patch, but this allows validating of -Wa,-mfpu
and friends in the same way we validate -mfpu and friends, *just* for the
assembler.
llvm-svn: 243352
 | 
| | 
| 
| 
| 
| 
| 
|  | 
For designated indices use the max array size type bitwidth, not the bitwidth of the index value itself.
rdar://21942503
llvm-svn: 243343
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
When ‘#pragma clang loop vectorize(assume_safety)’ was specified on a loop other loop hints were lost. The problem is that CGLoopInfo attaches metadata differently than EmitCondBrHints in CGStmt. For do-loops CGLoopInfo attaches metadata to the br in the body block and for while and for loops, the inc block. EmitCondBrHints on the other hand always attaches data to the br in the cond block. When specifying assume_safety CGLoopInfo emits an empty llvm.loop metadata shadowing the metadata in the cond block. Loop transformations like rotate and unswitch would then eliminate the cond block and its non-empty metadata.
This patch unifies both approaches for adding metadata and modifies the existing safety tests to include non-assume_safety loop hints.
llvm-svn: 243315
 | 
| | 
| 
| 
| 
| 
| 
|  | 
After r243308, the front-end is responsible for checking the target OS and
passing reserve-x18 if the target is Darwin.
llvm-svn: 243310
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
The 3DNOW/PRFCHW cpu targets define both the PREFETCHW (set cache line modified) and PREFETCH (set cache line exclusive) instructions but only the _m_prefetchw (PREFETCHW) intrinsic is included in the header. This patch adds the missing _m_prefetch intrinsic.
I'm basing this off AMD documentation - the intel docs on the support for PREFETCHW isn't clear whether Silvermont/Broadwell properly support PREFETCH but given that the intrinsic implementation is a default __builtin_prefetch call, it is safe whatever.
Fix for PR23648
Differential Revision: http://reviews.llvm.org/D11338
llvm-svn: 243305
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
Also rename XCore (the toolchain) to XCoreToolChain since XCore is
also a namespace for its tools.
Differential Revision: http://reviews.llvm.org/D10609
llvm-svn: 243279
 | 
| | 
| 
| 
| 
| 
|  | 
if TLS is enabled in OpenMP code generation. 
llvm-svn: 243277
 | 
| | 
| 
| 
| 
| 
|  | 
Patch by Vedant Kumar!
llvm-svn: 243275
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Currently trigger to select hard-float linker is only based of -gnueabihf
appearing in target triplet, but we should also select it when hardfloat
is requested via cmdline.
Patch by Khem Raj.
llvm-svn: 243262
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
We had multiple bugs here:
- We didn't support multiple optimization options in one argument.
  e.g. -O2y-
- We didn't correctly expand -O[12dx] to their respective options.
- We treated -O1 as clang -O1 instead of clang -Os.
- We treated -Ox as clang -O3 instead of clang -O2.  In fact, cl's -Ox
  option is *less* powerful than cl's -O2 option despite -Ox described
  as "Full Optimization".
This fixes PR24003.
llvm-svn: 243261
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
isWhitespaceExceptNL. If that's wasn't bad enough, we have an identically 
named function in Basic/CharInfo.h.
While at it, remove unnecessary includes, .str() calls and #ifdef.
llvm-svn: 243260
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
chain and fix the cases where it fires.
 * Handle the __va_list_tag as a predefined decl. Previously we failed to merge
   sometimes it because it's not visible to name lookup. (In passing, remove
   redundant __va_list_tag typedefs that we were creating for some ABIs. These
   didn't affect the mangling or representation of the type.)
 * For Decls derived from Redeclarable that are not in fact redeclarable
   (implicit params, function params, ObjC type parameters), remove them from
   the list of expected redeclarable decls.
llvm-svn: 243259
 | 
| | 
| 
| 
| 
| 
|  | 
We used to define them to 1, we should have defined them to 100.
llvm-svn: 243255
 | 
| | 
| 
| 
| 
| 
|  | 
These cases should now be impossible as of r243243.
llvm-svn: 243252
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
There is currently no support in MSVC for using i128 as an integer
literal suffix.  In fact, there appears to be no evidence that they have
ever supported this feature in any of their compilers.  This was an over
generalization of their actual feature and is a nasty source of bugs.
Why is it a source of bugs?  Because most code in clang expects that
evaluation of an integer constant expression won't give them something
that 'long long' can't represent.  Instead of providing a meaningful
feature, i128 gives us cute ways of exploding the compiler.
llvm-svn: 243243
 | 
| | 
| 
| 
| 
| 
|  | 
No functionality change intended, just a tidy-up.
llvm-svn: 243242
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Don't use the spelling of the alignment attribute to determine whether
or not an alignment amount makes sense.
llvm-svn: 243233
 | 
| | 
| 
| 
| 
| 
| 
|  | 
RecordLayoutBuilder is an inaccruate name because it does not build all
records.  It only builds layouts for targets using the Itanium C++ ABI.
llvm-svn: 243225
 | 
| | 
| 
| 
|  | 
llvm-svn: 243222
 | 
| | 
| 
| 
| 
| 
|  | 
No functional change intended.
llvm-svn: 243221
 | 
| | 
| 
| 
|  | 
llvm-svn: 243218
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
This lets us pass functors (and lambdas) without void * tricks. On the
downside we can't pass CXXRecordDecl's Find* members (which are now type
safe) to lookupInBases directly, but a lambda trampoline is a small
price to pay. No functionality change intended.
llvm-svn: 243217
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Avoids the awkward passing of an opaque void *UserData argument. No
functional change intended.
llvm-svn: 243213
 | 
| | 
| 
| 
|  | 
llvm-svn: 243207
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
__builtin_frame_address requires its argument to be a constant
expression which already implies that it cannot have undefined behavior.
However, we used EmitScalarExpr to emit the argument causing UBSan to
try to check for overflow.
Instead, use the constant expression emission system.
This fixes PR24256.
llvm-svn: 243206
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
This fixes the clang crash reported in PR24000.
Differential Revision:	http://reviews.llvm.org/D11341
llvm-svn: 243196
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
option "-aarch64-reserve-x18".
This change is needed since backend options do not make it to the backend
when doing LTO and are not capable of changing the behavior of code-gen
passes on a per-function basis.
rdar://problem/21529937
Differential Revision: http://reviews.llvm.org/D11462
llvm-svn: 243185
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
Change `getOrCreateLimitedType()` to return a `DICompositeType` and
remove the casts from its callers.  Inside, I've strengthened a `cast`
from `DICompositeTypeBase`, but the casts in the callers already prove
that this is safe.  There should be no functionality change here.
llvm-svn: 243155
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Generic_GCC::GCCVersion
similar to the way Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple works.
llvm-svn: 243153
 | 
| | 
| 
| 
| 
| 
|  | 
Thanks to Richard Smith for pointing this out!
llvm-svn: 243144
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
These changes are for Android x86_64 targets to be compatible with current Android g++.
https://llvm.org/bugs/show_bug.cgi?id=23897
Use 'g' and 'Cg' for "long double" and "long double _Complex" mangled type names.
Differential Revision: http://reviews.llvm.org/D11466
llvm-svn: 243133
 | 
| | 
| 
| 
| 
| 
| 
|  | 
Change `StaticDataMemberCache` to store references to `DIDerivedType`
directly, and remove now-unnecessary casts from the accessors.
llvm-svn: 243129
 | 
| | 
| 
| 
|  | 
llvm-svn: 243125
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
implementations.
The outer nullability is transferred from the declaration to the implementation so including them is redundant.
The inner ones are not transferred so they are kept to match the exact types. When we transfer the inner ones as well
adding them in the implementation will become redundant and we should strip those as well.
rdar://21737451
llvm-svn: 243119
 | 
| | 
| 
| 
| 
|  | 
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 243115
 | 
| | 
| 
| 
| 
| 
|  | 
also silence a -Wreturn-type warning. NFC intended.
llvm-svn: 243109
 | 
| | 
| 
| 
| 
| 
|  | 
declaration are marked final.
llvm-svn: 243107
 | 
| | 
| 
| 
| 
| 
|  | 
directory structure. Try to make mingw toolchain resilient to such surprises.
llvm-svn: 243105
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Address Richard Smith comments: remove the trailing seperator from the Arch
variable, implement six mingw_* trees under tools/clangtest/Driver/Inputs
and merge linux and Windows tests into a universal test that uses these trees.
llvm-svn: 243098
 |