| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 254763
|
|
|
|
|
|
|
|
|
|
| |
have to keep recomputing them
If memory turns out to be a problem, which I don't think it will in practice because all these ValueObjects, we'd be keeping alive anyway, I can always resort to caching the farthest-most iterator only
This gains us an order of magnitude in my benchmark, cutting the time to traverse a 1500-elements list from 22 seconds down to 2
llvm-svn: 254762
|
|
|
|
| |
llvm-svn: 254761
|
|
|
|
|
|
|
|
|
|
| |
The LegacyPassManager was storing an instance of AnalysisUsage for each instance of each pass. In practice, most instances of a single pass class share the same dependencies. We can't rely on this because passes can (and some do) have dynamic dependencies based on instance options.
We can exploit the likely commonality by uniqueing the usage information after querying the pass, but before storing it into the pass manager. This greatly reduces memory consumption by the AnalysisUsage objects. For a long pass pipeline, I measured a decrease in memory consumption for this storage of about 50%. I have not measured on the default O3 pipeline, but I suspect it will see some benefit as well since many passes are repeated (e.g. InstCombine).
Differential Revision: http://reviews.llvm.org/D14677
llvm-svn: 254760
|
|
|
|
|
|
|
| |
Now that ScheduleDAGInstrs doesn't need it anymore we can move the field
down the class hierarcy to ScheduleDAGMI.
llvm-svn: 254759
|
|
|
|
|
|
| |
regardless of the actual callable
llvm-svn: 254758
|
|
|
|
|
|
|
|
| |
every loop iteration
This saves about 5 seconds on a 1500 elements list from my local estimates
llvm-svn: 254757
|
|
|
|
| |
llvm-svn: 254756
|
|
|
|
|
|
|
|
| |
print a fairly large std::list<T>
This is meant to help me track optimizations to the libc++ std::list data formatter
llvm-svn: 254755
|
|
|
|
| |
llvm-svn: 254754
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch fixes setting breakpoints on symbol for variants of C and
Pascal where the language is "unknown" within the filter-by-language
process added in r252356. It also renames GetLanguageForSymbolByName to
GuessLanguageForSymbolByName and adds comments explaining the pitfalls
of the flawed assumption that the language can be determined solely from
the name and target.
Reviewed by: jingham
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D15175
llvm-svn: 254753
|
|
|
|
| |
llvm-svn: 254752
|
|
|
|
| |
llvm-svn: 254751
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After r251874, properties from class extensions no longer show up in
ObjCInterfaceDecl::properties(). Make debug info emission explicitly
look for properties in class extensions before looking at direct properties.
Also add a test that checks for this. There are three interesting cases:
1. A property is only declared in a class extension, and the @implementation
is in a different file. This used to generated a DIObjcProperty before
r251874 and does again with this fix.
2. A property is declared as readonly in the class itself and redeclared as
readwrite in a class extension. clang before r251874 put the DIObjcProperty
on the first declaration. clang after r251874 didn't emit any DIObjcProperty,
and clang with this fix puts it on the readwrite redeclaration (which is
what lookup finds). This seems like a progression.
3. Like 2, but with an @implementation in the same file. In this case,
the property debug info gets generated a second time through the ivar
from the definition. In this case, lookup and declaration code need
to agree on the line number so that the DIObjcProperty isn't emitted
twice. In this case, clang before r251874 emitted one DIObjcProperty
on the first declaration, clang with r251874 emitted one on the second
declaration, and clang with this patch still does the latter.
llvm-svn: 254750
|
|
|
|
| |
llvm-svn: 254749
|
|
|
|
|
|
|
| |
Tracked here:
https://llvm.org/bugs/show_bug.cgi?id=25743
llvm-svn: 254746
|
|
|
|
| |
llvm-svn: 254745
|
|
|
|
| |
llvm-svn: 254744
|
|
|
|
|
|
| |
available.
llvm-svn: 254743
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: The command prints out list of functions that were not entered.
To do this, addresses are first converted to function locations. Set
operations are used for function locations.
Differential Revision: http://reviews.llvm.org/D14889
review
llvm-svn: 254742
|
|
|
|
| |
llvm-svn: 254741
|
|
|
|
| |
llvm-svn: 254740
|
|
|
|
| |
llvm-svn: 254739
|
|
|
|
| |
llvm-svn: 254738
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds a new target-independent calling convention for C++ TLS
access functions. It aims to minimize overhead in the caller by perserving as
many registers as possible.
The target-specific implementation for X86-64 is defined as following:
Arguments are passed as for the default C calling convention
The same applies for the return value(s)
The callee preserves all GPRs - except RAX and RDI
The access function makes C-style TLS function calls in the entry and exit
block, C-style TLS functions save a lot more registers than normal calls.
The added calling convention ties into the existing implementation of the
C-style TLS functions, so we can't simply use existing calling conventions
such as preserve_mostcc.
rdar://9001553
llvm-svn: 254737
|
|
|
|
| |
llvm-svn: 254736
|
|
|
|
| |
llvm-svn: 254735
|
|
|
|
| |
llvm-svn: 254734
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Create a separate page describing UBSan tool, move the description of
fine-grained checks there, provide extra information about supported
platforms, symbolization etc. This text is compiled from four parts:
* Existing documentation copied from User's Manual
* Layout used in documentation for another sanitizers (ASan, MSan etc.)
* Text written from scratch
* Small parts taken from Michael Morrison's attempt at creating UBSan
page:
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20141215/249503.html
Reviewers: kcc, rsmith, silvas
Subscribers: tberghammer, danalbert, srhines, kcc
Differential Revision: http://reviews.llvm.org/D15217
llvm-svn: 254733
|
|
|
|
| |
llvm-svn: 254732
|
|
|
|
| |
llvm-svn: 254731
|
|
|
|
| |
llvm-svn: 254730
|
|
|
|
| |
llvm-svn: 254729
|
|
|
|
| |
llvm-svn: 254728
|
|
|
|
| |
llvm-svn: 254727
|
|
|
|
| |
llvm-svn: 254726
|
|
|
|
| |
llvm-svn: 254725
|
|
|
|
| |
llvm-svn: 254724
|
|
|
|
| |
llvm-svn: 254723
|
|
|
|
|
|
|
|
|
|
| |
mac_ignore_invalid_free was helpful when ASan runtime used to intercept
CFAllocator and sometimes corrupted its memory. This behavior had been long
gone, and the flag was unused.
This patch also deletes ReportMacCfReallocUnknown(), which was used by the
CFAllocator realloc() wrapper.
llvm-svn: 254722
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a continuation of r253367.
These functions return is owned by the caller, so they return
std::unique_ptr now.
The call can fail, so the return is wrapped in ErrorOr.
They have a context where to report diagnostics, so they don't need to
take a string out parameter.
With this there are no call to getGlobalContext in lib/LTO.
llvm-svn: 254721
|
|
|
|
|
|
| |
There's a more comprehensive ACLE and a real v8 ARM ARM now.
llvm-svn: 254720
|
|
|
|
| |
llvm-svn: 254719
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D15007
llvm-svn: 254718
|
|
|
|
|
|
|
|
| |
The build and test actually work now, so let's just enable them.
Differential Revision: http://reviews.llvm.org/D15184
llvm-svn: 254716
|
|
|
|
|
|
|
|
|
| |
* Add support for representing signed integers
* Add new constructors taking any signed or unsigned integer types
Differential revision: http://reviews.llvm.org/D15187
llvm-svn: 254715
|
|
|
|
|
|
|
|
|
|
|
| |
Since BuildMI() automatically adds the implicit operands for a new instruction,
adding the old instructions CC operand resulted in that there were two CC imp-def
operands, where only one was marked as dead. This caused buildSchedGraph() to
miss dependencies on the CC reg.
Review by Ulrich Weigand
llvm-svn: 254714
|
|
|
|
|
|
|
|
|
| |
"Ulrich Drepper, ELF Handling For Thread-Local Storage" (5.5 x86-x64 linker optimizations, http://www.akkadia.org/drepper/tls.pdf) shows how GD can be optimized to IE.
This patch implements the optimization.
Differential revision: http://reviews.llvm.org/D15000
llvm-svn: 254713
|
|
|
|
|
|
|
|
|
| |
recalculations, by Andrey Turetsky
Add new x86 pass which replaces address calculations in load or store instructions with def register of existing LEA (must be in the same basic block), if the LEA calculates address that differs only by a displacement. Works only with -Os or -Oz.
Differential Revision: http://reviews.llvm.org/D13294
llvm-svn: 254712
|
|
|
|
|
|
|
|
|
|
| |
Patch by Nitesh Jain
Reviewers: clayborg, ovyalov.
Subscribers: jaydeep, bhushan, mohit.bhakkad, sagar.
Differential Revision: http://reviews.llvm.org/D15103
llvm-svn: 254711
|