| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
| |
Large CFGs cause `checkForFunctionCall()` to overflow its stack. Break
the recursion by manually managing the call stack instead.
Patch by Vedant Kumar!
llvm-svn: 243039
|
| |
|
|
|
|
|
|
|
|
| |
Split out `hasRecursiveCallInPath()` from `checkForFunctionCall()` to
flatten nesting and clarify the code. This also simplifies a follow-up
patch that refactors the other logic in `checkForFunctionCall()`.
Patch by Vedant Kumar!
llvm-svn: 243038
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, for --rtlib=compiler-rt on GNU systems, we're assuming
that one has libgcc_s and libgcc_eh as low-level libraries, which
when used in conjunction with -lunwind or -lc++abi, breaks that
assumption.
My original fix was wrong, and this patch reverts it to prepare for
a new flag to choose the unwinder/C++ libraries. For the time being,
people can use "-lgcc_s -lgcc_eh" or "-lunwind -lc++abi" or any
combination they need explicitly.
llvm-svn: 243025
|
| |
|
|
|
|
|
|
| |
intrinsics for: add/sub/mul/div/min/max in their FP scalar versions
Differential Revision: http://reviews.llvm.org/D11418
llvm-svn: 243009
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D11420
llvm-svn: 242986
|
| |
|
|
| |
llvm-svn: 242977
|
| |
|
|
|
|
|
|
| |
(PR24215)
The code will still work as it can reference the function via its thunk.
llvm-svn: 242973
|
| |
|
|
|
|
|
|
| |
This makes it possible to use EHPersonality in other parts of CodeGen.
Differential Revision: http://reviews.llvm.org/D11440
llvm-svn: 242971
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MSVC 2013 ships, as part of its STL implementation, a class named
'_Atomic'. This is unfortunate because this keyword is in conflict with
the C11 keyword with the same name. Our solution was to disable this
keyword when targeting MSVC 2013 and reenable it for 2015.
However, this makes it impossible for clang's headers to make use of
_Atomic. This is problematic in the case of libc++ as it makes heavy
use of this keyword.
Let the keywordness of _Atomic float under certain circumstances:
the body of a class named _Atomic, or a class with a base specifier
named _Atomic, will not have the keyword variant of _Atomic for the
duration of the class body. This is sufficient to allow us to correctly
handle _Atomic in the STL while permitting us to use _Atomic as a
keyword everywhere else.
Differential Revision: http://reviews.llvm.org/D11233
llvm-svn: 242970
|
| |
|
|
| |
llvm-svn: 242960
|
| |
|
|
|
|
|
| |
Instead of using CPlusPlus, use Bool. No functionality change is
intended, it just makes things a tad bit more clear.
llvm-svn: 242957
|
| |
|
|
|
|
|
|
| |
Patch by Eugene Zelenko!
Differential Revision: http://reviews.llvm.org/D11401
llvm-svn: 242931
|
| |
|
|
|
|
|
|
| |
Patch by Martell Malone!
http://reviews.llvm.org/D11349
llvm-svn: 242914
|
| |
|
|
| |
llvm-svn: 242906
|
| |
|
|
|
|
|
|
|
|
| |
Now clang should be able to use compiler-rt and libc++ on mingw.
Based on a patch by Martell Malone.
Differential Revision: http://reviews.llvm.org/D11237
llvm-svn: 242905
|
| |
|
|
|
|
|
|
| |
Fixes PR21000.
Patch by Artem Belevich.
llvm-svn: 242904
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Create diagnostic for function concept declaration which is not a
definition.
Create diagnostic for concept declaration which isn't in namespace
scope.
Create associated tests.
Reviewers: rsmith, faisalv, fraggamuffin, hubert.reinterpretcast
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D11027
Patch by Nathan Wilson!
llvm-svn: 242899
|
| |
|
|
|
|
| |
C++ modules. Instead, serialize a list of interesting identifiers and mark those ones out of date on module import. Avoiding the identifier lookups here gives a 20-30% speedup in builds with large numbers of modules. No functionality change intended.
llvm-svn: 242868
|
| |
|
|
|
|
|
|
|
|
|
| |
more modules are added: visit modules depth-first rather than breadth-first.
The visitation is still (approximately) oldest-to-newest, and still guarantees
that a module is visited before anything it imports, so modules that are
imported by others sometimes need to jump to a later position in the visitation
order when more modules are loaded, but independent module trees don't
interfere with each other any more.
llvm-svn: 242863
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Before we skipped that for virtual functions not fully qualified (r81507).
This commit basically reverts this to the older behaviour, which seems
more consistent. We now also correctly consider ill-formed calls to deleted
member functions, which were silently passed before in some cases.
The review contains the whole discussion.
PR: 20268
Differential Revision: http://reviews.llvm.org/D11334
llvm-svn: 242857
|
| |
|
|
|
|
|
|
|
| |
the identifier table. This is redundant, since the TU-scope lookups are also
serialized as part of the TU DeclContext, and wasteful in a number of ways. We
still emit the decls for PCH / preamble builds, since for those we want
identical results, not merely semantically equivalent ones.
llvm-svn: 242855
|
| |
|
|
|
|
|
|
|
|
| |
Before:
for (;; * a = b) {}
After:
for (;; *a = b) {}
llvm-svn: 242849
|
| |
|
|
| |
llvm-svn: 242846
|
| |
|
|
|
|
|
| |
We ended up with the wrong predefine after the recent TargetParser shuffle, and
I accidentally solidified it with a test. This should fix it.
llvm-svn: 242841
|
| |
|
|
| |
llvm-svn: 242836
|
| |
|
|
| |
llvm-svn: 242835
|
| |
|
|
| |
llvm-svn: 242826
|
| |
|
|
| |
llvm-svn: 242824
|
| |
|
|
|
|
|
| |
module cache has been provided, rather than creating one in the current
directory.
llvm-svn: 242819
|
| |
|
|
|
|
| |
Add missing case to appease -Wswitch.
llvm-svn: 242797
|
| |
|
|
|
|
|
|
|
| |
add/div/mul/sub include rounding versions
Differential Revision: http://reviews.llvm.org/D11354
llvm-svn: 242790
|
| |
|
|
|
|
|
| |
for OpenMP 4 target data directive parsing and sema.
This commit is on behalf of Kelvin Li.
llvm-svn: 242785
|
| |
|
|
|
|
|
|
| |
It should now support three mingw distributions running on Windows
and three Linux distributions. The include directories for each are
listed in the comments.
llvm-svn: 242766
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
option "-arm-reserve-r9".
This recommits r242736, which had to be reverted because the llvm-side
change that was committed in r242737 caused the number of subtarget
features to go over the limit of 64.
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/D11319
llvm-svn: 242755
|
| |
|
|
| |
llvm-svn: 242744
|
| |
|
|
|
|
|
|
|
| |
r242737 caused builds to fail with the following error message, so I'm
reverting the clang side change too:
error:Too many subtarget features! Bump MAX_SUBTARGET_FEATURES.
llvm-svn: 242741
|
| |
|
|
|
|
| |
sequence. Discovered by the fuzzer.
llvm-svn: 242738
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
option "-arm-reserve-r9".
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/D11319
llvm-svn: 242736
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clang used to silently ignore __declspec(novtable). It is implemented
now, but leaving the vtable uninitialized does not work when using the
Itanium ABI, where the class layout for complex class hierarchies is
stored in the vtable. It might be possible to honor the novtable
attribute in some simple cases and either report an error or ignore
it in more complex situations, but it’s not clear if that would be
worthwhile. There is also value in having a simple and predictable
behavior, so this changes clang to simply ignore novtable when not using
the Microsoft C++ ABI.
llvm-svn: 242730
|
| |
|
|
|
|
|
| |
The attribute '__declspec(noalias)' communicates that the function only
accesses memory pointed to by its pointer-typed arguments.
llvm-svn: 242728
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D11310
llvm-svn: 242718
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Sometimes we can provide an initializer for static locals, in which case
we sometimes might need to change the type. Changing the type requires
making a new LLVM GlobalVariable, and in this codepath we were
forgetting to transfer the comdat.
Fixes PR23838.
Patch by Ivan Garramona.
llvm-svn: 242704
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D11273
llvm-svn: 242698
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This is the PS4 counterpart to r229376, which quotes the library name if the
name contains space. It was discovered that if a library name contains both
double-quote and space characters, quoting the name might produce unexpected
results, but we are mostly concerned with a Windows host environment, which
does not allow double-quote or slashes in file/folder names.
Differential Revision: http://reviews.llvm.org/D11275
llvm-svn: 242689
|
| |
|
|
|
|
|
| |
Otherwise we'd pick the wrong lane for the resulting shuffle and
miscompile code. PR24187.
llvm-svn: 242678
|
| |
|
|
| |
llvm-svn: 242670
|
| |
|
|
| |
llvm-svn: 242667
|
| |
|
|
|
|
|
|
|
| |
(patch by Alexey Frolov)
Improve Sema checking of 9 existing inline asm constraints (‘x’, ‘Y*’, ‘L’, ‘e’, ‘Z’, ‘s’).
Differential Revision: http://reviews.llvm.org/D10536
llvm-svn: 242665
|
| |
|
|
|
|
|
|
|
| |
GCC allows case-insensitive values for -mcpu, -march and -mtune options.
This patch implements the same behaviour for the -mtune option for the AArch64 target.
Differential Revision: http://reviews.llvm.org/D10563
llvm-svn: 242663
|
| |
|
|
| |
llvm-svn: 242662
|