aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/AsmPrinter/DIEHash.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Update aosp/master LLVM for rebase to r230699.Stephen Hines2015-03-231-1/+1
| | | | Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
* Update aosp/master LLVM for rebase to r222494.Stephen Hines2014-12-021-1/+1
| | | | Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
* Update LLVM for 3.5 rebase (r209712).Stephen Hines2014-05-291-10/+8
| | | | Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
* Update to LLVM 3.5a.Stephen Hines2014-04-241-85/+139
| | | | Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
* DIEHash: Move header include to be first in the implementation file to flush ↵David Blaikie2013-11-131-1/+2
| | | | | | out header inclusion ordering issues git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194588 91177308-0d34-0410-b5e6-96231b3b80d8
* DIEHash: Summary hashing of member functionsDavid Blaikie2013-10-251-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193432 91177308-0d34-0410-b5e6-96231b3b80d8
* DIEHash: Summary hashing of nested typesDavid Blaikie2013-10-251-1/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193427 91177308-0d34-0410-b5e6-96231b3b80d8
* DIEHash: Const correct and use references where non-null/non-rebound.David Blaikie2013-10-241-36/+36
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193363 91177308-0d34-0410-b5e6-96231b3b80d8
* DIEHash: Do not use shallow type hashing for unnamed typesDavid Blaikie2013-10-241-4/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193361 91177308-0d34-0410-b5e6-96231b3b80d8
* DIEHash: Refactor ref attribute hashing into smaller functionsDavid Blaikie2013-10-241-68/+84
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193360 91177308-0d34-0410-b5e6-96231b3b80d8
* DIEHashing: Provide an assert for unreachable functionality regarding friends.David Blaikie2013-10-221-0/+3
| | | | | | | | | | | | | Since (as of r190716) Clang no longer emits debug info for C++ friend declarations (and it seems GCC never has/does, which was the motivation for the Clang change), there's no actual reachable case for implementing the part of DWARF 4, Section 7.27 part 5 that pertains to friends. Leave an assert here so that if/when we do have a client producing friends and using type units, we can fill in the gap and add appropriate (unit and feature) tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193193 91177308-0d34-0410-b5e6-96231b3b80d8
* DWARF type hashing: pointers to membersDavid Blaikie2013-10-221-11/+14
| | | | | | | | | Includes a test case/FIXME demonstrating a bug/limitation in pointer to member hashing. To be honest I'm not sure why we don't just always use summary hashing for referenced types... but perhaps I'm missing something. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193175 91177308-0d34-0410-b5e6-96231b3b80d8
* DWARF Type Hashing: Include reference and rvalue reference type in the ↵David Blaikie2013-10-211-1/+3
| | | | | | | | declarable summary hashing path More support for 7.25 Part 5. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193129 91177308-0d34-0410-b5e6-96231b3b80d8
* DWARF type hashing: begin implementing Step 5, summary hashing in declarable ↵David Blaikie2013-10-211-5/+37
| | | | | | | | | contexts There are several other tag types that need similar handling but to ensure test coverage they'll be coming incrementally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193126 91177308-0d34-0410-b5e6-96231b3b80d8
* DWARF type hashing: Handle multiple (including recursive) references to the ↵David Blaikie2013-10-211-8/+19
| | | | | | | | | | same type This uses a map, keeping the type DIE numbering separate from the DIEs themselves - alternatively we could do things the way GCC does if we want to add an integer to the DIE type to record the numbering there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193105 91177308-0d34-0410-b5e6-96231b3b80d8
* DebugInfo: Hash DW_FORM_GNU_str_index as a string.David Blaikie2013-10-211-1/+3
| | | | | | | | | | Found while adding type safety to the various DWARF enumerations (form, attribute, tag, etc) that caused Clang to warn on an incompletely covered switch. Converting the comment to a default/unreachable uncovered this case of an unsupported form encoding. Seems we were skipping fission strings entirely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193089 91177308-0d34-0410-b5e6-96231b3b80d8
* DIEHash: Add more things (and remove one character) from the COLLECT_ATTR macroDavid Blaikie2013-10-171-149/+53
| | | | | | | Makes the uses more terse and requires that they use a semicolon at the end that helps editors indent proceeding lines correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192925 91177308-0d34-0410-b5e6-96231b3b80d8
* DIEHash: Support for simple (non-recursive, non-reused) type referencesDavid Blaikie2013-10-171-6/+31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192924 91177308-0d34-0410-b5e6-96231b3b80d8
* DIEHash: Include the type's context in the type hash.David Blaikie2013-10-171-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192856 91177308-0d34-0410-b5e6-96231b3b80d8
* DIEHash: Use DW_FORM_sdata for integers, per spec.David Blaikie2013-10-161-5/+25
| | | | | | | This allows us to produce the same hash as GCC for at least some simple examples. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192855 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove ambiguity introduced in r192836David Blaikie2013-10-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192840 91177308-0d34-0410-b5e6-96231b3b80d8
* DIEHash: Include the trailing zero byte after the children of a DIEDavid Blaikie2013-10-161-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192836 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify zero initialization of DIEAttrs variable.David Blaikie2013-10-161-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192755 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a hashing routine that handles hashing types. Add a test forEric Christopher2013-09-031-0/+20
| | | | | | hashing the contents of DW_FORM_data1 on top of a type with attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189862 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the rest of the stock attributes to the attribute table.Eric Christopher2013-09-031-5/+191
| | | | | | | | This won't affect the kinds of hashes we test for as we actually do hashing based on form and attribute. Change the fission-hash testcase one last time to handle DW_AT_comp_dir. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189840 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a TODO here.Eric Christopher2013-08-281-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189428 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for DW_FORM_dataN and DW_FORM_udata to the DIE hashingEric Christopher2013-08-281-0/+11
| | | | | | | algorithm. Update the split dwarf hashing testcase accordingly - this should be the last time that the hash of an empty file changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189427 91177308-0d34-0410-b5e6-96231b3b80d8
* DebugInfo: Prefer references over pointers, pass by const reference for a ↵David Blaikie2013-08-141-5/+5
| | | | | | type that will grow in the future git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188422 91177308-0d34-0410-b5e6-96231b3b80d8
* Pass DIEHash::collectAttributes output argument by-pointer instead of by-value.Evgeniy Stepanov2013-08-131-4/+4
| | | | | | | Before this, collectAttributes() was operating on a local object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188254 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the start of DIE hashing for DWARF4 type units and split dwarfEric Christopher2013-08-131-0/+104
| | | | | | | | | | CUs. Currently only hashes the name of CUs and the names of any children, but it's an obvious first step to show the framework. The testcase should continue to be correct, however, as it's an empty TU. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188243 91177308-0d34-0410-b5e6-96231b3b80d8
* Reflow comment.Eric Christopher2013-08-121-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188233 91177308-0d34-0410-b5e6-96231b3b80d8
* Move hash computation code into a separate class and file.Eric Christopher2013-08-081-0/+136
No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188028 91177308-0d34-0410-b5e6-96231b3b80d8