| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
by any means, but something to stress test our unwinder with 260,000+ frames
on a standard darwin thread.
llvm-svn: 123037
|
| |
|
|
| |
llvm-svn: 123036
|
| |
|
|
|
|
| |
Patch by Tim Northover.
llvm-svn: 123035
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
X = sext x; x >s c ? X : C+1 --> X = sext x; X <s C+1 ? C+1 : X
X = sext x; x <s c ? X : C-1 --> X = sext x; X >s C-1 ? C-1 : X
X = zext x; x >u c ? X : C+1 --> X = zext x; X <u C+1 ? C+1 : X
X = zext x; x <u c ? X : C-1 --> X = zext x; X >u C-1 ? C-1 : X
X = sext x; x >u c ? X : C+1 --> X = sext x; X <u C+1 ? C+1 : X
X = sext x; x <u c ? X : C-1 --> X = sext x; X >u C-1 ? C-1 : X
Instead of calculating this with mixed types promote all to the
larger type. This enables scalar evolution to analyze this
expression. PR8866
llvm-svn: 123034
|
| |
|
|
| |
llvm-svn: 123033
|
| |
|
|
|
|
| |
Enable live debug variables pass.
llvm-svn: 123032
|
| |
|
|
|
|
| |
cheap as a copy.
llvm-svn: 123031
|
| |
|
|
|
|
| |
additional notes.
llvm-svn: 123030
|
| |
|
|
|
|
|
|
| |
function_name"
command to do the disassembly. Instead, use the Python API.
llvm-svn: 123029
|
| |
|
|
|
|
| |
instead.
llvm-svn: 123028
|
| |
|
|
|
|
| |
every BranchInst has a fixed number of operands.
llvm-svn: 123027
|
| |
|
|
| |
llvm-svn: 123026
|
| |
|
|
| |
llvm-svn: 123025
|
| |
|
|
|
|
| |
function class template.
llvm-svn: 123024
|
| |
|
|
|
|
|
|
|
| |
to reject this code, but at least clang doesn't
crash anymore.
Crash reported in PR 8880.
llvm-svn: 123017
|
| |
|
|
|
|
|
|
|
|
| |
tuple class template. This implementation is boosted directly from the
variadic templates proposal. N2080.
Note that one section is #ifdef'd out. I'll implement that aspect of
template argument deduction next.
llvm-svn: 123016
|
| |
|
|
|
|
| |
regression (even on Nehalem) in edge cases. I also didn't see any real performance benefit.
llvm-svn: 123015
|
| |
|
|
|
|
|
| |
TreeTransform version of TransformExprs() rather than explicit loop,
so that we expand pack expansions properly. Test cast coming soon...
llvm-svn: 123014
|
| |
|
|
|
|
| |
function parameter pack expansions.
llvm-svn: 123007
|
| |
|
|
| |
llvm-svn: 123006
|
| |
|
|
| |
llvm-svn: 123005
|
| |
|
|
| |
llvm-svn: 123004
|
| |
|
|
|
|
|
|
| |
Fix an unexpected hickup caused by exceeding size of
generated table (and a misleading comment). Improve
on help message for -fapple-kext.
llvm-svn: 123003
|
| |
|
|
| |
llvm-svn: 123002
|
| |
|
|
|
|
| |
ago. This is both easier to learn and easier to read.
llvm-svn: 123001
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instantiated function parameters, enabling instantiation of arbitrary
pack expansions involving function parameter packs. At this point, we
can now correctly compile a simple, variadic print() example:
#include <iostream>
#include <string>
void print() {}
template<typename Head, typename ...Tail>
void print(const Head &head, const Tail &...tail) {
std::cout << head;
print(tail...);
}
int main() {
std::string hello = "Hello";
print(hello, ", world!", " ", 2011, '\n');
}
llvm-svn: 123000
|
| |
|
|
| |
llvm-svn: 122999
|
| |
|
|
| |
llvm-svn: 122997
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
subclasses will automatically be able to take advantage of caching. The
cache line size is set to 512 by default.
This greatly speeds up stack backtraces on MacOSX when using the
ProcessGDBRemote process plug-in since only about 6300 packets per second
can be sent.
Initial speedups show:
Prior to caching: 10,000 stack frames took 5.2 seconds
After caching: 10,000 stack frames in 240 ms!
About a 20x speedup!
llvm-svn: 122996
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also fix an off-by-one in SelectionDAGBuilder that was preventing shuffle
vectors from being translated to EXTRACT_SUBVECTOR.
Patch by Tim Northover.
The test changes are needed to keep those spill-q tests from testing aligned
spills and restores. If the only aligned stack objects are spill slots, we
no longer realign the stack frame. Prior to this patch, an EXTRACT_SUBVECTOR
was legalized by loading from the stack, which created an aligned frame index.
Now, however, there is nothing except the spill slot in the stack frame, so
I added an aligned alloca.
llvm-svn: 122995
|
| |
|
|
| |
llvm-svn: 122994
|
| |
|
|
|
|
|
|
| |
We were never generating any of these nodes with variable indices, and there
was one legalizer function asserting on a non-constant index. If we ever have
a need to support variable indices, we can add this back again.
llvm-svn: 122993
|
| |
|
|
| |
llvm-svn: 122992
|
| |
|
|
|
|
| |
reserved keywords at least on MSVC.
llvm-svn: 122991
|
| |
|
|
|
|
| |
we have invokes, so there is no functionality change here.
llvm-svn: 122990
|
| |
|
|
|
|
|
|
| |
cache even when a valid process exists. Previously, Target::ReadMemory would
read from the process if there was a valid one and then fallback to the
object file cache.
llvm-svn: 122989
|
| |
|
|
|
|
|
|
|
|
| |
In particular, the iteration variable (if present) should be created and
destroyed in a narrow span around the loop body, and the body should
be emitted in a cleanup scope in case it's not a compound statement.
Otherwise, rename a few variables and use phis instead of temporary
variables for the index and buffer count.
llvm-svn: 122988
|
| |
|
|
| |
llvm-svn: 122987
|
| |
|
|
|
|
|
|
|
| |
parameters into parameter types, so that substitution of
explicitly-specified function template arguments uses the same
path. This enables the use of explicitly-specified function template
arguments with variadic templates.
llvm-svn: 122986
|
| |
|
|
|
|
| |
matching failed.
llvm-svn: 122985
|
| |
|
|
|
|
|
| |
Also, call GetProcess instead of CalculateProcess as the latter is morally part
of the ExecutionContextScope API.
llvm-svn: 122984
|
| |
|
|
|
|
| |
Nadav Rotem.
llvm-svn: 122983
|
| |
|
|
|
|
| |
comes back some day.
llvm-svn: 122982
|
| |
|
|
|
|
| |
try and build this and let me know how it goes?
llvm-svn: 122981
|
| |
|
|
| |
llvm-svn: 122980
|
| |
|
|
|
|
| |
typed atomics. This will lower exclusively to libcalls at the moment.
llvm-svn: 122979
|
| |
|
|
|
|
| |
things :)
llvm-svn: 122978
|
| |
|
|
| |
llvm-svn: 122977
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
an issue with the way the UnwindLLDB was handing out RegisterContexts: it
was making shared pointers to register contexts and then handing out just
the pointers (which would get put into shared pointers in the thread and
stack frame classes) and cause double free issues. MallocScribble helped to
find these issues after I did some other cleanup. To help avoid any
RegisterContext issue in the future, all code that deals with them now
returns shared pointers to the register contexts so we don't end up with
multiple deletions. Also now that the RegisterContext class doesn't require
a stack frame, we patched a memory leak where a StackFrame object was being
created and leaked.
Made the RegisterContext class not have a pointer to a StackFrame object as
one register context class can be used for N inlined stack frames so there is
not a 1 - 1 mapping. Updates the ExecutionContextScope part of the
RegisterContext class to never return a stack frame to indicate this when it
is asked to recreate the execution context. Now register contexts point to the
concrete frame using a concrete frame index. Concrete frames are all of the
frames that are actually formed on the stack of a thread. These concrete frames
can be turned into one or more user visible frames due to inlining. Each
inlined stack frame has the exact same register context (shared via shared
pointers) as any parent inlined stack frames all the way up to the concrete
frame itself.
So now the stack frames and the register contexts should behave much better.
llvm-svn: 122976
|
| |
|
|
|
|
|
| |
Update lib/Makefile to use current LLVM and Clang components and add the
PluginUtility library to the build.
llvm-svn: 122975
|