| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 217212
|
| |
|
|
|
|
|
|
|
| |
TrimmedGraph::popNextReportGraph
(just cleaning up unique_ptr stuff by finding interesting 'reset' calls
at the moment)
llvm-svn: 217210
|
| |
|
|
| |
llvm-svn: 217209
|
| |
|
|
| |
llvm-svn: 217208
|
| |
|
|
| |
llvm-svn: 217206
|
| |
|
|
| |
llvm-svn: 217205
|
| |
|
|
|
|
| |
This is a follow-up to r216841.
llvm-svn: 217204
|
| |
|
|
|
|
|
|
| |
Originally, self reference checking made a double pass over some expressions
to handle reference type checking. Now, allow HandleValue to also check
reference types, and fallback to Visit for unhandled expressions.
llvm-svn: 217203
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D5183
llvm-svn: 217200
|
| |
|
|
|
|
|
|
|
|
| |
Naked functions don't have prologues or epilogues, so doing
codegen for anything other than inline assembly would be completely
hit or miss.
Differential Revision: http://reviews.llvm.org/D5183
llvm-svn: 217199
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For naked functions with parameters, Clang would still emit stores in the prologue
that would clobber the stack, because LLVM doesn't set up a stack frame. (This
shows up in -O0 compiles, because the stores are optimized away otherwise.)
For example:
__attribute__((naked)) int f(int x) {
asm("movl $42, %eax");
asm("retl");
}
Would result in:
_Z1fi:
movl 12(%esp), %eax
movl %eax, (%esp) <--- Oops.
movl $42, %eax
retl
Differential Revision: http://reviews.llvm.org/D5183
llvm-svn: 217198
|
| |
|
|
|
|
|
|
|
| |
before retrying the initialization to produce diagnostics. Otherwise, we may
fail to produce any diagnostics, and silently produce invalid AST in a -Asserts
build. Also add a note to this codepath to make it more clear why we were
trying to create a temporary.
llvm-svn: 217197
|
| |
|
|
| |
llvm-svn: 217196
|
| |
|
|
| |
llvm-svn: 217195
|
| |
|
|
| |
llvm-svn: 217192
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If control falls off the end of a function after an __asm block, MSVC
assumes that the inline assembly filled the EAX and possibly EDX
registers with an appropriate return value. This functionality is used
in inline functions returning 64-bit integers in system headers, so we
need some amount of compatibility.
This is implemented in Clang by adding extra output constraints to every
inline asm block, and storing the resulting output registers into the
return value slot. If we see an asm block somewhere in the function
body, we emit a normal epilogue instead of marking the end of the
function with a return type unreachable.
Normal returns in functions not using this functionality will overwrite
the return value slot, and in most cases LLVM should be able to
eliminate the dead stores.
Fixes PR17201.
Reviewed By: majnemer
Differential Revision: http://reviews.llvm.org/D5177
llvm-svn: 217187
|
| |
|
|
|
|
|
|
|
|
| |
Before:
not. and . or . not_eq = 1;
After:
not.and.or.not_eq = 1;
llvm-svn: 217179
|
| |
|
|
|
|
|
| |
Now that LLVM emits correct .pdata and .xdata for inline functions, we
can reenable this.
llvm-svn: 217178
|
| |
|
|
| |
llvm-svn: 217174
|
| |
|
|
| |
llvm-svn: 217168
|
| |
|
|
|
|
| |
but statically owned hierarchy with a protected base dtor and final classes to satisfy -Wnon-virtual-dtor
llvm-svn: 217167
|
| |
|
|
| |
llvm-svn: 217161
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This allows us to easily find them in the backend after the aggregates have
been lowered to other types. This is important on big-endian targets using
the N32/N64 ABI's since these ABI's must shift small structures into the
upper bits of the register.
Reviewers: atanasyan
Reviewed By: atanasyan
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5005
llvm-svn: 217160
|
| |
|
|
|
|
|
|
|
|
| |
Before:
someObject.catch ();
After:
someObject.catch();
llvm-svn: 217158
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
var stuff = {
// comment for update
update : false,
// comment for update
modules : false,
// comment for update
tasks : false
};
After:
var stuff = {
// comment for update
update : false,
// comment for update
modules : false,
// comment for update
tasks : false
};
llvm-svn: 217157
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Refactor VariantMatcher::MatcherOps to reduce the amount of generated code.
- Make some code type agnostic and move it to the cpp file.
- Return a DynTypedMatcher instead of storing the object in MatcherOps.
This change reduces the number of symbols generated in Registry.cpp by
~19%, the object byte size by ~17% and the compilation time (in non-release mode) by ~20%.
Reviewers: klimek
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D5124
llvm-svn: 217152
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MipsABIInfo::classifyReturnType() for O32
Summary:
They are returned indirectly which causes the other arguments to move to
the next argument slot.
With this, utils/ABITest does not discover any failing cases in the first
500 attempts on big/little endian for O32. Previously some of these failed.
Also tested N32/N64 little endian (big endian has other known issues) with
no issues.
Reviewers: atanasyan
Reviewed By: atanasyan
Subscribers: atanasyan, cfe-commits
Differential Revision: http://reviews.llvm.org/D4811
llvm-svn: 217147
|
| |
|
|
|
|
|
|
| |
r216662 changed the default ABI for 32-bit ARM targets to be "aapcs"
when no environment is given in the triple, however NetBSD requires it
to be "apcs-gnu".
llvm-svn: 217141
|
| |
|
|
|
|
| |
Patch by Jacques Pienaar.
llvm-svn: 217135
|
| |
|
|
| |
llvm-svn: 217104
|
| |
|
|
|
|
|
| |
merging of namespace aliases across modules and improves source fidelity.
Incidentally also fixes PR20816.
llvm-svn: 217103
|
| |
|
|
|
|
| |
them to exclude tests with large stack usage from UBSan bootstrap.
llvm-svn: 217064
|
| |
|
|
|
|
| |
This bug was reported by UBSan.
llvm-svn: 217059
|
| |
|
|
|
|
| |
Added cast operations to the table of vector operations. Supported status 'no' means that there are no tests in the Clang test suite for the given cast.
llvm-svn: 217055
|
| |
|
|
| |
llvm-svn: 217050
|
| |
|
|
| |
llvm-svn: 217044
|
| |
|
|
|
|
|
|
|
|
|
| |
In line with SemaOpenMP.cpp, etc. CUDA-specific semantic analysis code goes into
a separate file. This is in anticipation of adding extra functionality here in
the near future.
No change in functionality.
Review: http://reviews.llvm.org/D5160
llvm-svn: 217043
|
| |
|
|
|
|
|
|
|
|
|
| |
Using the intrinsic allows the SelectionDAGBuilder to turn this call
into the FABS Node and also the intrinsic is something the vectorizer knows
how to vectorize.
This patch also sets the readnone attribute on this call, which should
enable additional optmizations.
llvm-svn: 217042
|
| |
|
|
|
|
|
| |
Replaced 'jit' link component with 'mcjit'.
Updated the required libraries.
llvm-svn: 217033
|
| |
|
|
|
|
|
|
|
|
|
| |
template instantiation.
This is hoisted from clang-tidy where it's used everywhere. The implementation
is not particularly efficient right now, but there is no easy fix for that.
Differential Revision: http://reviews.llvm.org/D5085
llvm-svn: 217029
|
| |
|
|
|
|
| |
No change in functionality.
llvm-svn: 217025
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This permits to add a space after closing parenthesis of a C-style cast.
Defaults to false to preserve old behavior.
Fixes llvm.org/PR19982.
Before:
(int)i;
After:
(int) i;
Patch by Marek Kurdej.
llvm-svn: 217022
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Scoped lockable objects (mutex guards) are implemented as if it is a
lock itself that is acquired upon construction and unlocked upon
destruction. As it if course needs to be used to actually lock down
something else (a mutex), it keeps track of this knowledge through its
underlying mutex field in its FactEntry.
The problem with this approach is that this only allows us to lock down
a single mutex, so extend the code to use a vector of underlying
mutexes. This, however, makes the code a bit more complex than
necessary, so subclass FactEntry into LockableFactEntry and
ScopedLockableFactEntry and move all the logic that differs between
regular locks and scoped lockables into member functions.
llvm-svn: 217016
|
| |
|
|
|
|
|
|
|
|
| |
determining whether a declaration is out of line, instead of assuming
that the semantic and lexical DeclContext will be the same declaration
whenever they're the same entity.
This fixes behavior of declarations within merged classes and enums.
llvm-svn: 217008
|
| |
|
|
|
|
| |
This reinstates r215113.
llvm-svn: 216986
|
| |
|
|
| |
llvm-svn: 216976
|
| |
|
|
|
|
| |
directly written in strictly-conforming source code).
llvm-svn: 216969
|
| |
|
|
| |
llvm-svn: 216964
|
| |
|
|
| |
llvm-svn: 216953
|
| |
|
|
|
|
|
|
| |
On operating systems like the BSDs, it is typically the case that
/usr/bin/python does not exist. We should therefore use /usr/bin/env
instead. This is also done in various other scripts in tools/.
llvm-svn: 216945
|