- Apr 06, 2021
-
-
Jan Svoboda authored
In D84673, we started using `DiagnosticsEngine` during command-line parsing in more contexts. When using `ToolInvocation`, a custom `DiagnosticsConsumer` can be specified and it might expect `SourceManager` to be present on the emitted diagnostics. This patch ensures the `SourceManager` is set up in such scenarios. Test authored by Jordan Rupprecht. Reviewed By: rupprecht Differential Revision: https://reviews.llvm.org/D99414
-
Kiran Chandramohan authored
This reverts commit 8c7bf2f9.
-
Sam Parker authored
-
Sjoerd Meijer authored
This was using the .2d variant which zeros 128 bits, but using the .2s variant that zeros 64 bits is faster on some cores. This is a prep step for D99586 to always using movi for zeroing floats. Differential Revision: https://reviews.llvm.org/D99710
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D99647
-
Jan Svoboda authored
The '-plugin-arg' command-line arguments are not being generated in deterministic order. This patch changes the storage from `std::unordered_map` to `std::map` to enforce ordering. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D99879
-
Yevgeny Rouban authored
Fixes commit 39e3e3aa: Redesign of PreserveCFG Checker
-
Yevgeny Rouban authored
The reason for the NewPM redesign is described in the commit cba3e783: [NewPM] Disable PreservedCFGChecker ... The checker introduces an internal custom CFG analysis that tracks current up-to date CFG snapshot. The analysis is invalidated along any other CFG related analysis (the key is CFGAnalyses). If the CFG analysis is not invalidated at a functional pass exit then the checker asserts that the CFG snapshot taken from this analysis is equals to a snapshot of the current CFG. Along the way: - the function CFG::printDiff() is simplified by removing function name calculation. The name is printed by the caller; - fixed CFG invalidated condition (see CFG::invalidate()); - StandardInstrumentations::registerCallbacks() gets additional optional parameter of type FunctionAnalysisManager*, which is needed by the checker to get the custom CFG analysis; - several PM related tests updated to explicitly set -verify-cfg-preserved=1 as they need. This patch is safe to land as the CFGChecker is left switched off (the options -verify-cfg-preserved is false by default). It will be switched on by a separate patch to minimize possible reverts. Reviewed By: skatkov, kuhar Differential Revision: https://reviews.llvm.org/D91327
-
Geoffrey Martin-Noble authored
Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D99922
-
Serguei Katkov authored
[Statepoint] Factor-out utility function to get non-foldable area of STATEPOINT like instructions. NFC Reviewers: reames, dantrushin Reviewed By: reames Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D99875
-
Yevgeny Rouban authored
Change several pass sequence sensitive tests to be indifferent to the PreserveCFGChecker by explicitly settting the option -verify-cfg-preserved=0. It is a preparation step that allows a redesign of PreserveCFGChecker. Reviewed By: skatkov Differential Revision: https://reviews.llvm.org/D99878
-
Craig Topper authored
I missed a few intrinsics in 3dd4aa7d when I did this for masked loads and masked segment loads/stores. Found while trying to share more code between these custom isel functions.
-
Philip Reames authored
-
Arthur Eubanks authored
When we are able to SROA an alloca, we know all uses of it, meaning we don't have to preserve the invariant group intrinsics and metadata. It's possible that we could lose information regarding redundant loads/stores, but that's unlikely to have any real impact since right now the only user is Clang and vtables. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D99760
-
Philip Reames authored
Use that fact to improve isKnownNonEqual.
-
patacca authored
Polly use algorithms from the Integer Set Library (isl), which is a library written in C and which is incompatible with the rest of the LLVM as it is written in C++. Changes made: - Refactoring isInnermost() to take C++ bindings instead of the plain isl C api. - Addition of manage_copy() when needed to get the reference for the isl_ast_node object Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D99841
-
Christopher Di Bella authored
Including `<concepts>` in other standard library headers (such as `<iterator>`) creates circular dependencies due to `<functional>`. Since `<concepts>` only needs `std::invoke` from `<functional>`, the easiest, fastest, and cleanest way to eliminate the circular dep is to move `std::invoke` into `__functional_base`. This has the added advantage of `<concepts>` not transitively importing `<functional>`. Differential Revision: https://reviews.llvm.org/D99041
-
Philip Reames authored
-
Jim Ingham authored
This reverts commit 602ab188. The patch replicated an lldbassert for a certain type of NSNumber for tagged pointers. This really shouldn't be an assert since we don't do anything wrong with these numbers, we just don't print a summary. So this patch changed the lldbassert to a log message in reverting the revert.
-
Stanislav Mekhanoshin authored
Fixes: SWDEV-280070 Differential Revision: https://reviews.llvm.org/D99902
-
Craig Topper authored
For some reason we only had 1 test case. This synchronizes the test with vslide1down so we have the same number of tests for both.
-
MaheshRavishankar authored
Right now Elementwise operations fusion in Linalg fuses everything it can. This can run up against resource limits of the target hardware without some checks. This patch adds a callback function that clients can use to implement a cost function. When two elementwise operations are deemed structurally fusable, the callback can be used to control if the fusion applies. Differential Revision: https://reviews.llvm.org/D99820
-
Peter Steinfeld authored
We were not folding type parameter inquiries for the form 'var%typeParam' where 'typeParam' was a KIND or LEN type parameter of a derived type and 'var' was a designator of the derived type. I fixed this by adding code to the function 'FoldOperation()' for 'TypeParamInquiry's to handle this case. I also cleaned up the code for the case where there is no designator. In order to make the error messages correctly refer to both the points of declaration and instantiation, I needed to add an argument to the function 'InstantiateIntrinsicType()' for the location of the instantiation. I also changed the formatting of 'TypeParamInquiry' to correctly format this case. I also added tests for both KIND and LEN type parameter inquiries in resolve104.f90. Making these changes revealed an error in resolve89.f90 and caused one of the error messages in assign04.f90 to be different. Differential Revision: https://reviews.llvm.org/D99892
-
Nico Weber authored
This reverts commit ec575e3b. Still doesn't work, see https://crbug.com/1196037
-
- Apr 05, 2021
-
-
Aaron Ballman authored
This changes our approach to processing statement attributes to be more similar to how we process declaration attributes. Namely, ActOnAttributedStmt() now calls ProcessStmtAttributes() instead of vice-versa, and there is now an interface split between building an attributed statement where you already have a list of semantic attributes and building an attributed statement with attributes from the parser. This should make it easier to support statement attributes that are dependent on a template. In that case, you would add a TransformFooAttr() function in TreeTransform.h to perform the semantic checking (morally similar to how Sema::InstantiateAttrs() already works for declaration attributes) when transforming the semantic attribute at instantiation time.
-
Aart Bik authored
Differential Revision: https://reviews.llvm.org/D99899
-
Martin Storsjö authored
Differential Revision: https://reviews.llvm.org/D99093
-
Sanjay Patel authored
This is the sibling fix to c590a988 - as there, we can't subsitute a vector value the equality compare replacement that we are trying requires that the comparison is true for the entire value. Vector select can be partly true/false.
-
Sanjay Patel authored
We need a sibling fix to c590a988 ( https://llvm.org/PR49832 ) to avoid miscompiling.
-
Thomas Preud'homme authored
Clang test CodeGenOpenCL/fpmath.cl uses a variable defined in an earlier CHECK-NOT directive. However, by definition the pattern in that directive is not supposed to occur so no variable will be defined. This commit solves the issue by using a regex match with the same regex as in the definition. It also changes the definition into a regex match since no variable is going to be defined. Reviewed By: yaxunl Differential Revision: https://reviews.llvm.org/D99857
-
Craig Topper authored
The scalar type is already marked as XLenVT. The floating point version would need a different rule.
-
Craig Topper authored
It's a bit silly, but it allows us to write stricter type constraints for isel. There's still some extra type checks in the generated table due to some type interference limitations around HWMode.
-
Philip Reames authored
Several of these weren't testing what was intented.
-
Philip Reames authored
For use in an uncoming patch. Left out the phi case (which could otherwise fit in this framework) as it would cause infinite recursion in said patch. We can probably also leverage this in instcombine to ensure we keep the two sets of related analysis and transforms in sync.
-
Philip Reames authored
-
Craig Topper authored
FP would need VFSLIDE1UP_VF which uses an FP register.
-
Ricky Taylor authored
These look like $00A0cf for hex and %001010101 for binary. They are used in Motorola assembly syntax. Differential Revision: https://reviews.llvm.org/D98519
-
Jennifer Yu authored
Added basic parsing/sema/serialization support for the 'nocontext' clause. Differential Revision: https://reviews.llvm.org/D99848
-
MaheshRavishankar authored
The moved `populate` methods are only relevant to Linalg operations. So they are better of in `linalg` namespace. Also rename `populateLinalgTensorOpsFusionPatterns` to `populateElementwiseOpsFusionPatterns`. This makes the scope of these patterns explicit and disambiguates it with fusion on tensors using tile + fuse. Differential Revision: https://reviews.llvm.org/D99819
-
Sam Clegg authored
Differential Revision: https://reviews.llvm.org/D99885
-