- Dec 16, 2011
-
-
Manuel Klimek authored
llvm-svn: 146735
-
Chandler Carruth authored
variadic-like functions in C++98. See the comments in the header file for a more detailed description of how these work. We plan to use these extensively in the AST matching library. This code and idea were originally authored by Zhanyong Wan. I've condensed it using macros to reduce repeatition and adjusted it to fit better with LLVM's ADT. Thanks to both David Blaikie and Doug Gregor for the review! llvm-svn: 146729
-
NAKAMURA Takumi authored
llvm-svn: 146725
-
- Jul 09, 2011
-
-
Chris Lattner authored
patch brings numerous advantages to LLVM. One way to look at it is through diffstat: 109 files changed, 3005 insertions(+), 5906 deletions(-) Removing almost 3K lines of code is a good thing. Other advantages include: 1. Value::getType() is a simple load that can be CSE'd, not a mutating union-find operation. 2. Types a uniqued and never move once created, defining away PATypeHolder. 3. Structs can be "named" now, and their name is part of the identity that uniques them. This means that the compiler doesn't merge them structurally which makes the IR much less confusing. 4. Now that there is no way to get a cycle in a type graph without a named struct type, "upreferences" go away. 5. Type refinement is completely gone, which should make LTO much MUCH faster in some common cases with C++ code. 6. Types are now generally immutable, so we can use "Type *" instead "const Type *" everywhere. Downsides of this patch are that it removes some functions from the C API, so people using those will have to upgrade to (not yet added) new API. "LLVM 3.0" is the right time to do this. There are still some cleanups pending after this, this patch is large enough as-is. llvm-svn: 134829
-
- Jun 15, 2011
-
-
Argyrios Kyrtzidis authored
llvm-svn: 133075
-
- May 11, 2011
-
-
Oscar Fuentes authored
gcc. Fixes PR9886. llvm-svn: 131181
-
- Feb 20, 2011
-
-
Oscar Fuentes authored
Requires CMake 2.8.3 or newer. llvm-svn: 126092
-
- Jan 13, 2011
-
-
Oscar Fuentes authored
llvm-svn: 123377
-
- Dec 21, 2010
-
-
Jakob Stoklund Olesen authored
This implementation already exists as ConnectedVNInfoEqClasses in LiveInterval.cpp, and it seems to be generally useful to have a light-weight way of forming equivalence classes of small integers. IntEqClasses doesn't allow enumeration of the elements in a class. llvm-svn: 122293
-
- Dec 07, 2010
-
-
Frits van Bommel authored
llvm-svn: 121127
-
NAKAMURA Takumi authored
llvm-svn: 121117
-
- Nov 29, 2010
-
-
Michael J. Spencer authored
llvm-svn: 120330
-
Michael J. Spencer authored
llvm-svn: 120298
-
- Nov 26, 2010
-
-
NAKAMURA Takumi authored
GNU ld/PECOFF accepts but ignores them below; --version-script --export-dynamic --rpath FIXME: autoconf should be aware of them. llvm-svn: 120179
-
- Nov 24, 2010
-
-
Michael J. Spencer authored
llvm-svn: 120101
-
- Nov 20, 2010
-
-
Dale Johannesen authored
llvm-svn: 119870
-
- Nov 19, 2010
-
-
Jakob Stoklund Olesen authored
This is a sorted interval map data structure for small keys and values with automatic coalescing and bidirectional iteration over coalesced intervals. Except for coalescing intervals, it provides similar functionality to std::map. It is however much more compact for small keys and values, and hopefully faster too. The container object itself can hold the first few intervals without any allocations, then it switches to a cache conscious B+-tree representation. A recycling allocator can be shared between many containers, even between containers holding different types. The IntervalMap is initially intended to be used with SlotIndex intervals for: - Backing store for LiveIntervalUnion that is smaller and faster than std::set. - Backing store for LiveInterval with less overhead than std::vector for typical intervals and O(N log N) merging of large intervals. 99% of virtual registers need 4 entries or less and would benefit from the small object optimization. - Backing store for LiveDebugVariable which doesn't exist yet, but will track debug variables during register allocation. This is a work in progress. Missing items are: - Performance metrics. - erase(). - insert() shrinkage. - clear(). - More performance metrics. - Simplification and detemplatization. llvm-svn: 119787
-
NAKAMURA Takumi authored
CMake can pass *.def to link.exe. llvm-svn: 119783
-
NAKAMURA Takumi authored
MSVC9 and 8 cannot compile ValueMapTest.cpp due to their bug. See issue#331418 in Visual Studio. llvm-svn: 119782
-
Jakob Stoklund Olesen authored
This reverts r119772. llvm-svn: 119773
-
Jakob Stoklund Olesen authored
This is a sorted interval map data structure for small keys and values with automatic coalescing and bidirectional iteration over coalesced intervals. Except for coalescing intervals, it provides similar functionality to std::map. It is however much more compact for small keys and values, and hopefully faster too. The container object itself can hold the first few intervals without any allocations, then it switches to a cache conscious B+-tree representation. A recycling allocator can be shared between many containers, even between containers holding different types. The IntervalMap is initially intended to be used with SlotIndex intervals for: - Backing store for LiveIntervalUnion that is smaller and faster than std::set. - Backing store for LiveInterval with less overhead than std::vector for typical intervals and O(N log N) merging of large intervals. 99% of virtual registers need 4 entries or less and would benefit from the small object optimization. - Backing store for LiveDebugVariable which doesn't exist yet, but will track debug variables during register allocation. This is a work in progress. Missing items are: - Performance metrics. - erase(). - insert() shrinkage. - clear(). - More performance metrics. - Simplification and detemplatization. llvm-svn: 119772
-
- Nov 14, 2010
-
-
NAKAMURA Takumi authored
llvm-svn: 119040
-
- Oct 29, 2010
-
-
NAKAMURA Takumi authored
llvm-svn: 117646
-
- Oct 28, 2010
-
-
Oscar Fuentes authored
UnitTests for building all the unit tests. llvm-svn: 117545
-
- Oct 21, 2010
-
-
Michael J. Spencer authored
llvm-svn: 117057
-
- Oct 19, 2010
-
-
Michael J. Spencer authored
llvm-svn: 116834
-
- Oct 11, 2010
-
-
Michael J. Spencer authored
This time correctly. llvm-svn: 116247
-
Michael J. Spencer authored
This reverts commit 116234. It compiled just fine with MSVC and clang... llvm-svn: 116242
-
Michael J. Spencer authored
llvm-svn: 116235
-
Michael J. Spencer authored
llvm-svn: 116234
-
- Sep 27, 2010
-
-
Douglas Gregor authored
llvm-svn: 114835
-
- Sep 25, 2010
-
-
Oscar Fuentes authored
available targets unless LLVM_INCLUDE_X is ON. LLVM_BUILD_X implies LLVM_INCLUDE_X" It breaks the configuration phase when cmake is invoked without parameters, it is too complex for the purpose and introduces an incovenience for the user (as both LLVM_BUILD_X and LLVM_INCLUDE_X must set to OFF for not including X on the build) llvm-svn: 114795
-
- Sep 24, 2010
-
-
Michael J. Spencer authored
unless LLVM_INCLUDE_X is ON. LLVM_BUILD_X implies LLVM_INCLUDE_X llvm-svn: 114747
-
Michael J. Spencer authored
llvm-svn: 114725
-