summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h
Commit message (Collapse)AuthorAgeFilesLines
* Remove LLVM_CONSTEXPR.Justin Lebar2016-10-231-2/+1
| | | | | | | | | | | | Summary: With MSVC 2013 and GCC < 4.8 gone, we can use the "constexpr" keyword. Reviewers: bkramer, mehdi_amini Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25901 llvm-svn: 284947
* Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC)Alexander Kornienko2015-06-231-1/+1
| | | | | | Apparently, the style needs to be agreed upon first. llvm-svn: 240390
* Fixed/added namespace ending comments using clang-tidy. NFCAlexander Kornienko2015-06-191-1/+1
| | | | | | | | | | | | | The patch is generated using this command: tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \ -checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \ llvm/lib/ Thanks to Eugene Kosov for the original patch! llvm-svn: 240137
* Use operator<< instead of print in a few more places.Rafael Espindola2015-05-271-1/+1
| | | | llvm-svn: 238315
* AsmPrinter: Use DwarfStringPoolEntry in DwarfAccelTable, NFCDuncan P. N. Exon Smith2015-05-241-4/+2
| | | | | | | This is just an API change, but it prepares to stop using `EmitLabelDifference()` when possible. llvm-svn: 238118
* Store an optional section start label in MCSection.Rafael Espindola2015-03-101-3/+3
| | | | | | | | | | | | This makes code that uses section relative expressions (debug info) simpler and less brittle. This is still a bit awkward as the symbol is created late and has to be stored in a mutable field. I will move the symbol creation earlier in the next patch. llvm-svn: 231802
* Removing LLVM_DELETED_FUNCTION, as MSVC 2012 was the last reason for ↵Aaron Ballman2015-02-151-2/+2
| | | | | | requiring the macro. NFC; LLVM edition. llvm-svn: 229340
* Make DIE.h a public CodeGen header.Frederic Riss2015-01-051-1/+1
| | | | | | | | | | | | | | dsymutil would like to use all the AsmPrinter/MCStreamer infrastructure to stream out the DWARF. In order to do so, it will reuse the DIE object and so this header needs to be public. The interface exposed here has some corners that cannot be used without a DwarfDebug object, but clients that want to stream Dwarf can just avoid these. Differential Revision: http://reviews.llvm.org/D6695 llvm-svn: 225208
* Fix emission of Dwarf accelerator table when there are multiple CUs.Frederic Riss2014-11-121-3/+3
| | | | | | | | The DIE offset in the accel tables is an offset relative to the start of the debug_info section, but we were encoding the offset to the start of the containing CU. llvm-svn: 221837
* Remove the unused string section symbol parameter from DwarfFile::emitStringsDavid Blaikie2014-09-111-2/+2
| | | | | | | | | | | | | | | | | | | And since it /looked/ like the DwarfStrSectionSym was unused, I tried removing it - but then it turned out that DwarfStringPool was reconstructing the same label (and expecting it to have already been emitted) and uses that. So I kept it around, but wanted to pass it in to users - since it seemed a bit silly for DwarfStringPool to have it passed in and returned but itself have no use for it. The only two users don't handle strings in both .dwo and .o files so they only ever need the one symbol - no need to keep it (and have an unused symbol) in the DwarfStringPool used for fission/.dwo. Refactor a bunch of accelerator table usage to remove duplication so I didn't have to touch 4-5 callers. llvm-svn: 217628
* Canonicalize header guards into a common format.Benjamin Kramer2014-08-131-2/+2
| | | | | | | | | | Add header guards to files that were missing guards. Remove #endif comments as they don't seem common in LLVM (we can easily add them back if we decide they're useful) Changes made by clang-tidy with minor tweaks. llvm-svn: 215558
* Increase the size of DwarfAccelTable::TableHeaderData::Atoms.Hans Wennborg2014-08-111-1/+1
| | | | | | During a Clang bootstrap, it seems this SmallVector always contains 3 elements. llvm-svn: 215334
* Remove redundant explicit default initialization of non-trivially ↵David Blaikie2014-04-271-1/+1
| | | | | | constructed member. llvm-svn: 207357
* Add the default constructor DwarfAccelTable::DataArray() to initialize ↵NAKAMURA Takumi2014-04-271-0/+1
| | | | | | | | (MCSymbol*)StrSym explicitly. It will fix crash in codegen on msvc x64. llvm-svn: 207356
* DwarfAccelTable: Store the string symbol in the accelerator table to avoid ↵David Blaikie2014-04-251-9/+14
| | | | | | | | | | duplicate lookup. This also avoids the need for subtly side-effecting calls to manifest strings in the string table at the point where items are added to the accelerator tables. llvm-svn: 207281
* Remove the intermediate AccelTypes maps in DWARF units.David Blaikie2014-04-241-1/+3
| | | | llvm-svn: 207060
* DwarfAccelTable: Remove trivial dtor and simplify construction with an array.David Blaikie2014-04-231-1/+0
| | | | llvm-svn: 207044
* More header and forward declaration cleanup.Eric Christopher2014-03-181-2/+0
| | | | llvm-svn: 204183
* Rename DwarfUnits to DwarfFile to help avoid some naming confusion.Eric Christopher2013-12-051-3/+3
| | | | llvm-svn: 196519
* DebugInfo: Constify accelerator table handling, and separate type ↵David Blaikie2013-11-191-3/+3
| | | | | | accelarator insertion in preparation for a second use of this code from type units. llvm-svn: 195164
* Revert "Give internal classes hidden visibility."Benjamin Kramer2013-09-111-1/+1
| | | | | | | It works with clang, but GCC has different rules so we can't make all of those hidden. This reverts commit r190534. llvm-svn: 190536
* Give internal classes hidden visibility.Benjamin Kramer2013-09-111-1/+1
| | | | | | Worth 100k on a linux/x86_64 Release+Asserts clang. llvm-svn: 190534
* Move accelerator table defines and constants to Dwarf.h sinceEric Christopher2013-09-051-29/+6
| | | | | | | | we're proposing it for DWARF5. No functional change intended. llvm-svn: 190074
* Reformat.Eric Christopher2013-09-051-60/+53
| | | | llvm-svn: 190064
* StringRefize some debug accel table bits.Benjamin Kramer2013-05-111-1/+1
| | | | llvm-svn: 181663
* Whitespace and 80-column cleanup.Eric Christopher2012-12-201-9/+9
| | | | llvm-svn: 170771
* Start splitting out the debug string section handling by moving itEric Christopher2012-12-201-3/+3
| | | | | | into the DwarfUnits class. llvm-svn: 170770
* Sort includes for all of the .h files under the 'lib' tree. These wereChandler Carruth2012-12-041-4/+4
| | | | | | | | | | missed in the first pass because the script didn't yet handle include guards. Note that the script is now able to handle all of these headers without manual edits. =] llvm-svn: 169224
* Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments.Craig Topper2012-09-151-2/+2
| | | | llvm-svn: 163974
* Reduce malloc traffic in DwarfAccelTableBenjamin Kramer2012-04-131-22/+15
| | | | | | | | | - Don't copy offsets into HashData, the underlying vector won't change once the table is finalized. - Allocate HashData and HashDataContents in a BumpPtrAllocator. - Allocate string map entries in the same allocator. - Random cleanups. llvm-svn: 154694
* Remove extraneous ';'s.Bill Wendling2012-01-231-1/+1
| | | | llvm-svn: 148740
* As part of the ongoing work in finalizing the accelerator tables, extendEric Christopher2012-01-061-9/+46
| | | | | | | | | the debug type accelerator tables to contain the tag and a flag stating whether or not a compound type is a complete type. rdar://10652330 llvm-svn: 147651
* Remove extra ';'Devang Patel2011-11-091-2/+2
| | | | llvm-svn: 144172
* Move the hash function to using and taking a StringRef.Eric Christopher2011-11-071-4/+4
| | | | llvm-svn: 144024
* Simple destructor to delete the hash data we created earlier.Eric Christopher2011-11-071-0/+1
| | | | llvm-svn: 144023
* Add the support code to enable the dwarf accelerator tables. Upcoming patchesEric Christopher2011-11-071-4/+2
| | | | | | | | to fix the types section (all types, not just global types), and testcases. The code to do the final emission is disabled by default. llvm-svn: 143923
* Add a new dwarf accelerator table prototype with the goal of replacingEric Christopher2011-11-071-0/+254
the pubnames and pubtypes tables. LLDB can currently use this format and a full spec is forthcoming and submission for standardization is planned. A basic summary: The dwarf accelerator tables are an indirect hash table optimized for null lookup rather than access to known data. They are output into an on-disk format that looks like this: .-------------. | HEADER | |-------------| | BUCKETS | |-------------| | HASHES | |-------------| | OFFSETS | |-------------| | DATA | `-------------' where the header contains a magic number, version, type of hash function, the number of buckets, total number of hashes, and room for a special struct of data and the length of that struct. The buckets contain an index (e.g. 6) into the hashes array. The hashes section contains all of the 32-bit hash values in contiguous memory, and the offsets contain the offset into the data area for the particular hash. For a lookup example, we could hash a function name and take it modulo the number of buckets giving us our bucket. From there we take the bucket value as an index into the hashes table and look at each successive hash as long as the hash value is still the same modulo result (bucket value) as earlier. If we have a match we look at that same entry in the offsets table and grab the offset in the data for our final match. llvm-svn: 143921
OpenPOWER on IntegriCloud