- Sep 16, 2021
-
-
Kazu Hirata authored
-
Jessica Paquette authored
The default register bank selection code for G_LOAD assumes that we ought to use a FPR when the load is casted to a float/double. For atomics, this isn't true; we should always use GPRs. Without this patch, we crash in the following example: https://godbolt.org/z/MThjas441 Also make the code a little more stylistically consistent while we're here. Also test some other weird cast combinations as well. Differential Revision: https://reviews.llvm.org/D109771
-
Ahmed Bougacha authored
There's technically a difference in the logic used by these findIntrinsicID and MachineInstr::getIntrinsicID, but it shouldn't be a meaningful difference here, with G_INTRINSIC instructions. getIntrinsicID's "first non-def" logic should be correct for those.
-
Ahmed Bougacha authored
The doc comment for isPredecessor says: Returns true if \p DefMI precedes \p UseMI or they are the same instruction. And dominates relies on that behavior for its own: Returns true if \p DefMI dominates \p UseMI. By definition an instruction dominates itself. Make both statements correct by fixing isPredecessor. Found by inspection.
-
Teresa Johnson authored
Fix the warnings that show up with -Wformat in this file.
-
Ted Woodward authored
The thread that Visual Studio Code displays on a stop is called the focus thread. When the previous focus thread exits and we stop in a new thread, lldb-vscode does not tell vscode to set the new thread as the focus thread, so it selects the first thread in the thread list. This patch changes lldb-vscode to tell vscode that the new thread is the focus thread. It also includes a test that verifies the DAP stop message for this case contains the correct values. Reviewed By: clayborg, wallace Differential Revision: https://reviews.llvm.org/D109633
-
Teresa Johnson authored
Previously we used a global Allocator-scope mutex to lock when adding a deallocation to the MIB cache. This resulted in a lot of contention. Instead add and use per-set mutexes. Along with this, we now need to remove the global miss and access count variables and instead utilize the per-set statistics to report the overall miss rate. Differential Revision: https://reviews.llvm.org/D109853
-
Richard Smith authored
Don't say we couldn't find an 'operator<=>' when we were actually looking for an 'operator=='. Also fix a crash when attempting to diagnose if we select a built-in 'operator!=' in this lookup.
-
Arthur Eubanks authored
-
Arthur Eubanks authored
PassBuilder.cpp is the slowest file to compile in LLVM. When trying to test changes to pipelines, it takes a long time to recompile. This doesn't actually speedup building PassBuilder.cpp itself since most of the time is spent in other large/duplicated functions caused by PassRegistry.def. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D109798
-
LLVM GN Syncbot authored
-
Michael Kruse authored
Building a source distribution using autotools adds GPL-licenced files into the the sources. Although redistribution of theses files is explicitly allowed with an exception, these are not used by Polly which uses a CMake replacement. Use the direct source checkout instead (replacing the output of 'make dist'). Some m4 scripts with the same licence are also included in isl/ppcg repository. Removing them renders the autotools-based build scipts inoperable, so remove the autotools build system altogether.
-
Owen Anderson authored
In particular, it couldn't handle cases where lookup table constant expressions involved bitcasts. This does not seem to come up frequently in C++, but comes up reasonably often in Rust via `#[derive(Debug)]`. Originally reported by pcwalton. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D109565
-
Anna Thomas authored
This reverts commit 4ac4e521. There are couple of test failures, which needs update of the test cases. Doing a clean revert and will recommit the change along with fixed testcases.
-
owenca authored
Differential Revision: https://reviews.llvm.org/D109752
-
David Blaikie authored
-
Anna Thomas authored
Fix build bot failure in rG4ac4e521 caused due to assumeBundleBuilder using new API (getUniqueUndroppableUser). We now continue using the existing API for AssumeBundleBuilder (getSingleUndroppableUser). Sorry for the noise here. Tests-Run: failing testcase passes.
-
Matt Arsenault authored
This was trying to fixup broken live intervals coming out of the coalescer. The verifier is more complete now and no tests seem to fail without this.
-
Mogball authored
Adds a new rewrite directive returnType that can be added at the end of an op's argument list to explicitly specify return types. ``` (OpX $v0, $v1, (returnType "$_builder.getI32Type()")) ``` Pass in a bound value to copy its return type, or pass a native code call to dynamically create new types. ``` (OpX $v0, $v1, (returnType $v0, (NativeCodeCall<"..."> $v1))) ``` Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D109472
-
Dan Liew authored
Previously we used the minimum deployment target used for the platform (e.g. iOS is 9.0). Unfortunately this leads to ABI incompatibilities with arm64e devices running newer OSs. In particular the following TSan test cases that used libcxx would fail due to the ABI mismatch. * Darwin/libcxx-shared-ptr-recursive.mm * Darwin/libcxx-shared-ptr-stress.mm * Darwin/libcxx-shared-ptr.mm * libcxx/std_shared_ptr.cpp Given that arm64e is not ABI stable we should ideally match the deployment target for sanitizer runtimes and their tests cases to the device when building for arm64e. Unfortunately having a mixed deployment target (based on architecture) isn't currently supported by the build system and is non-trivial to implement. As a stop-gap measure this patch changes the sanitizer test suites (but not the sanitizer runtimes themselves) to use a newer deployment target when targetting arm64e. The deployment target used for arm64e is the SDK version because this "should" match the OS version running on the target device (it is a configuration error to not match them). rdar://83080611
-
Rob Suderman authored
There are two main versions of depthwise conv depending whether the multiplier is 1 or not. In cases where m == 1 we should use the version without the multiplier channel as it can perform greater optimization. Add lowering for the quantized/float versions to have a multiplier of one. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D108959
-
Anna Thomas authored
The API was removed in 4ac4e521 in favor of getUniqueUndroppableUser. However, this caused a buildbot failure in AbstractCallSiteTest.cpp, which uses the API and the AbstractCallSite class requires a "use" rather than a user. Retain the API so that the unittest compiles and passes.
-
Kim-Anh Tran authored
-
Mats Larsen authored
-
David Blaikie authored
Based on feedback from Paul Robinson.
-
Hansang Bae authored
Call to remove() was passing invalid address for the file name. Differential Revision: https://reviews.llvm.org/D109846
-
Saleem Abdulrasool authored
This reverts commit 626586fc. Tweak the test for Windows. Windows defaults to delayed template parsing, which resulted in the main template definition not registering the test on Windows. Process the file with the additional `-fno-delayed-template-parsing` flag to change the default beahviour. Additionally, add an extra check for the fix it and use a more robust test to ensure that the value is always evaluated. Differential Revision: https://reviews.llvm.org/D108893
-
David Blaikie authored
Follow-on from 2bd84938 based on postcommit feedback from Richard Smith. The VariableArray case I couldn't figure out how to test/provoke - you can't write/form a variable array in any context other than a local variable that I know of, and in that case `const int x[n]` is the normalized form already (array-of-const) and you can't use typedefs (since you can't typedef int[n] with variable 'n') to force the const-array AST that would produce the undesirable type printing "int const [n]".
-
Anna Thomas authored
This patch allows sinking an instruction which can have multiple uses in a single user. We were previously over-restrictive by looking for exactly one use, rather than one user. Also, the API for retrieving undroppable user has been updated accordingly since in both usecases (Attributor and InstCombine), we seem to care about the user, rather than the use. Reviewed-By: nikic Differential Revision: https://reviews.llvm.org/D109700
-
Philip Reames authored
-
Matt Morehouse authored
Our interceptor needs to change retval to 1 when 0 is passed. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D109788
-
Kazu Hirata authored
-
Sanjay Patel authored
I was wondering how instcombine does on the examples in D109236, and we're missing a basic transform: inselt (ext X), (ext Y), Index --> ext (inselt X, Y, Index) https://alive2.llvm.org/ce/z/z2aBu9 Note that there are several possible extensions of this fold (see TODO comments). Differential Revision: https://reviews.llvm.org/D109537
-
Philip Reames authored
Motivated by the removal done in D109782. This implements the correct flag part generically. Differential Revision: https://reviews.llvm.org/D109786
-
Simon Camphausen authored
Attributes and types were not escaped when printing. Reviewed By: jpienaar, marbre Differential Revision: https://reviews.llvm.org/D109143
-
Nicolas Vasilache authored
This revision fixes a corner case that could appear due to incorrect insertion point behavior in comprehensive bufferization. Differential Revision: https://reviews.llvm.org/D109830
-
Philip Reames authored
-
Philip Reames authored
-
Alina Sbirlea authored
Add two levels of verification for MemorySSA: Fast and Full. The defaults are kept the same. Full verification always occurs under EXPENSIVE_CHECKS, but now it can also be requested in a specific pass for debugging purposes.
-
Mehdi Amini authored
This fixes a compiler warning for some version of GCC.
-