summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter
Commit message (Collapse)AuthorAgeFilesLines
...
* Take advantage of the zero byte in StringMap when emitting dwarf stringpool ↵Benjamin Kramer2011-11-091-2/+3
| | | | | | entries. llvm-svn: 144184
* Remove extra ';'Devang Patel2011-11-091-2/+2
| | | | llvm-svn: 144172
* Remove the pubnames section, no one consumes it.Eric Christopher2011-11-094-75/+3
| | | | llvm-svn: 144169
* Also add the linkage name to the name accelerator tables if it existsEric Christopher2011-11-082-2/+19
| | | | | | and is different than the normal name. llvm-svn: 144130
* Add the base ObjC method name to the names lookup table as well.Eric Christopher2011-11-081-0/+6
| | | | llvm-svn: 144105
* A few more places where we can avoid multiple size queries.Eric Christopher2011-11-081-7/+7
| | | | llvm-svn: 144099
* Don't evaluate Data.size() on every iteration.Eric Christopher2011-11-081-1/+1
| | | | llvm-svn: 144095
* Add all completed and named types to the dwarf type accelerator tables.Eric Christopher2011-11-072-2/+7
| | | | llvm-svn: 144027
* 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-072-0/+6
| | | | llvm-svn: 144023
* Use StringRef::startswith to do some string comparisons.Eric Christopher2011-11-071-5/+2
| | | | llvm-svn: 143982
* Avoid the use of a local temporary for comment twines.Eric Christopher2011-11-071-6/+3
| | | | llvm-svn: 143974
* Allow for the case where the name of the subprogram is "".Eric Christopher2011-11-071-0/+1
| | | | | | Fixes a self-host error. llvm-svn: 143970
* Remove unnecessary addition to API. Replace with something much simpler.Eric Christopher2011-11-073-13/+1
| | | | llvm-svn: 143925
* Add new files to cmake.Eric Christopher2011-11-071-0/+1
| | | | llvm-svn: 143924
* Add the support code to enable the dwarf accelerator tables. Upcoming patchesEric Christopher2011-11-075-6/+224
| | | | | | | | 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-072-0/+504
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Expose a way to get the beginning of the dwarf string section.Eric Christopher2011-11-072-12/+23
| | | | llvm-svn: 143920
* Fix up comment.Eric Christopher2011-11-071-1/+1
| | | | llvm-svn: 143919
* Typo.Eric Christopher2011-11-071-1/+1
| | | | llvm-svn: 143918
* Add an option to pad an uleb128 to MCObjectWriter and remove the uleb128 ↵Benjamin Kramer2011-11-051-35/+2
| | | | | | | | encoding from the DWARF asm printer. As a side effect we now print dwarf ulebs with .ascii directives. llvm-svn: 143809
* Add more PRI.64 macros for MSVC and use them throughout the codebase.Benjamin Kramer2011-11-052-3/+4
| | | | llvm-svn: 143799
* Emit declarations before definitions if they are available. This causes ↵Rafael Espindola2011-11-041-6/+18
| | | | | | | | DW_AT_specification to point back in the file in the included testcase. Fixes PR11300. llvm-svn: 143726
* build: Add initial cut at LLVMBuild.txt files.Daniel Dunbar2011-11-031-0/+23
| | | | llvm-svn: 143634
* Don't emit a directory entry for the value in DW_AT_comp_dir, that is alwaysNick Lewycky2011-11-022-4/+12
| | | | | | implied by directory index zero. llvm-svn: 143570
* Dwarf: [PR11022] Fix emitting DW_AT_const_value(>i64), to be ↵NAKAMURA Takumi2011-10-281-7/+9
| | | | | | | | | | | host-endian-neutral. Don't assume APInt::getRawData() would hold target-aware endianness nor host-compliant endianness. rawdata[0] holds most lower i64, even on big endian host. FIXME: Add a testcase for big endian target. FIXME: Ditto on CompileUnit::addConstantFPValue() ? llvm-svn: 143194
* Always use the string pool, even when it makes the .o larger. This may helpNick Lewycky2011-10-283-60/+11
| | | | | | | tools that read the debug info in the .o files by making the DIE sizes more consistent. llvm-svn: 143186
* Teach our Dwarf emission to use the string pool.Nick Lewycky2011-10-276-39/+56
| | | | llvm-svn: 143097
* Reflow lines, fix comments for doxygen style, fix whitespace. No functionalityNick Lewycky2011-10-262-34/+27
| | | | | | change. llvm-svn: 143074
* Remove dead enum value. There is no DIESectionOffset.Nick Lewycky2011-10-251-1/+0
| | | | llvm-svn: 142912
* Remove unused forward decl.Eric Christopher2011-10-251-1/+0
| | | | llvm-svn: 142892
* Missed a spot!Nick Lewycky2011-10-181-1/+1
| | | | llvm-svn: 142436
* Fix some typo/formatting issues. No functionality change.Nick Lewycky2011-10-182-10/+10
| | | | llvm-svn: 142435
* Minor style cleanup, no functionality change.Nick Lewycky2011-10-171-3/+2
| | | | llvm-svn: 142307
* Add support for a new extension to the .file directive:Nick Lewycky2011-10-172-18/+17
| | | | | | | | | | .file filenumber "directory" "filename" This removes one join+split of the directory+filename in MC internals. Because bitcode files have independent fields for directory and filenames in debug info, this patch may change the .o files written by existing .bc files. llvm-svn: 142300
* Twinify better.Benjamin Kramer2011-10-161-20/+15
| | | | llvm-svn: 142139
* Add a new wrapper node for a DILexicalBlock that encapsulates it and aEric Christopher2011-10-111-0/+4
| | | | | | | | | | | | | file. Since it should only be used when necessary propagate it through the backend code generation and tweak testcases accordingly. This helps with code like in clang's test/CodeGen/debug-info-line.c where we have multiple #line directives within a single lexical block and want to generate only a single block that contains each file change. Part of rdar://10246360 llvm-svn: 141729
* Teach the MC to output code/data region marker labels in MachO and ELF ↵Owen Anderson2011-10-041-1/+12
| | | | | | modes. These are used by disassemblers to provide better disassembly, particularly on targets like ARM Thumb that like to intermingle data in the TEXT segment. llvm-svn: 141135
* Whitespace.Eric Christopher2011-10-031-1/+1
| | | | llvm-svn: 141005
* Typo.Eric Christopher2011-10-031-1/+1
| | | | llvm-svn: 141004
* Place this bracket according to the LLVM style.Duncan Sands2011-09-291-2/+1
| | | | llvm-svn: 140784
* A typeid of zero means a cleanup, not a catch. This case occursDuncan Sands2011-09-281-2/+4
| | | | | | when there is both a catch and a cleanup. Correct the comment. llvm-svn: 140686
* Fix emission of debug data for global variables. getContext() on ↵James Molloy2011-09-261-2/+2
| | | | | | DIGlobalVariables is not valid any more. llvm-svn: 140539
* Do not unnecessarily use AT_specification DIE because it does not add any value.Devang Patel2011-09-211-1/+1
| | | | | | Few weeks ago, llvm completely inverted the debug info graph. Earlier each debug info node used to keep track of its compile unit, now compile unit keeps track of important nodes. One impact of this change is that the global variable's do not have any context, which should be checked before deciding to use AT_specification DIE. llvm-svn: 140282
* Tidy up. Whitepsace.Jim Grosbach2011-09-211-3/+3
| | | | llvm-svn: 140275
* Add support to emit debug info for C++0x nullptr type.Devang Patel2011-09-141-4/+11
| | | | llvm-svn: 139751
* Darwin wants ctors/dtors to be ordered the other way round to linux.Duncan Sands2011-09-021-1/+10
| | | | llvm-svn: 139015
* Don't drop alignment info on local common symbols.Benjamin Kramer2011-09-011-5/+5
| | | | | | | | | | | - On COFF the .lcomm directive has an alignment argument. - On ELF we fall back to .local + .comm Based on a patch by NAKAMURA Takumi. Fixes PR9337, PR9483 and PR10128. llvm-svn: 138976
* Fix Size TypingDavid Greene2011-08-311-1/+1
| | | | | | Stores sizes as uint64_t to avoid possible truncation. llvm-svn: 138901
* Compress Repeated Byte OutputDavid Greene2011-08-311-3/+59
| | | | | | | Emit a repeated sequence of bytes using .zero. This saves an enormous amount of asm file space for certain programs. llvm-svn: 138864
OpenPOWER on IntegriCloud