| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds support for the MCU psABI in a way different from r251223 and r251224,
basically reverting most of these two patches. The problem with the approach
taken in r251223/4 is that it only handled libcalls that originated from the backend.
However, the mid-end also inserts quite a few libcalls and assumes these use the
platform's default calling convention.
The previous patch tried to insert inregs when necessary both in the FE and,
somewhat hackily, in the CG. Instead, we now define a new default calling convention
for the MCU, which doesn't use inreg marking at all, similarly to what x86-64 does.
Differential Revision: http://reviews.llvm.org/D15055
llvm-svn: 256495
|
| |
|
|
| |
llvm-svn: 256393
|
| |
|
|
|
|
| |
OpenMP 4.5 adds 'depend(sink:vec)' in 'ordered' directive for doacross loop synchronization. Patch adds parsing and semantic analysis for this clause.
llvm-svn: 256330
|
| |
|
|
| |
llvm-svn: 256239
|
| |
|
|
|
|
| |
OpenMP 4.5 adds 'depend(sink:vec)' in 'ordered' directive for doacross loop synchronization. Patch adds parsing and semantic analysis for this clause.
llvm-svn: 256238
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The /Brepro flag controls whether or not the compiler should embed
timestamps into the object file. Object files which do not embed
timestamps are not suitable for incremental linking but are suitable for
hermetic build systems and staged self-hosts of clang.
A normal clang spelling of this flag has been added,
-mincremental-linker-compatible.
llvm-svn: 256204
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using blocks, a byref structure is created to represent the
closure. The "byref.layout" field of this structure is an i8*. However,
some 'inline' layouts are represented as i64's, not i8*'s.
Prior to r246985 we cast the i64 'inline' layout to an i8* before
assigning it into the byref structure. This patch brings the cast back
and adds a regression test.
The original version of this patch was too invasive. This version only adds the
cast to BuildByrefLayout.
Differential Revision: http://reviews.llvm.org/D15674
rdar://23713871
llvm-svn: 256190
|
| |
|
|
|
|
| |
This reverts commit r256185. It breaks CodeGenObjC/fragile-arc.m.
llvm-svn: 256186
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using blocks, a byref structure is created to represent the
closure. The "byref.layout" field of this structure is an i8*. However,
some 'inline' layouts are represented as i64's, not i8*'s.
Prior to r246985 we cast the i64 'inline' layout to an i8* before
assigning it into the byref structure. This patch brings the cast back
and adds a regression test.
rdar://23713871
llvm-svn: 256185
|
| |
|
|
|
|
|
|
|
| |
Reapplies r256063, except instead of frugally re-using an LLVM enum,
we define a Clang enum, to avoid exposing too much LLVM interface.
Differential Revision: http://reviews.llvm.org/D15650
llvm-svn: 256078
|
| |
|
|
| |
llvm-svn: 256066
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D15650
llvm-svn: 256063
|
| |
|
|
| |
llvm-svn: 256023
|
| |
|
|
| |
llvm-svn: 256012
|
| |
|
|
|
|
|
| |
#pragma omp parallel needs an implicit barrier that is currently done by an explicit call to __kmpc_barrier. However, the runtime already ensures a barrier in __kmpc_fork_call which currently leads to two barriers per region per thread.
Differential Revision: http://reviews.llvm.org/D15561
llvm-svn: 255992
|
| |
|
|
|
|
| |
OpenMP codegen tried to emit the code for its constructs even if it was detected as a dead-code. Added checks to ensure that the code is emitted if the code is not dead.
llvm-svn: 255990
|
| |
|
|
|
|
|
|
| |
directive.
OpenMP 4.5 adds 'depend(source)' clause for 'ordered' directive to support cross-iteration dependence. Patch adds parsing and semantic analysis for this construct.
llvm-svn: 255986
|
| |
|
|
|
|
|
|
| |
This sets the maximum entry count among all functions in the program to the module using module flags. This allows the optimizer to use this information.
Differential Revision: http://reviews.llvm.org/D15163
llvm-svn: 255918
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
C++ emits vtables for classes that have key function present in the
current TU. While we compile CUDA the fact that key function was found
in this TU does not mean that we are going to generate code for it. E.g.
vtable for a class with host-only methods should not (and can not) be
generated on device side, because we'll never generate code for them
during device-side compilation.
This patch adds an extra CUDA-specific check during key method computation
and filters out potential key methods that are not suitable for this side
of CUDA compilation.
When we codegen vtable, entries for unsuitable methods are set to null.
Differential Revision: http://reviews.llvm.org/D15309
llvm-svn: 255911
|
| |
|
|
|
|
|
|
| |
Also set nounwind attribute.
rdar://problem/9001553
llvm-svn: 255860
|
| |
|
|
| |
llvm-svn: 255843
|
| |
|
|
| |
llvm-svn: 255840
|
| |
|
|
|
|
| |
types in EmitCompare to eliminate some later explicit casts. NFC.
llvm-svn: 255753
|
| |
|
|
|
|
| |
This is what debuggers expect. Words towards fixing PR21528.
llvm-svn: 255744
|
| |
|
|
|
|
|
|
| |
32bit"
I forgot to initialize RecoverFP.
llvm-svn: 255731
|
| |
|
|
|
|
|
|
| |
32bit"
This reverts commit r255710.
llvm-svn: 255728
|
| |
|
|
| |
llvm-svn: 255710
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clang-side cross-DSO CFI.
* Adds a command line flag -f[no-]sanitize-cfi-cross-dso.
* Links a runtime library when enabled.
* Emits __cfi_slowpath calls is bitset test fails.
* Emits extra hash-based bitsets for external CFI checks.
* Sets a module flag to enable __cfi_check generation during LTO.
This mode does not yet support diagnostics.
llvm-svn: 255694
|
| |
|
|
|
|
|
|
|
|
|
| |
This updates clang to use bundle operands to associate an invoke with
the funclet which it is contained within.
Depends on D15517.
Differential Revision: http://reviews.llvm.org/D15518
llvm-svn: 255675
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clang doesn’t support a use of “this” pointer inside inline asm.
When I tried to compile a class or a struct (see example) with an inline asm that contains "this" pointer.
Clang returns with an error.
This patch fixes that.
error: expected unqualified-id
For example:
'''
struct A {
void f() {
__asm mov eax, this
// error: expected unqualified-id
}
};
'''
Differential Revision: http://reviews.llvm.org/D15115
llvm-svn: 255645
|
| |
|
|
|
|
| |
OpenMP 4.5 defines 'hint' clause for 'critical' directive. Patch adds codegen for this clause.
llvm-svn: 255639
|
| |
|
|
|
|
| |
OpenMP 4.5 adds 'hint' clause to critical directive. Patch adds parsing/semantic analysis for this clause.
llvm-svn: 255625
|
| |
|
|
| |
llvm-svn: 255572
|
| |
|
|
| |
llvm-svn: 255552
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We'd like to remove support for terminatepad from LLVM. To do this, we
need to move Clang off of it first. The intent behind terminatepad was
to carefully model exception specifications for the MSVC personality.
However, we don't support exception specifications for the MSVC
personality and neither does MSVC. Instead, MSVC supports
all-or-nothing exception specifications. We can model this limited
usage using cleanuppads which call std::terminate.
Differential Revision: http://reviews.llvm.org/D15478
llvm-svn: 255521
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch enables soft float support for ppc32 architecture and fixes
the ABI for variadic functions. This is the first in a set of patches
for soft float support in LLVM.
Patch by Strahinja Petrovic.
Differential Revision: http://reviews.llvm.org/D13351
llvm-svn: 255515
|
| |
|
|
|
|
| |
dist_schedule
llvm-svn: 255498
|
| |
|
|
|
|
| |
Debug info for statement under 'atomic' construct must point exactly to that statement, not the directive itself.
llvm-svn: 255487
|
| |
|
|
|
|
|
|
|
|
| |
Depends on D15139.
Reviewers: rnk
Differential Revision: http://reviews.llvm.org/D15140
llvm-svn: 255423
|
| |
|
|
|
|
|
|
| |
Reason: The testcase fails in many architectures.
Differential Revision: http://reviews.llvm.org/D15163
llvm-svn: 255416
|
| |
|
|
|
|
|
|
|
| |
This sets the maximum entry count among all functions in the program to the
module using module flags. This allows the optimizer to use this information.
Differential Revision: http://reviews.llvm.org/D15163
llvm-svn: 255397
|
| |
|
|
| |
llvm-svn: 255314
|
| |
|
|
|
|
|
|
|
|
| |
nested) for all the platforms except PS4.
For PS4, generate explicit import for anonymous namespaces and mark it by DW_AT_artificial attribute.
Differential Revision: http://reviews.llvm.org/D12624
llvm-svn: 255281
|
| |
|
|
|
|
|
|
| |
Duplicating it can lead to labels being defined twice.
Differential revision: http://reviews.llvm.org/D15399
llvm-svn: 255201
|
| |
|
|
|
|
|
|
|
|
| |
implicitly-concatenated string literals. When looking for the start of a token
in the inline assembly, start from the end of the previous token, not the start
of the entire string.
Patch by Yunlian Jiang!
llvm-svn: 255198
|
| |
|
|
|
|
|
|
| |
its clauses excluding dist_schedule."
It causes memory leak. Some tests in test/OpenMP would fail.
llvm-svn: 255094
|
| |
|
|
|
|
| |
OpenMP 4.5 adds directives 'taskloop' and 'taskloop simd'. These directives support clause 'num_tasks'. Patch adds parsing/semantic analysis for this clause.
llvm-svn: 255008
|
| |
|
|
|
|
| |
excluding dist_schedule.
llvm-svn: 255001
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Adds new option -fthinlto-index=<file> to invoke the LTO pipeline
along with function importing via clang using the supplied function
summary index file. This supports invoking the parallel ThinLTO
backend processes in a distributed build environment via clang.
Additionally, this causes the module linker to be invoked on the bitcode
file being compiled to perform any necessary promotion and renaming of
locals that are exported via the function summary index file.
Add a couple tests that confirm we get expected errors when we try to
use the new option on a file that isn't bitcode, or specify an invalid
index file. The tests also confirm that we trigger the expected function
import pass.
Depends on D15024
Reviewers: joker.eph, dexonsmith
Subscribers: joker.eph, davidxl, cfe-commits
Differential Revision: http://reviews.llvm.org/D15025
llvm-svn: 254927
|
| |
|
|
|
|
| |
OpenMP 4.5 adds 'taksloop' and 'taskloop simd' directives, which have 'grainsize' clause. Patch adds parsing/sema analysis of this clause.
llvm-svn: 254903
|