| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The patch makes it possible to parse CUDA files that contain host/device
functions with identical signatures, but different attributes without
having to physically split source into host-only and device-only parts.
This change is needed in order to parse CUDA header files that have
a lot of name clashes with standard include files.
Gory details are in design doc here: https://goo.gl/EXnymm
Feel free to leave comments there or in this review thread.
This feature is controlled with CC1 option -fcuda-target-overloads
and is disabled by default.
Differential Revision: http://reviews.llvm.org/D12453
llvm-svn: 248295
|
| |
|
|
|
|
|
|
|
|
| |
This makes sure that we emit kernels that were instantiated from the
host code and which would never be explicitly referenced by anything
else on device side.
Differential Revision: http://reviews.llvm.org/D11666
llvm-svn: 248293
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
-Wa,-mhard-float.
Patch by Scott Egerton.
Reviewers: vkalintiris, dsanders
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D12600
llvm-svn: 248276
|
| |
|
|
| |
llvm-svn: 248235
|
| |
|
|
|
|
|
|
|
|
|
| |
Before, clang's internal assembler would reject the inline asm in clang's
Intrin.h. To make sure this doesn't happen for other Intrin.h functions using
__asm__ blocks, add 32-bit and 64-bit codegen tests for Intrin.h.
Sadly, these tests discovered that __readcr3 and __writecr3 have bad
implementations in 64-bit builds. This will have to be fixed in a follow-up.
llvm-svn: 248234
|
| |
|
|
|
|
|
|
|
|
|
| |
This commit fixes an assert that is triggered when optnone is being
added to an IR function that is already marked with minsize and optsize.
rdar://problem/22723716
Differential Revision: http://reviews.llvm.org/D13004
llvm-svn: 248191
|
| |
|
|
| |
llvm-svn: 248185
|
| |
|
|
| |
llvm-svn: 248184
|
| |
|
|
|
|
|
|
| |
This was committed without the code review (http://reviews.llvm.org/D12938) being approved.
This reverts commit r248154.
llvm-svn: 248173
|
| |
|
|
|
|
|
| |
Several inputs may not refer to one output constraint in inline assembler
insertions, clang was failing on assertion on such test case.
llvm-svn: 248158
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, the availability of DSP instructions (ACLE 6.4.7) is handled in
a hand-rolled tricky condition block in lib/Basic/Targets.cpp, with a FIXME:
attached.
http://reviews.llvm.org/D12937 moved the handling of +t2dsp over to
ARMTargetParser.def in LLVM, to be in line with other architecture extensions.
This is the corresponding patch to clang, to clear the FIXME: and update
the tests.
Differential Revision: http://reviews.llvm.org/D12938
llvm-svn: 248154
|
| |
|
|
| |
llvm-svn: 248142
|
| |
|
|
| |
llvm-svn: 248127
|
| |
|
|
|
|
|
|
|
|
| |
128-bit vector integer sign extensions correctly lower to the pmovsx instructions even for debug builds.
This patch removes the builtins and reimplements the _mm_cvtepi*_epi* intrinsics __using builtin_shufflevector (to extract the bottom most subvector) and __builtin_convertvector (to actually perform the sign extension).
Differential Revision: http://reviews.llvm.org/D12835
llvm-svn: 248092
|
| |
|
|
|
|
|
|
|
|
| |
If an import directive was put into wrong context, the error message was obscure,
complaining on misbalanced braces. To get more descriptive messages, annotation
tokens related to modules are processed where they must not be seen.
Differential Revision: http://reviews.llvm.org/D11844
llvm-svn: 248085
|
| |
|
|
|
|
| |
identifiers, and extend existing test to also cover C++.
llvm-svn: 248079
|
| |
|
|
|
|
| |
dealing with forward declarations.
llvm-svn: 248065
|
| |
|
|
|
|
|
|
|
| |
Binary literals predate C++14, but they are listed as a C++14 extension since
this was the first time they were standardized in the language. Move the
warning into a subgroup so it can be selectively disabled when checking for
other C++14 features.
llvm-svn: 248064
|
| |
|
|
| |
llvm-svn: 248051
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Name `Out` refers to the parameter. It is moved into the member `Out`
in ctor-init. Dereferencing null pointer will crash clang, if user
passes '-analyzer-viz-egraph-ubigraph' argument.
Reviewers: zaks.anna, krememek
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D12119
llvm-svn: 248050
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D12973
llvm-svn: 248041
|
| |
|
|
| |
llvm-svn: 248035
|
| |
|
|
|
|
|
|
|
|
| |
LLVM r217812 made it so that clang-cl implicitly creates bigobj files when
needed, independent of this flag. It looks like cl has this flag to produce obj
flags compatible with MSVS 2003's linker by default, something we don't care
about. Since clang-cl always has /bigobj behavior, don't warn that the flag is
unused, just ignore it silently.
llvm-svn: 248034
|
| |
|
|
|
|
| |
This time handle " and - after clang and lld.
llvm-svn: 248033
|
| |
|
|
|
|
|
|
|
| |
The problem this time was the /clang matching the InstalledDir line.
Now we just use regular expressions which are more flexible, if a bit less
readable, than CHECK+CHECK-SAME.
llvm-svn: 248031
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CHECK-LABEL assumes that there is only one occurrence of the match.
The output looks like:
clang version 3.8.0 (trunk 247999)
....
/path/to/build/dir/bin/clang-3.8 ....
If the path contains lld, the second CHECK-LABEL matches it and we fail since
there is no -cc1as between clang and lld.
llvm-svn: 248029
|
| |
|
|
|
|
|
|
| |
Patch by Artem Dergachev!
Differential Revision: http://reviews.llvm.org/D12725
llvm-svn: 248021
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D12916
llvm-svn: 248002
|
| |
|
|
| |
llvm-svn: 248000
|
| |
|
|
| |
llvm-svn: 247997
|
| |
|
|
|
|
| |
"non-clang-driver".
llvm-svn: 247977
|
| |
|
|
|
|
| |
Add parsing, sema analysis and codegen for 'if' clause in 'cancel' directive.
llvm-svn: 247976
|
| |
|
|
|
|
|
|
|
|
| |
Example:
typedef int __td3;
#pragma weak td3 = __td3
Differential Revision: http://reviews.llvm.org/D12904
llvm-svn: 247975
|
| |
|
|
| |
llvm-svn: 247966
|
| |
|
|
| |
llvm-svn: 247959
|
| |
|
|
| |
llvm-svn: 247948
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This change adds support for `__builtin_ms_va_list`, a GCC extension for
variadic `ms_abi` functions. The existing `__builtin_va_list` support is
inadequate for this because `va_list` is defined differently in the Win64
ABI vs. the System V/AMD64 ABI.
Depends on D1622.
Reviewers: rsmith, rnk, rjmccall
CC: cfe-commits
Differential Revision: http://reviews.llvm.org/D1623
llvm-svn: 247941
|
| |
|
|
| |
llvm-svn: 247926
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D12541
llvm-svn: 247924
|
| |
|
|
|
|
|
|
| |
Mingw generally wraps an old copy of msvcrt.dll which has these
personalities, so things should work out, or so I hear. I haven't tested
it.
llvm-svn: 247902
|
| |
|
|
|
|
| |
fixed the tests.
llvm-svn: 247892
|
| |
|
|
| |
llvm-svn: 247883
|
| |
|
|
| |
llvm-svn: 247882
|
| |
|
|
|
|
|
|
|
|
|
|
| |
convert i64 to FP and vice versa
reduceps & reducepd
rangeps & rangepd
all in their 512bit versions
Differential Revision: http://reviews.llvm.org/D11716
llvm-svn: 247881
|
| |
|
|
|
|
|
|
| |
specialized object, track it properly.
Differential Revision: http://reviews.llvm.org/D12889
llvm-svn: 247861
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The analyzer trims unnecessary nodes from the exploded graph before reporting
path diagnostics. However, in some cases it can trim all nodes (including the
error node), leading to an assertion failure (see
https://llvm.org/bugs/show_bug.cgi?id=24184).
This commit addresses the issue by adding two new APIs to CheckerContext to
explicitly create error nodes. Unless the client provides a custom tag, these
APIs tag the node with the checker's tag -- preventing it from being trimmed.
The generateErrorNode() method creates a sink error node, while
generateNonFatalErrorNode() creates an error node for a path that should
continue being explored.
The intent is that one of these two methods should be used whenever a checker
creates an error node.
This commit updates the checkers to use these APIs. These APIs
(unlike addTransition() and generateSink()) do not take an explicit Pred node.
This is because there are not any error nodes in the checkers that were created
with an explicit different than the default (the CheckerContext's Pred node).
It also changes generateSink() to require state and pred nodes (previously
these were optional) to reduce confusion.
Additionally, there were several cases where checkers did check whether a
generated node could be null; we now explicitly check for null in these places.
This commit also includes a test case written by Ying Yi as part of
http://reviews.llvm.org/D12163 (that patch originally addressed this issue but
was reverted because it introduced false positive regressions).
Differential Revision: http://reviews.llvm.org/D12780
llvm-svn: 247859
|
| |
|
|
|
|
|
|
|
| |
This avoids building a fake LLVM IR global variable just to ferry an i32
down into LLVM codegen. It also puts a nail in the coffin of using MS
ABI C++ EH with landingpads, since now we'll assert in the lpad code
when flags are present.
llvm-svn: 247843
|
| |
|
|
|
|
| |
overridden leaf module macros.
llvm-svn: 247765
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ptr in dtor.
Summary:
After destruction, invocation of virtual functions prevented
by poisoning vtable pointer.
Reviewers: eugenis, kcc
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D12712
Fixed testing callback emission order to account for vptr.
Poison vtable in either complete or base dtor, depending on
if virtual bases exist. If virtual bases exist, poison in
complete dtor. Otherwise, poison in base.
Remove commented-out block.
llvm-svn: 247762
|
| |
|
|
|
|
| |
Seems it would be redundant.
llvm-svn: 247761
|