| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
__kmpc_omp_flush() runtime library now has only one argument and is not a vararg
anymore. This update makes the codegen compatible with these changes.
llvm-svn: 230331
|
| |
|
|
|
|
|
|
|
| |
MSVC does not support C99 _Complex.
ICC, however, does support it on windows x86_64, and treats it, for purposes of parameter passing, as equivalent to a struct containing two fields (for the real and imaginary part).
Differential Revision: http://reviews.llvm.org/D7825
llvm-svn: 230315
|
| |
|
|
|
|
|
| |
This reverts commit r230305.
Off to fix another round of missing dependencies on various platforms.
llvm-svn: 230309
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a necessary prerequisite for debugging with modules.
The .pcm files become containers that hold the serialized AST which allows
us to store debug information in the module file that can be shared by all
object files that were built importing the module.
rdar://problem/19104245
This reapplies r230044 with a fixed configure+make build and updated
dependencies. Take 3.
llvm-svn: 230305
|
| |
|
|
|
|
|
|
| |
When generating coverage maps, we were traversing the body as if it
were part of the parent function, but this doesn't make sense since
we're currently counting lambdas as separate functions.
llvm-svn: 230304
|
| |
|
|
|
|
|
| |
No two elements of this array should be the same, but the standard library
may pass the same element as both arguments to this function.
llvm-svn: 230293
|
| |
|
|
|
|
|
|
|
|
| |
llvm.eh.sjlj.setjmp / llvm.eh.sjlj.longjmp, if the backend is known to
support them outside the Exception Handling context. The default
handling in LLVM codegen doesn't work and will create incorrect code.
The ARM backend on the other hand will assert if the intrinsics are
used.
llvm-svn: 230255
|
| |
|
|
|
|
|
|
| |
Somehow this file ended up with a strange hybrid of the old "indent
inside a namespace" style and the new "don't", giving us a wonderful
two-space indent starting halfway through a namespace. Fix it.
llvm-svn: 230244
|
| |
|
|
| |
llvm-svn: 230199
|
| |
|
|
| |
llvm-svn: 230152
|
| |
|
|
|
|
|
|
| |
This reverts commit 230099.
The Linux configure+make build variant still needs some work.
llvm-svn: 230103
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a necessary prerequisite for debugging with modules.
The .pcm files become containers that hold the serialized AST which allows
us to store debug information in the module file that can be shared by all
object files that were built importing the module.
rdar://problem/19104245
This reapplies r230044 with a fixed configure+make build and updated
dependencies. Take 2.
llvm-svn: 230089
|
| |
|
|
|
|
|
|
| |
This reverts commit r230067.
Investigating another batch of problems found by the bots.
llvm-svn: 230073
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a necessary prerequisite for debugging with modules.
The .pcm files become containers that hold the serialized AST which allows
us to store debug information in the module file that can be shared by all
object files that were built importing the module.
rdar://problem/19104245
This reapplies r230044 with a fixed configure+make build and updated
dependencies.
llvm-svn: 230067
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch introduces the -fsanitize=cfi-vptr flag, which enables a control
flow integrity scheme that checks that virtual calls take place using a vptr of
the correct dynamic type. More details in the new docs/ControlFlowIntegrity.rst
file.
It also introduces the -fsanitize=cfi flag, which is currently a synonym for
-fsanitize=cfi-vptr, but will eventually cover all CFI checks implemented
in Clang.
Differential Revision: http://reviews.llvm.org/D7424
llvm-svn: 230055
|
| |
|
|
|
|
|
|
|
| |
This reverts commit r230044 while dealing with buildbot breakage.
Conflicts:
test/Modules/module_container.m
llvm-svn: 230052
|
| |
|
|
|
|
|
|
|
|
|
| |
This is a necessary prerequisite for debugging with modules.
The .pcm files become containers that hold the serialized AST which allows
us to store debug information in the module file that can be shared by all
object files that were built importing the module.
rdar://problem/19104245
llvm-svn: 230044
|
| |
|
|
|
|
|
|
|
| |
For now -funique-section-names is the default, so no change in default behavior.
The total .o size in a build of llvm and clang goes from 241687775 to 230649031
bytes if -fno-unique-section-names is used.
llvm-svn: 230031
|
| |
|
|
| |
llvm-svn: 229915
|
| |
|
|
|
|
| |
Fixes PR22635.
llvm-svn: 229913
|
| |
|
|
| |
llvm-svn: 229902
|
| |
|
|
|
|
|
|
|
| |
Classes can be defined in multiple translation units. This means that
the static constexpr data members should have identical initializers in
all translation units. Implement this by giving the reference temporary
linkonce_odr linkage.
llvm-svn: 229900
|
| |
|
|
|
|
|
|
| |
When tools like llvm-cov show regions, it's much easier to understand
what's happening if the condition of an if shows a counter as well as
the body.
llvm-svn: 229813
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The coverage mapping generation code previously generated a large
number of redundant coverage regions and then tried to merge similar
ones back together. This then relied on some awkward heuristics to
prevent combining of regions that were importantly different but
happened to have the same count. The end result was inefficient and
hard to follow.
Now, we more carefully create the regions we actually want. This makes
it much easier to create regions at precise locations as well as
making the basic approach quite a bit easier to follow. There's still
a fair bit of complexity here dealing with included code and macro
expansions, but that's pretty hard to avoid without significantly
reducing the quality of data we provide.
I had to modify quite a few tests where the source ranges became more
precise or the old ranges seemed to be wrong anyways, and I've added
quite a few new tests since a large number of constructs didn't seem
to be tested before.
llvm-svn: 229748
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D7148
llvm-svn: 229680
|
| |
|
|
|
|
| |
-fdefine-sized-deallocation, and from DefaultSizedDelete to DefineSizedDeallocation.
llvm-svn: 229597
|
| |
|
|
| |
llvm-svn: 229510
|
| |
|
|
|
|
| |
Same functionality, but hoists the vector growth out of the loop.
llvm-svn: 229508
|
| |
|
|
|
|
| |
instead of intrinsics. This should allow the instrinsics to removed from the backend.
llvm-svn: 229474
|
| |
|
|
|
|
| |
that handles both.
llvm-svn: 229469
|
| |
|
|
|
|
| |
This code is unreachable since its already marked for non-custom handling in llvm's IntrinsicsX86.td file.
llvm-svn: 229468
|
| |
|
|
| |
llvm-svn: 229435
|
| |
|
|
|
|
| |
Update for the API change in r229433
llvm-svn: 229434
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
pass and return in registers
This is a patch for PR22563 ( http://llvm.org/bugs/show_bug.cgi?id=22563 ).
We were not correctly unwrapping a single 256-bit AVX vector that was defined as an array of 1 inside a struct.
We would generate a <4 x float> param/return value instead of <8 x float> and lose half of the vector.
Differential Revision: http://reviews.llvm.org/D7614
llvm-svn: 229408
|
| |
|
|
|
|
|
|
|
| |
For #pragma comment(linker, ...) MSVC expects the comment string to be quoted, but for #pragma comment(lib, ...) the compiler itself quotes the library name.
Since this distinction disappears by the time the directive reaches the backend, move quoting for the "lib" version to the frontend.
Differential Revision: http://reviews.llvm.org/D7653
llvm-svn: 229376
|
| |
|
|
|
|
| |
__builtin_ia32_pslldqi256 to vector shuffles the backend recognizes. This is a step towards removing the corresponding intrinsics from the backend.
llvm-svn: 229348
|
| |
|
|
|
|
| |
requiring the macro. NFC; Clang edition.
llvm-svn: 229339
|
| |
|
|
|
|
| |
macro. NFC; Clang edition.
llvm-svn: 229336
|
| |
|
|
| |
llvm-svn: 229329
|
| |
|
|
| |
llvm-svn: 229327
|
| |
|
|
| |
llvm-svn: 229295
|
| |
|
|
| |
llvm-svn: 229291
|
| |
|
|
|
|
|
|
| |
generate weak definitions of the sized operator delete (in terms of unsized operator delete). Instead, provide the funcitonality via a new compiler flag, -fdef-sized-delete.
The current implementation causes link-time ODR violations when the delete symbols are exported into the dynamic table.
llvm-svn: 229241
|
| |
|
|
| |
llvm-svn: 229219
|
| |
|
|
|
|
|
| |
they're given a null pointer as an argument, so we do not need to emit null
checks on their results.
llvm-svn: 229213
|
| |
|
|
|
|
|
| |
We could be a little kinder if we did a compare-exchange loop instead of
an atomic-load/store pair.
llvm-svn: 229212
|
| |
|
|
|
|
|
| |
This reverts commit r229123. It was a red herring, the bug was present
without r229082.
llvm-svn: 229205
|
| |
|
|
|
|
|
|
|
| |
Bools are a little tricky, they are i8 in memory and must be coerced
back to i1 before further operations can be performed on them.
This fixes PR22577.
llvm-svn: 229204
|
| |
|
|
| |
llvm-svn: 229123
|
| |
|
|
| |
llvm-svn: 229092
|