| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 266065
|
|
|
|
| |
llvm-svn: 266064
|
|
|
|
|
|
|
|
|
| |
The _gp* family of symbols is defined as an offset in .got, and it is
not at all clear what should happen when .got is not defined.
This will allow some simplifications on how these symbols are handled.
llvm-svn: 266063
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
They broke the msan bot.
Original message:
Add __atomic_* lowering to AtomicExpandPass.
AtomicExpandPass can now lower atomic load, atomic store, atomicrmw,and
cmpxchg instructions to __atomic_* library calls, when the target
doesn't support atomics of a given size.
This is the first step towards moving all atomic lowering from clang
into llvm. When all is done, the behavior of __sync_* builtins,
__atomic_* builtins, and C11 atomics will be unified.
Previously LLVM would pass everything through to the ISelLowering
code. There, unsupported atomic instructions would turn into __sync_*
library calls. Because of that behavior, Clang currently avoids emitting
llvm IR atomic instructions when this would happen, and emits __atomic_*
library functions itself, in the frontend.
This change makes LLVM able to emit __atomic_* libcalls, and thus will
eventually allow clang to depend on LLVM to do the right thing.
It is advantageous to do the new lowering to atomic libcalls in
AtomicExpandPass, before ISel time, because it's important that all
atomic operations for a given size either lower to __atomic_*
libcalls (which may use locks), or native instructions which won't. No
mixing and matching.
At the moment, this code is enabled only for SPARC, as a
demonstration. The next commit will expand support to all of the other
targets.
Differential Revision: http://reviews.llvm.org/D18200
llvm-svn: 266062
|
|
|
|
|
|
|
|
| |
This reverts commit r266055.
ps4-buildslave2 is highlighting a failure.
llvm-svn: 266061
|
|
|
|
|
|
|
|
|
|
|
|
| |
On z13, if eliminateFrameIndex() chooses LE (and not LEY), immediately
transform that LE to LDE32 to avoid partial register dependencies.
LEY should be generally preferred for big offsets over an expansion
into LAY + LDE32.
Reviewed by Ulrich Weigand.
llvm-svn: 266060
|
|
|
|
| |
llvm-svn: 266059
|
|
|
|
|
|
|
| |
the process info packet is slow, and sometimes it does not arrive on time when run on the android
emulator.
llvm-svn: 266058
|
|
|
|
| |
llvm-svn: 266057
|
|
|
|
|
|
|
|
|
|
| |
The linear clause declares one or more list items to be private to a SIMD lane and to have a linear relationship with respect to the iteration space of a loop.
'linear' '(' <linear-list> [ ':' <linear-step> ] ')'
When a linear-step expression is specified in a linear clause it must be
either a constant integer expression or an integer-typed parameter that is specified in a uniform clause on the directive.
The special this pointer can be used as if was one of the arguments to the function in any of the linear, aligned, or uniform clauses.
llvm-svn: 266056
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Alias 'jic $reg, 0' to 'jrc $reg' and 'jialc $reg, 0' to 'jalrc $reg' like
binutils.
Reviewers: dsanders
Differential Revision: http://reviews.llvm.org/D18856
llvm-svn: 266055
|
|
|
|
| |
llvm-svn: 266054
|
|
|
|
|
|
|
|
|
|
| |
Collect the error domain contexts (formerly in the ErrorDomainCtxMap)
for each statement in the new InvalidContext member variable. While
this commit is basically a [NFC] it is a first step to make hoisting
sound by allowing a more fine grained record of invalid contexts,
e.g., here on statement level.
llvm-svn: 266053
|
|
|
|
|
|
|
|
|
| |
The aligned clause declares that the object to which each list item points is aligned to the number of bytes expressed in the optional parameter of the aligned clause.
'aligned' '(' <argument-list> [ ':' <alignment> ] ')'
The optional parameter of the aligned clause, alignment, must be a constant positive integer expression. If no optional parameter is specified, implementation-defined default alignments for SIMD instructions on the target platforms are assumed.
The special this pointer can be used as if was one of the arguments to the function in any of the linear, aligned, or uniform clauses.
llvm-svn: 266052
|
|
|
|
| |
llvm-svn: 266051
|
|
|
|
|
|
|
|
|
|
| |
was lost as part of the SystemLifetimeManager work"
This change breaks python unit tests.
This reverts commit 266033.
llvm-svn: 266050
|
|
|
|
| |
llvm-svn: 266049
|
|
|
|
|
|
| |
clang
llvm-svn: 266048
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is intended to be shared by the ThinLTOCodeGenerator.
Note that there is a change in the way the verifier is run, previously
it was ran as a Pass on the merged module during internalization.
While now the verifier is called explicitely on the merged module
outside of the internalize "pass pipeline".
What remains strange in the API is the fact that `DisableVerify` in
the API does not disable this initial verifier.
Differential Revision: http://reviews.llvm.org/D19000
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266047
|
|
|
|
|
|
|
| |
LTOCodeGenerator (NFC)
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266046
|
|
|
|
| |
llvm-svn: 266045
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
code in fix-its
Summary:
The Fix-Its for the added test cases were before:
-void F11(const unsigned int /*version*/);
+void F11(unsigned int int /*version*/);
-void F12(const bool b = true);
+void F12(_Bool true);
Reviewers: fowles, hokein, sbenza, alexfh
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D18993
llvm-svn: 266044
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The crash was reproduced by the included test case. It was initially
found through a crash of clang-tidy's misc-misplaced-widening-cast
check.
Reviewers: klimek, alexfh
Subscribers: cfe-commits, klimek
Differential Revision: http://reviews.llvm.org/D18991
llvm-svn: 266043
|
|
|
|
|
|
|
|
| |
The structure definitions are not provided, but we perform a sizeof operation of
them which causes a build failure. Include `asm/ptrace.h` to get the structure
definitions.
llvm-svn: 266042
|
|
|
|
|
|
|
|
|
| |
OpenMP 4.0 defines clause 'uniform' in 'declare simd' directive:
'uniform' '(' <argument-list> ')'
The uniform clause declares one or more arguments to have an invariant value for all concurrent invocations of the function in the execution of a single SIMD loop.
The special this pointer can be used as if was one of the arguments to the function in any of the linear, aligned, or uniform clauses.
llvm-svn: 266041
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Resolve Bug 27046 (https://llvm.org/bugs/show_bug.cgi?id=27046).
The PPCInstrInfo::optimizeCompareInstr function could create a new use of
CR0, even if CR0 were previously dead. This patch marks CR0 live if a use of
CR0 is created.
Author: Tom Jablin (tjablin)
Reviewers: hfinkel kbarton cycheng
http://reviews.llvm.org/D18884
llvm-svn: 266040
|
|
|
|
|
|
|
|
|
| |
The GNU profiling support indicates that the interface is `_mcount` rather than
`mcount`. Conditionalise the behaviour according to the `-meabi gnu` flag.
Resolves PR27311
llvm-svn: 266039
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the ELFv2 ABI, we are not required to save all CR fields. If only one
nonvolatile CR field is clobbered, use mfocrf instead of mfcr to
selectively save the field, because mfocrf has short latency compares to
mfcr.
Thanks Nemanja's invaluable hint!
Reviewers: nemanjai tjablin hfinkel kbarton
http://reviews.llvm.org/D17749
llvm-svn: 266038
|
|
|
|
|
|
| |
The test changes are just because of the symbol order.
llvm-svn: 266037
|
|
|
|
|
|
|
| |
The missing end was also confusing the '{', '}' matching heuristics in
vim.
llvm-svn: 266036
|
|
|
|
| |
llvm-svn: 266035
|
|
|
|
|
|
|
| |
Apparently std::numeric_limits<unsigned>::max() isn't constexpr
everywhere yet.
llvm-svn: 266034
|
|
|
|
|
|
| |
as part of the SystemLifetimeManager work
llvm-svn: 266033
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`allocsize` is a function attribute that allows users to request that
LLVM treat arbitrary functions as allocation functions.
This patch makes LLVM accept the `allocsize` attribute, and makes
`@llvm.objectsize` recognize said attribute.
The review for this was split into two patches for ease of reviewing:
D18974 and D14933. As promised on the revisions, I'm landing both
patches as a single commit.
Differential Revision: http://reviews.llvm.org/D14933
llvm-svn: 266032
|
|
|
|
|
|
|
| |
Don't emit a path note marking the return site if the return statement does not
have a valid location. This fixes an assertion failure I introduced in r265839.
llvm-svn: 266031
|
|
|
|
| |
llvm-svn: 266030
|
|
|
|
|
|
| |
registers.
llvm-svn: 266029
|
|
|
|
|
|
| |
phis.
llvm-svn: 266028
|
|
|
|
|
|
| |
operations.
llvm-svn: 266027
|
|
|
|
| |
llvm-svn: 266026
|
|
|
|
|
|
|
|
|
| |
Although repairing definitions is not mandatory for correctness (only
phis would be impacted because of the RPO traversal), not repairing
might go against the cost model. Therefore, just repair when it is
possible.
llvm-svn: 266025
|
|
|
|
|
|
|
| |
It may be convenient to know where we are about to insert some code, for
instance to save and then restore this insertion.
llvm-svn: 266024
|
|
|
|
|
|
|
|
| |
*" before using it so we don't crash if a variable's type can't be realized which happens more often recently due to -gmodules.
<rdar://problem/25612626>
llvm-svn: 266023
|
|
|
|
|
|
| |
r237193 fix handling of alloca size / align in MergeFunctions, but only tested one and didn't follow FunctionComparator::cmpOperations's usual comparison pattern. It also didn't update Instruction.cpp:haveSameSpecialState which I'll do separately.
llvm-svn: 266022
|
|
|
|
|
|
| |
register bank assignments.
llvm-svn: 266021
|
|
|
|
|
|
|
|
|
|
| |
Use the MachineFunctionProperty mechanism to indicate whether the
liveness info is accurate instead of a bool flag on MRI.
Keeps the MRI accessor function for convenience. NFC
Differential Revision: http://reviews.llvm.org/D18767
llvm-svn: 266020
|
|
|
|
| |
llvm-svn: 266019
|
|
|
|
|
|
|
|
|
| |
This is more robust to changes in the link ordering.
Differential Revision: http://reviews.llvm.org/D18946
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 266018
|
|
|
|
|
|
| |
improvements.
llvm-svn: 266017
|
|
|
|
|
|
| |
Avoid -Wunused-variable
llvm-svn: 266016
|