- May 21, 2013
-
-
Eric Christopher authored
llvm-svn: 182349
-
- Apr 23, 2013
-
-
Alexey Samsonov authored
Add basic zlib support to LLVM. This would allow to use compression/uncompression in selected LLVM tools. llvm-svn: 180083
-
- Mar 26, 2013
-
-
Nick Lewycky authored
llvm-svn: 177963
-
Nick Lewycky authored
it's only really useful if you're going to crash anyways. Use it in the pretty stack trace printer to kill the compiler if we hang while printing the stack trace. llvm-svn: 177962
-
- Mar 22, 2013
-
-
Chandler Carruth authored
-time-ir-parsing flag This breaks the layering of the Support library. We can't add an implementation side to IRReader because it refers directly to entities only accessible as part of the IR, AsmParser, and BitcodeReader libraries. It can only be used in a context where all of those libraries will be available. We'll need to find some other way to get this functionality, and hopefully solve the long-standing layering problem of IRReader.h... llvm-svn: 177695
-
- Mar 20, 2013
-
-
Eli Bendersky authored
llvm-svn: 177543
-
- Jan 30, 2013
-
-
Dmitri Gribenko authored
This is required to use them in TableGen. llvm-svn: 173923
-
- Dec 12, 2012
-
-
Nick Kledzik authored
structures to and from YAML using traits. The first client will be the test suite of lld. The documentation will show up at: http://llvm.org/docs/YamlIO.html llvm-svn: 170019
-
- Oct 26, 2012
-
-
Joerg Sonnenberger authored
llvm-svn: 166772
-
- Oct 10, 2012
-
-
Sean Silva authored
... Apparently the RTTI is still necessary for some reason. llvm-svn: 165654
-
Sean Silva authored
llvm-svn: 165652
-
- Aug 01, 2012
-
-
Nick Kledzik authored
Since the llvm::sys::fs::map_file_pages() support function it relies on is not yet implemented on Windows, the unit tests for FileOutputBuffer are currently conditionalized to run only on unix. llvm-svn: 161099
-
- Apr 17, 2012
-
-
Seth Cantrell authored
llvm-svn: 154944
-
Manuel Klimek authored
llvm-svn: 154930
-
- Apr 04, 2012
-
-
Michael J. Spencer authored
llvm-svn: 153977
-
- Mar 01, 2012
-
-
Chandler Carruth authored
of the proposed standard hashing interfaces (N3333), and to use a modified and tuned version of the CityHash algorithm. Some of the highlights of this change: -- Significantly higher quality hashing algorithm with very well distributed results, and extremely few collisions. Should be close to a checksum for up to 64-bit keys. Very little clustering or clumping of hash codes, to better distribute load on probed hash tables. -- Built-in support for reserved values. -- Simplified API that composes cleanly with other C++ idioms and APIs. -- Better scaling performance as keys grow. This is the fastest algorithm I've found and measured for moderately sized keys (such as show up in some of the uniquing and folding use cases) -- Support for enabling per-execution seeds to prevent table ordering or other artifacts of hashing algorithms to impact the output of LLVM. The seeding would make each run different and highlight these problems during bootstrap. This implementation was tested extensively using the SMHasher test suite, and pased with flying colors, doing better than the original CityHash algorithm even. I've included a unittest, although it is somewhat minimal at the moment. I've also added (or refactored into the proper location) type traits necessary to implement this, and converted users of GeneralHash over. My only immediate concerns with this implementation is the performance of hashing small keys. I've already started working to improve this, and will continue to do so. Currently, the only algorithms faster produce lower quality results, but it is likely there is a better compromise than the current one. Many thanks to Jeffrey Yasskin who did most of the work on the N3333 paper, pair-programmed some of this code, and reviewed much of it. Many thanks also go to Geoff Pike Pike and Jyrki Alakuijala, the original authors of CityHash on which this is heavily based, and Austin Appleby who created MurmurHash and the SMHasher test suite. Also thanks to Nadav, Tobias, Howard, Jay, Nick, Ahmed, and Duncan for all of the review comments! If there are further comments or concerns, please let me know and I'll jump on 'em. llvm-svn: 151822
-
- Feb 23, 2012
-
-
Jay Foad authored
llvm-svn: 151249
-
- Feb 18, 2012
-
-
Talin authored
llvm-svn: 150890
-
- Feb 06, 2012
-
-
Derek Schuff authored
This CL delays reading of function bodies from initial parse until materialization, allowing overlap of compilation with bitcode download. llvm-svn: 149918
-
- Jan 29, 2012
-
-
Douglas Gregor authored
library, since it doesn't really have anything to do with Clang. llvm-svn: 149203
-
- Dec 20, 2011
-
-
Chandler Carruth authored
likely to stay either way that discussion ends up resolving itself. llvm-svn: 146966
-
- Dec 16, 2011
-
-
Manuel Klimek authored
llvm-svn: 146735
-
- Sep 13, 2011
-
-
Benjamin Kramer authored
It is an endian-aware helper that can read data from a StringRef. It will come in handy for DWARF parsing. This class is inspired by LLDB's DataExtractor, but is stripped down to the bare minimum needed for DWARF. Comes with unit tests! llvm-svn: 139626
-
- Aug 24, 2011
-
-
Evan Cheng authored
These are strictly utilities for registering targets and components. llvm-svn: 138450
-
- Jul 26, 2011
-
-
Jakub Staszak authored
llvm-svn: 135992
-
- Jul 22, 2011
-
-
Chandler Carruth authored
The header file was already properly located. The previous need for it in Support had to do with the version string printing which was fixed in r135757. Also update build dependencies where libraries that needed the functionality of the Target library (in the form of the TargetRegistry) were picking it up via Support. This is pretty pervasive, essentially every TargetInfo library (ARMInfo, etc) uses TargetRegistry, making it depend on Target. All of these were previously just sneaking by. llvm-svn: 135760
-
- Jun 11, 2011
-
-
Andrew Trick authored
Patch by: Jakub Staszak! Introduces BranchProbability. Changes unsigned to uint32_t all over and uint64_t only when overflow is expected. llvm-svn: 132867
-
- May 19, 2011
-
-
Rafael Espindola authored
llvm-svn: 131606
-
Rafael Espindola authored
llvm-svn: 131602
-
- 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
-
-
Michael J. Spencer authored
llvm-svn: 121160
-
- Nov 29, 2010
-
-
Michael J. Spencer authored
llvm-svn: 120329
-
Michael J. Spencer authored
llvm-svn: 120298
-
- 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
-
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
-
- Oct 17, 2010
-
-
Oscar Fuentes authored
llvm-svn: 116682
-
- Oct 08, 2010
-
-
John Thompson authored
llvm-svn: 116003
-
- Sep 29, 2010
-
-
Oscar Fuentes authored
llvm-svn: 114999
-
- Aug 20, 2010
-
-
Benjamin Kramer authored
llvm-svn: 111669
-