- Jul 20, 2023
-
-
Alexey Bataev authored
Need to check for FixedVectorType, not a vector type, since later compiler performs unconditional cast to FixedVectorType and gets the number of elements in this type.
-
Fangrui Song authored
-
Fangrui Song authored
This is primarily used for .rodata.cst* duplicate elimination. The sections are usually much smaller than .debug_str (D154813), so the speedup is negligible. We do this switch for consistency as we want to eliminate xxh64 in lld.
-
Vy Nguyen authored
Detail: LD64 uses the name provided via -[dylib]install_name as "Identifier", when available. For compatiblity, LLD should do that too. Differential Revision: https://reviews.llvm.org/D155508
-
Joseph Huber authored
This patch adds some information that we have support for in the OpenMP clang support page. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D155727
-
Fangrui Song authored
-
Daniel Thornburgh authored
MSAN wrappers can be inserted for e.g. the access to stderr in the constructor of the test, which can segfault if the constructor function runs before these data structures have been initialized. Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D155648
-
Simon Pilgrim authored
Similar to combineVectorSignBitsTruncation, we don't require all-signbits source inputs, just enough signbits to reach into the lowest i16 to safely use PACKSSDW.
-
Momchil Velikov authored
Refactor to use BasicBlockUtils functions and make life easier for a subsequent patch for updating the dominator tree. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D154053
-
Simon Pilgrim authored
-
Jake Egan authored
/scratch/powerllvm/powerllvm_env/aix-ppc64/clang-ppc64-aix/llvm-project/compiler-rt/lib/profile/InstrProfilingPlatformAIX.c:202:40: error: cast from 'const int (*)[0]' to 'void *' drops const qualifier [-Werror,-Wcast-qual] (void *)&dummy_name, (void *)&dummy_vnds}; ^ 1 error generated. -
Mahesh Ravishankar authored
TL;DR the following API functions have been merged ``` void populateFoldUnitExtentDimsViaReshapesPatterns(RewritePatternSet &patterns); void populateFoldUnitExtentDimsViaSlicesPatterns(RewritePatternSet &patterns); ``` into ``` void populateFoldUnitExtentDimsPatterns(RewritePatternSet &patterns, ControlDropUnitDims &options); ``` To use the previous functionality use ``` ControlDropUnitDims options; // By default options.rankReductionStrategy is // ControlDropUnitDims::RankReductionStrategy::ReassociativeReshape. populateFoldUnitExtentDimsPatterns(patterns, options); ``` and ``` ControlDropUnitDims options; options.rankReductionStrategy = ControlDropUnitDims::RankReductionStrategy::ExtractInsertSlice populateFoldUnitExtentDimsPatterns(patterns, options); ``` This pass is quite old and needed to be updated based on the current approach to transformations in Linalg - Instead of two patterns, one to ju... -
Wael Yehia authored
Starting from AIX 7.2 TL5 SP6 and AIX 7.3 TL2 the system linker supports thinLTO. Reviewed By: ZarkoCA, MaskRay Differential Revision: https://reviews.llvm.org/D155700
-
Valentin Clement authored
Allow the init and combiner regions to have more arguments to pass information. Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D155656
-
Craig Topper authored
As requested on D155647.
-
Johannes Doerfert authored
Fixes: https://github.com/llvm/llvm-project/issues/63956
-
Johannes Doerfert authored
-
Johannes Doerfert authored
-
Momchil Velikov authored
Add a more "flexible" `SplitBlockAndInsertIfThenElse` function and re-implement some others on top of it. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D154052
-
Alex Voicu authored
All data structures and values associated with handling virtual functions / inheritance, as well as RTTI, are globals and thus can only reside in the global address space. This was not taken fully taken into account because for most targets, global & generic appear to coincide. However, on targets where global & generic ASes differ (e.g. AMDGPU), this was problematic, since it led to the generation of invalid bitcasts (which would trigger asserts in Debug) and less than optimal code. This patch does two things: ensures that vtables, vptrs, vtts, typeinfo are generated in the right AS, and populated accordingly; removes a bunch of bitcasts which look like left-overs from the typed ptr era. Reviewed By: yxsamliu Differential Revision: https://reviews.llvm.org/D153092
-
Craig Topper authored
This has been ratified according to https://wiki.riscv.org/display/HOME/Recently+Ratified+Extensions Differential Revision: https://reviews.llvm.org/D155668
-
Fangrui Song authored
xxh3 is substantially faster than xxh64. For lld/ELF, there is substantial speedup in `.debug_str` duplicate elimination (D154813). Use xxh3 for lld-macho as well. Reviewed By: #lld-macho, oontvoo Differential Revision: https://reviews.llvm.org/D155677
-
Fangrui Song authored
xxh3 is substantially faster than xxh64. For lld `.debug_str` there is substantial speedup (D154813). @avl reports that it is around 1-2% improvement for different number of input sets and for different threads configuration. Reviewed By: avl Differential Revision: https://reviews.llvm.org/D155675
-
Joseph Huber authored
The indirection here is for some reason causing an unnecessary constructor. If we leave this uninitialized we will get the default constructor which simply zero initliaizes the global. I've checked the output and confirmed that it uses the `zeroinitializer` so this should be safe. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D155720
-
Luke Lau authored
A vmv.v.v shares the same encoding as a vmerge that isn't masked, so we can also fold it into its operands if we treat it as a vmerge with an all-ones mask. We take care here not to actually transform the existing vmv into a vmerge, otherwise things like True.hasOneUse() become inaccurate. Instead this just returns an equivalent list of operands. This is an alternative to D153351. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D155101
-
Luke Lau authored
Currently when folding vmerge into its operands, we stop if the VLs aren't identical. However since the body of (vmerge (vop)) is the intersection of vmerge and vop's bodies, we can use the smaller of the two VLs if we know it ahead of time. This patch relaxes the constraint on VL if they are both constants, or if either of them are VLMAX. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D155071
-
Luke Lau authored
Reviewed By: reames Differential Revision: https://reviews.llvm.org/D155069
-
Razvan Lupusoru authored
A comma is missing which is incorrect if macro is used. Reviewed By: clementval Differential Revision: https://reviews.llvm.org/D155722
-
Simon Pilgrim authored
-
Simon Pilgrim authored
[X86] matchBinaryShuffle - match PACKSS for v2i64 -> v4i32 all-signbits shuffle truncation patterns. Ideally matchShuffleWithPACK should be able to handle this, but it needs a major rewrite to handle illegal types.
-
David Spickett authored
New warning was added in https://reviews.llvm.org/D153911 which caused: https://buildkite.com/llvm-project/libcxx-ci/builds/28407#01896b79-2a5e-4554-ac31-2abec5a8b281 ../../libunwind/src/UnwindLevel1-gcc-ext.c:172:47: error: cast from 'const unsigned int *' to 'unsigned int *' drops const qualifier [-Werror,-Wcast-qual] ex.pr_cache.ehtp = (_Unwind_EHT_Header *) unwindInfo; I don't see any reason there should be a const here in the first place, so just remove it. Reviewed By: #libunwind, michaelplatings, MaskRay Differential Revision: https://reviews.llvm.org/D155685
-
- Jul 19, 2023
-
-
Valentin Clement authored
Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D155655
-
Nikita Popov authored
The definition was dropped in D155585, so drop the declaration as well. Thanks to Roman Divacky for pointing this out!
-
Ingo Müller authored
Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D155602
-
Fangrui Song authored
See D154812 for the speedup. Reviewed By: PiotrZSL Differential Revision: https://reviews.llvm.org/D154813
-
Piotr Fusik authored
https://github.com/llvm/llvm-project/issues/40363 caused the C++20 `str() const &` and `str() &&` to be dllimport'ed despite _LIBCPP_HIDE_FROM_ABI. This is a temporary solution until #40363 is fixed. Reviewed By: #libc, hans, ldionne, Mordante Differential Revision: https://reviews.llvm.org/D155185
-
Maksim Kita authored
Fold strcmp() against 1-char string literals. This designates AggressiveInstCombine as the pass for libcalls simplifications that may need to change the control flow graph. Fixes https://github.com/llvm/llvm-project/issues/58003. Differential Revision: https://reviews.llvm.org/D154725
-
Joseph Huber authored
This patch adds the `rpc_host_call` function as a GPU extension. This is exported from the `libc` project to use the RPC interface to call a function pointer via RPC any copying the arguments by-value. The interface can only support a single void pointer argument much like pthreads. The function call here is the bare-bones version of what's required for OpenMP reverse offloading. Full support will require interfacing with the mapping table, nowait support, etc. I decided to test this interface in `libomptarget` as that will be the primary consumer and it would be more difficult to make a test in `libc` due to the testing infrastructure not really having a concept of the "host" as it runs directly on the GPU as if it were a CPU target. Reviewed By: jplehr Differential Revision: https://reviews.llvm.org/D155003
-
Jakub Kuderski authored
Implement cooperative matrix store for the `SPV_KHR_cooperative_matrix` extension: https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_cooperative_matrix.html. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D155631
-
Jakub Kuderski authored
Implement cooperative matrix load for the `SPV_KHR_cooperative_matrix` extension: https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_cooperative_matrix.html. Also some minor fixes in common code for custom parsing. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D155616
-