| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
When emitting RTTI for EH only, we would mark the locally defined (LinkOnceODR)
RTTI definition as dllimport, which is incorrect. Ensure that if we are
generating the type information for EH only, it is marked as LinkOnceODR and we
do not make it dllimport.
llvm-svn: 288721
|
|
|
|
| |
llvm-svn: 288629
|
|
|
|
|
|
|
|
| |
When a C++ record is marked with dllexport mark both the typeinfo and the
typeinfo name as being exported. Handle dllimport as the inverse. This applies
to the itanium environment and not the MinGW environment.
llvm-svn: 288546
|
|
|
|
|
|
|
| |
to do this unconditionally, given that the indices will always be small
constant integers anyway.
llvm-svn: 288440
|
|
|
|
|
|
|
|
|
|
|
| |
have the same size.
This fixes an asset that is triggered when an address of a boolean
variable is passed to __builtin_arm_ldrex or __builtin_arm_strex.
rdar://problem/29269006
llvm-svn: 288404
|
|
|
|
|
|
| |
register
llvm-svn: 288394
|
|
|
|
|
|
| |
that will be filled in when the initializer is set.
llvm-svn: 288313
|
|
|
|
|
|
| |
and catching as noexcept.
llvm-svn: 288305
|
|
|
|
|
|
| |
here.
llvm-svn: 288304
|
|
|
|
| |
llvm-svn: 288295
|
|
|
|
|
|
|
|
| |
This patch is to implement sema and parsing for 'teams distribute parallel for simd' pragma.
Differential Revision: https://reviews.llvm.org/D27084
llvm-svn: 288294
|
|
|
|
| |
llvm-svn: 288289
|
|
|
|
|
|
|
|
|
|
| |
performed at the CodeGenModule level.
Would be NFC except we now also use a different uniquing structure so
that we don't get spurious conflicts if you ask for both an NSString
and a CFString for the same content (which is possible with builtins).
llvm-svn: 288287
|
|
|
|
| |
llvm-svn: 288272
|
|
|
|
| |
llvm-svn: 288269
|
|
|
|
|
|
|
| |
declaration should find the right type, assuming it's supported
evenly across all our hosts.
llvm-svn: 288231
|
|
|
|
|
|
|
| |
Not strictly NFC because I did change the order of emission of
some global constants, but it shouldn't make any difference.
llvm-svn: 288229
|
|
|
|
| |
llvm-svn: 288227
|
|
|
|
|
|
|
|
| |
Other AST consumers can deserialize interesting decls that we might
codegen, but they won't make it to the final object file and can trigger
assertions in debug information generation after finalization.
llvm-svn: 288221
|
|
|
|
| |
llvm-svn: 288203
|
|
|
|
|
|
|
|
|
|
| |
Avoid using shortcut for const qualified non-constant address space
aggregate variables while generating them on the stack such that
the alloca object is used instead of a global variable containing
initializer.
Review: https://reviews.llvm.org/D27109
llvm-svn: 288163
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D27157
llvm-svn: 288083
|
|
|
|
| |
llvm-svn: 288081
|
|
|
|
| |
llvm-svn: 288080
|
|
|
|
|
|
|
| |
move the member classes up to top level to allow forward
declarations to name them. NFC.
llvm-svn: 288079
|
|
|
|
|
|
|
|
|
|
|
|
| |
This solves PR23715 in a way that is compatible with LTO.
MSVC supports jumping to source-level labels and between inline asm
blocks, but we don't.
Also revert the old solution, r255201, which was to mark these calls as
noduplicate.
llvm-svn: 288059
|
|
|
|
|
|
|
| |
No functionality change. Found by clang-tidy's
performance-unnecessary-value-param.
llvm-svn: 287894
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
We don't need a side table in ASTContext to hold CXXDefaultArgExprs. The
important part of building the CXXDefaultArgExprs was to ODR use the
default argument expressions, not to make AST nodes. Refactor the code
to only check the default argument, and remove the side table in
ASTContext which wasn't being serialized.
Fixes PR31121
Reviewers: thakis, rsmith, majnemer
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D27007
llvm-svn: 287774
|
|
|
|
| |
llvm-svn: 287754
|
|
|
|
| |
llvm-svn: 287691
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, TargetLibraryInfoWrapperPass is inserted by PMBuilder.
However, some passes are inserted manually before the PMBuilder
ones - if any of them happens to use TargetLibraryInfoWrapperPass,
it'll get a default-constructed one, with an unknown target triple.
This happens to InstrProfiling in D21736, breaking it.
Differential Revision: http://reviews.llvm.org/D21737
llvm-svn: 287688
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
under the Microsoft C++ ABI.
This is needed because whether the constructor is deleted can control whether
we pass structs by value directly.
To fix this properly we probably want a more direct way for CodeGen to ask
whether the constructor was deleted.
Fixes PR31049.
Differential Revision: https://reviews.llvm.org/D26822
llvm-svn: 287600
|
|
|
|
| |
llvm-svn: 287458
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This makes it explicit that ownership is taken. Also replace all `new`
with make_unique<> at call sites.
Reviewers: anemet
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D26884
llvm-svn: 287449
|
|
|
|
|
|
|
| |
I've adopted this in most of the places it makes sense, but v-tables
and CGObjCMac will need a second pass.
llvm-svn: 287437
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D26863
llvm-svn: 287390
|
|
|
|
|
|
| |
We have to specify a name and description for the timers and groups now.
llvm-svn: 287371
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
StartFunction enters a release cleanup for ns_consumed arguments in
ARC, so we need to balance that somehow. We could teach StartFunction
that it's emitting a delegating function, so that the cleanup is
unnecessary, but that would be invasive and somewhat fraught. We could
balance the consumed argument with an extra retain, but clearing the
original variable should be easier to optimize and avoid some extra work
at -O0. And there shouldn't be any difference as long as nothing else
uses the argument, which should always be true for the places we emit
delegate arguments.
Fixes PR 27887.
llvm-svn: 287291
|
|
|
|
|
|
|
|
|
|
|
|
| |
for macos.
Reviewers: tra
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D26777
llvm-svn: 287287
|
|
|
|
|
|
|
| |
If 'omp cancel' construct is used in a worksharing construct it may
cause hanging of the software in case if reduction clause is used. Patch fixes this problem by avoiding extra reduction processing for branches that were canceled.
llvm-svn: 287227
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
this is to prevent a situation when a pointer is invalid or null,
but we get to reading from vtable before we can check that
(possibly causing a segfault without a good diagnostics).
Reviewers: pcc
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D26559
llvm-svn: 287181
|
|
|
|
|
|
| |
This was a latent bug that was recently uncovered by r286400.
llvm-svn: 287134
|
|
|
|
| |
llvm-svn: 287112
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Objective-C Blocks
Instead of always displaying the mangled name, try to do better
and get something closer to regular functions.
Recommit r287039 (that was reverted in r287039) with a tweak to
be more generic, and test fixes!
Differential Revision: https://reviews.llvm.org/D26522
llvm-svn: 287085
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
r286944 introduced bugs detected by ASAN as use-after-return.
r287025 have not fixed them completely.
This reverts commit r286944 and r287025.
Reviewers: ABataev
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D26720
llvm-svn: 287069
|
|
|
|
|
|
|
|
| |
Objective-C Blocks"
This reverts commit r287039, tests are broken.
llvm-svn: 287043
|
|
|
|
|
|
|
|
|
|
|
| |
Objective-C Blocks
Instead of always displaying the mangled name, try to do better
and get something closer to regular functions.
Differential Revision: https://reviews.llvm.org/D26522
llvm-svn: 287039
|
|
|
|
|
|
| |
Fixed possible use of stack variable after deletion.
llvm-svn: 287025
|
|
|
|
| |
llvm-svn: 286994
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch implements all the overloads for vec_xl_be and vec_xst_be. On BE,
they behaves exactly the same with vec_xl and vec_xst, therefore they are
simply implemented by defining a matching macro. On LE, they are implemented
by defining new builtins and intrinsics. For int/float/long long/double, it
is just a load (lxvw4x/lxvd2x) or store(stxvw4x/stxvd2x). For char/char/short,
we also need some extra shuffling before or after call the builtins to get the
desired BE order. For int128, simply call vec_xl or vec_xst.
llvm-svn: 286971
|