| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 234599
|
| |
|
|
| |
llvm-svn: 234598
|
| |
|
|
| |
llvm-svn: 234597
|
| |
|
|
|
|
|
|
| |
The misc-static-assert check will not warn on the followings:
assert("Some message" == NULL);
assert(NULL == "Some message");
llvm-svn: 234596
|
| |
|
|
| |
llvm-svn: 234595
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Using SchedAliases is convenient and works well for latency and resource
lookup for instructions. However, this creates an entry in
AArch64WriteLatencyTable with a WriteResourceID of 0, breaking any
SchedReadAdvance since the lookup will fail.
http://reviews.llvm.org/D8043
Patch by Dave Estes <cestes@codeaurora.org>!
llvm-svn: 234594
|
| |
|
|
|
|
|
| |
http://reviews.llvm.org/D8043
Patch by Dave Estes <cestes@codeaurora.org>!
llvm-svn: 234593
|
| |
|
|
| |
llvm-svn: 234592
|
| |
|
|
| |
llvm-svn: 234591
|
| |
|
|
| |
llvm-svn: 234590
|
| |
|
|
|
|
|
|
| |
Cache NumEntries locally, it's only used in an assert and using the member
variable prevents the compiler from eliminating the tombstone check for types
with trivial destructors. No functionality change intended.
llvm-svn: 234589
|
| |
|
|
|
|
|
|
|
| |
This includes implementation of PLT0 entry.
For testing, libfn.so binary is added since
there's no way to link shared objects with lld yet.
llvm-svn: 234588
|
| |
|
|
|
|
| |
No functional change intended.
llvm-svn: 234587
|
| |
|
|
|
|
| |
No functional change intended.
llvm-svn: 234586
|
| |
|
|
|
|
|
| |
Use consistent naming: commonly used generator methods
don't have 'Entry' suffices.
llvm-svn: 234585
|
| |
|
|
|
|
|
| |
Move the check lines below the code lines and change the indentation from 8
spaces to 2 spaces.
llvm-svn: 234584
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Emit a code for reduction clause. Next code should be emitted for reductions:
static kmp_critical_name lock = { 0 };
void reduce_func(void *lhs[<n>], void *rhs[<n>]) {
...
*(Type<i> *)lhs[i] = RedOp<i>(*(Type<i> *)lhs[i], *(Type<i> *)rhs[i]);
...
}
... void *RedList[<n>] = {&<RHSExprs>[0], ..., &<RHSExprs>[<n> - 1]};
switch (__kmpc_reduce{_nowait}(<loc>, <gtid>, <n>, sizeof(RedList), RedList, reduce_func, &<lock>)) {
case 1:
...
<LHSExprs>[i] = RedOp<i>(*<LHSExprs>[i], *<RHSExprs>[i]);
...
__kmpc_end_reduce{_nowait}(<loc>, <gtid>, &<lock>);
break;
case 2:
...
Atomic(<LHSExprs>[i] = RedOp<i>(*<LHSExprs>[i], *<RHSExprs>[i]));
...
break;
default:
;
}
Reduction variables are a kind of a private variables, they have private copies, but initial values are chosen in accordance with the reduction operation.
Differential Revision: http://reviews.llvm.org/D8915
llvm-svn: 234583
|
| |
|
|
| |
llvm-svn: 234582
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now that TailRecursionElimination has been fixed with r222354, the
threshold on size for lifetime marker insertion can be removed. This
only affects named temporary though, as the patch for unnamed temporaries
is still in progress.
My previous commit (r222993) was not handling debuginfo correctly, but
this could only be seen with some asan tests. Basically, lifetime markers
are just instrumentation for the compiler's usage and should not affect
debug information; however, the cleanup infrastructure was assuming it
contained only destructors, i.e. actual code to be executed, and was
setting the breakpoint for the end of the function to the closing '}', and
not the return statement, in order to show some destructors have been
called when leaving the function. This is wrong when the cleanups are only
lifetime markers, and this is now fixed.
llvm-svn: 234581
|
| |
|
|
|
|
| |
Handle veneers only for call-like relocations.
llvm-svn: 234580
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Fixed:
- stack frame size warning.
- msse3 flag unused warning.
- GoTsanRuntimeCheck dependency warning reported by cmake.
Change by Sagar Thakur
Reviewed in http://reviews.llvm.org/D8963
llvm-svn: 234579
|
| |
|
|
| |
llvm-svn: 234578
|
| |
|
|
| |
llvm-svn: 234577
|
| |
|
|
| |
llvm-svn: 234576
|
| |
|
|
| |
llvm-svn: 234575
|
| |
|
|
| |
llvm-svn: 234574
|
| |
|
|
| |
llvm-svn: 234573
|
| |
|
|
| |
llvm-svn: 234572
|
| |
|
|
| |
llvm-svn: 234571
|
| |
|
|
| |
llvm-svn: 234570
|
| |
|
|
| |
llvm-svn: 234568
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Some optimizations such as jump threading and loop unswitching can negatively
affect performance when applied to divergent branches. The divergence analysis
added in this patch conservatively estimates which branches in a GPU program
can diverge. This information can then help LLVM to run certain optimizations
selectively.
Test Plan: test/Analysis/DivergenceAnalysis/NVPTX/diverge.ll
Reviewers: resistor, hfinkel, eliben, meheff, jholewinski
Subscribers: broune, bjarke.roune, madhur13490, tstellarAMD, dberlin, echristo, jholewinski, llvm-commits
Differential Revision: http://reviews.llvm.org/D8576
llvm-svn: 234567
|
| |
|
|
|
|
|
|
|
|
| |
The IPToState table must be emitted after we have generated labels for
all functions in the table. Don't rely on the order of the list of
globals. Instead, utilize WinEHFuncInfo to tell us how many catch
handlers we expect to outline. Once we know we've visited all the catch
handlers, emit the cppxdata.
llvm-svn: 234566
|
| |
|
|
|
|
|
|
| |
Given something like 'int({}, 1)', we would try to emit a diagnostic
regarding the excess element in the scalar initializer. However, we
assumed that the initializer list had an element in it.
llvm-svn: 234565
|
| |
|
|
|
|
|
| |
Refactored API of OpenMPRuntime for compatibility with combined directives.
Differential Revision: http://reviews.llvm.org/D8859
llvm-svn: 234564
|
| |
|
|
| |
llvm-svn: 234563
|
| |
|
|
|
|
| |
modifier isn't supported by MS C++ compiler.
llvm-svn: 234562
|
| |
|
|
|
|
|
|
|
|
| |
When we have an instruction for this (and, thus, don't generate a runtime
call), we need to custom type legalize this (in a trivial way, just as we do
for fp_to_sint).
Fixes PR23173.
llvm-svn: 234561
|
| |
|
|
| |
llvm-svn: 234560
|
| |
|
|
|
|
|
|
| |
functions which can properly treat Windows and POSIX errors.
http://reviews.llvm.org/D8939
llvm-svn: 234559
|
| |
|
|
| |
llvm-svn: 234558
|
| |
|
|
| |
llvm-svn: 234557
|
| |
|
|
| |
llvm-svn: 234556
|
| |
|
|
| |
llvm-svn: 234555
|
| |
|
|
|
|
|
|
| |
for the inferior process when handing them down for the actual launch
This covers most of rdar://20490076, but leaves one corner case still open - namely the case where we try to have arguments of the form foo\ bar (unquoted, but slashed) go through argdumper
llvm-svn: 234554
|
| |
|
|
|
|
| |
Hopefully this time the build won't be broken.
llvm-svn: 234553
|
| |
|
|
|
|
|
| |
In other ELF ports, we don't use the macro. This patch removes the
macro for consistency and readability.
llvm-svn: 234552
|
| |
|
|
|
|
|
|
| |
Because no one except Hexagon uses the header, we don't need to maintain
the header in the common directory. Also de-template the function for
readability.
llvm-svn: 234551
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For the most common ones (such as fadd), we already did the promotion.
Do the same thing for all the others.
Currently, we'll just crash/assert on all these operations, as
there's no hardware or libcall support whatsoever.
f16 (half) is specified as an interchange - not arithmetic - format,
and is expected to be promoted to single-precision for arithmetic
operations.
While there, teach the legalizer about promoting some of the (mostly
floating-point) operations that we never needed before.
Differential Revision: http://reviews.llvm.org/D8648
See related discussion on the thread for: http://reviews.llvm.org/D8755
llvm-svn: 234550
|
| |
|
|
| |
llvm-svn: 234549
|