- Sep 30, 2022
-
-
Aart Bik authored
Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D134899
-
Louis Dionne authored
By default, Clang does not include headers that are skipped due to the include guard optimization in the --trace-includes output, which breaks the use case that we were trying to use it for. However, Clang does support the -fshow-skipped-includes flag, which does exactly what we need and will result in an accurate include graph. As a fly-by fix, make sure that our includes don't differ between -fexceptions and -fno-exceptions. Differential Revision: https://reviews.llvm.org/D134829
-
Michał Górny authored
Use the `%clang_cc1` substitution consistently across the test suite, replacing inline `%clang -cc1` invocations, except for one Preprocessor test where this is causing breakage. This is necessary to ensure that additional parameters passed via `%clang` do not interfere with `-cc1` that must always be passed as the first command-line argument. Remove the additional substitution blocking `%clang_cc1` use in Driver tests. It has been added in 2013 and was supposed to prevent tests calling `clang -cc1` from being added to Driver. The state of the test suite proves that it did not succeed at all. Differential Revision: https://reviews.llvm.org/D134880
-
Michał Górny authored
Move the `%clang_dxc` substitution from local definition in clang/test to lit's `llvm/config.py` module where all other driver definitions are found. This improves consistency and makes it easier to control global clang options. Differential Revision: https://reviews.llvm.org/D134871
-
Michał Górny authored
Change the default config file loading logic to be more flexible and more readable at the same time. The new algorithm focuses on four locations, in order: 1. <triple>-<mode>.cfg using real driver mode 2. <triple>-<mode>.cfg using executable suffix 3. <triple>.cfg + <mode>.cfg using real driver mode 4. <triple>.cfg + <mode>.cfg using executable suffix This is meant to preserve reasonable level of compatibility with the existing use, while introducing more flexibility and making the code simpler. Notably: 1. In this layout, the actual target triple is normally respected, and e.g. in `-m32` build the `x86_64-*` configs will never be used. 2. Both real driver mode (preferable) and executable suffix are supported. This permits correctly handling calls with explicit `--driver-mode=` while at the same time preserving compatibility with the existing code. 3. The first two locations provide users with the ability to override configuration per specific target+mode combinaton, while the next two make it possible to independently specify per-target and per-mode configuration. 4. All config file locations are applicable independently of whether clang is started via a prefixed executable, or bare `clang`. 5. If the target is not explicitly specified and the executable prefix does not name a valid triple, it is used instead of the actual target triple for backwards compatibility. This is particularly meant to address Gentoo's use case for configuration files: to configure the default runtimes (i.e. `-rtlib=`, `-stdlib=`) and `--gcc-install-dir=` for all the relevant drivers, as well as to make it more convenient for users to override `-W` flags to test compatibility with future versions of Clang easier. Differential Revision: https://reviews.llvm.org/D134337
-
bixia1 authored
Add sparse-buffer-rewrite pass to rewrite sparse primitives on buffers to MLIR implementation. Add sparse rewrite rule for the sort operator. Add FileCheck test and integration test. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D134627
-
Jan Svoboda authored
This patch adds new member function to `DependencyScanningWorker` that allows clients to pass custom `DiagnosticConsumer`, and returns `bool`. This provides more flexibility compared to the existing version that automatically stringifies diagnostics and returns them in `llvm::Error`. Reviewed By: benlangmuir Differential Revision: https://reviews.llvm.org/D134838
-
Jan Svoboda authored
The `Index.h` header defines some functions and data structures that are useful for other (non-indexing) APIs. This patch extracts those into separate headers. Reviewed By: akyrtzi, benlangmuir Differential Revision: https://reviews.llvm.org/D134837
-
Roy Jacobson authored
-
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
-