- Jan 07, 2013
-
-
Chandler Carruth authored
library rename. llvm-svn: 171747
-
- Dec 05, 2012
-
-
Michael J. Spencer authored
llvm-svn: 169344
-
- Jun 21, 2012
-
-
Chandler Carruth authored
Makefiles, the CMake files in every other part of the LLVM tree, and sanity. This should also restore the output tree structure of all the unit tests, sorry for breaking that, and thanks for letting me know. The fundamental change is to put a CMakeLists.txt file in the unittest directory, with a single test binary produced from it. This has several advantages: - No more weird directory stripping in the unittest macro, allowing it to be used more readily in other projects. - No more directory prefixes on all the source files. - Allows correct and precise use of LLVM's per-directory dependency system. - Allows use of the checking logic for source files that have not been added to the CMake build. This uncovered a file being skipped with CMake in LLVM and one in Clang's unit tests. - Makes Specifying conditional compilation or other custom logic for JIT tests easier. It did require adding the concept of an explicit 'optional' source file to the CMake build so that the missing-file check can skip cases where the file is *supposed* to be missing. =] This is another chunk of refactoring the CMake build in order to make it usable for other clients like CompilerRT / ASan / TSan. Note that this is interdependent with a Clang CMake change. llvm-svn: 158909
-
Chandler Carruth authored
a helper function in CMake. This will allow us to share all of this logic with Clang, and eventually CompilerRT. llvm-svn: 158896
-
Chandler Carruth authored
llvm-svn: 158893
-
Chandler Carruth authored
facilities. This was only used in one place in LLVM, and was used pervasively (but with different code!) in Clang. It has no advantages over the standard CMake facilities and in some cases disadvantages. llvm-svn: 158889
-
- Jun 17, 2012
-
-
Benjamin Kramer authored
llvm-svn: 158647
-
- Jun 16, 2012
-
-
Benjamin Kramer authored
llvm-svn: 158601
-
Chandler Carruth authored
array of a suitable size and alignment for any of a number of different types to be stored into the character array. The mechanisms for producing an explicitly aligned type are fairly complex because this operation is poorly supported on all compilers. We've spent a fairly significant amount of time experimenting with different implementations inside of Google, and the one using explicitly expanded templates has been the most robust. Credit goes to Nick Lewycky for writing the first 20 versions or so of this logic we had inside of Google. I based this on the only one to actually survive. In case anyone is worried, yes we are both explicitly re-contributing and re-licensing it for LLVM. =] Once the issues with actually specifying the alignment are finished, it turns out that most compilers don't in turn align anything the way they are instructed. Testing of this logic against both Clang and GCC indicate that the alignment constraints are largely ignored by both compilers! I've come up with and used a work-around by wrapping each alignment-hinted type directly in a struct, and using that struct to align the character array through a union. This elaborate hackery is terrifying, but I've included testing that caught a terrifying number of bugs in every other technique I've tried. All of this in order to implement a poor C++98 programmers emulation of C++11 unrestricted unions in classes such as SmallDenseMap. llvm-svn: 158597
-
- Jun 06, 2012
-
-
Justin Holewinski authored
llvm-svn: 158046
-
- Apr 17, 2012
-
-
Manuel Klimek authored
llvm-svn: 154930
-
- Apr 04, 2012
-
-
Michael J. Spencer authored
llvm-svn: 153977
-
- Mar 30, 2012
-
-
Rafael Espindola authored
needed for correctness, but still doesn't clean up code that now unnecessary checks for reachability. llvm-svn: 153755
-
- Mar 15, 2012
-
-
Eli Bendersky authored
llvm-svn: 152780
-
- Mar 13, 2012
-
-
Eli Bendersky authored
Also refactor the existing OProfile profiling code to reuse the same interfaces with the VTune profiling code. In addition, unit tests for the profiling interfaces were added. This patch was prepared by Andrew Kaylor and Daniel Malea, and reviewed in the llvm-commits list by Jim Grosbach llvm-svn: 152620
-
- Feb 22, 2012
-
-
Jakob Stoklund Olesen authored
For objects that can be identified by small unsigned keys, SparseSet provides constant time clear() and fast deterministic iteration. Insert, erase, and find operations are typically faster than hash tables. SparseSet is useful for keeping information about physical registers, virtual registers, or numbered basic blocks. llvm-svn: 151110
-
- Feb 18, 2012
-
-
Talin authored
llvm-svn: 150890
-
- Jan 31, 2012
-
-
Manuel Klimek authored
now that this handles the release / retain calls. Adds a regression test for that bug (which is a compile-time regression) and for the last two changes to the IntrusiveRefCntPtr, especially tests for the memory leak due to copy construction of the ref-counted object and ensuring that the traits are used for release / retain calls. llvm-svn: 149411
-
- Jan 02, 2012
-
-
Chandler Carruth authored
is testing the bitcode reader's functionality, not VMCore's. Add the what is a hope sufficient build system mojo to build and run a new unittest. Also clean up some of the test's naming. The goal for the file should be to unittest the Bitcode Reader, and this is just one particular test among potentially many in the future. Also, reverse my position and relegate the PR# to a comment, but stash the comment on the same line as the test name so it doesn't get lost. This makes the code more self-documenting hopefully w/o losing track of the PR number. llvm-svn: 147431
-
Rafael Espindola authored
PR11677. llvm-svn: 147425
-
- 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
-