- Aug 02, 2022
-
-
Ben Langmuir authored
As progress towards having FileEntryRef contain the requested name of the file, this commit narrows the "remap" hack to only apply to paths that were remapped to an external contents path by a VFS. That was always the original intent of this code, and the fact it was making relative paths absolute was an unintended side effect. Differential Revision: https://reviews.llvm.org/D130935
-
Craig Topper authored
It's possible we have: lui a0, %hi(sym) addi a0, %lo(sym) addi a0, <offset1> lw a0, <offset2>(a0) We want to arrive at lui a0, %hi(sym+offset1+offset2) lw a0, %lo(sym+offset1+offset2) We currently fail to do this because we only consider loads/stores if we didn't find any arithmetic. This patch splits arithmetic folding and load/store folding into two separate phases. The load/store folding can no longer assume the offset in hi/lo is 0 so we must combine the offsets. I've applied the same simm32 limit that we applied in the arithmetic folding. Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D130931
-
Ilia Diachkov authored
The patch replaces SPIRVBaseInfo.* previously created using macros by the tablegen approach. There are many small changes in other files due to differences in namespaces. Also, functions in SPIRVUtils are moved to the llvm namespace. Differential Revision: https://reviews.llvm.org/D130518 Co-authored-by:
Aleksandr Bezzubikov <zuban32s@gmail.com> Co-authored-by:
Michal Paszkowski <michal.paszkowski@outlook.com> Co-authored-by:
Andrey Tretyakov <andrey1.tretyakov@intel.com> Co-authored-by:
Konrad Trifunovic <konrad.trifunovic@intel.com>
-
Alex Brachet authored
-
Alex Brachet authored
This test had to be disabled because ps4 targets don't support -fuse-ld. Preferably, this should just be unsupported for ps4 targets. However no such lit feature exists so I have just gone ahead and set the target explicitly. Moreover, this needs to create a terminal link step, either an executable or shared object to get the link error. With the change to the explicit target I've had to also add -nostartfiles -nostdlib so that clang doesn't pull crt files into the link which may not be present. Again, this would likely be solved if this test was unsupported for the one platform that disables -fuse-ld
-
River Riddle authored
This attribute is technical debt from the early stages of MLIR, before ElementsAttr was an interface and when it was more difficult for dialects to define their own types of attributes. At present it isn't used at all in tree (aside from being convenient for eliding other ElementsAttr), and has had little to no evolution in the past three years. Differential Revision: https://reviews.llvm.org/D129917
-
David Blaikie authored
Fixes #56724
-
Ben Langmuir authored
It's an accident that we started return asbolute paths from FileEntry::getName for all relative paths. Prepare for getName to get (closer to) return the requested path. Note: conceptually it might make sense for the dependency scanner to allow relative paths and have the DependencyConsumer decide if it wants to make them absolute, but we currently document that it's absolute and I didn't want to change behaviour here. Differential Revision: https://reviews.llvm.org/D130934
-
Tue Ly authored
-
Slava Gurevich authored
Fix incorrect null-check logic, likely cause by copy-paste Differential Revision: https://reviews.llvm.org/D130937
-
Alexander Yermolovich authored
We were not handling correclty multiple DW_OP_addrx in the location expression. This was exposed by clang-15 build in release mode with debug information. Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D130812
-
Mehdi Amini authored
We noticed this failing depending on the platform, checking the last few digit isn't necessary for this test anyway.
-
Alex Brachet authored
-
Alex Brachet authored
-
Kirill Okhotnikov authored
-
Jakob Johnson authored
The use of `std::unique_ptr` with `TraceCursor` adds unnecessary complexity to adding `SBTraceCursor` bindings Specifically, since `TraceCursor` is an abstract class there's no clean way to provide "deep clone" semantics for `TraceCursorUP` short of creating a pure virtual `clone()` method (afaict). After discussing with @wallace, we decided there is no strong reason to favor wrapping `TraceCursor` with `std::unique_ptr` over `std::shared_ptr`, thus this diff replaces all usages of `std::unique_ptr<TraceCursor>` with `std::shared_ptr<TraceCursor>`. This sets the stage for future diffs to introduce `SBTraceCursor` bindings in a more clean fashion. Test Plan: Differential Revision: https://reviews.llvm.org/D130925
-
Craig Topper authored
addMachineSSAOptimization is skipped for -O0, but this pass is required for -O0.
-
Kirill Okhotnikov authored
Correct rounding function. Performance ~2x faster than glibc analog. Performance (llvm 12 intel): ``` CORE_MATH_PERF_MODE=rdtsc PERF_ARGS='' ./perf.sh tanhf GNU libc version: 2.31 GNU libc release: stable 13.279 37.492 18.145 CORE_MATH_PERF_MODE=rdtsc PERF_ARGS='--latency' ./perf.sh tanhf GNU libc version: 2.31 GNU libc release: stable 40.658 109.582 66.568 ``` Differential Revision: https://reviews.llvm.org/D130780
-
Alex Brachet authored
-fuse-ld is not available for ps4 targets
-
Joseph Huber authored
Summary: This file is no longer used, get rid of it.
-
Markus Böck authored
GCC and that specific build bot issued warnings turned errors, due to a narrowing conversion from `unsigned` to `int32_t`. Silence these via a static_cast.
-
Vasileios Porpodas authored
2xi64 is the legalized type for wide reductions (like 16xi64) and setting the cost to 2 makes `load-reduce` and `load-zext-reduce` patterns profitable. The few performance measurments that I did on an aarch64 machine confirm that these patterns are actually faster when vectorized. Differential Revision: https://reviews.llvm.org/D130740
-
Alex Brachet authored
This was discussed on https://discourse.llvm.org/t/rfc-generating-lld-reproducers-on-crashes/58071/12 When lld crashes, or errors when -gen-reproducer=error and -fcrash-diagnostics=all clang will re-run lld with --reproduce=$temp_file for easily reproducing the crash/error. Differential Revision: https://reviews.llvm.org/D120175
-
Joseph Huber authored
The runtime makes some use of `std::vector` data structures. We should be able to replace these trivially with `llvm::SmallVector` instead. This should allow us to avoid heap allocations in the majority of cases now. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D130927
-
Craig Topper authored
-
Fangrui Song authored
Follow-up to D130434. Move doSystemDiff to PrintPasses.cpp and call it in MachineFunctionPass.cpp. Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D130833
-
River Riddle authored
This attributes is intended cover the current set of use cases that abuse DenseElementsAttr, e.g. when the data is large. Using resources for large data is one of the major reasons why they were added; e.g. they can be deallocated mid-compilation, they support a wide variety of data origins (e.g, heap allocated, mmap'd, etc.), they can support mutation, etc. I considered at length not having a builtin variant of this, and instead having multiple versions of this attribute for dialects that are interested, but they all boiled down to the exact same attribute definition. Given the generality of this attribute, it feels more aligned to keep it next to DenseArrayAttr (given that DenseArrayAttr covers the "small" case, and DenseResourcesElementsAttr covers the "large" case). The underlying infra used to build this attribute is general, and having a builtin attribute doesn't preclude users from defining their own when it makes sense (they can even share a blob manager with the builtin dialect to avoid data duplication). Differential Revision: https://reviews.llvm.org/D130022
-
River Riddle authored
The DialectResourceBlobManager class provides functionality for managing resource blobs in a generic, dialect-agnostic fashion. In addition to this class, a dialect interface and custom resource handle are provided to simplify referencing and interacting with the manager. These classes intend to simplify the work required for dialects that want to manage resource blobs during compilation, such as for large elements attrs. The old manager for the resource example in the test dialect has been updated to use this, which provides and cleaner and more consistent API. This commit also adds new HeapAsmResourceBlob and ImmortalAsmResourceBlob to simplify creating resource blobs in common scenarios. Differential Revision: https://reviews.llvm.org/D130021
-
Krzysztof Drewniak authored
Attempting to apply the range analysis to real code revealed that trunci wasn't correctly handling the case where truncation would create wider ranges - for example, if we truncate [255, 257] : i16 to i8, the result can be 255, 0, or 1, which isn't a contiguous range of values. The previous implementation would naively map this to [255, 1], which would cause issues with unsigned ranges and unification. Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D130501
-
Vang Thao authored
For VALU write and memory (VM, L/DS, FLAT) instructions, SQ would insert wait-states to avoid data hazard. However when there is a DGEMM instruction in-between them, SQ incorrectly disables the wait-states thus the data hazard needs to be handled with this workaround. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D130677
-
Jakob Johnson authored
D130309 introduced changes to the FileSpec API which broke usages of `GetCString()` in TraceIntelPTBundleSaver.cpp. This diff replaces usages of `GetCString()` with `GetPath().c_str()` as suggested by D130309. Test Plan: Building with the trace plug-in now succeeds Differential Revision: https://reviews.llvm.org/D130924
-
David Goldman authored
Add an optional declarationRange and definitionRange to SymbolDetails. This will allow SourceKit-LSP to implement toggling between goto definition/declaration based on whether the symbol at the cursor is a definition or declaration. Differential Revision: https://reviews.llvm.org/D130041
-
Vasileios Porpodas authored
-
Craig Topper authored
At least based on the lit tests, the coalescer sometimes fails to propagate the copy from X0 into the branch instruction. This patch does it manually during isel. The majority of the changes are from the select patterns. Some of the changes are just register allocation changes. Only the Select change affects the whether a b*z instruction is generated in the tests. I changed the branch pattern for consistency. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D130809
-
Roy Sundahl authored
Differential Revision: https://reviews.llvm.org/D130917
-
Aart Bik authored
Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D130914
-
Zakk Chen authored
In order to make the review easier, I split a lot of tests from https://reviews.llvm.org/D126742 Reviewed By: rogfer01 Differential Revision: https://reviews.llvm.org/D126743
-
Zakk Chen authored
1. Add policy functions support and tests for vadd, vmv, vfmv and all load instructions except segment load. I didn't add all combination of policy functions in test because it seem not to make sense. 2. Rename HasUnMaskedOverloaded to SupportOverloading. 3. vmv.s.x for ta policy could not have overloaded API. 4. This patch does not support all operations, I will have other follow-up patches support all. [RFC] https://github.com/riscv-non-isa/rvv-intrinsic-doc/pull/137 Reviewed By: kito-cheng, fakepaper56, fakepaper56 Differential Revision: https://reviews.llvm.org/D126742
-
Gabriel Ravier authored
I went over the output of the following mess of a command: (ulimit -m 2000000; ulimit -v 2000000; git ls-files -z | parallel --xargs -0 cat | aspell list --mode=none --ignore-case | grep -E '^[A-Za-z][a-z]*$' | sort | uniq -c | sort -n | grep -vE '.{25}' | aspell pipe -W3 | grep : | cut -d' ' -f2 | less) and proceeded to spend a few days looking at it to find probable typos and fixed a few hundred of them in all of the llvm project (note, the ones I found are not anywhere near all of them, but it seems like a good start). Differential Revision: https://reviews.llvm.org/D130827 -
Sylvestre Ledru authored
-