- Sep 30, 2022
-
-
wren romano authored
This is a followup to the refactoring of D133462, D133830, D133831, and D133833. Depends On D133833 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D133837
-
Eric Wang authored
The bulk of the implementation is common between 'release' mode (==AOT-ed model) and 'development' mode (for training), the main difference is that in development mode, we may also log features (for training logs), inject scoring information and then produce the log file. Differential Revision: https://reviews.llvm.org/D133616
-
Amara Emerson authored
This is a port of an existing optimization in AArch64 ISelLowering, handling a case when the same input vector can be used for both ext inputs. Differential Revision: https://reviews.llvm.org/D134891
-
wren romano authored
This is a followup to the refactoring of D133462, D133830, D133831, and D133833. Depends On D133833 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D133835
-
wren romano authored
Previously, the SparseTensorUtils.cpp library contained a C++ core implementation, but hid it in an anonymous namespace and only exposed a C-API for accessing it. Now we are factoring out that C++ core into a standalone C++ library so that it can be used directly by downstream clients (per request of one such client). This refactoring has been decomposed into a stack of differentials in order to simplify the code review process, however the full stack of changes should be considered together. * D133462: Part 1: split one file into several * D133830: Part 2: Reorder chunks within files * D133831: Part 3: General code cleanup * (this): Part 4: Update documentation This part updates existing documentation, adds new documentation, and reflows the test for some existing documentation. Depends On D133831 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D133833
-
wren romano authored
Previously, the SparseTensorUtils.cpp library contained a C++ core implementation, but hid it in an anonymous namespace and only exposed a C-API for accessing it. Now we are factoring out that C++ core into a standalone C++ library so that it can be used directly by downstream clients (per request of one such client). This refactoring has been decomposed into a stack of differentials in order to simplify the code review process, however the full stack of changes should be considered together. * D133462: Part 1: split one file into several * D133830: Part 2: Reorder chunks within files * (this): Part 3: General code cleanup * D133833: Part 4: Update documentation This part performs some general code cleanup including: * making more things `const`, especially for the targets of pointers * using preincrement wherever possible ([[ https://llvm.org/docs/CodingStandards.html#prefer-preincrement | per LLVM style guide ]]) * adding messages to most `assert` statments. * moving argument casting from the core function/method definitions to the CPP wrappers Depends On D133830 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D133831
-
wren romano authored
Previously, the SparseTensorUtils.cpp library contained a C++ core implementation, but hid it in an anonymous namespace and only exposed a C-API for accessing it. Now we are factoring out that C++ core into a standalone C++ library so that it can be used directly by downstream clients (per request of one such client). This refactoring has been decomposed into a stack of differentials in order to simplify the code review process, however the full stack of changes should be considered together. * D133462: Part 1: split one file into several * (this): Part 2: Reorder chunks within files * D133831: Part 3: General code cleanup * D133833: Part 4: Update documentation This part moves chunks of code within files, but again aims to make no other changes. Many of these movements are part of a stylistic shift to reorder the components of class definitions as follows: data members, ctors/factories, getters, other public methods, private methods. Depends On D133462 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D133830
-
wren romano authored
Previously, the SparseTensorUtils.cpp library contained a C++ core implementation, but hid it in an anonymous namespace and only exposed a C-API for accessing it. Now we are factoring out that C++ core into a standalone C++ library so that it can be used directly by downstream clients (per request of one such client). This refactoring has been decomposed into a stack of differentials in order to simplify the code review process, however the full stack of changes should be considered together. * (this): Part 1: split one file into several * D133830: Part 2: Reorder chunks within files * D133831: Part 3: General code cleanup * D133833: Part 4: Update documentation This part aims to make no changes other than the 1:N file splitting, and things which are forced to accompany that change. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D133462
-
Xiang Li authored
-
Xiang Li authored
-
Joshua Batista authored
This change exposes the ceil library function for HLSL, excluding long, int, and long long doubles. Ceil is supported for all scalar, vector, and matrix types. Long and long long double support is missing in this patch because those types don't exist in HLSL. Int is missing because the ceil function only works on floating type arguments. The full documentation of the HLSL ceil function is available here: https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-ceil Reviewed By: python3kgae Differential Revision: https://reviews.llvm.org/D134319
-
Philip Reames authored
-
Alex Brachet authored
This brings the value closer to other platforms and allows for future improvements, see D133897.
-
Siva Chandra Reddy authored
Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D134858
-
Siu Chi Chan authored
D103221 changed HIP's default to C++14, removing the driver logic to force it into a different std. Change-Id: I9f5220a7456687039b0bd3b3574f3124d3cc7665 Differential Revision: https://reviews.llvm.org/D134314 Change-Id: I40513f2ebe93ee53ea95c8bb3cc704487d970263
-
Roy Jacobson authored
-
Roy Jacobson authored
Implements 'P1169R4: static operator()' from C++2b. Reviewed By: #clang-language-wg, aaron.ballman Differential Revision: https://reviews.llvm.org/D133659
-
Florian Hahn authored
Move LCSSA fixup from ::expandCodeForImpl to ::expand(). This has the advantage that we directly preserve LCSSA nodes here instead of relying on doing so in rememberInstruction. It also ensures that we don't add the non-LCSSA-safe value to InsertedExpressions. Alternative to D132704. Fixes #57000. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D134739
-
Bjorn Pettersson authored
In combineOr (X86ISelLowering.cpp) there is a DAG combine that rewrite a "(0 - SetCC) | C" pattern into something simpler given that a LEA can be used. Another requirement is that C has some specific value, for example 1 or 7. When checking those requirements the code used a 32-bit unsigned variable to store the value of C. So for a 64-bit OR this could miscompile in case any of the 32 most significant bits in C were non zero. This patch adds fixes the bug by using a large enough type for the C value. The faulty code seem to have been introduced by commit 9bceb898 (D131358). Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D134892
-
Bjorn Pettersson authored
In combineOr (X86ISelLowering.cpp) there is a DAG combine that rewrite a "(0 - SetCC) | C" pattern into something simpler given that a LEA can be used. Another requirement is that C has some specific value, for example 1 or 7. When doing that check it is using a 32-bit unsigned variable to store the value of C. So for a 64-bit OR this could miscompile in case any of the 32 most significant bits in C are set. This patch adds a test case to show this miscompile bug. Differential Revision: https://reviews.llvm.org/D134890
-
Fangrui Song authored
This partially reverts commit 1609a5d7 (the test/Driver part). We want to discourage %clang_cc1 and clang -cc1 in test/Driver. The clang -cc1 uses in hlsl/offload/etc are not good examples.
-
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.
-