- Mar 03, 2022
-
-
Peter Klausler authored
Suffix() can be called from AllSources::IntersectionWithSourceFiles() when a contiguous range of source provenance overlaps a macro expansion. It skips over the macro expansion and recurses on the remainder of the range, which might end with a bit that does overlap with a source file. However, in the case where the original range is entirely within the expanded macro, Suffix() crashes when called with a skip offset greater than the size of the range. Rather than add logic around this and other calls to Suffix() to avoid passing an out-of-range skip, it's better to accommodate it in Suffix() and return an empty result. Differential Revision: https://reviews.llvm.org/D120843
-
Peter Klausler authored
And expand common::BitSet from 64 to 128 maximum elements. Differential Revision: https://reviews.llvm.org/D120848
-
- Mar 02, 2022
-
-
Stanislav Mekhanoshin authored
Image instructions are now not available for all targets anymore, so a generic target cannot use it.
-
Arthur O'Dwyer authored
This is just getting some non-functional cleanups out of the way prior to the meat of the change in D120417.
-
Zequan Wu authored
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D120763
-
Stanislav Mekhanoshin authored
This is target definition only. Differential Revision: https://reviews.llvm.org/D120688
-
David Blaikie authored
3ba66435
-
Zequan Wu authored
This allows `image lookup -a ... -v` to print variables only if the given address is covered by the valid ranges of the variables. Since variables created in dwarf plugin always has empty scope range, print the variable if it has empty scope. Differential Revision: https://reviews.llvm.org/D119963
-
Sanjay Patel authored
There are more potential optimizations to make here, so rearrange to make it easier to append those.
-
Sanjay Patel authored
This will avoid some noise in case the register allocation changes.
-
Pavel Labath authored
MSVC does not seem to like the inheriting constructor.
-
Martin Storsjö authored
In the en_US locale on Windows, negative currency amounts is formatted as "($0.01)" instead of "-$0.01". Adjust the test references accordingly, making these tests pass. Differential Revision: https://reviews.llvm.org/D120798
-
River Riddle authored
StandardToSPIRV currently contains an assortment of patterns converting from different dialects to SPIRV. This commit splits up StandardToSPIRV into separate conversions for each of the dialects involved (some of which already exist). Differential Revision: https://reviews.llvm.org/D120767
-
spupyrev authored
Differential Revision: https://reviews.llvm.org/D118640
-
Peter Klausler authored
The symbol table, name resolution, and semantic checks for module subprograms -- esp. for MODULE FUNCTION and MODULE SUBROUTINE, but also MODULE PROCEDURE -- essentially assumed that the subprogram would be defined in a submodule of the (sub)module containing its interface. However, it is conforming to instead declare a module subprogram in the *same* (sub)module as its interface, and we need to handle that case. Since this case involves two symbols in the same scope with the same name, the symbol table details for subprograms have been extended with a pointer to the original module interface, rather than relying on searching in scopes. Differential Revision: https://reviews.llvm.org/D120839
-
Krzysztof Parzyszek authored
Dcfetch doesn't really have an access size, but the immediate offset is scaled as for an 8-byte access, so treat it as such.
-
Mathieu Fehr authored
Add support for extensible dialects, which are dialects that can be extended at runtime with new operations and types. These operations and types cannot at the moment implement traits or interfaces. Differential Revision: https://reviews.llvm.org/D104554
-
Peter Klausler authored
A data transfer statement must have REC= in its control list if (and only if) the unit was opened with ACCESS='DIRECT'. The runtime wasn't catching this error, but was just silently advancing to the next record as if the access were sequential. Differential Revision: https://reviews.llvm.org/D120838
-
natashaknk authored
Infers output shape for dynamic width/height inputs. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D119977
-
Peter Klausler authored
Advancement to new output lines was taking fixed-sized direct-access and internal character array element lengths into account, but not RECL= settings from OPEN statements. Differential Revision: https://reviews.llvm.org/D120837
-
Craig Topper authored
Until Zfinx is supported in CodeGen we need to convert all Zfinx register classes to GPR. Remove the zfinx-types.ll test which didn't test anything meaningful since -mattr=zfinx isn't implemented completely in llc. Follow up to D93298.
-
Tong Zhang authored
Clang is crashing on the following statement char var[9]; __asm__ ("" : "=r" (var) : "0" (var)); This is similar to existing test: crbug_999160_regtest The issue happens when EmitAsmStmt is trying to convert input to match output type length. However, that is not guaranteed to be successful all the time and if the statement itself is invalid like having an array type in the example, we should give a regular error message here instead of using assert(). Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D120596
-
Jason Molenda authored
Make it clearer for end users why a command cannot be used when a process is not stopped, etc. Differential Revision: https://reviews.llvm.org/D120594
-
Vladislav Khmelevsky authored
This patch enables PLT analysis for aarch64. It is used by the static relocations in order to provide final symbol address of PLT entry for some instructions like ADRP. Vladislav Khmelevsky, Advanced Software Technology Lab, Huawei Differential Revision: https://reviews.llvm.org/D118088
-
Stella Laurenzo authored
lldb buildbot failure. will investigate and roll forward. This reverts commit 9f377754.
-
Douglas Yung authored
-
Peter Klausler authored
Name resolution was properly probing the table of unrestricted specific intrinsics to find "abs", but failing to capture the result type and save it in the created symbol table entry. Differential Revision: https://reviews.llvm.org/D120749
-
Valentin Clement authored
This patch enables the lowering of various allocatable assignements for character type and numeric types. This patch is part of the upstreaming effort from fir-dev branch. Depends on D120819 Reviewed By: PeteSteinfeld, schweitz Differential Revision: https://reviews.llvm.org/D120820 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Stella Laurenzo authored
The upstream project ships CMake rules for building vanilla gtest/gmock which conflict with the names chosen by LLVM. Since LLVM's build rules here are quite specific to LLVM, prefixing them to avoid collision is the right thing (i.e. there does not appear to be a path to letting someone *replace* LLVM's googletest with one they bring, so co-existence should be the goal). This allows LLVM to be included with testing enabled within projects that themselves have a dependency on an official gtest release. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D120789
-
Philip Reames authored
Root issue which triggered the revert was fixed in 689bab. No changes in the reapplied patch. Original commit message follows: SLP currently schedules all instructions within a scheduling window which stretches from the first instr uction potentially vectorized to the last. This window can include a very large number of unrelated instruct ions which are not being considered for vectorization. This change switches the code to only schedule the su b-graph consisting of the instructions being vectorized and their transitive users. This has the effect of greatly reducing the amount of work performed in large basic blocks, and thus greatly improves compile time on degenerate examples. To understand the effects, I added some statistics (not planned for upstream contribution). Here's an illustration from my motivating example: Before this patch: 704357 SLP - Number of calcDeps actions 699021 SLP - Number of schedule calls 5598 SLP - Number of ReSchedule actions 59 SLP - Number of ReScheduleOnFail actions 10084 SLP - Number of schedule resets 8523 SLP - Number of vector instructions generated After this patch: 102895 SLP - Number of calcDeps actions 161916 SLP - Number of schedule calls 5637 SLP - Number of ReSchedule actions 55 SLP - Number of ReScheduleOnFail actions 10083 SLP - Number of schedule resets 8403 SLP - Number of vector instructions generated I do want to highlight that there is a small difference in number of generated vector instructions. This example is hitting the bailout due to maximum window size, and the change in scheduling is slightly perturbing when and how we hit it. This can be seen in the RescheduleOnFail counter change. Given that, I think we can safely ignore. The downside of this change can be seen in the large test diff. We group all vectorizable instructions together at the bottom of the scheduling region. This means that vector instructions can move quite far from their original point in code. While maybe undesirable, I don't see this as being a major problem as this pass is not intended to be a general scheduling pass. For context, it's worth noting that the pre-scheduling that SLP does while building the vector tree is exactly the sub-graph scheduling implemented by this patch. Differential Revision: https://reviews.llvm.org/D118538
-
Louis Dionne authored
-
Philip Reames authored
While a collection of allocas are technically vectorizeable - by forming a wider alloca - this was not a transform SLP actually knows how to do. Instead, we were forming a bundle with missing dependencies, and then relying on the scheduling code to preserve program order if multiple instructions were scheduleable at once. I haven't been able to write a test case, but I'm 99% sure this was wrong in some edge case. The unknown op case was flowing down the shufflevector path. This did result in some splat handling being lost with this change, but the same lack of splat handling is visible in a whole bunch of simple examples for the gather path. I didn't consider this interesting to fix given how narrow the splat of allocas case is.
-
David Green authored
-
Joseph Huber authored
Summary: This patch correctly handles the `--sysroot=` option when passed to the linker wrapper. This allows users to correctly find libraries that may contain offloading code if using this option.
-
William S. Moses authored
LLVM defines several default datalayouts for integer and floating point types that are not being considered when importing into MLIR. This patch remedies this. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D120832
-
Craig Topper authored
This reverts commit ac93f958. Committed by accident.
-
Stephen Long authored
The verify call was taking 50% of the compile time in our internal LLVM fork when trying to unroll many loops. Differential Revision: https://reviews.llvm.org/D113028
-
Craig Topper authored
Instead of emitting 0 > Hi, emit Hi < 0. If Hi needs to be expanded again this will allow the special case for sign bit tests in ExpandIntOp_SETCC to trigger. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D120761
-
Craig Topper authored
This miscompile was introduced in D119527. This was a special pattern for rotate+bswap on RV32. It doesn't work for RV64 since the rotate needs to be half the bitwidth. The equivalent pattern for RV64 is ROTR ((GREV x, 56), 32) so match that instead. This could be generalized further as noted in the new FIXME. Reviewed By: Chenbing.Zheng Differential Revision: https://reviews.llvm.org/D120686
-