| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
GDB-style linespecs. This command allows changing
the PC without manually looking up the new address.
llvm-svn: 176841
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Nadav reported a performance regression due to the work I did to
merge the library call simplifier into instcombine [1]. The issue
is that a new LibCallSimplifier object is being created whenever
InstCombiner::runOnFunction is called. Every time a LibCallSimplifier
object is used to optimize a call it creates a hash table to map from
a function name to an object that optimizes functions of that name.
For short-lived LibCallSimplifier instances this is quite inefficient.
Especially for cases where no calls are actually simplified.
This patch fixes the issue by dropping the hash table and implementing
an explicit lookup function to correlate the function name to the object
that optimizes functions of that name. This avoids the cost of always
building and destroying the hash table in cases where the LibCallSimplifier
object is short-lived and avoids the cost of building the table when no
simplifications are actually preformed.
On a benchmark containing 100,000 calls where none of them are simplified
I noticed a 30% speedup. On a benchmark containing 100,000 calls where
all of them are simplified I noticed an 8% speedup.
[1] http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130304/167639.html
llvm-svn: 176840
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Versioned debug info support has been a burden to maintain & also compromised
current debug info verification by causing test cases testing old debug info to
remain rather than being updated to the latest. It also makes it hard to add or
change the metadata schema by requiring various backwards-compatibility in the
DI* hierarchy.
So it's being removed in preparation for new changes to the schema to tidy up
old/unnecessary fields and add new fields needed for new debug info (well, new
to LLVM at least).
The more surprising part of this is the changes to DI*::Verify - this became
necessary due to the changes to AsmWriter. AsmWriter was relying on the version
test to decide which bits of metadata were actually debug info when printing
the comment annotations. Without the version information the tag numbers were
too common & it would print debug info on random metadata that happened to
start with an integer that matched a tag number. Instead this change makes the
Verify functions more precise (just adding "number of operands" checks - not
type checking those operands yet) & relies on that to decide which metadata is
debug info metadata.
llvm-svn: 176838
|
| |
|
|
| |
llvm-svn: 176837
|
| |
|
|
| |
llvm-svn: 176836
|
| |
|
|
| |
llvm-svn: 176835
|
| |
|
|
|
|
|
|
|
|
|
|
| |
debug info format.
These cases were found by further work to remove support for debug info
versioning. Common cleanups (other than changing the version info in the tag
field) included adding the last parameter to compile_units (recently added for
fission support) and other cases of trailing fields in lexical blocks, compile
units, and subprograms.
llvm-svn: 176834
|
| |
|
|
| |
llvm-svn: 176833
|
| |
|
|
|
|
|
| |
looked up the current class's super class.
// rdar://13349296
llvm-svn: 176832
|
| |
|
|
| |
llvm-svn: 176831
|
| |
|
|
|
|
| |
lower an expect intrinsic that is a constant expression.
llvm-svn: 176830
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r176737 fixed bugreporter::trackNullOrUndefValue to find nodes for an lvalue
even if the rvalue node had already been collected. This commit extends that
to call statement nodes as well, so that if a call is contained within
implicit casts we can still track the return value.
No test case because node reclamation is extremely finicky (dependent on
how the AST and CFG are built, and then on our current reclamation rules,
and /then/ on how many nodes were generated by the analyzer core and the
current set of checkers). I consider this a low-risk change, though, and
it will only happen in cases of reclamation when the rvalue node isn't
available.
<rdar://problem/13340764>
llvm-svn: 176829
|
| |
|
|
|
|
| |
rdar://13318048
llvm-svn: 176828
|
| |
|
|
|
|
|
|
| |
An invoke may require a table entry. For instance, when the function it calls
is expected to throw.
<rdar://problem/13360379>
llvm-svn: 176827
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Modules enables features such as auto-linking, and we simply do not want to
support a matrix of subtly enabled/disabled features depending on whether or
not a user is using the integrated assembler.
It isn't clear if this is the best place to do this check. For one thing,
these kind of errors are not caught by the serialized diagnostics.
Fixes <rdar://problem/13289240>
llvm-svn: 176826
|
| |
|
|
|
|
| |
files are treated differently on various compilers causing a "friend class Foo;" to fail for forward declared classes in global namespace.
llvm-svn: 176823
|
| |
|
|
|
|
| |
http://stackoverflow.com/questions/15344402/how-can-i-read-a-0xff-in-a-file-with-libc-istream-iterator/15347225#15347225 highlighted the lack of a cast in the implementation of std::cin. Added. I unfortunately don't have a test case to add to the suite since this bug only shows itself when using std::cin. The current testsuite setup does not have a way a good way to test std::cin.
llvm-svn: 176822
|
| |
|
|
|
|
| |
Fixed the exception breakpoints to always use a file filter to make setting exception breakpoint efficient.
llvm-svn: 176821
|
| |
|
|
|
|
|
|
| |
Generate forward declarations that are RAUW'd by finalize().
We thus avoid outputting the same type several times in multiple
stages of completion.
llvm-svn: 176820
|
| |
|
|
|
|
| |
This allows R600 Target to use the newly created -verify-misched llc flag
llvm-svn: 176819
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The loader does not call mmap() through the PLT because it has to
bootstrap the process before libc is present. Hooking dlopen() isn't
enough either because the loader runs module initializers before
returning, and they could run arbitrary msan instrumented code.
If msandr is present, then we can intercept the mmaps from dlopen at the
syscall layer and clear the shadow there. If msandr is missing, we
clear the shadow after dlopen() and hope any initializers are trivial.
Reviewers: eugenis
CC: kcc, llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D509
llvm-svn: 176818
|
| |
|
|
| |
llvm-svn: 176817
|
| |
|
|
|
|
|
|
| |
subdir".
This reverts commit 176730, and uses "REQUIRES: asserts" instead.
llvm-svn: 176815
|
| |
|
|
| |
llvm-svn: 176810
|
| |
|
|
| |
llvm-svn: 176809
|
| |
|
|
| |
llvm-svn: 176808
|
| |
|
|
|
|
|
| |
In the spirit of r172109. Version control keeps a far more detailed
record of authorship anyways.
llvm-svn: 176807
|
| |
|
|
|
|
| |
Patch by Guy Benyei!
llvm-svn: 176806
|
| |
|
|
| |
llvm-svn: 176805
|
| |
|
|
|
|
| |
enforced when building TSan runtime.
llvm-svn: 176804
|
| |
|
|
|
|
| |
r176686. I missed this file in the previous commit.
llvm-svn: 176803
|
| |
|
|
|
|
|
|
| |
short messages, fall back to MmapOrDie() in the case of a failure.
This shall eliminate most of the cryptic "ERROR: failed to mmap" messages caused by recursively calling MmapOrDie() from MmapOrDie().
llvm-svn: 176802
|
| |
|
|
|
|
| |
in malloc().
llvm-svn: 176800
|
| |
|
|
|
|
| |
Sergey Matveev)
llvm-svn: 176799
|
| |
|
|
| |
llvm-svn: 176798
|
| |
|
|
|
|
| |
here.
llvm-svn: 176797
|
| |
|
|
|
|
| |
already.
llvm-svn: 176796
|
| |
|
|
|
|
| |
load segments with RW permissions, bss_start and end may get set inappropriate
llvm-svn: 176795
|
| |
|
|
|
|
| |
error above. Based on a patch by Peter Zotov!
llvm-svn: 176794
|
| |
|
|
| |
llvm-svn: 176793
|
| |
|
|
| |
llvm-svn: 176792
|
| |
|
|
|
|
|
| |
After the recent data-structure improvements, a couple of debugging statements
were broken (printing pointer values).
llvm-svn: 176791
|
| |
|
|
|
|
| |
in clang r176726. Fix the build of lldb
llvm-svn: 176790
|
| |
|
|
|
|
| |
vec_lvewx according to AltiVec Programming Interface Manual
llvm-svn: 176789
|
| |
|
|
|
|
|
|
|
|
| |
Before: clang-3: error: no input files
After: clang-3.3: error: no input files
This means that we'll also print clang.exe on windows, but I don't see a problem
with that.
llvm-svn: 176788
|
| |
|
|
| |
llvm-svn: 176787
|
| |
|
|
|
|
| |
memory on stack, and memcpy the actual value before the call.
llvm-svn: 176786
|
| |
|
|
| |
llvm-svn: 176785
|
| |
|
|
| |
llvm-svn: 176784
|
| |
|
|
| |
llvm-svn: 176783
|