- Nov 06, 2020
-
-
Anna Thomas authored
CapturesBefore tracker has an overly restrictive dominates check when the `BeforeHere` and the capture point are in different basic blocks. All we need to check is that there is no path from the capture point to `BeforeHere` (which is less stricter than the dominates check). See added testcase in one of the users of CapturesBefore. Reviewed-By: jdoerfert Differential Revision: https://reviews.llvm.org/D90688
-
Raphael Isemann authored
5d645743 removes this enum value and now all the switch statements that previously relied on handling this in the 'default' branch are causes compiler warnings due to redundant default cases. This just removes the now unreachable code in there.
-
- Nov 05, 2020
-
-
Raphael Isemann authored
In D89056 the default value for architecture was moved to `build` so that all called functions see the same architecture value. It seems there are a few functions that call buildDefault directly (and not via build), so on some test configurations that set a custom arch value the architecture value is no longer available. This just adds the architecture code from build to buildDefault to get the bots green again while I'm looking for a better solution.
-
Erich Keane authored
As described here: https://devblogs.microsoft.com/oldnewthing/20150220-00/?p=44623 In order to allow Lambdas to be used with traditional Win32 APIs, they emit a conversion function for (what Raymond Chen claims is all) a number of the calling conventions. Through experimentation, we discovered that the list isn't quite 'all'. This patch implements this by taking the list of conversions that MSVC emits (across 'all' architectures, I don't see any CCs on ARM), then emits them if they are supported by the current target. However, we also add 3 other options (which may be duplicates): free-function, member-function, and operator() calling conventions. We do this because we have an extension where we generate both free and member for these cases so th at people specifying a calling convention on the lambda will have the expected behavior when specifying one of those two. MSVC doesn't seem to permit specifying calling-convention on lambdas, but we do, so we need to make sure those are emitted as well. We do this so that clang-only conventions are supported if the user specifies them. Differential Revision: https://reviews.llvm.org/D90634
-
LLVM GN Syncbot authored
-
Raphael Isemann authored
Clang offers a `-f[no]-show-column` flag for hiding the column numbers when printing diagnostics but there is no option for doing the same with line numbers. In LLDB having this option would be useful, as LLDB sometimes only knows the file name for a SourceLocation and just assigns it the dummy line/column `1:1`. These fake line/column numbers are confusing to the user and LLDB should be able to tell clang to hide *both* the column and the line number when rendering text diagnostics. This patch adds a flag for also hiding the line numbers. It's not exposed via the command line flags as it's most likely not very useful for any user and can lead to ambiguous output when the user decides to only hide either the line or the column number (where `file:1: ...` could now refer to both line 1 or column 1 depending on the compiler flags). LLDB can just access the DiagnosticOptions directly when constructing its internal Clang instance. The effect doesn't apply to Vi/MSVC style diagnostics because it's not defined how these diagnostic styles would show an omitted line number (MSVC doesn't have such an option and Vi's line mode is theory only supporting line numbers if I understand it correctly). Reviewed By: thakis, MaskRay Differential Revision: https://reviews.llvm.org/D83038
-
Mircea Trofin authored
Differential Revision: https://reviews.llvm.org/D90631
-
Simon Pilgrim authored
Move the ValueTracking implementation to KnownBits, the SelectionDAG version is more limited so I'm intending to replace that as a separate commit.
-
Raphael Isemann authored
This just adds the simulator platforms to the lldbplatform enumerations and the respective test decorator. The platform names for the simulator are just the SDK names since D85537, so that's why we are not using LLDB's usual platform names here (e.g., SDK = "iphonesimulator" vs LLDB platform ="ios-simulator"). Also removes the duplicate platform enumaration in lldbplatformutil.py. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D89694
-
Simon Pilgrim authored
Both these have the same implementation - so move them to a single KnownBits copy. GlobalISel will be able to use this as well with minimal effort.
-
Alexander Belyaev authored
TestDialect has many operations and they all live in ::mlir namespace. Sometimes it is not clear whether the ops used in the code for the test passes belong to Standard or to Test dialects. Also, with this change it is easier to understand what test passes registered in mlir-opt are actually passes in mlir/test. Differential Revision: https://reviews.llvm.org/D90794
-
Vy Nguyen authored
Bionic doesn't acutally allocate any memory in this case, so there won't be a leak on Android. Differential Revision: https://reviews.llvm.org/D90821
-
Raphael Isemann authored
This originally broke the TestQuoting which explicitly called buildDefault instead of calling build() and marking the test as no_debug_info_test. TestQuoting has been rewritten by now and is using `build`, so this should now pass on all platforms. Original summary: The Darwin builder currently assumes in `getArchCFlags` that the passed `arch` value is an actual string it can string.join with vendor/os/version/env strings: ``` triple = '-'.join([arch, vendor, os, version, env]) ``` However this is not true for most tests as we just pass down the `arch=None` default value from `TestBase.build`. This causes that if we actually end up in this function we just error out when concatenating `None` with the other actual strings of vendor/os/version/env. What we should do instead is check that if there is no test-specific architecture that we fall back to the configuration's architecture value. It seems we already worked around this in `builder.getArchSpec` by explicitly falling back to the architecture specified in the configuration. This patch just moves this fallback logic to the top `build` function so that it affects all functions called from `TestBase.build`. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D89056
-
Raphael Isemann authored
`fork` is marked as `__WATCHOS_PROHIBITED __TVOS_PROHIBITED` so the test source which is calling fork will never compile on watchOS/tvOS. This just adds the skip decorator for these platforms. Reviewed By: mib Differential Revision: https://reviews.llvm.org/D89695
-
Paul C. Anagnostopoulos authored
Update the Programmer's Reference document. Add a test. Update a couple of tests with an improved error message. Differential Revision: https://reviews.llvm.org/D90635
-
Louis Dionne authored
Technically, these tests don't only fail against macosx10.9 to 10.15, but really against any released macOS yet.
-
Simon Pilgrim authored
Both these have the same implementation - so move them to a single KnownBits copy. GlobalISel will be able to use this as well with minimal effort.
-
Raphael Isemann authored
This is a follow up to D88792 which found an issue in a call to PExpectTest's expect function that allows passing a string to the `substrs` parameter. However this issue was found by just grepping and TestPExpect's expect function is still accepting a single string as a value to `substrs`. This patch adds the same sanity check that D88792 added to the PExpectTest's implementation of `expect` and also adds a small test for it. Reviewed By: kastiglione, JDevlieghere Differential Revision: https://reviews.llvm.org/D89302
-
Andrzej Warzynski authored
-
Florian Hahn authored
When replacing an assume(false) with a store, we have to be more careful with the order we insert the new access. This patch updates the code to look at the accesses in the block to find a suitable insertion point. Alterantively we could check the defining access of the assume, but IIRC there has been some discussion about making assume() readnone, so looking at the access list might be more future proof. Fixes PR48072. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D90784
-
Sven van Haastregt authored
Enable the vec_step builtin in C++ for OpenCL mode for compatibility with OpenCL C. Differential Revision: https://reviews.llvm.org/D90766
-
Simon Pilgrim authored
Convert GISelKnownBits.computeKnownBitsImpl shift handling to use the common KnownBits implementations, which makes use of the known leading/trailing bits for shifted values in cases where we don't know the shift amount value, as detailed in https://blog.regehr.org/archives/1709 Differential Revision: https://reviews.llvm.org/D90527
-
Adhemerval Zanella authored
The tests do not report the expected leak when issued with use_stack or use_tls option equal to 0 on arm-linux-gnueabihf (ubuntu 18.04, glibc 2.27). This issue is being tracked by https://bugs.llvm.org/show_bug.cgi?id=48052
-
Adhemerval Zanella authored
It was added on kernel 3.17.
-
Joachim Protze authored
The macros are used in several places with an if(macro) pattern. This results in several warnings about extraneous parenteses in equality comparison. Having the constant at the lhs of the comparison, avoids this warning. Differential Revision: https://reviews.llvm.org/D90756
-
Sander de Smalen authored
To accommodate frame layouts that have both fixed and scalable objects on the stack, describing a stack location or offset using a pointer + uint64_t is not sufficient. For this reason, we've introduced the StackOffset class, which models both the fixed- and scalable sized offsets. The TargetFrameLowering::getFrameIndexReference is made to return a StackOffset, so that this can be used in other interfaces, such as to eliminate frame indices in PEI or to emit Debug locations for variables on the stack. This patch is purely mechanical and doesn't change the behaviour of how the result of this function is used for fixed-sized offsets. The patch adds various checks to assert that the offset has no scalable component, as frame offsets with a scalable component are not yet supported in various places. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D90018
-
Simon Pilgrim authored
Revert rGbbeb0849 "Revert "[GlobalISel] GISelKnownBits::computeKnownBitsImpl - Replace TargetOpcode::G_MUL handling with the common KnownBits::computeForMul implementation"" Updated the GISel KnownBits tests as KnownBits::computeForMul allows more accurate computation.
-
Simon Pilgrim authored
Thanks to @foad for the suggestion.
-
Simon Pilgrim authored
-
Eduardo Caldas authored
Rationale: Children of a syntax tree had forward links only, because there was no need for reverse links. This need appeared when we started mutating the syntax tree. On a forward list, to remove a target node in O(1) we need a pointer to the node before the target. If we don't have this "before" pointer, we have to find it, and that requires O(n). So in order to remove a syntax node from a tree, we would similarly need to find the node before to then remove. This is both not ergonomic nor does it have a good complexity. Differential Revision: https://reviews.llvm.org/D90240
-
Alex Zinenko authored
The test file is a long list of functions, followed by equally long FileCheck comments inside "main". Distribute FileCheck comments closer to the functions that produce the output we are checking. Reviewed By: mehdi_amini, stellaraccident Differential Revision: https://reviews.llvm.org/D90743
-
Nicolas Vasilache authored
The LinalgDependenceGraph and alias analysis provide the necessary analysis for the Linalg fusion on buffers case. However this is not enough for linalg on tensors which require proper memory effects to play nicely with DCE and other transformations. This revision adds side effects to Linalg ops that were previously missing and has 2 consequences: 1. one example in the copy removal pass now fails since the linalg.generic op has side effects and the pass does not perform alias analysis / distinguish between reads and writes. 2. a few examples in fusion-tensor.mlir need to return the resulting tensor otherwise DCE automatically kicks in as part of greedy pattern application. Differential Revision: https://reviews.llvm.org/D90762
-
Alex Zinenko authored
Upstream MLIR has deprecated OpBuilder in ODS. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D90226
-
David Green authored
-
Artur Bialas authored
VectorExtractDynamicOp in SPIRV dialect conversion from vector.extractelement to spirv VectorExtractDynamicOp Differential Revision: https://reviews.llvm.org/D90679
-
Artur Bialas authored
Per spec, vector sizes 8 and 16 are allowed when Vector16 capability is present. This change expands the limitation of vector sizes to accept these sizes. Differential Revision: https://reviews.llvm.org/D90683
-
Arthur Eubanks authored
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
Missread the error message. It was not the reason. This reverts commit 2d041554.
-