- May 26, 2022
-
-
Snehasish Kumar authored
Extend the Frame struct to hold the symbol name if requested when a RawMemProfReader object is constructed. This change updates the tests and removes the need to pass --debug to obtain the mapping from GUID to symbol names. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D126344
-
Alexey Bataev authored
Need to use all ReductionOps when propagating flags for the reduction ops, otherwise transformation is not correct. Plus, need to drop nuw/nsw flags. Differential Revision: https://reviews.llvm.org/D126371
-
Eric Li authored
When constructing the `Environment`, the `this` pointee is established for a `CXXMethodDecl` by looking at its parent. However, inside of lambdas, a `CXXThisExpr` refers to the captured `this` coming from the enclosing member function. When establishing the `this` pointee for a function, we check whether the function is a lambda, and check for an enclosing member function to establish the `this` pointee storage location. Differential Revision: https://reviews.llvm.org/D126413
-
Eric Li authored
Support for unions is incomplete (per 99f7d55e) and the `this` pointee storage location is not set for unions. The assert in `VisitCXXThisExpr` is then guaranteed to trigger when analyzing member functions of a union. This commit changes the assert to an early-return. Any expression may be undefined, and so having a value for the `CXXThisExpr` is not a postcondition of the transfer function. Differential Revision: https://reviews.llvm.org/D126405
-
Arthur Eubanks authored
If you are using an old enough glibc which doesn't have mallinfo2, set `llvm_have_mallinfo2 = false`. At this point it's likely that most people using the gn build are compiling against a recent enough glibc (glibc 2.33 which was released in Feb 2021). Reviewed By: peterwaller-arm Differential Revision: https://reviews.llvm.org/D126415
-
Maksim Panchenko authored
MCSymbolizer::tryAddingSymbolicOperand() overloaded the Size parameter to specify either the instruction size or the operand size depending on the architecture. However, for proper symbolic disassembly on X86, we need to know both sizes, as an instruction can have two operands, and the instruction size cannot be reliably calculated based on the operand offset and its size. Hence, split Size into OpSize and InstSize. For X86, the new interface allows to fix a couple of issues: * Correctly adjust the value of PC-relative operands. * Set operand size to zero when the operand is specified implicitly. Differential Revision: https://reviews.llvm.org/D126101
-
zr33 authored
Reviewed By: ayermolo Differential Revision: https://reviews.llvm.org/D126086
-
Patrick Walton authored
This commit modifies the AsmPrinter to avoid emitting any zero-sized symbols to the .debug_aranges table, by rounding their size up to 1. Entries with zero length violate the DWARF 5 spec, which states: > Each descriptor is a triple consisting of a segment selector, the beginning > address within that segment of a range of text or data covered by some entry > owned by the corresponding compilation unit, followed by the non-zero length > of that range. In practice, these zero-sized entries produce annoying warnings in lld and cause GNU binutils to truncate the table when parsing it. Other parts of LLVM, such as DWARFDebugARanges in the DebugInfo module (specifically the appendRange method), already avoid emitting zero-sized symbols to .debug_aranges, but not comprehensively in the AsmPrinter. In fact, the AsmPrinter does try to avoid emitting such zero-sized symbols when labels aren't involved, but doesn't when the symbol to emitted is a difference of two labels; this patch extends that logic to handle the case in which the symbol is defined via labels. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D126257
-
Joseph Huber authored
The new driver uses an augmented linker wrapper to perform the device linking phase, but to the user looks like a regular linker invocation. Contrary to the old driver, the new driver contains all the information necessary to produce a linked device image in the host object itself. Currently, we infer the usage of the device linker by the user specifying an offloading toolchain, e.g. (--offload-arch=...) or (-fopenmp-targets=...), but this shouldn't be strictly necessary. This patch introduces a new option `--offload-link` to tell the driver to use the offloading linker instead. So a compilation flow can now look like this, ``` clang foo.cu --offload-new-driver -fgpu-rdc --offload-arch=sm_70 -c clang foo.o --offload-link -lcudart ``` I was considering if this could be merged into the `-fuse-ld` option, but because the device linker wraps over the users linker it would conflict with that. In the future it's possible to merge this into `lld` completely or `gold` via a plugin and we would use this option to enable the device linking feature. Let me know what you think for this. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D126398
-
Matthias Springer authored
There were two copies of AlwaysCopyAnalysisState. (Must have been a merge conflict mistake...) Differential Revision: https://reviews.llvm.org/D126414
-
Zequan Wu authored
NativePDB often assumes that all debug info are available. This is one step to make it more pervasive. Differential Revision: https://reviews.llvm.org/D125844
-
Joe Nash authored
MachineCode Support for FLAT type instructions Contributors: Sebastian Neubauer <sebastian.neubauer@amd.com> Patch 12/N for upstreaming of AMDGPU gfx11 architecture. Depends on D125989 Reviewed By: rampitec, #amdgpu Differential Revision: https://reviews.llvm.org/D125992
-
Thomas Preud'homme authored
On Ubuntu 18.04 with GCC 7.5 Intel trace code fails to build due to failure to convert from lldb_private::process_linux::IntelPTPerThreadProcessTraceUP to Expected<lldb_private::process_linux::IntelPTPerThreadProcessTraceUP>. This commit explicitely marks those unique_ptr values as being moved which fixes the conversion error. Reviewed By: wallace Differential Revision: https://reviews.llvm.org/D126402
-
Alex Lorenz authored
The concept specialization expression should start at the location of the nested qualifiers when it has nested qualifiers. This ensures that libclang reports correct source ranges that include all subexpressions when visiting the expression. Differential Revision: https://reviews.llvm.org/D126332
-
Chia-hung Duan authored
If we don't specify the result index while matching operand with the result of certain operation, it's supposed to match all the results of the operation with the operand. For registered op, it's easy to do that by either indexing with number or name. For unregistered op, this commit enables the numeric result indexing for this use case. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D126330
-
Joe Nash authored
A new instruction encoding. Some of these instructions were previously VOP3 encoded. Contributors: Carl Ritson <carl.ritson@amd.com> Patch 11/N for upstreaming of AMDGPU gfx11 architecture. Depends on D125824 Reviewed By: critson Differential Revision: https://reviews.llvm.org/D125989
-
Joe Nash authored
Contributors: Jay Foad <jay.foad@amd.com> Dmitry Preobrazhensky <d-pre@mail.ru> Patch 10/N for upstreaming of AMDGPU gfx11 architecture. Depends on D125822 Reviewed By: dp Differential Revision: https://reviews.llvm.org/D125824
-
Christian Sigg authored
Split out from https://reviews.llvm.org/D126158. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D126369
-
Paul Kirth authored
Addresses tests flakes described in https://github.com/llvm/llvm-project/issues/55460 The test being updated can fail in FileCheck to match when given long enough stack traces. This can be problematic when file system paths become long enough to cause the majority of the long function name to become truncated. We found in our CI that the truncated output would often fail to match, thereby causing the test to fail when it should not. Here we change the test to match on sybolizer output that should be more reliable than matching inside the long function name. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D126102
-
Peter Klausler authored
A recent fix beefed up semantics checking to catch the case of a call to an external assumed-length character function; this check has false positives in the case of an assumed-length character function that is a dummy procedure. These do have a length that is passed in extra compiler-created arguments. This patch refines the check and undoes some changes to tests. Differential Revision: https://reviews.llvm.org/D126390
-
James Y Knight authored
Const class members may be initialized with a defaulted default constructor under the same conditions it would be allowed for a const object elsewhere. Differential Revision: https://reviews.llvm.org/D126170
-
Philip Reames authored
be2cb8 fixes the case which triggered the revert. Reapply, and let's see if anything else falls out. Original commit message: These asserts are believed to hold after several recent miscompiles have been fixed. If you see an assertion failure on this change, please toggle the default back and make sure you file a bug with a reproducer. We may have as yet uncaught miscompiles lurking in this code. Differential Revision: https://reviews.llvm.org/D125271
-
Shoaib Meenai authored
Use the LLVM build system's cross-compilation support for the tool, so that the build works for both host and cross-compilation scenarios. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D126397
-
Daniel Grumberg authored
These symbols are understood to not be used for client API consumption by convention so they should not appear in the generated symbol graph. Differential Revision: https://reviews.llvm.org/D125678
-
Krzysztof Parzyszek authored
This is a workaround for compilation issue on FreeBSD. See comments in https://reviews.llvm.org/rG0d8cb8b399ad for more information. This fixes https://github.com/llvm/llvm-project/issues/55414. Differential Revision: https://reviews.llvm.org/D125611
-
Matthias Springer authored
The same functionality is already provided by `-buffer-hoisting` and `-buffer-loop-hoisting`. Differential Revision: https://reviews.llvm.org/D126251
-
Sanjay Patel authored
-
Philip Reames authored
This moves mutation entirely out of the main algorithm. The immediate trigger is that we hit another case of the same issue I thought we'd fixed in 72925d98. It turns out we hadn't considered the cross block case. As a brief summary, the issue being fixed is that if we mutate a previous vsetvli in phase 3, there's a possibility that some later use of that vsetvli changes "compatibility". In the cross_block_mutate test, this later vsetvli occurs in another block (and is thus visit order dependent too!). This causes us to fail strict asserts. (To be explicit, the current on by default workaround should compensate. It's only when we turn that off that we have problems.) Now, I want to explicitly call out an alternate workaround. We could leave the mutation in phase 3, and simplify restrict it to the case where the previous vsetvli's GPR result is unused. That covers the case we've actually seen. (I'll note that codegen regressions with a simple form of this were significant. We might have to check specifically for the use outside block case to keep them reasonable, which complicates the workaround slightly.) Personally, I'm at the point where I want the mutation pulled out just for robustness sake. I'm worried there's yet one more form of this bug we haven't thought about. The other motivation for this change is that it does give us a couple of minor codegen wins. None appear to be hugely significant, but improvements never hurt right? Differential Revision: https://reviews.llvm.org/D125270
-
Aaron Ballman authored
This appears to have been added in a follow-up commit that I missed.
-
Aaron Ballman authored
This reverts commit 232bf818. It broke the sanitize buildbot: https://lab.llvm.org/buildbot/#/builders/5/builds/24074 It also reproduces on Windows debug builds as a crash.
-
Mike Rice authored
Warns when end-of-file is reached without seeing all matching 'omp end declare target' directives. The diagnostic shows the location of the related begin directive. Differential Revision: https://reviews.llvm.org/D126331
-
Joseph Huber authored
Summary: I added the `-Xoffload-linker` flag and did not provide additional documentation. This patch adds it.
-
Nicolai Hähnle authored
A later change will add a 3rd user, so factoring out the common code seems useful. Reorganizing the executeInWaterfallLoop causes some more COPYs to be generated, but those all fold away during instruction selection. Generating the comparisons uses generic instructions over machine instructions now which admittedly shouldn't make a difference (though it should make it easier to move the waterfall loop generation to another place). (Resubmit with missing test added.) Differential Revision: https://reviews.llvm.org/D125324
-
Nicolai Hähnle authored
This reverts commit 2a28467e.
-
Kazu Hirata authored
This patch fixes: .../llvm-project/lldb/source/Host/common/PseudoTerminal.cpp:106:20: error: unused function 'use_ptsname' [-Werror,-Wunused-function]
-
Logan Chien authored
This commit fixes `Tensor_InsertSliceOp` `sizes` inputs/attributes description. Before this commit, the description says the `sizes` inputs/attributes denote the size of the return type. But according to the `InsertSliceOpConstantArgumentFolder` in `lib/Dialect/Tensor/IR/TensorOps.cpp`, the `sizes` inputs/attributes actually denote the size of the source type. I had an off-line discussion with the authors of `TensorOps.td` and `TensorOps.cpp`. We concluded that it was a typo in the Op description. This commit updates the Op description to match the actual usage. Differential Revision: https://reviews.llvm.org/D126264
-
Nicolai Hähnle authored
A later change will add a 3rd user, so factoring out the common code seems useful. Reorganizing the executeInWaterfallLoop causes some more COPYs to be generated, but those all fold away during instruction selection. Generating the comparisons uses generic instructions over machine instructions now which admittedly shouldn't make a difference (though it should make it easier to move the waterfall loop generation to another place). Differential Revision: https://reviews.llvm.org/D125324
-
Takafumi Arakaki authored
This adds support for pointer types for `atomic xchg` and let us write instructions such as `atomicrmw xchg i64** %0, i64* %1 seq_cst`. This is similar to the patch for allowing atomicrmw xchg on floating point types: https://reviews.llvm.org/D52416. Differential Revision: https://reviews.llvm.org/D124728
-
Craig Topper authored
Update test to check MIR after finalize-isel instead of debug output. This is of course not the only place we should preserve FMF, but it's the most obvious one. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D126306
-