- Sep 30, 2022
-
-
Greg Clayton authored
After recent diffs that enable variable errors that stop variables from being correctly displayed when debugging, allow users to see these errors in the LOCALS variables in the VS Code UI. We do this by detecting when no variables are available and when there is an error to be displayed, and we add a single variable named "<error>" whose value is a string error that the user can read. This allows the user to be aware of the reason variables are not available and fix the issue. Previously if someone enabled "-gline-tables-only" or was debugging with DWARF in .o files or with .dwo files and those separate object files were missing or they were out of date, the user would see nothing in the variables view. Communicating these errors to the user is essential to a good debugging experience. Differential Revision: https://reviews.llvm.org/D134333
-
Greg Clayton authored
[NFC] Add header documentation to the SBError::GetCString() to clarify ownwership of the returned string. Title says it all! Differential Revision: https://reviews.llvm.org/D134846
-
zhongyunde authored
Refactor according https://reviews.llvm.org/D134706#inline-1298952 Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D134848
-
Chris Bieneman authored
DXContainers contain a feature flag part, which stores a bitfield used to denote what underlying hardware features the shader requires. This change adds feature flags to the DXContainer YAML tooling to enable testing generating feature flags during HLSL code generation. Depends on D133980 Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D134315
-
zhongyunde authored
Decompose the const 14 can be separated from D132322 Change the costmodel to lower a = b * C where C = 2^n - 2^m to lsl w8, w0, n sub w0, w8, w0, lsl m Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D134706 -
Stella Stamenova authored
This reverts commit d02233f0. This commit the Windows mlir buildbot: https://lab.llvm.org/buildbot/#/builders/13/builds/26413
-
Michael Jones authored
Add the clock_gettime syscall wrapper and tests. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D134773
-
LLVM GN Syncbot authored
-
Chris Bieneman authored
This patch refactors some of the DXContainer Object and YAML code to make it easier to add more part parsing. DXContainer has a whole bunch of constant values, so I've added a DXContainerConstants.def file which will grow with constant definitions, but starts with just part identifiers. I've also added a utility to parse the part magic string into an enum, and converted the code to use that utility and the enum instead of the part literal string. Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D133980
-
Chris Bieneman authored
This reverts commit 26129766. The reverted commit broke in-tree unit tests for the DirectX backend.
-
Dmitry Preobrazhensky authored
Differential Revision: https://reviews.llvm.org/D134809
-
Arthur Eubanks authored
f7734269 handled the adaptor and pass manager but missed the devirt wrapper.
-
Mahesh Ravishankar authored
Based on discussion in https://reviews.llvm.org/D134411, instead of first modifying the inner most loop first followed by modifying the outer loops from inside out, this patch restructures the logic to start the modification from the outer most loop. Differential Revision: https://reviews.llvm.org/D134832
-
- Sep 29, 2022
-
-
luxufan authored
For noop store of the form of LoadI and StoreI, An invariant should be kept is that the memory state of the related MemoryLoc before LoadI is the same as before StoreI. For this example: ``` define void @pr49927(i32* %q, i32* %p) { %v = load i32, i32* %p, align 4 store i32 %v, i32* %q, align 4 store i32 %v, i32* %p, align 4 ret void } ``` Here the definition of the store's destination is different with the definition of the load's destination, which it seems that the invariant mentioned above is broken. But the definition of the store's destination would write a value that is LoadI, actually, the invariant is still kept. So we can safely ignore it. Fixes https://github.com/llvm/llvm-project/issues/49271 Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D132657
-
- Sep 30, 2022
-
-
David Green authored
Useful for testing, this option disables when `DLS lr, lr` gets removed.
-
Katherine Rasmussen authored
Add the atomic subroutine, atomic_fetch_or, to the list of intrinsic subroutines. Add new enumerators to deal with the rank of the atom dummy argument, and the kind of atomic_int_kind. Use check for a coindexed-object for the fourth dummy argument. Move atomic_int_kind and atomic_logical_kind definitions from iso_fortran_env module to the __fortran_builtins module to allow for access to those values when analyzing `atomic_fetch_or` calls in flang/lib/Evaluate/intrinsics.cpp. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D133174
-
Amara Emerson authored
-
Maksim Levental authored
Expose [[ https://github.com/llvm/llvm-project/blob/main/mlir/lib/Dialect/Affine/Utils/Utils.cpp#L661 | Dialect/Affine/Utils/Utils.cpp#hasNoInterveningEffect ]] for downstream use (particular use case is a lazy implementation of [[ https://github.com/llvm/llvm-project/blob/main/mlir/lib/Dialect/Affine/Utils/Utils.cpp#L845 | forwardStoreToLoad ]] in CIRCT). This exposes hasNoInterveningEffect and instantiates for the necessary types. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D134374
-
Sanjay Patel authored
The phase ordering test is the almost unoptimized IR for the example in issue #42100; it was passed through -mem2reg to reduce obvious excessive load/store and other noise. D134879
-
Kazu Hirata authored
This patch teaches the module inliner a traversal order designed for the instrumentation FDO (+ThinLTO) scenario. The new traversal order prioritizes call sites in the following order: 1. Those call sites that are expected to reduce the caller size 2. Those call sites that have gone through the cost-benefit analaysis 3. The remaining call sites With this fairly simple traversal order, a large internel benchmark yields performance comparable to the bottom-up inliner -- both in terms of the execution performance and .text* sizes. Big thanks goes to Liqiang Tao for the module inliner infrastructure. I still have hacks outside this patch to prevent excessively long compilation or .text* size explosion. I'm trying to come up with acceptable solutions in near future. Differential Revision: https://reviews.llvm.org/D134376
-
- Sep 29, 2022
-
-
Arthur Eubanks authored
We should catch more issues this way. This previously the behavior and was dropped in cde5e5b6. Reviewed By: hans Differential Revision: https://reviews.llvm.org/D134839
-
Jakub Kuderski authored
Tested with `ninja check-flang`
-
Mark de Wever authored
Noticed this while working on D133326. Let's see whehter all compilers now support this feature. Reviewed By: #libc, philnik, ldionne Differential Revision: https://reviews.llvm.org/D134818
-
Jakub Kuderski authored
Suggested by @lattner in https://discourse.llvm.org/t/rfc-define-precise-arith-semantics/65507/22. Tested with: `ninja check-mlir check-mlir-integration check-mlir-mlir-spirv-cpu-runner check-mlir-mlir-vulkan-runner check-mlir-examples` and `bazel build --config=generic_clang @llvm-project//mlir:all`. Reviewed By: lattner, Mogball, rriddle, jpienaar, mehdi_amini Differential Revision: https://reviews.llvm.org/D134762
-
luxufan authored
Differential Revision: https://reviews.llvm.org/D134630
-
Nikita Popov authored
When checking the RHS of fdiv, we should set the SignBitOnly flag, because a negative zero can become -Inf, which is ordered less than zero. Fixes https://github.com/llvm/llvm-project/issues/58046. Differential Revision: https://reviews.llvm.org/D134876
-
Nikola Tesic authored
This patch updates llvm/utils/llvm-original-di-preservation.py to create more compact HTML verify-debuginfo-preserve reports by: - removing duplicated debug info bugs, - introducing -compress option to create highly compressed report. Additionally, this patch makes script able to process very large JSON inputs. That is done by reading & analyzing JSON report in chunks. Differential Revision: https://reviews.llvm.org/D115617
-
Nikola Tesic authored
Debugify in OriginalDebugInfo mode (verify-each-debuginfo-preserve), when used in parallel builds of large projects, can produce incorrect report. More precisely, simultaneous writes to JSON report file, could form incorrect JSON objects, which describe found Debug Info bugs. This patch uses the lock/unlock mechanism to protect JSON report file and also makes script llvm/utils/llvm-original-di-preservation.py resilient to corrupted lines in the report file. So, it ensures the creation of HTML report. Differential Revision: https://reviews.llvm.org/D115616
-
Philip Reames authored
This change updates the costs to make constant pool loads match their actual cost, and adds the broadcast special case to avoid too many regressions. We really need more information about the constants being rematerialized, but this is an incremental improvement. Differential Revision: https://reviews.llvm.org/D134746
-
Louis Dionne authored
-
Adrian Kuegel authored
This will allow to model (variadic) reductions with this special op instead of using GenericOp. RFC: https://discourse.llvm.org/t/rfc-primitive-ops-add-mapop-reductionop-transposeop-broadcastop-to-linalg/64184
-
Alex Zinenko authored
-
Guillaume Chatelet authored
-
eopXD authored
-
Nikita Popov authored
-
eopXD authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D134785
-
Tim Northover authored
There are lots of options interacting in complex ways here, and when moving to `getDefaultUnwindTableLevel` I had refactored this and changed behaviour in some cases. So this reverts the basic structure of the logic back to the original, while leaving the hook in the new style.
-
Alex Zinenko authored
The helper function in GPUFuncOp incorrectly assumed the workgroup attribution attribute is always present. Instead, treat its absence as if its value was zero, i.e., no workgroup attributions are specified. Closes #58045. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D134865
-
Serge Pavlov authored
Functions that implement expansion of response and config files depend on many options, which are passes as arguments. Extending the expansion requires new options, it in turn causes changing calls in various places making them even more bulky. This change introduces a class ExpansionContext, which represents set of options that control the expansion. Its methods implements expansion of responce files including config files. It makes extending the expansion easier. No functional changes. Differential Revision: https://reviews.llvm.org/D132379
-
Guillaume Chatelet authored
-