- Apr 07, 2021
-
-
Christopher Di Bella authored
* `std::predicate` * `std::relation` * `std::equivalence_relation` * `std::strict_weak_order` Implements parts of: - P0898R3 Standard Library Concepts - P1754 Rename concepts to standard_case for C++20, while we still can Differential Revision: https://reviews.llvm.org/D96477 -
Arthur Eubanks authored
We can clear line by line, but that's likely not very important. Reviewed By: hans Differential Revision: https://reviews.llvm.org/D99921
-
Paul Robinson authored
This allows frontend and backend diagnostic files to all go into the same place. Have it control the Windows (mini-)dump location. Differential Revision: https://reviews.llvm.org/D99199
-
Alexander Belyaev authored
Differential Revision: https://reviews.llvm.org/D99968
-
Jonas Devlieghere authored
The memory read --outfile command should truncate the output when unless --append-outfile. Fix the bug and add a test. rdar://76062318 Differential revision: https://reviews.llvm.org/D99890
-
Julian Lettner authored
Differential Revision: https://reviews.llvm.org/D99911
-
Ben Langmuir authored
The major change here is to index macro occurrences in more places than before, specifically * In non-expansion references such as `#if`, `#ifdef`, etc. * When the macro is a reference to a builtin macro such as __LINE__. * When using the preprocessor state instead of callbacks, we now include all definition locations and undefinitions instead of just the latest one (which may also have had the wrong location previously). * When indexing an existing module file (.pcm), we now include module macros, and we no longer report unrelated preprocessor macros during indexing the module, which could have caused duplication. Additionally, we now correctly obey the system symbol filter for macros, so by default in system headers only definition/undefinition occurrences are reported, but it can be configured to report references as well if desired. Extends FileIndexRecord to support occurrences of macros. Since the design of this type is to keep a single list of entit...
-
Thomas Preud'homme authored
Commit 22ce5eb0, changed checks in GVN/big-endian.ll into CHECK-NOT. The intent was to check that a succession of lines does not occur but each CHECK-NOT is checked independently. In other word, one CHECK-NOT uses a variable defined in a pattern (the one defining the variable) that should not occur in the input. The bug was then copied over in NewGVN/big-endian.ll. This commit only checks for the absence of i16 load which rules out the presence of the whole sequence and does not involve an undefined variable. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D99581
-
- Apr 06, 2021
-
-
Thomas Preud'homme authored
MLIR test Transforms/canonicalize.mlir tries to check for the absence of a sequence of instructions with several CHECK-NOT with one of those directives using a variable defined in another. However CHECK-NOT are checked independently so that is using a variable defined in a pattern that should not occur in the input. This commit removes the dependency between those CHECK-NOT by replacing occurences of variables by the regex that were used to define them. Reviewed By: pifon2a Differential Revision: https://reviews.llvm.org/D99958
-
Victor Huang authored
This patch adds support for TLS variables to the XCOFF object writer: - Add TData and TBSS sections - Add CsectGroups for the mapping classes XCOFF::XMC_TL and XCOFF::XMC_UL - Add XMC_UL in the enum entry of CsectStorageMapping class to print the string while reading the symbol properties for TLS variables - Fix the starting address of TData and TBSS sections Reviewed by: hubert.reinterpretcast, DiggerLin Differential Revision: https://reviews.llvm.org/D98946
-
Simon Pilgrim authored
-
Nicolas Vasilache authored
Linalg fusion on tensors has mismatching assumptions on the operand side than on the region bbArg side. Relax the behavior on the operand/indexing map side so that we better support output operands that may also be read from. Differential revision: https://reviews.llvm.org/D99499
-
Zbigniew Sarbinowski authored
This patch fixes rc and errno within nanosleep(). It also updates __rem parameter as well it introduces cast to handle conversions from long into unsigned int to avoid warnings. Reviewed By: Mordante Differential Revision: https://reviews.llvm.org/D99373
-
Philip Reames authored
These two are part of the IntrinsicInst class hierarchy and it helps to cut down on some redundant includes.
-
Dan Liew authored
[CMake][Compiler-rt] Make it possible to configure standalone compiler-rt without `LLVMConfig.cmake`. Previously it wasn't possible to configure a standalone compiler-rt build if the `LLVMConfig.cmake` file isn't present in a shipped toolchain. This patch adds a fallback behaviour for when `LLVMConfig.cmake` is not available in the toolchain being used for configure. The fallback behaviour mocks out the bare minimum required to make a configure succeed when the host is Darwin. Support for other platforms could be added in future patches. The new code path is taken either in one of the following cases: * `llvm-config` is not available. * `llvm-config` is available but it provides an invalid path for the CMake files. The motivation here is to be able to generate the compiler-rt lit test suites for an arbitrary LLVM toolchain and then run the tests against it. The invocation to do this looks something like. ``` CC=/path/to/cc \ CXX=/path/to/c++ \ cmake \ -G Ninja \ -DLLVM_CONFIG_PATH=/path/to/llvm-config \ -DCOMPILER_RT_INCLUDE_TESTS=ON \ /path/to/llvm-project/compiler-rt # Note we don't compile compiler-rt in this workflow. bin/llvm-lit -v test/path/to/generated/test_suite ``` A possible alternative approach is to configure the `cmake/modules/LLVMConfig.cmake.in` file in the LLVM source tree and then include it. This approach was not taken because it is more complicated. An interesting side benefit of this patch is that it is now possible to configure on Darwin without `llvm-config` being available by configuring with `-DLLVM_CONFIG_PATH=""`. This moves us a step closer to a world where no LLVM build artefacts are required to build compiler-rt. rdar://76016632 Differential Revision: https://reviews.llvm.org/D99621
-
Dan Liew authored
layout. When doing a standalone compiler-rt build we currently rely on getting information from the `llvm-config` binary. Previously we would rely on calling `llvm-config --src-root` to find the LLVM sources. Unfortunately the returned path could easily be wrong if the sources were built on another machine. Now that compiler-rt is part of a monorepo we can easily fix this problem by finding the LLVM source tree next to `compiler-rt` in the monorepo. We do this regardless of whether or not the `llvm-config` binary is available which moves us one step closer to not requiring `llvm-config` to be available. To try avoid anyone breaking anyone who relies on the current behavior, if the path assuming the monorepo layout doesn't exist we invoke `llvm-config --src-root` to get the path. A deprecation warning is emitted if this path is taken because we should remove this path in the future given that other runtimes already assume the monorepo layout. We also now emit a warning if `LLVM_MAIN_SRC_DIR` does not exist. The intention is that this should be a hard error in future but to avoid breaking existing users we'll keep this as a warning for now. rdar://76016632 Differential Revision: https://reviews.llvm.org/D99620
-
Thomas Preud'homme authored
MLIR test Dialect/Linalg/tile-indexed-generic.mlir has a CHECK-NOT directive referring to a variable only defined in a CHECK directive with a different prefix, and thus undefined in the CHECK-NOT. This commit removes the variable reference altogether to error on any content it might have. Reviewed By: pifon2a Differential Revision: https://reviews.llvm.org/D99956
-
oToToT authored
As proposed in D97109, I tried to make target creation consistent in `clang` and `clangd` by replacing the original procedure with a single function introduced in D97493. This also helps `clangd` works with CUDA, OpenMP, etc. Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D98128
-
Erik Pilkington authored
Programmers would like to be able to test direct methods by calling them from a different linkage unit or mocking them, both of which are impossible. This patch adds a flag that effectively disables the attribute, which will fix this when enabled in testable builds. rdar://71190891 Differential revision: https://reviews.llvm.org/D95845
-
Konstantin Zhuravlyov authored
Differential Revision: https://reviews.llvm.org/D99955
-
Philip Reames authored
The key change (4f5e92cc) to switch gc.result and gc.relocate to being readnone landed nearly two weeks ago, and we haven't seen any fallout. Time to remove the code added to make reverting easy.
-
Abhina Sreeskantharajan authored
I incorrectly changed the RewriteTestAction::ExecuteAction's file to binary instead of the proper RewriteIncludesAction::BeginSourceFileAction in https://reviews.llvm.org/rGbc5d4bcc2deb71ab647270c9754a83484b3d6f87. In the original commit, I actually changed RewriteIncludesAction::BeginSourceFileAction in https://reviews.llvm.org/rGfdb640ea30d416368b76b68b106deda580c6aced. This should fix the issue @aganea is facing. Reviewed By: aganea Differential Revision: https://reviews.llvm.org/D99837
-
Jan Svoboda authored
Revert "[IR] Ignore bitcasts of function pointers which are only used as callees in callbase instruction" This reverts commit 167ea67d This causes a bunch of build failures: * http://lab.llvm.org:8011/#/builders/121/builds/6287 * http://green.lab.llvm.org/green/job/clang-stage1-RA/19915
-
Benjamin Kramer authored
-
Jay Foad authored
NFC.
-
Jay Foad authored
NFC.
-
Jay Foad authored
This follows the pattern of the other tryFold* functions. NFC.
-
Jay Foad authored
We are in SSA so getVRegDef is equivalent but simpler. NFC.
-
Simon Pilgrim authored
This was causing some buildbot problems, e.g. http://lab.llvm.org:8011/#/builders/110/builds/2306
-
Jay Foad authored
This fixes an oversight in D99747 which moved the IMG init code from SIAddIMGInit to AdjustInstrPostInstrSelection, but did not set the hasPostISelHook flag on gather4 instructions. Differential Revision: https://reviews.llvm.org/D99953
-
Kerry McLaughlin authored
Previously we could only vectorize FP reductions if fast math was enabled, as this allows us to reorder FP operations. However, it may still be beneficial to vectorize the loop by moving the reduction inside the vectorized loop and making sure that the scalar reduction value be an input to the horizontal reduction, e.g: %phi = phi float [ 0.0, %entry ], [ %reduction, %vector_body ] %load = load <8 x float> %reduction = call float @llvm.vector.reduce.fadd.v8f32(float %phi, <8 x float> %load) This patch adds a new flag (IsOrdered) to RecurrenceDescriptor and makes use of the changes added by D75069 as much as possible, which already teaches the vectorizer about in-loop reductions. For now in-order reduction support is off by default and controlled with the `-enable-strict-reductions` flag. Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D98435
-
Simon Pilgrim authored
Fold (~x & y) | ~(x | y) --> ~x
-
Simon Pilgrim authored
Extend D94856 to handle 'andn' instructions as well
-
Roman Lebedev authored
-
Roman Lebedev authored
https://alive2.llvm.org/ce/z/67w-wQ We prefer `add`s over `sub`, and this particular xform allows further folds to happen: Fixes https://bugs.llvm.org/show_bug.cgi?id=49858
-
Roman Lebedev authored
-
Simon Pilgrim authored
D94856 covered the BMI cases where we had existing tests, this adds a missing ANDN test case
-
Raphael Isemann authored
-
Jay Foad authored
-
Simon Pilgrim authored
Fold (a ^ b) | ~(a | b) --> ~(a & b)
-