#
ad78768d |
| 19-Mar-2019 |
Markus Lavin <markus.lavin@ericsson.com> |
Revert "[DebugInfo] Introduce DW_OP_LLVM_convert"
This reverts commit 1cf4b593a7ebd666fc6775f3bd38196e8e65fafe.
Build bots found failing tests not detected locally.
Failing Tests (3): LLVM :: De
Revert "[DebugInfo] Introduce DW_OP_LLVM_convert"
This reverts commit 1cf4b593a7ebd666fc6775f3bd38196e8e65fafe.
Build bots found failing tests not detected locally.
Failing Tests (3): LLVM :: DebugInfo/Generic/convert-debugloc.ll LLVM :: DebugInfo/Generic/convert-inlined.ll LLVM :: DebugInfo/Generic/convert-linked.ll
llvm-svn: 356444
show more ...
|
#
cd8a940b |
| 19-Mar-2019 |
Markus Lavin <markus.lavin@ericsson.com> |
[DebugInfo] Introduce DW_OP_LLVM_convert
Introduce a DW_OP_LLVM_convert Dwarf expression pseudo op that allows for a convenient way to perform type conversions on the Dwarf expression stack. As an a
[DebugInfo] Introduce DW_OP_LLVM_convert
Introduce a DW_OP_LLVM_convert Dwarf expression pseudo op that allows for a convenient way to perform type conversions on the Dwarf expression stack. As an additional bonus it paves the way for using other Dwarf v5 ops that need to reference a base_type.
The new DW_OP_LLVM_convert is used from lib/Transforms/Utils/Local.cpp to perform sext/zext on debug values but mainly the patch is about preparing terrain for adding other Dwarf v5 ops that need to reference a base_type.
For Dwarf v5 the op maps to DW_OP_convert and for earlier versions a complex shift & mask pattern is generated to emulate sext/zext.
Differential Revision: https://reviews.llvm.org/D56587
llvm-svn: 356442
show more ...
|
Revision tags: llvmorg-8.0.0, llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1, llvmorg-8.0.0-rc2, llvmorg-8.0.0-rc1 |
|
#
2946cd70 |
| 19-Jan-2019 |
Chandler Carruth <chandlerc@gmail.com> |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the ne
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license.
We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository.
llvm-svn: 351636
show more ...
|
#
ac69af7a |
| 19-Dec-2018 |
David Blaikie <dblaikie@gmail.com> |
llvm-dwarfdump: Improve/fix pretty printing of array dimensions
This is to address post-commit feedback from Paul Robinson on r348954.
The original commit misinterprets count and upper bound as the
llvm-dwarfdump: Improve/fix pretty printing of array dimensions
This is to address post-commit feedback from Paul Robinson on r348954.
The original commit misinterprets count and upper bound as the same thing (I thought I saw GCC producing an upper bound the same as Clang's count, but GCC correctly produces an upper bound that's one less than the count (in C, that is, where arrays are zero indexed)).
I want to preserve the C-like output for the common case, so in the absence of a lower bound the count (or one greater than the upper bound) is rendered between []. In the trickier cases, where a lower bound is specified, a half-open range is used (eg: lower bound 1, count 2 would be "[1, 3)" and an unknown parts use a '?' (eg: "[1, ?)" or "[?, 7)" or "[?, ? + 3)").
Reviewers: aprantl, probinson, JDevlieghere
Differential Revision: https://reviews.llvm.org/D55721
llvm-svn: 349670
show more ...
|
#
f57d7d82 |
| 18-Dec-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
[AArch64] - Return address signing dwarf support
- Reapply changes intially introduced in r343089 - The archtecture info is no longer loaded whenever a DWARFContext is created - The runtimes librari
[AArch64] - Return address signing dwarf support
- Reapply changes intially introduced in r343089 - The archtecture info is no longer loaded whenever a DWARFContext is created - The runtimes libraries (santiziers) make use of the dwarf context classes but do not intialise the target info - The architecture of the object can be obtained without loading the target info - Adding a method to the dwarf context to get this information and multiplex the string printing later on
Differential Revision: https://reviews.llvm.org/D55774
llvm-svn: 349472
show more ...
|
Revision tags: llvmorg-7.0.1, llvmorg-7.0.1-rc3 |
|
#
6db3a6a4 |
| 23-Nov-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
Revert r347490 as it breaks address sanitizer builds
llvm-svn: 347499
|
#
d6dbd641 |
| 23-Nov-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
Revert r343341
- Cannot reproduce the build failure locally and the build logs have been deleted.
llvm-svn: 347490
|
Revision tags: llvmorg-7.0.1-rc2, llvmorg-7.0.1-rc1 |
|
#
10981cc8 |
| 28-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
Revert r343317
- asan buildbots are breaking and I need to investigate the issue
llvm-svn: 343341
|
#
21f2955b |
| 28-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
Reapply changes reverted by r343235
- Add fix so that all code paths that create DWARFContext with an ObjectFile initialise the target architecture in the context - Add an assert that the Arch is
Reapply changes reverted by r343235
- Add fix so that all code paths that create DWARFContext with an ObjectFile initialise the target architecture in the context - Add an assert that the Arch is known in the Dwarf CallFrameString method
llvm-svn: 343317
show more ...
|
#
8e5676b1 |
| 27-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
Revert r343192 as an ubsan build is currently failing
llvm-svn: 343235
|
#
f6844b30 |
| 27-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
Reapply changes reverted in r343114, lldb patch to follow shortly
llvm-svn: 343192
|
#
77aaa220 |
| 26-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
Revert r343112 as CallFrameString API change has broken lldb builds
llvm-svn: 343114
|
#
03ad8812 |
| 26-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
[AArch64] - Return address signing dwarf support
- Reapply r343089 with a fix for DebugInfo/Sparc/gnu-window-save.ll
llvm-svn: 343112
|
#
00b88bbc |
| 26-Sep-2018 |
Hans Wennborg <hans@hanshq.net> |
Revert r343089 "[AArch64] - Return address signing dwarf support"
This caused the DebugInfo/Sparc/gnu-window-save.ll test to fail.
> Functions that have signed return addresses need additional dwar
Revert r343089 "[AArch64] - Return address signing dwarf support"
This caused the DebugInfo/Sparc/gnu-window-save.ll test to fail.
> Functions that have signed return addresses need additional dwarf support: > - After signing the LR, and before authenticating it, the LR register is in a > state the is unusable by a debugger or unwinder > - To account for this a new directive, .cfi_negate_ra_state, is added > - This directive says the signed state of the LR register has now changed, > i.e. unsigned -> signed or signed -> unsigned > - This directive has the same CFA code as the SPARC directive GNU_window_save > (0x2d), adding a macro to account for multiply defined codes > - This patch matches the gcc implementation of this support: > https://patchwork.ozlabs.org/patch/800271/ > > Differential Revision: https://reviews.llvm.org/D50136
llvm-svn: 343103
show more ...
|
#
f755e687 |
| 26-Sep-2018 |
Luke Cheeseman <luke.cheeseman@arm.com> |
[AArch64] - Return address signing dwarf support
Functions that have signed return addresses need additional dwarf support: - After signing the LR, and before authenticating it, the LR register is i
[AArch64] - Return address signing dwarf support
Functions that have signed return addresses need additional dwarf support: - After signing the LR, and before authenticating it, the LR register is in a state the is unusable by a debugger or unwinder - To account for this a new directive, .cfi_negate_ra_state, is added - This directive says the signed state of the LR register has now changed, i.e. unsigned -> signed or signed -> unsigned - This directive has the same CFA code as the SPARC directive GNU_window_save (0x2d), adding a macro to account for multiply defined codes - This patch matches the gcc implementation of this support: https://patchwork.ozlabs.org/patch/800271/
Differential Revision: https://reviews.llvm.org/D50136
llvm-svn: 343089
show more ...
|
Revision tags: llvmorg-7.0.0, llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2, llvmorg-7.0.0-rc1 |
|
#
327e7a16 |
| 13-Jul-2018 |
Jonas Devlieghere <jonas@devlieghere.com> |
[dwarfdump] Add pretty printer for accelerator table based on Atom.
For instance, When dumping .apple_types, the second atom represents the DW_TAG. In addition to printing the raw value, we now also
[dwarfdump] Add pretty printer for accelerator table based on Atom.
For instance, When dumping .apple_types, the second atom represents the DW_TAG. In addition to printing the raw value, we now also pretty print the value if the ATOM tells us how.
llvm-svn: 337026
show more ...
|
#
8afd9260 |
| 13-Jul-2018 |
Jonas Devlieghere <jonas@devlieghere.com> |
[dwarfdump] Pretty print DW_AT_APPLE_runtime_class
Instead of printing
DW_AT_APPLE_runtime_class (0x10)
we now print
DW_AT_APPLE_runtime_class (DW_LANG_ObjC)
llvm-svn: 337011
|
Revision tags: llvmorg-6.0.1, llvmorg-6.0.1-rc3, llvmorg-6.0.1-rc2, llvmorg-6.0.1-rc1, llvmorg-5.0.2, llvmorg-5.0.2-rc2 |
|
#
646ab411 |
| 21-Mar-2018 |
Pavel Labath <labath@google.com> |
Fix build broken by r328090
- constexpr is needed for out-of-class definition of the Type static member by some compilers - MSVC is confused by the initialization of the static constexpr char[]
Fix build broken by r328090
- constexpr is needed for out-of-class definition of the Type static member by some compilers - MSVC is confused by the initialization of the static constexpr char[] member when it happens in a template specialization. Explicitly specifying the length of the array seems to be enough to help it figure things out.
llvm-svn: 328093
show more ...
|
#
9025f955 |
| 21-Mar-2018 |
Pavel Labath <labath@google.com> |
[dwarf] Unify unknown dwarf enum formatting code
Summary: We have had at least three pieces of code (in DWARFAbbreviationDeclaration, DWARFAcceleratorTable and DWARFDie) that have hand-rolled suppor
[dwarf] Unify unknown dwarf enum formatting code
Summary: We have had at least three pieces of code (in DWARFAbbreviationDeclaration, DWARFAcceleratorTable and DWARFDie) that have hand-rolled support for dumping unknown dwarf enum values. While not terrible, they are a bit distracting and enable small differences to creep in (Unknown_ffff vs. Unknown_0xffff). I ended up needing to add a fourth place (DWARFVerifier), so it seems it would be a good time to centralize.
This patch creates an alternative to the XXXString dumping functions in the BinaryFormat library, which formats an unknown value as DW_TYPE_unknown_1234, instead of just an empty string. It is based on the formatv function, as that allows us to avoid materializing the string for unknown values (and because this way I don't have to invent a name for the new functions :P).
In this patch I add formatters for dwarf attributes, forms, tags, and index attributes as these are the ones in use currently, but adding other enums is straight-forward.
Reviewers: dblaikie, JDevlieghere, aprantl
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D44570
llvm-svn: 328090
show more ...
|
Revision tags: llvmorg-5.0.2-rc1 |
|
#
322711f5 |
| 14-Mar-2018 |
Pavel Labath <labath@google.com> |
DWARF: Unify form size handling code
Summary: This patch replaces the two switches which are deducing the size of various forms with a single implementation. I have put the new implementation into B
DWARF: Unify form size handling code
Summary: This patch replaces the two switches which are deducing the size of various forms with a single implementation. I have put the new implementation into BinaryFormat, to avoid introducing dependencies between the two independent libraries (DebugInfo and CodeGen) that need this functionality.
Reviewers: aprantl, JDevlieghere, dblaikie
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D44418
llvm-svn: 327486
show more ...
|
#
a0729d41 |
| 08-Mar-2018 |
Wolfgang Pieb <Wolfgang.Pieb@sony.com> |
[DWARF v5] Support for verbose dumping of .debug_rnglist entries
Adding verbose dumping to the recent implementation of dumping of v5 range list entries. We're capturing the entries as is as they c
[DWARF v5] Support for verbose dumping of .debug_rnglist entries
Adding verbose dumping to the recent implementation of dumping of v5 range list entries. We're capturing the entries as is as they come in during extraction, including their file offset, so we can dump them in more detail. The offset table entries which are table-relative are shown as is (as in non-verbose mode) and with the actual file offset they map to.
Reviewers: dblaikie, aprantl, jdevlieghere, jhenderson
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D43366
llvm-svn: 327059
show more ...
|
Revision tags: llvmorg-6.0.0, llvmorg-6.0.0-rc3, llvmorg-6.0.0-rc2 |
|
#
8c59921c |
| 06-Feb-2018 |
Adrian Prantl <aprantl@apple.com> |
Add DWARF for discriminated unions
n Rust, an enum that carries data in the variants is, essentially, a discriminated union. Furthermore, the Rust compiler will perform space optimizations on such e
Add DWARF for discriminated unions
n Rust, an enum that carries data in the variants is, essentially, a discriminated union. Furthermore, the Rust compiler will perform space optimizations on such enums in some situations. Previously, DWARF for these constructs was emitted using a hack (a magic field name); but this approach stopped working when more space optimizations were added in https://github.com/rust-lang/rust/pull/45225.
This patch changes LLVM to allow discriminated unions to be represented in DWARF. It adds createDiscriminatedUnionType and createDiscriminatedMemberType to DIBuilder and then arranges for this to be emitted using DWARF's DW_TAG_variant_part and DW_TAG_variant.
Note that DWARF requires that a discriminated union be represented as a structure with a variant part. However, as Rust only needs to emit pure discriminated unions, this is what I chose to expose on DIBuilder.
Patch by Tom Tromey!
Differential Revision: https://reviews.llvm.org/D42082
llvm-svn: 324426
show more ...
|
#
92ac9d3e |
| 28-Jan-2018 |
Jonas Devlieghere <jonas@devlieghere.com> |
[Support] Move DJB hash to support. NFC
This patch moves the DJB hash to support. This is consistent with other hashing algorithms living there. The hash is used by the DWARF accelerator tables. We'
[Support] Move DJB hash to support. NFC
This patch moves the DJB hash to support. This is consistent with other hashing algorithms living there. The hash is used by the DWARF accelerator tables. We're doing this now because the hashing function is needed by dsymutil and we don't want to link against libBinaryFormat.
Differential revision: https://reviews.llvm.org/D42594
llvm-svn: 323616
show more ...
|
#
2c14b155 |
| 25-Jan-2018 |
Jonas Devlieghere <jonas@devlieghere.com> |
[Dwarf] Add dsymutil Atom extensions. NFC
This patch extends the atom types used by the Apple accelerator tables with two dsymutil extensions:
- DW_ATOM_type_type_flags - DW_ATOM_qual_name_hash
[Dwarf] Add dsymutil Atom extensions. NFC
This patch extends the atom types used by the Apple accelerator tables with two dsymutil extensions:
- DW_ATOM_type_type_flags - DW_ATOM_qual_name_hash
llvm-svn: 323414
show more ...
|
#
5803a674 |
| 24-Jan-2018 |
Jonas Devlieghere <jonas@devlieghere.com> |
[NFC] Make magic number for DJB hash function customizable.
This allows us to specify the magic number for the DJB hash function. This feature is needed by dsymutil to emit Apple types accelerator t
[NFC] Make magic number for DJB hash function customizable.
This allows us to specify the magic number for the DJB hash function. This feature is needed by dsymutil to emit Apple types accelerator table.
llvm-svn: 323341
show more ...
|