|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
8dfaecc4 |
| 23-Jul-2022 |
Argyrios Kyrtzidis <[email protected]> |
[CGDebugInfo] Access the current working directory from the `VFS`
...instead of calling `llvm::sys::fs::current_path()` directly.
Differential Revision: https://reviews.llvm.org/D130443
|
| #
4821508d |
| 24-Jun-2022 |
David Blaikie <[email protected]> |
Revert "DebugInfo: Fully integrate ctor type homing into 'limited' debug info"
Reverting to simplify some Google-internal rollout issues. Will recommit in a week or two.
This reverts commit 517bbc6
Revert "DebugInfo: Fully integrate ctor type homing into 'limited' debug info"
Reverting to simplify some Google-internal rollout issues. Will recommit in a week or two.
This reverts commit 517bbc64dbe493644eff8d55fd9566435e930520.
show more ...
|
| #
517bbc64 |
| 22-Jun-2022 |
David Blaikie <[email protected]> |
DebugInfo: Fully integrate ctor type homing into 'limited' debug info
Simplify debug info back to just "limited" or "full" by rolling the ctor type homing fully into the "limited" debug info.
Also
DebugInfo: Fully integrate ctor type homing into 'limited' debug info
Simplify debug info back to just "limited" or "full" by rolling the ctor type homing fully into the "limited" debug info.
Also fix a bug I found along the way that was causing ctor type homing to kick in even when something could be vtable homed (where vtable homing is stronger/more effective than ctor homing) - fixing at the same time as it keeps the tests (that were testing only "limited non ctor" homing and now test ctor homing) passing.
show more ...
|
|
Revision tags: llvmorg-14.0.6 |
|
| #
ca4af13e |
| 21-Jun-2022 |
Kazu Hirata <[email protected]> |
[clang] Don't use Optional::getValue (NFC)
|
|
Revision tags: llvmorg-14.0.5, llvmorg-14.0.4 |
|
| #
83c431fb |
| 20-May-2022 |
Jon Chesterfield <[email protected]> |
[amdgpu] Add amdgpu_kernel calling conv attribute to clang
Allows emitting define amdgpu_kernel void @func() IR from C or C++.
This replaces the current workflow which is to write a stub in opencl
[amdgpu] Add amdgpu_kernel calling conv attribute to clang
Allows emitting define amdgpu_kernel void @func() IR from C or C++.
This replaces the current workflow which is to write a stub in opencl that calls an external C function implemented in C++ combined through llvm-link.
Calling the resulting function still requires a manual implementation of the ABI from the host side. The primary application is for more rapid debugging of the amdgpu backend by permuting a C or C++ test file instead of manually updating an IR file.
Implementation closely follows D54425. Non-amd reviewers from there.
Reviewed By: yaxunl
Differential Revision: https://reviews.llvm.org/D125970
show more ...
|
| #
7aa1fa0a |
| 18-May-2022 |
Mitch Phillips <[email protected]> |
Reland "[dwarf] Emit a DIGlobalVariable for constant strings."
An upcoming patch will extend llvm-symbolizer to provide the source line information for global variables. The goal is to move AddressS
Reland "[dwarf] Emit a DIGlobalVariable for constant strings."
An upcoming patch will extend llvm-symbolizer to provide the source line information for global variables. The goal is to move AddressSanitizer off of internal debug info for symbolization onto the DWARF standard (and doing a clean-up in the process). Currently, ASan reports the line information for constant strings if a memory safety bug happens around them. We want to keep this behaviour, so we need to emit debuginfo for these variables as well.
Reviewed By: dblaikie, rnk, aprantl
Differential Revision: https://reviews.llvm.org/D123534
show more ...
|
| #
ed2c3218 |
| 17-May-2022 |
Mitch Phillips <[email protected]> |
Revert "[dwarf] Emit a DIGlobalVariable for constant strings."
This reverts commit 4680982b36a84770a1600fc438be8ec090671724.
Broke a fuchsia windows bot. More details in the review: https://reviews
Revert "[dwarf] Emit a DIGlobalVariable for constant strings."
This reverts commit 4680982b36a84770a1600fc438be8ec090671724.
Broke a fuchsia windows bot. More details in the review: https://reviews.llvm.org/D123534
show more ...
|
| #
4680982b |
| 16-May-2022 |
Mitch Phillips <[email protected]> |
[dwarf] Emit a DIGlobalVariable for constant strings.
An upcoming patch will extend llvm-symbolizer to provide the source line information for global variables. The goal is to move AddressSanitizer
[dwarf] Emit a DIGlobalVariable for constant strings.
An upcoming patch will extend llvm-symbolizer to provide the source line information for global variables. The goal is to move AddressSanitizer off of internal debug info for symbolization onto the DWARF standard (and doing a clean-up in the process). Currently, ASan reports the line information for constant strings if a memory safety bug happens around them. We want to keep this behaviour, so we need to emit debuginfo for these variables as well.
Reviewed By: dblaikie, rnk, aprantl
Differential Revision: https://reviews.llvm.org/D123534
show more ...
|
|
Revision tags: llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1 |
|
| #
75bb8152 |
| 29-Mar-2022 |
Matt Devereau <[email protected]> |
[AArch64][SVE] Add aarch64_sve_pcs attribute to Clang
Enable function attribute aarch64_sve_pcs at the C level, which correspondes to aarch64_sve_vector_pcs at the LLVM IR level.
This requirement w
[AArch64][SVE] Add aarch64_sve_pcs attribute to Clang
Enable function attribute aarch64_sve_pcs at the C level, which correspondes to aarch64_sve_vector_pcs at the LLVM IR level.
This requirement was created by this addition to the ARM C Language Extension: https://github.com/ARM-software/acle/pull/194
Differential Revision: https://reviews.llvm.org/D124998
show more ...
|
| #
b09ba426 |
| 06-Apr-2022 |
Ying Yi <[email protected]> |
Bug 51277: [DWARF] DW_AT_alignment incorrect when attribute((__aligned__)) is present but ignored`
In the original code, the 'getDeclAlignIfRequired' function is used. The 'getDeclAlignIfRequired' f
Bug 51277: [DWARF] DW_AT_alignment incorrect when attribute((__aligned__)) is present but ignored`
In the original code, the 'getDeclAlignIfRequired' function is used. The 'getDeclAlignIfRequired' function will return the max alignment of all aligned attributes if the type has aligned attributes. The function doesn't consider the type at all.
The 'getTypeAlignIfRequired' function uses the type's alignment value, which also used by the 'alignof' function. I think we should use the function of 'getTypeAlignIfRequired'.
Reviewed By: dblaikie, jmorse, wolfgangp
Differential Revision: https://reviews.llvm.org/D124006
show more ...
|
| #
5ff992bc |
| 21-Apr-2022 |
Shafik Yaghmour <[email protected]> |
[DEBUG-INFO] Change how we handle auto return types for lambda operator() to be consistent with gcc
D70524 added support for auto return types for C++ member functions. I was implementing support on
[DEBUG-INFO] Change how we handle auto return types for lambda operator() to be consistent with gcc
D70524 added support for auto return types for C++ member functions. I was implementing support on the LLDB side for looking up the deduced type.
I ran into trouble with some cases with respect to lambdas. I looked into how gcc was handling these cases and it appears gcc emits the deduced return type for lambdas.
So I am changing out behavior to match that.
Differential Revision: https://reviews.llvm.org/D123319
show more ...
|
| #
9d98f589 |
| 15-Apr-2022 |
Jan Svoboda <[email protected]> |
[clang][CodeGen] NFCI: Use FileEntryRef
This patch removes use of the deprecated `DirectoryEntry::getName()` from clangCodeGen by using `{File,Directory}EntryRef` instead.
Reviewed By: bnbarham
Di
[clang][CodeGen] NFCI: Use FileEntryRef
This patch removes use of the deprecated `DirectoryEntry::getName()` from clangCodeGen by using `{File,Directory}EntryRef` instead.
Reviewed By: bnbarham
Differential Revision: https://reviews.llvm.org/D123768
show more ...
|
| #
1cee3d9d |
| 07-Apr-2022 |
David Blaikie <[email protected]> |
DebugInfo: Consider the type of NTTP when simplifying template names
Since the NTTP may need to be cast to the type when rebuilding the name, check that the type can be rebuilt when determining whet
DebugInfo: Consider the type of NTTP when simplifying template names
Since the NTTP may need to be cast to the type when rebuilding the name, check that the type can be rebuilt when determining whether a template name can be simplified.
show more ...
|
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
| #
b1ea0191 |
| 07-Mar-2022 |
Kavitha Natarajan <[email protected]> |
[clang][DebugInfo] Support debug info for alias variable
clang to emit DWARF information for global alias variable as DW_TAG_imported_declaration. This change also handles nested (recursive) importe
[clang][DebugInfo] Support debug info for alias variable
clang to emit DWARF information for global alias variable as DW_TAG_imported_declaration. This change also handles nested (recursive) imported declarations.
Reviewed by: dblaikie, aprantl
Differential Revision: https://reviews.llvm.org/D120989
show more ...
|
| #
6b306233 |
| 06-Apr-2022 |
David Blaikie <[email protected]> |
DebugInfo: Make the simplified template names prefix more unique
|
| #
bb3980ae |
| 05-Apr-2022 |
David Blaikie <[email protected]> |
DebugInfo: Don't use enumerators in template names for debug info as they are not canonical
Since enumerators may not be available in every translation unit they can't be reliably used to name entit
DebugInfo: Don't use enumerators in template names for debug info as they are not canonical
Since enumerators may not be available in every translation unit they can't be reliably used to name entities. (this also makes simplified template name roundtripping infeasible - since the expected name could only be rebuilt if the enumeration definition could be found (or only if it couldn't be found, depending on the context of the original name))
show more ...
|
| #
7b498bee |
| 24-Mar-2022 |
David Blaikie <[email protected]> |
DebugInfo: Classify noreturn function types as non-reconstructible
This information isn't preserved in the DWARF description of function types (though probably should be - it's preserved on the func
DebugInfo: Classify noreturn function types as non-reconstructible
This information isn't preserved in the DWARF description of function types (though probably should be - it's preserved on the function declarations/definitions themselves through the DW_AT_noreturn attribute - but we should move or also include that in the subroutine type itself too - but for now, with it not being there, the DWARF is lossy and can't be reconstructed)
show more ...
|
| #
3251ba2d |
| 04-Mar-2022 |
Yonghong Song <[email protected]> |
[Attr] Fix a btf_type_tag AST generation
Current ASTContext.getAttributedType() takes attribute kind, ModifiedType and EquivType as the hash to decide whether an AST node has been generated or note.
[Attr] Fix a btf_type_tag AST generation
Current ASTContext.getAttributedType() takes attribute kind, ModifiedType and EquivType as the hash to decide whether an AST node has been generated or note. But this is not enough for btf_type_tag as the attribute might have the same ModifiedType and EquivType, but still have different string associated with attribute.
For example, for a data structure like below, struct map_value { int __attribute__((btf_type_tag("tag1"))) __attribute__((btf_type_tag("tag3"))) *a; int __attribute__((btf_type_tag("tag2"))) __attribute__((btf_type_tag("tag4"))) *b; }; The current ASTContext.getAttributedType() will produce an AST similar to below: struct map_value { int __attribute__((btf_type_tag("tag1"))) __attribute__((btf_type_tag("tag3"))) *a; int __attribute__((btf_type_tag("tag1"))) __attribute__((btf_type_tag("tag3"))) *b; }; and this is incorrect.
It is very difficult to use the current AttributedType as it is hard to get the tag information. To fix the problem, this patch introduced BTFTagAttributedType which is similar to AttributedType in many ways but with an additional BTFTypeTagAttr. The tag itself can be retrieved with BTFTypeTagAttr. With the new BTFTagAttributed type, the debuginfo code can be greatly simplified compared to previous TypeLoc based approach.
Differential Revision: https://reviews.llvm.org/D120296
show more ...
|
| #
0aab3441 |
| 16-Mar-2022 |
Simon Moll <[email protected]> |
[Clang] Allow "ext_vector_type" applied to Booleans
This is the `ext_vector_type` alternative to D81083.
This patch extends Clang to allow 'bool' as a valid vector element type (attribute ext_vecto
[Clang] Allow "ext_vector_type" applied to Booleans
This is the `ext_vector_type` alternative to D81083.
This patch extends Clang to allow 'bool' as a valid vector element type (attribute ext_vector_type) in C/C++.
This is intended as the canonical type for SIMD masks and facilitates clean vector intrinsic declarations. Vectors of i1 are supported on IR level and below down to many SIMD ISAs, such as AVX512, ARM SVE (fixed vector length) and the VE target (NEC SX-Aurora TSUBASA).
The RFC on cfe-dev: https://lists.llvm.org/pipermail/cfe-dev/2020-May/065434.html
Reviewed By: erichkeane
Differential Revision: https://reviews.llvm.org/D88905
show more ...
|
| #
a2db7d5e |
| 15-Mar-2022 |
Keith Smiley <[email protected]> |
reland: [clang] Don't append the working directory to absolute paths
This fixes a bug that happens when using -fdebug-prefix-map to remap an absolute path to a relative path. Since the path was abso
reland: [clang] Don't append the working directory to absolute paths
This fixes a bug that happens when using -fdebug-prefix-map to remap an absolute path to a relative path. Since the path was absolute before remapping, it is safe to assume that concatenating the remapped working directory would be wrong.
This was originally submitted as https://reviews.llvm.org/D113718, but reverted because when testing with dwarf 5 enabled, the tests were too strict.
Differential Revision: https://reviews.llvm.org/D121663
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc2 |
|
| #
cb22d718 |
| 26-Feb-2022 |
Keith Smiley <[email protected]> |
[clang] Fix DIFile directory root on Windows
On unix systems this logic would not separate the file and directory of the DIFile unless they shared more components at the start than just the root pat
[clang] Fix DIFile directory root on Windows
On unix systems this logic would not separate the file and directory of the DIFile unless they shared more components at the start than just the root path character. The logic to do this was unix specific so it didn't work on Windows. Now we check if the entire root_path is the same as what you were going to set as the Dir and use the full filepath in that case.
Differential Revision: https://reviews.llvm.org/D111579
show more ...
|
| #
bc7aeea8 |
| 26-Feb-2022 |
Adrian Prantl <[email protected]> |
Revert "Don't append the working directory to absolute paths"
This reverts commit 2cd9a86da54f8be4eb2aff3e766b125cbdeb023f.
|
| #
2cd9a86d |
| 25-Feb-2022 |
Adrian Prantl <[email protected]> |
Don't append the working directory to absolute paths
This fixes a bug that happens when using -fdebug-prefix-map to remap an absolute path to a relative path. Since the path was absolute before rema
Don't append the working directory to absolute paths
This fixes a bug that happens when using -fdebug-prefix-map to remap an absolute path to a relative path. Since the path was absolute before remapping, it is safe to assume that concatenating the remapped working directory would be wrong.
Differential Revision: https://reviews.llvm.org/D113718
show more ...
|
| #
f56cb520 |
| 17-Feb-2022 |
Shafik Yaghmour <[email protected]> |
[DEBUGINFO] [LLDB] Add support for generating debug-info for structured bindings of structs and arrays
Currently we are not emitting debug-info for all cases of structured bindings a C++17 feature w
[DEBUGINFO] [LLDB] Add support for generating debug-info for structured bindings of structs and arrays
Currently we are not emitting debug-info for all cases of structured bindings a C++17 feature which allows us to bind names to subobjects in an initializer.
A structured binding is represented by a DecompositionDecl AST node and the binding are represented by a BindingDecl. It looks the original implementation only covered the tuple like case which be represented by a DeclRefExpr which contains a VarDecl.
If the binding is to a subobject of the struct the binding will contain a MemberExpr and in the case of arrays it will contain an ArraySubscriptExpr. This PR adds support emitting debug-info for the MemberExpr and ArraySubscriptExpr cases as well as llvm and lldb tests for these cases as well as the tuple case.
Differential Revision: https://reviews.llvm.org/D119178
show more ...
|
| #
57fc9798 |
| 17-Feb-2022 |
Simon Pilgrim <[email protected]> |
[clang] CGDebugInfo::getOrCreateMethodType - use castAs<> instead of getAs<> to avoid dereference of nullptr
The pointer is always dereferenced, so assert the cast is correct instead of returning nu
[clang] CGDebugInfo::getOrCreateMethodType - use castAs<> instead of getAs<> to avoid dereference of nullptr
The pointer is always dereferenced, so assert the cast is correct instead of returning nullptr
show more ...
|