- Jun 16, 2022
-
-
Alex Brachet authored
Fuchsia's dynamic linker does not and will never support IFUNC's. Differential revision: https://reviews.llvm.org/D127933
-
Craig Topper authored
If the merge operand isn't undef we need to be using tail undisturbed. Turns out all of our uses of riscv_slidedown_vl use undef so this doesn't affect any tests.
-
Corentin Jabot authored
LLVM had 2 methods to convert a number to an hexa string, this remove one of them. Differential Revision: https://reviews.llvm.org/D127958
-
Kevin P. Neal authored
-
Philip Reames authored
-
Philip Reames authored
The motivating case, and the only one actually enabled by this patch, is a load or store followed by another op with the same SEW/LMUL ratio. As an example, consider: define void @test1(ptr %in, ptr %out) { entry: %0 = load <8 x i16>, ptr %in, align 2 %1 = sext <8 x i16> %0 to <8 x i32> store <8 x i32> %1, ptr %out, align 4 ret void } Without this patch, we get: vsetivli zero, 8, e16, mf4, ta, mu vle16.v v8, (a0) vsetvli zero, zero, e32, mf2, ta, mu vsext.vf2 v9, v8 vse32.v v9, (a1) ret Whereas with the patch we get: vsetivli zero, 8, e32, mf2, ta, mu vle16.v v8, (a0) vsext.vf2 v9, v8 vse32.v v9, (a1) ret We have rewritten the first vsetvli and thus removed the second one. As is strongly hinted by the code structure and todos, I am planning on communing this with all (or most all?) of the cases from isCompatible used in the forward data flow. This will be done in a series of following changes - some NFC reworks, and some reviewed optimization extensions. Differential Revision: https://reviews.llvm.org/D127780 -
Lei Zhang authored
The previous approach does not work as the Adreno driver is clever at optimizing away the selection. So now check two inputs together. Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D127930
-
David Sherwood authored
-
Samuel Eubanks authored
TurnSwitchRangeIntoICmp crashes when given a switch with a default destination of unreachable Addresses issue #53208 https://github.com/llvm/llvm-project/issues/53208 Differential revision: https://reviews.llvm.org/D127712
-
Florian Hahn authored
Instead of using the underlying instruction and VF to get the type, use the type of the incoming value. This removes an unnecessary dependence on the underlying instruction and enables using the recipe without an underlying instruction.
-
Alexey Bataev authored
Currently scatter vectorize nodes can be emitted only for GEPs with constant indices. But we can also emit such nodes for GEPs with the same ptr and non-constant vectorizable/gathered indices, if profitable. Patch adds support for such nodes and tries to improve handling of GEPs with non-const indeces for such nodes. Metric: SLP.NumVectorInstructions Program SLP.NumVectorInstructions results results0 diff test-suite :: External/SPEC/CFP2017speed/638.imagick_s/638.imagick_s.test 5243.00 5240.00 -0.1% test-suite :: External/SPEC/CFP2017rate/538.imagick_r/538.imagick_r.test 5243.00 5240.00 -0.1% test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 27550.00 27507.00 -0.2% test-suite :: External/SPEC/CFP2006/453.povray/453.povray.test 5395.00 5380.00 -0.3% test-suite :: External/SPEC/CFP2017rate/511.povray_r/511.povray_r.test 5389.00 5374.00 -0.3% test-suite :: External/SPEC/CINT2017rate/520.omnetpp_r/520.omnetpp_r.test 961.00 958.00 -0.3% test-suite :: External/SPEC/CINT2017speed/620.omnetpp_s/620.omnetpp_s.test 961.00 958.00 -0.3% test-suite :: External/SPEC/CFP2006/447.dealII/447.dealII.test 5664.00 5643.00 -0.4% test-suite :: External/SPEC/CFP2017rate/510.parest_r/510.parest_r.test 13202.00 13127.00 -0.6% test-suite :: External/SPEC/CINT2006/445.gobmk/445.gobmk.test 212.00 207.00 -2.4% test-suite :: MultiSource/Benchmarks/7zip/7zip-benchmark.test 890.00 850.00 -4.5% test-suite :: External/SPEC/CINT2006/464.h264ref/464.h264ref.test 1695.00 1581.00 -6.7% test-suite :: MultiSource/Applications/JM/lencod/lencod.test 2338.00 2140.00 -8.5% test-suite :: SingleSource/UnitTests/matrix-types-spec.test 63.00 55.00 -12.7% test-suite :: SingleSource/Benchmarks/Adobe-C++/loop_unroll.test 468.00 356.00 -23.9% Geomean difference -0.3% All numbers show increased number of generated vector instructions. Diff: SingleSource/Benchmarks/Adobe-C++/loop_unroll - better without LTO, but need an extra analysis with LTO (with LTO compiler generates masked_gather, while before regular loads were emitted because of extra data, availbale at LTO time). SingleSource/UnitTests/matrix-types-spec - more vector code. MultiSource/Applications/JM/lencod/lencod - same. External/SPEC/CINT2006/464.h264ref/464.h264ref - same. MultiSource/Benchmarks/7zip/7zip-benchmark - same. External/SPEC/CINT2006/445.gobmk/445.gobmk - no changes. External/SPEC/CFP2017rate/510.parest_r/510.parest_r - more vector code. External/SPEC/CFP2006/447.dealII/447.dealII - same External/SPEC/CINT2017speed/620.omnetpp_s/620.omnetpp_s - same External/SPEC/CINT2017rate/520.omnetpp_r/520.omnetpp - same External/SPEC/CFP2017rate/511.povray_r/511.povray - same External/SPEC/CFP2006/453.povray/453.povray - same External/SPEC/CFP2017rate/526.blender_r/526.blender_r - same External/SPEC/CFP2017rate/538.imagick_r/538.imagick_r - same External/SPEC/CFP2017speed/638.imagick_s/638.imagick_s - same Differential Revision: https://reviews.llvm.org/D127219 -
Nikolas Klauser authored
Reviewed By: ldionne, #libc, EricWF Spies: EricWF, libcxx-commits, mgrang Differential Revision: https://reviews.llvm.org/D127669
-
Matheus Izvekov authored
Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Reviewed By: dyung Differential Revision: https://reviews.llvm.org/D127943
-
Jay Foad authored
-
Dmitry Preobrazhensky authored
Differential Revision: https://reviews.llvm.org/D127847
-
Nikita Popov authored
-
Tobias Ribizel authored
This removes parameter inlay hints from a few builtin functions like std::move/std::forward Reviewed By: nridge Differential Revision: https://reviews.llvm.org/D127859
-
Kristina Bessonova authored
This test was failing with the following error message if to run the test binary directly, w/o using lit: $ Sanitizer-x86_64-Test --gtest_filter=SanitizerCommon.ChainedOriginDepot* ... [ RUN ] SanitizerCommon.ChainedOriginDepotStats compiler-rt/lib/sanitizer_common/tests/sanitizer_chained_origin_depot_test.cpp:77: Failure Expected: (stats1.allocated) > (stats0.allocated), actual: 196608 vs 196608 [ FAILED ] SanitizerCommon.ChainedOriginDepotStats (867 ms) Since the ChainedOriginDepot* tests are not doing any cleanup, by the time SanitizerCommon.ChainedOriginDepotStats test starts executing the depot may not be empty, so there will be no allocation for the test. This patch introduces ChainedOriginDepot::TestOnlyUnmap() API that deallocates memory when requested. This makes sure underlying TwoLevelMap initiates the expected allocation during the test. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D127621
-
David Sherwood authored
These intrinsics return the number of elements in a streaming vector, for example aarch64.sme.cntsw returns the number of 32-bit elements. When in streaming mode these are equivalent to aarch64.sve.cntb/h/w/d with an input value of 1. I have implemented these intrinsics using the rdsvl instruction and added tests here: CodeGen/AArch64/SME/sme-intrinsics-rdsvl.ll Differential Revision: https://reviews.llvm.org/D127853
-
David Stuttard authored
Pre gfx1030 null for sdst is different. c97436f8 [AMDGPU] Use null for dead sdst operand - requires a change to make it not apply to pre gfx1030 Differential Revision: https://reviews.llvm.org/D127869
-
Guillaume Chatelet authored
This reverts commit b2a9ea44.
-
Kito Cheng authored
This reverts commit 7207373e. We found another RISC-V bug when landing D126048, and it has been fixed by D127642 now. Differential Revision: https://reviews.llvm.org/D126048
-
Kito Cheng authored
This reverts commit 6a6f632b. This commit will failed when EXPENSIVE_CHECKS enabled, fixed by D126048. Differential Revision: https://reviews.llvm.org/D126047
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D127672
-
Diana Picus authored
The default has been false for quite a while now. Differential Revision: https://reviews.llvm.org/D127846
-
David Green authored
This reverts commit d9ef307e as it is causeing expensive check verification errors. Remove the test again until we can fix them.
-
Jay Foad authored
Add support for partial stall over EXEC hazard and trans use hazard. Differential Revision: https://reviews.llvm.org/D127872
-
David Green authored
-
Sunho Kim authored
Suppress unused variable error when assertion got disabled. Reviewed By: chapuni Differential Revision: https://reviews.llvm.org/D127940
-
Siva Chandra authored
-
Craig Topper authored
This is needed by our downstream and makes bf16 and f16 have the same set of scalable vector types. Reviewed By: rui.zhang Differential Revision: https://reviews.llvm.org/D127877
-
Siva Chandra authored
This allows sniffing thread start args in a robust fashion.
-
Weining Lu authored
Differential Revision: https://reviews.llvm.org/D127205
-
Dave Lee authored
The fix is to append a newline to the source being evaluated. Without this patch, the following commands **print no output, no errors**. ``` (lldb) script if "foo" in lldb.frame.name: print(lldb.thread) (lldb) script for f in lldb.thread: print(f.name) ``` The issue is with `code.InteractiveConsole.runsource()`. A trailing newline is needed for these expressions to be evaluated. I don't know why this is, the docs don't mention anything. From a python repl, the following samples show that a terminal newline allows statements containing flow control to fully execute. ``` >>> import code >>> repl = code.InteractiveConsole() >>> repl.runsource("if True: print(1)") True >>> repl.runsource("if True: print(1)\n") 1 False ``` Notes: From an interactive python repl, the output is not printed immediately. The user is required to enter a blank line following the first. ``` >>> if True: print(1) ... 1 ``` However, `python -c 'if True: print(1)'` works without needing a newline. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D127586 -
Dave Lee authored
The `frame variable` command supports an implicit `this`/`self`, allowing a user to run `v some_field` instead of `v this->some_field`. However, some languages have non-pointer `this`/`self` types (for example, Swift). This change adds support for non-pointer implicit `this`/`self`. This is done by consulting the type of the instance variable. If the type is known to be non-pointer, the dot operator is used instead of the arrow operator. The C language of families each have a pointer instance type, which makes testing of this difficult. Tests for this feature will be done in the Swift downstream fork, as Swift's `self` is a non-pointer (reference) type. rdar://82095148 Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D127605
-
Mark Browning authored
The useLocalScope printing flag has been passed around between pybind methods, but doesn't actually enable the corresponding printing flag. Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D127907
-
Maksim Panchenko authored
createBasicBlock() will create a label for addBasicBlock(). Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D127928
-
Xiang Li authored
A new tableGen backend gen-dxil-intrinsic-map is added to generate map from llvm intrinsic to DXIL operation. A new file "DXILIntrinsicMap.inc" will be generated when build DirectX target which include the map. The generated map will replace the manually created map when find DXIL operation from llvm intrinsic. Reviewed By: bogner Differential Revision: https://reviews.llvm.org/D125519
-
Colin Cross authored
Similar to D120946, pass LIBCXX_HAS_GCC_S_LIB and LIBCXX_USE_COMPILER_RT through to the custom lib++ builds so that libfuzzer doesn't end up with a .deplibs section that links against those libraries when the variables are set to false. Reviewed By: phosek Differential Revision: https://reviews.llvm.org/D127912
-
Michael Spencer authored
Currently we do not in general merge attributes when importing decls from modules. This patch handles availability, but long term we need to properly handle all attributes. I tried to use Sema::mergeDeclAttributes, but it caused test crashes as I don't think it expects to be called in this context. We really shouldn't have duplicate code for merging attributes long term, but for now this fixes availability. There's already a TODO for this in the declaration of ASTDeclReader::mergeInheritableAttributes. Differential Revision: https://reviews.llvm.org/D127182 rdar://85820301
-