Commit
022439931f5be77efaf80b44d587666b0c9b13b5
by dvyukovsanitizer_common: add deadlock detection to the Mutex2
Copy internal deadlock detector from tsan to sanitizer_common (with some cosmetic changes). Tsan version will be deleted in subsequent changes. This allows us to switch tsan to the sanitizer_common mutex and remove tsan's mutex.
Reviewed By: vitalybuka, melver
Differential Revision: https://reviews.llvm.org/D106546
|
 | compiler-rt/lib/sanitizer_common/sanitizer_mutex.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_mutex.cpp |
Commit
cfed8d0fafac43b45bbbe6248e1c29b17c91de67
by dvyukovtsan: rename test Mutex to UserMutex
Rename Mutex class in tests to avoid conflicts with sanitizer_common Mutex.
Reviewed By: vitalybuka, melver
Differential Revision: https://reviews.llvm.org/D106547
|
 | compiler-rt/lib/tsan/tests/rtl/tsan_mutex.cpp |
 | compiler-rt/lib/tsan/tests/rtl/tsan_test_util.h |
 | compiler-rt/lib/tsan/tests/rtl/tsan_mop.cpp |
 | compiler-rt/lib/tsan/tests/rtl/tsan_test_util_posix.cpp |
 | compiler-rt/lib/tsan/tests/rtl/tsan_bench.cpp |
Commit
3c92eb44d4cbe3f86bc35f79435864bc31f61596
by dvyukovtsan: ignore interceptors in few more places
This is preparation to switching to the sanitizer_common Mutex. Without this change after the switch we will start failing on existing from the runtime with runtime mutexes held. Previously it worked because CheckNoLocks did not see sanitizer_common mutexes.
Depends on D106547.
Reviewed By: vitalybuka, melver
Differential Revision: https://reviews.llvm.org/D106558
|
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp |
 | compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cpp |
Commit
8924d8e37eab76970644eb88f623a75fb901f980
by dvyukovtsan: disable thread safety analysis in more functions
In preparation for replacing tsan Mutex with sanitizer_common Mutex, which has thread-safety annotations. Thread safety analysis does not understand MetaMap::GetAndLock which returns a locked sync object.
Reviewed By: vitalybuka, melver
Differential Revision: https://reviews.llvm.org/D106548
|
 | compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cpp |
 | compiler-rt/lib/tsan/tests/unit/tsan_sync_test.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_sync.cpp |
Commit
0118a649348b4a2079911037c8d1d3ed648ec25e
by dvyukovtsan: switch to the new sanitizer_common mutex
Now that sanitizer_common mutex has feature-parity with tsan mutex, switch tsan to the sanitizer_common mutex and remove tsan's custom mutex.
Reviewed By: vitalybuka, melver
Differential Revision: https://reviews.llvm.org/D106379
|
 | compiler-rt/lib/tsan/rtl/tsan_defs.h |
 | compiler-rt/lib/tsan/rtl/tsan_interface_java.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_mutex.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_sync.h |
 | compiler-rt/lib/tsan/CMakeLists.txt |
 | compiler-rt/lib/tsan/rtl/tsan_interface_ann.cpp |
 | compiler-rt/lib/tsan/go/build.bat |
 | compiler-rt/lib/tsan/rtl/tsan_trace.h |
 | compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp |
 | compiler-rt/lib/sanitizer_common/tests/sanitizer_mutex_test.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_mutex.h |
 | compiler-rt/lib/tsan/go/buildgo.sh |
 | compiler-rt/lib/tsan/rtl/tsan_rtl.cpp |
 | compiler-rt/lib/tsan/tests/unit/tsan_mutex_test.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_dense_alloc.h |
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_mutex.h |
 | compiler-rt/lib/tsan/tests/unit/CMakeLists.txt |
Commit
a7767171cb79da42fb67d394929535e7bb4a6813
by dvyukovtsan: switch atexit mutex to the normal Mutex
Now that Mutex is blocking there is no point in using BlockingMutex. Switch to Mutex.
Depends on D106379.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D106560
|
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp |
Commit
7d4baf25aae5dd3610310d655ae5ec2881fb2d81
by carl.ritson[AMDGPU] Add maximum NSA size limit ISA feature
Add maximum NSA size limit as an ISA feature. Use this to reduce NSA usage on GFX10.1 to avoid stability issues with 4 and 5 dwords NSA instructions. Maintain use of longer NSA instructions on GFX10.3.
Note: this also contains some minor fixes for GlobalISel which did not work correctly with non-NSA form instructions on GFX10.
Reviewed By: foad
Differential Revision: https://reviews.llvm.org/D103348
|
 | llvm/lib/Target/AMDGPU/AMDGPU.td |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.sample.g16.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.sample.a16.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.g16.a16.dim.ll |
 | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.g16.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.dim.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.nsa.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.dim.ll |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.o.dim.ll |
 | llvm/test/CodeGen/AMDGPU/cluster_stores.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.g16.encode.ll |
 | llvm/lib/Target/AMDGPU/GCNSubtarget.h |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.sample.g16.ll |
 | llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.a16.dim.ll |
 | llvm/lib/Target/AMDGPU/SIISelLowering.cpp |
Commit
e7077971f2eb02a1540510a74a55d8ecc02ef903
by llvmgnsyncbot[gn build] Port 0118a649348b
|
 | llvm/utils/gn/secondary/compiler-rt/lib/tsan/BUILD.gn |
Commit
2f15319968ec38314a28570bb978726b288bd7cc
by sebastian.neubauer[AMDGPU] Fix running ResourceUsageAnalysis
Clear the map when running the analysis multiple times. The assertion that should ensure that every function is only analyzed once triggered sometimes (once every ~70 compiles of some graphics pipelines) when two functions of subsequent runs were allocated at the same address.
Differential Revision: https://reviews.llvm.org/D106452
|
 | llvm/lib/Target/AMDGPU/AMDGPUResourceUsageAnalysis.h |
Commit
1c64b5dc5ea8c20a7f2ae436f31030bde0c99db3
by sepavloff[ConstantFolding] Fold constrained arithmetic intrinsics
Constfold constrained variants of operations fadd, fsub, fmul, fdiv, frem, fma and fmuladd.
The change also sets up some means to support for removal of unused constrained intrinsics. They are declared as accessing memory to model interaction with floating point environment, so they were not removed, as they have side effect. Now constrained intrinsics that have "fpexcept.ignore" as exception behavior are removed if they have no uses. As for intrinsics that have exception behavior other than "fpexcept.ignore", they can be removed if it is known that they do not raise floating point exceptions. It happens when doing constant folding, attributes of such intrinsic are changed so that the intrinsic is not claimed as accessing memory.
Differential Revision: https://reviews.llvm.org/D102673
|
 | llvm/lib/Transforms/Utils/Local.cpp |
 | llvm/test/Transforms/InstSimplify/constfold-constrained.ll |
 | llvm/lib/Analysis/ConstantFolding.cpp |
 | llvm/test/Transforms/InstSimplify/fdiv-strictfp.ll |
Commit
06d2fb55ca75250f27f46894a692ae8738ccf6de
by gysit[mlir][Linalg] Fix a missing copy when source of insert_slice is not inplace.
When the source tensor of a tensor.insert_slice is not equivalent to an inplace buffer an extra copy is necessary. This revision adds the missing copy.
Reviewed By: gysit
Differential Revision: https://reviews.llvm.org/D106587
|
 | mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp |
 | mlir/test/Dialect/Linalg/comprehensive-module-bufferize.mlir |
Commit
38986c678285063f0dc1bd5752593bfdbe5068a2
by david.green[AArch64] Add worst case shuffle costs
This adds some missing single source shuffle costs for AArch64, of i16 and i8 vectors. v4i16 are the same as v4i32 with a worse case cost of 3 coming from the perfect shuffle tables. The larger vector sizes expand into a constant pool, plus a load (and adrp) and a tbl. I arbitrarily chose 8 for the cost to be expensive but not too expensive.
Differential Revision: https://reviews.llvm.org/D106241
|
 | llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp |
 | llvm/test/Analysis/CostModel/AArch64/reduce-or.ll |
 | llvm/test/Analysis/CostModel/AArch64/reduce-minmax.ll |
 | llvm/test/Analysis/CostModel/AArch64/reduce-xor.ll |
 | llvm/test/Analysis/CostModel/AArch64/reduce-and.ll |
 | llvm/test/Analysis/CostModel/AArch64/shuffle-other.ll |
 | llvm/test/Analysis/CostModel/AArch64/vector-reduce.ll |
Commit
678601ecb53a237dabe51dacd9bc9e4e75785df7
by koraq[libc++][doc] Update the LWG issues.
Updates the status pages with the LWG issues accepted in the Standard during the June 2021 plenary session. The LWG papers for this meeting have been added in D105103.
Differential Revision: https://reviews.llvm.org/D106529
|
 | libcxx/docs/Status/Cxx2bIssues.csv |
 | libcxx/docs/Status/Cxx2b.rst |
 | libcxx/docs/Status/RangesIssues.csv |
 | libcxx/docs/Status/FormatIssues.csv |
Commit
6c1f65581891265154db4fb789a2d9cf4893b9bf
by ezhulenev[mlir] Async: special handling for parallel loops with zero iterations
Reviewed By: mehdi_amini
Differential Revision: https://reviews.llvm.org/D106590
|
 | mlir/test/Integration/Dialect/Async/CPU/test-async-parallel-for-1d.mlir |
 | mlir/lib/Dialect/Async/Transforms/AsyncParallelFor.cpp |
 | mlir/test/Dialect/Async/async-parallel-for-async-dispatch.mlir |
Commit
8b0cc4a65dd435096bf64651693f5c9c3e2fee3b
by whisperity[clang-tidy] Improve "common type" diagnostic output in 'bugprone-easily-swappable-parameters'
Make the check handle cases of the "common type" involved in the mix being non-trivial, e.g. pointers, references, attributes, these things coming from typedefs, etc.
This results in clearer diagnostics that have more coverage in their explanation, such as saying `const int &` as common type instead of `int`.
Reviewed By: aaron.ballman
Differential Revision: http://reviews.llvm.org/D106442
|
 | clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp |
 | clang-tools-extra/test/clang-tidy/checkers/bugprone-easily-swappable-parameters-qualifiermixing.cpp |
 | clang-tools-extra/test/clang-tidy/checkers/bugprone-easily-swappable-parameters-len2.cpp |
Commit
91bc85b1ebaaa4e61058c24b556d6f0569a9b091
by pengfei.wang[MS] Preserve base register %esi around movs[bwl]
fix for behavior reported in https://bugs.llvm.org/show_bug.cgi?id=51100 workaround for root cause https://bugs.llvm.org/show_bug.cgi?id=16830
similar to https://reviews.llvm.org/D101338
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D106210
|
 | clang/test/CodeGen/ms-intrinsics.c |
 | clang/lib/Headers/intrin.h |
Commit
f7c92995c0e1f95ef5640a0df325e05d12de4658
by pengfei.wang[OpenMP] Fix CUDA plugin build after 3817ba13aea3.
The build was broken on machines that don't have Cuda SDK installed.
See https://reviews.llvm.org/D106627 for the original discussion.
|
 | openmp/libomptarget/plugins/cuda/dynamic_cuda/cuda.cpp |
 | openmp/libomptarget/plugins/cuda/dynamic_cuda/cuda.h |
Commit
6c1d74d5eda2a8e21e1037eb1b2015cb58683a12
by dvyukovsanitizer_common: don't use [[no_unique_address]]
https://lab.llvm.org/buildbot#builders/112/builds/7881 https://lab.llvm.org/buildbot#builders/121/builds/9907 https://lab.llvm.org/buildbot#builders/105/builds/12770 ../../sanitizer_common/sanitizer_mutex.h:288:38: error: 'no_unique_address' attribute directive ignored [-Werror=attributes] [[no_unique_address]] CheckedMutex checked_;
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D106637
|
 | compiler-rt/lib/sanitizer_common/sanitizer_mutex.h |
Commit
c3044a5db7eb0a2a9c31b0d9a4bb031fac2b835e
by dvyukovtsan: fix SANITIZER_DEBUG build
Remove left-over debug field after moving tsan deadlock detector into sanitizer_common.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D106638
|
 | compiler-rt/lib/tsan/rtl/tsan_rtl.h |
Commit
989bedec7a6ae95a0db865f23677047f78dc9257
by sven.vanhaastregt[OpenCL] Add cl_khr_integer_dot_product
Add the builtins defined by Section 42 "Integer dot product" in the OpenCL Extension Specification.
Differential Revision: https://reviews.llvm.org/D106434
|
 | clang/lib/Headers/opencl-c-base.h |
 | clang/test/Headers/opencl-c-header.cl |
 | clang/lib/Headers/opencl-c.h |
 | clang/lib/Sema/OpenCLBuiltins.td |
Commit
fef86a380ae150c1c8453535c34a7f80d2b89926
by Vitaly Buka[hwasan] Fix uninitialized DisableOptimization
|
 | llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp |
Commit
bc536c710150f53b5ae5cd6b7693636e77992d0a
by dawid_jurekRevert "[DSE] Transform memset + malloc --> calloc (PR25892)"
This reverts commit 43234b1595125ba2b5c23e7b28f5a67041c77673.
Reason: We should detect that we are implementing 'calloc' and bail out.
|
 | llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp |
 | llvm/test/Transforms/DeadStoreElimination/noop-stores.ll |
Commit
424fe903d4d4b0f52bd4f86f62587efa6561d251
by dmitry.preobrazhensky[AMDGPU][MC][GFX9][NFC][DOC] Updated AMD GPU assembler syntax description.
Fixed bugs 48639, 49447, 49448, 49449.
|
 | llvm/docs/AMDGPU/gfx9_vdata0.rst |
 | llvm/docs/AMDGPU/gfx9_sdata64_0.rst |
 | llvm/docs/AMDGPU/gfx9_vdst_5.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc_2.rst |
 | llvm/docs/AMDGPU/gfx9_rsrc_buf.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc_4.rst |
 | llvm/docs/AMDGPU/gfx9_vcc_64.rst |
 | llvm/docs/AMDGPU/gfx9_uimm16.rst |
 | llvm/docs/AMDGPU/gfx9_src_4.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc64_3.rst |
 | llvm/docs/AMDGPU/gfx9_srsrc_1.rst |
 | llvm/docs/AMDGPU/gfx9_sdst64_0.rst |
 | llvm/docs/AMDGPU/gfx9_m_1.rst |
 | llvm/docs/AMDGPU/gfx9_src_exp.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc32_0.rst |
 | llvm/docs/AMDGPU/gfx9_vdst_7.rst |
 | llvm/docs/AMDGPU/gfx9_imm16.rst |
 | llvm/docs/AMDGPU/gfx9_data_smem_atomic128.rst |
 | llvm/docs/AMDGPU/gfx9_vaddr_flat_global.rst |
 | llvm/docs/AMDGPU/gfx9_addr_ds.rst |
 | llvm/docs/AMDGPU/gfx9_src_8.rst |
 | llvm/docs/AMDGPU/gfx9_addr_flat.rst |
 | llvm/docs/AMDGPU/gfx9_sdst64_1.rst |
 | llvm/docs/AMDGPU/gfx9_src64_0.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc_6.rst |
 | llvm/docs/AMDGPU/gfx9_dst_mimg_regular.rst |
 | llvm/docs/AMDGPU/gfx9_vaddr_3.rst |
 | llvm/docs/AMDGPU/gfx9_vdst32_0.rst |
 | llvm/docs/AMDGPU/gfx9_vsrc.rst |
 | llvm/docs/AMDGPU/gfx9_msg.rst |
 | llvm/docs/AMDGPU/gfx9_vdata1_1.rst |
 | llvm/docs/AMDGPU/gfx9_saddr.rst |
 | llvm/docs/AMDGPU/gfx9_dst_buf_96.rst |
 | llvm/docs/AMDGPU/gfx9_dst_mimg_regular_d16.rst |
 | llvm/docs/AMDGPU/gfx9_data_mimg_atomic_reg.rst |
 | llvm/docs/AMDGPU/gfx9_vdst_4.rst |
 | llvm/docs/AMDGPU/gfx9_imm16_2.rst |
 | llvm/docs/AMDGPU/gfx9_sbase_1.rst |
 | llvm/docs/AMDGPU/gfx9_dst.rst |
 | llvm/docs/AMDGPU/gfx9_sdst_2.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc32_3.rst |
 | llvm/docs/AMDGPU/gfx9_sdst_1.rst |
 | llvm/docs/AMDGPU/gfx9_sdst_6.rst |
 | llvm/docs/AMDGPU/gfx9_vdata1.rst |
 | llvm/docs/AMDGPU/gfx9_vdata64_0.rst |
 | llvm/docs/AMDGPU/gfx9_vdata96_0.rst |
 | llvm/docs/AMDGPU/gfx9_vdst_1.rst |
 | llvm/docs/AMDGPU/gfx9_dst_flat_atomic32.rst |
 | llvm/docs/AMDGPU/gfx9_simm32_1.rst |
 | llvm/docs/AMDGPU/gfx9_dst_buf_lds.rst |
 | llvm/docs/AMDGPU/gfx9_ret.rst |
 | llvm/docs/AMDGPU/gfx9_data_mimg_store_d16.rst |
 | llvm/docs/AMDGPU/gfx9_vdata_10.rst |
 | llvm/docs/AMDGPU/gfx9_vsrc_3.rst |
 | llvm/docs/AMDGPU/gfx9_vdata.rst |
 | llvm/docs/AMDGPU/gfx9_vdata_6.rst |
 | llvm/docs/AMDGPU/gfx9_vdst96_0.rst |
 | llvm/docs/AMDGPU/gfx9_m.rst |
 | llvm/docs/AMDGPU/gfx9_addr_buf.rst |
 | llvm/docs/AMDGPU/gfx9_sdata_5.rst |
 | llvm/docs/AMDGPU/gfx9_sdst32_0.rst |
 | llvm/docs/AMDGPU/gfx9_vaddr_2.rst |
 | llvm/docs/AMDGPU/gfx9_dst_buf_64.rst |
 | llvm/docs/AMDGPU/gfx9_data_mimg_store.rst |
 | llvm/docs/AMDGPU/gfx9_offset_buf.rst |
 | llvm/docs/AMDGPU/AMDGPUAsmGFX9.rst |
 | llvm/docs/AMDGPU/gfx9_vdata_1.rst |
 | llvm/docs/AMDGPU/gfx9_vdst.rst |
 | llvm/docs/AMDGPU/gfx9_vdst_9.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc32_4.rst |
 | llvm/docs/AMDGPU/gfx9_fimm32.rst |
 | llvm/docs/AMDGPU/gfx9_src64_1.rst |
 | llvm/docs/AMDGPU/gfx9_vsrc_1.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc_8.rst |
 | llvm/docs/AMDGPU/gfx9_vdata_3.rst |
 | llvm/docs/AMDGPU/gfx9_param.rst |
 | llvm/docs/AMDGPU/gfx9_vdata_4.rst |
 | llvm/docs/AMDGPU/gfx9_src_3.rst |
 | llvm/docs/AMDGPU/gfx9_fimm16.rst |
 | llvm/docs/AMDGPU/gfx9_samp_mimg.rst |
 | llvm/docs/AMDGPU/gfx9_opt.rst |
 | llvm/docs/AMDGPU/gfx9_bimm16.rst |
 | llvm/docs/AMDGPU/gfx9_vdst_6.rst |
 | llvm/docs/AMDGPU/gfx9_vdata_9.rst |
 | llvm/docs/AMDGPU/gfx9_simm32_2.rst |
 | llvm/docs/AMDGPU/gfx9_perm_smem.rst |
 | llvm/docs/AMDGPU/gfx9_imask.rst |
 | llvm/docs/AMDGPU/gfx9_type_dev.rst |
 | llvm/docs/AMDGPU/gfx9_data_buf_atomic32.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc64_1.rst |
 | llvm/docs/AMDGPU/gfx9_src.rst |
 | llvm/docs/AMDGPU/gfx9_data_smem_atomic32.rst |
 | llvm/docs/AMDGPU/gfx9_vdata0_1.rst |
 | llvm/docs/AMDGPU/gfx9_soffset_1.rst |
 | llvm/docs/AMDGPU/gfx9_saddr_flat_scratch.rst |
 | llvm/docs/AMDGPU/gfx9_base_smem_buf.rst |
 | llvm/docs/AMDGPU/gfx9_vsrc32_1.rst |
 | llvm/docs/AMDGPU/gfx9_src32_5.rst |
 | llvm/docs/AMDGPU/gfx9_src32_7.rst |
 | llvm/docs/AMDGPU/gfx9_sdata_4.rst |
 | llvm/docs/AMDGPU/gfx9_offset_smem_plain.rst |
 | llvm/docs/AMDGPU/gfx9_vaddr_4.rst |
 | llvm/docs/AMDGPU/gfx9_src_2.rst |
 | llvm/docs/AMDGPU/gfx9_vdst128_0.rst |
 | llvm/docs/AMDGPU/gfx9_vsrc64_0.rst |
 | llvm/docs/AMDGPU/gfx9_mod_dpp_sdwa_abs_neg.rst |
 | llvm/docs/AMDGPU/gfx9_src32_1.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc32_2.rst |
 | llvm/docs/AMDGPU/gfx9_sdst_3.rst |
 | llvm/docs/AMDGPU/gfx9_sdst32_2.rst |
 | llvm/docs/AMDGPU/gfx9_sdst_4.rst |
 | llvm/docs/AMDGPU/gfx9_ssamp.rst |
 | llvm/docs/AMDGPU/gfx9_src_7.rst |
 | llvm/docs/AMDGPU/gfx9_sdst128_0.rst |
 | llvm/docs/AMDGPU/gfx9_vsrc_2.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc_1.rst |
 | llvm/docs/AMDGPU/gfx9_sdst512_0.rst |
 | llvm/docs/AMDGPU/gfx9_vdst_3.rst |
 | llvm/docs/AMDGPU/gfx9_srsrc.rst |
 | llvm/docs/AMDGPU/gfx9_dst_buf_32.rst |
 | llvm/docs/AMDGPU/gfx9_sdst_7.rst |
 | llvm/docs/AMDGPU/gfx9_waitcnt.rst |
 | llvm/docs/AMDGPU/gfx9_mod_sdwa_sext.rst |
 | llvm/docs/AMDGPU/gfx9_base_smem_addr.rst |
 | llvm/docs/AMDGPU/gfx9_src32_3.rst |
 | llvm/docs/AMDGPU/gfx9_src_5.rst |
 | llvm/docs/AMDGPU/gfx9_sdata_2.rst |
 | llvm/docs/AMDGPU/gfx9_probe.rst |
 | llvm/docs/AMDGPU/gfx9_src32_6.rst |
 | llvm/docs/AMDGPU/gfx9_vsrc32_0.rst |
 | llvm/docs/AMDGPU/gfx9_saddr_1.rst |
 | llvm/docs/AMDGPU/gfx9_data_mimg_atomic_cmp.rst |
 | llvm/docs/AMDGPU/gfx9_dst_flat_atomic64.rst |
 | llvm/docs/AMDGPU/gfx9_vdata_2.rst |
 | llvm/docs/AMDGPU/gfx9_label.rst |
 | llvm/docs/AMDGPU/gfx9_vaddr.rst |
 | llvm/docs/AMDGPU/gfx9_vdst_13.rst |
 | llvm/docs/AMDGPU/gfx9_offset_smem_buf.rst |
 | llvm/docs/AMDGPU/gfx9_vdst64_0.rst |
 | llvm/docs/AMDGPU/gfx9_sbase_2.rst |
 | llvm/docs/AMDGPU/gfx9_src32_2.rst |
 | llvm/docs/AMDGPU/gfx9_soffset_2.rst |
 | llvm/docs/AMDGPU/gfx9_simm32.rst |
 | llvm/docs/AMDGPU/gfx9_rsrc_mimg.rst |
 | llvm/docs/AMDGPU/gfx9_vdata_8.rst |
 | llvm/docs/AMDGPU/gfx9_vsrc128_0.rst |
 | llvm/docs/AMDGPU/gfx9_mod_vop3_abs_neg.rst |
 | llvm/docs/AMDGPU/gfx9_dst_mimg_gather4.rst |
 | llvm/docs/AMDGPU/gfx9_src_9.rst |
 | llvm/docs/AMDGPU/gfx9_soffset.rst |
 | llvm/docs/AMDGPU/gfx9_src32_0.rst |
 | llvm/docs/AMDGPU/gfx9_attr.rst |
 | llvm/docs/AMDGPU/gfx9_tgt.rst |
 | llvm/docs/AMDGPU/gfx9_src_6.rst |
 | llvm/docs/AMDGPU/gfx9_vdata128_0.rst |
 | llvm/docs/AMDGPU/gfx9_saddr_flat_global.rst |
 | llvm/docs/AMDGPU/gfx9_sdata_1.rst |
 | llvm/docs/AMDGPU/gfx9_bimm32.rst |
 | llvm/docs/AMDGPU/gfx9_sdata128_0.rst |
 | llvm/docs/AMDGPU/gfx9_vdata_5.rst |
 | llvm/docs/AMDGPU/gfx9_sdata.rst |
 | llvm/docs/AMDGPU/gfx9_data_buf_atomic64.rst |
 | llvm/docs/AMDGPU/gfx9_imm16_1.rst |
 | llvm/docs/AMDGPU/gfx9_sdst256_0.rst |
 | llvm/docs/AMDGPU/gfx9_src32_4.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc32_1.rst |
 | llvm/docs/AMDGPU/gfx9_sdata32_0.rst |
 | llvm/docs/AMDGPU/gfx9_vcc.rst |
 | llvm/docs/AMDGPU/gfx9_src_1.rst |
 | llvm/docs/AMDGPU/gfx9_vdata_7.rst |
 | llvm/docs/AMDGPU/gfx9_sdst.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc64_0.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc_7.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc64_2.rst |
 | llvm/docs/AMDGPU/gfx9_vdst_8.rst |
 | llvm/docs/AMDGPU/gfx9_type_deviation.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc_5.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc.rst |
 | llvm/docs/AMDGPU/gfx9_data_smem_atomic64.rst |
 | llvm/docs/AMDGPU/gfx9_addr_mimg.rst |
 | llvm/docs/AMDGPU/gfx9_vdst_2.rst |
 | llvm/docs/AMDGPU/gfx9_sdst_5.rst |
 | llvm/docs/AMDGPU/gfx9_vdst_12.rst |
 | llvm/docs/AMDGPU/gfx9_simm16.rst |
 | llvm/docs/AMDGPU/gfx9_hwreg.rst |
 | llvm/docs/AMDGPU/gfx9_vdst_11.rst |
 | llvm/docs/AMDGPU/gfx9_ssrc_3.rst |
 | llvm/docs/AMDGPU/gfx9_base_smem_scratch.rst |
 | llvm/docs/AMDGPU/gfx9_sbase.rst |
 | llvm/docs/AMDGPU/gfx9_vdst_10.rst |
 | llvm/docs/AMDGPU/gfx9_dst_buf_128.rst |
 | llvm/docs/AMDGPU/gfx9_sdst32_1.rst |
 | llvm/docs/AMDGPU/gfx9_vaddr_flat_scratch.rst |
 | llvm/docs/AMDGPU/gfx9_src_10.rst |
 | llvm/docs/AMDGPU/gfx9_vaddr_1.rst |
 | llvm/docs/AMDGPU/gfx9_vaddr_5.rst |
 | llvm/docs/AMDGPU/gfx9_data_buf_atomic128.rst |
 | llvm/docs/AMDGPU/gfx9_sdata_3.rst |
 | llvm/docs/AMDGPU/gfx9_vdata32_0.rst |
Commit
80e0bd149661e6e1735b453e44a5bd00545a9e59
by Dylan.Fleming[SVE][IR] Fix Binary op matching in PatternMatch::m_VScale
Reviewed By: sdesmalen
Differential Revision: https://reviews.llvm.org/D105978
|
 | llvm/unittests/IR/PatternMatch.cpp |
 | llvm/include/llvm/IR/PatternMatch.h |
Commit
fb978f092c9c1eff56906c65123944140c89f9cd
by akuegel[mlir][Complex]: Add lowerings for AddOp and SubOp from Complex dialect to Standard.
Differential Revision: https://reviews.llvm.org/D106429
|
 | mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir |
 | mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp |
Commit
5c63bf3abdc74b02c58c21cb0571eb4ba12b5235
by anastasia.stulova[OpenCL] Add NULL to standards prior to v2.0.
NULL was undefined in OpenCL prior to version 2.0. However, the language specification states that "macro names defined by the C99 specification but not currently supported by OpenCL are reserved for future use". Therefore, application developers cannot redefine NULL.
The change is supposed to resolve inconsistency between language versions. Currently there is no apparent reason why NULL should be kept undefined.
Patch by Topotuna (Justas Janickas)!
Differential Revision: https://reviews.llvm.org/D105988
|
 | clang/test/SemaOpenCL/null_literal.cl |
 | clang/lib/Headers/opencl-c-base.h |
Commit
b63833ac1fd225a538f1436824a14f401a7d8771
by lebedev.ri[NFC][SimplifyCFG] Add test for `SpeculativelyExecuteBB()` with prof md
|
 | llvm/test/Transforms/SimplifyCFG/speculatively-execute-block-profmd.ll |
Commit
71d0fd356467e263e28b7d55d83c0871da536961
by llvm-dev[X86][AVX] lowerV2X128Shuffle - attempt to recognise broadcastf128 subvector load
As noticed on PR50053 we were failing to recognise when a shuffle of a load was really a subvector broadcast load
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/avx-vperm2x128.ll |
Commit
24ffb98f9dbd489b05e1b5b36f3c0cd744dc798b
by gchatelet[libc] optimize bzero/memset for x86
This is simpy using the x86 optimized elements when targetting x86 cpus.
Differential Revision: https://reviews.llvm.org/D106551
|
 | libc/src/string/memory_utils/memset_utils.h |
Commit
44fa31fa6da0c573ed972ec1d932c4ca3fb52f8f
by gabor.marton[Analyzer][solver] Fix inconsistent equivalence class data
https://bugs.llvm.org/show_bug.cgi?id=51109
When we merged two classes, `*this` became an obsolete representation of the new `State`. This is b/c the member relations had changed during the previous merge of another member of the same class in a way that `*this` had no longer any members. (`mergeImpl` might keep the member relations to `Other` and could dissolve `*this`.)
Differential Revision: https://reviews.llvm.org/D106285
|
 | clang/test/Analysis/solver-sym-simplification-no-crash2.c |
 | clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp |
Commit
0e64a525c12a0822683d3bdc51b6294b5265f860
by aaron.puchertThread safety analysis: Mock getter for private mutexes can be undefined
Usage in an annotation is no odr-use, so I think there needs to be no definition. Upside is that in practice one will get linker errors if it is actually odr-used instead of calling a function that returns 0.
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D106375
|
 | clang/docs/ThreadSafetyAnalysis.rst |
Commit
f97de4cb0be43730bd91b800fa7f5418364ba3fd
by georgakoudis1[OpenMPOpt] Move dedup runtime calls after init for target regions
Deduplication in OpenMPOpt finds redundant OpenMP runtime calls and replaces them with a single call placed in the earliest safe location in the IR. When deduplication happens in a target region this patch makes sure replacement calls are put after target_init.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D106556
|
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
 | llvm/test/Transforms/OpenMP/deduplication_target.ll |
Commit
1528a4d40022925dcc3e8cb6b8af7dd109ad7075
by david.truby[llvm][sve] Lowering for VLS truncating stores
This adds custom lowering for truncating stores when operating on fixed length vectors in SVE. It also includes a DAG combine to fold extends followed by truncating stores into non-truncating stores in order to prevent this pattern appearing once truncating stores are supported.
Currently truncating stores are not used in certain cases where the size of the vector is larger than the target vector width.
Differential Revision: https://reviews.llvm.org/D104471
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
 | llvm/test/CodeGen/AArch64/sve-fixed-length-trunc-stores.ll |
 | llvm/test/CodeGen/Mips/cconv/byval.ll |
 | llvm/lib/Target/AMDGPU/R600ISelLowering.h |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/test/CodeGen/Mips/cconv/vector.ll |
 | llvm/test/CodeGen/AArch64/sve-fixed-length-masked-gather.ll |
 | llvm/include/llvm/CodeGen/TargetLowering.h |
 | llvm/test/CodeGen/Mips/llvm-ir/store.ll |
Commit
a0987e350ccce4fb9c3cbaf56732be1def5f810f
by kbobyrev[clangd] Improve performance of dex by 45-60%
Take full advantage of AND's iterator children size estimation: use early reset in sync() and prevent large overhead. The idea is that the children at the beginning of the list are smaller and cheaper to advance. Very large children negate the effect of this performance optimisation and hence should be advanced only when absolutely necessary. By reducing the number of large iterators' updates, we increase the performance by a large margin.
This change was tested on a comprehensive query dataset. The performance boost increases with the average length of the query, on small queries it is close to 45% but the longer they go the closer it gets to 60% and beyond.
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D106528
|
 | clang-tools-extra/clangd/index/dex/Iterator.cpp |
Commit
253b8145dedbe8d10792f44b4af7f52dbecd527f
by sam.mccall[clangd] Avoid range-loop init-list lifetime subtleties.
The original code appears to be OK per the spec, but we've had 3 reports of crashes with certain unofficial builds of clangd that look a lot like old compilers (GCC 5.4?) getting lifetime rules wrong.
Fixes https://github.com/clangd/clangd/issues/800
Differential Revision: https://reviews.llvm.org/D106654
|
 | clang-tools-extra/clangd/GlobalCompilationDatabase.cpp |
Commit
028eb436546a75a434931f9bbbb073b353920a74
by spatel[x86] add tests for add X, (cmov constants); NFC
|
 | llvm/test/CodeGen/X86/add-cmov.ll |
Commit
f060aa1cf3f42ca967c3f63e18381d3579bb12d9
by spatel[x86] improve CMOV codegen by pushing add into operands
This is not the transform direction we want in general, but by the time we have a CMOV, we've already tried everything else that could be better. The transform increases the uses of the other add operand, but that is safe according to Alive2: https://alive2.llvm.org/ce/z/Yn6p-A
We could probably extend this to other binops (not just add). This is the motivating pattern discussed in: https://llvm.org/PR51069
The test with i8 shows a missed fold because there's a trunc sitting in front of the add. That can be handled with a small follow-up.
Differential Revision: https://reviews.llvm.org/D106607
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/add-cmov.ll |
Commit
af5602d369a5cfb4d77c6dd2fe1d0834de87ac76
by hubert.reinterpretcast[ORC] Work around AIX build compiler: Replace lambda; NFC
By replacing a lambda expression with a functor class instance, this patch works around an issue encountered on AIX where the IBM XL compiler appears to make no progress for many hours.
Reviewed By: jsji
Differential Revision: https://reviews.llvm.org/D106554
|
 | llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp |
Commit
9a977daaf6b19c6ff7a53afbe8ece2cb7011dd9e
by Yaxun.LiuFix __hip_fabin visibility
In -fgpu-rdc case, fat binary is embedded as global variable __hip_fatbin. It needs to have protected visibility to avoid conflict between shared libraries.
Reviewed by: Siu Chi Chan
Differential Revision: https://reviews.llvm.org/D106571
Fixes: SWDEV-292290
|
 | clang/lib/Driver/ToolChains/HIP.cpp |
 | clang/test/Driver/hip-toolchain-rdc.hip |
Commit
dd70cd089a73bec5a8ec411ae307d65516ad70bc
by benny.kra[llvm][sve] Silence unused variable warning in Release builds. NFC
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
Commit
44dbbe61060acac4d0991a15decac4c909e26844
by Yaxun.Liu[HIP] Preserve ASAN bitcode library functions
Address sanitizer passes may generate call of ASAN bitcode library functions after bitcode linking in lld, therefore lld cannot add those symbols since it does not know they will be used later.
To solve this issue, clang emits a reference to a bicode library function which calls all ASAN functions which need to be preserved. This basically force all ASAN functions to be linked in.
Reviewed by: Artem Belevich
Differential Revision: https://reviews.llvm.org/D106315
|
 | clang/lib/CodeGen/CodeGenModule.cpp |
 | clang/lib/Driver/Driver.cpp |
 | clang/test/Driver/hip-sanitize-options.hip |
 | clang/test/CodeGenCUDA/amdgpu-asan.cu |
Commit
687181cabaf9c8beea32ea8346a5bdd6d6172171
by thakis[lld/mac] Add missing REQUIRES line to new test
|
 | lld/test/MachO/lto-archivecollision.ll |
Commit
1722109208d57dfb05d0b9fa7ee536107f8da959
by kazu[ARM] Remove getHWDivName (NFC)
This function seems to be unused for at least 5 years.
|
 | llvm/include/llvm/Support/ARMTargetParser.h |
 | llvm/lib/Support/ARMTargetParser.cpp |
Commit
f86570cd52419562b4c528c6e8a05ced00450c16
by Louis Dionne[libc++] Avoid triggering warnings for implicit conversion
This started as fixing a typo in a ADDITIONAL_COMPILE_FLAGS directive which turned out to uncover a few places where we warned about signedness changes.
As a fly-by fix, this updates the various __advance overloads for style consistency.
Differential Revision: https://reviews.llvm.org/D106372
|
 | libcxx/include/__functional/hash.h |
 | libcxx/include/tuple |
 | libcxx/test/std/iterators/iterator.primitives/iterator.operations/advance.pass.cpp |
 | libcxx/include/__iterator/advance.h |
Commit
d2a6ec8eae75b60081e081eeb37022839f4f2d04
by kadircet[clangd] Use CommandMangler in TestTU
This makes testing setup look closer to production.
Differential Revision: https://reviews.llvm.org/D106535
|
 | clang/lib/Frontend/CreateInvocationFromCommandLine.cpp |
 | clang-tools-extra/clangd/unittests/TestTU.cpp |
Commit
1c0d0085bcaaf27cc8d9492eb3c5c05058e54b8e
by kadircet[clangd] Get rid of arg adjusters in CommandMangler
Differential Revision: https://reviews.llvm.org/D106562
|
 | clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp |
 | clang-tools-extra/clangd/CompileCommands.cpp |
 | clang-tools-extra/clangd/CompileCommands.h |
 | clang-tools-extra/clangd/unittests/CompilerTests.cpp |
 | clang-tools-extra/clangd/Compiler.cpp |
Commit
7cc8a8e3849dc4044cc799e2c1f6cc241b851b70
by kadircet[clangd] Canonicalize compile flags before applying edits
Pushes input for the compile action to the end while separating with a `--` before applying other manglings. This ensures edits that effect only the arguments that come after them works, like changing parse language via -x.
Fixes https://github.com/clangd/clangd/issues/555.
Differential Revision: https://reviews.llvm.org/D106527
|
 | clang-tools-extra/clangd/CompileCommands.cpp |
 | clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp |
 | clang-tools-extra/clangd/test/did-change-configuration-params.test |
 | clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp |
Commit
ba5dd945ad9124f24452987be64040a6ea6cd25e
by kadircet[clangd] Adjust compile flags to contain only the requested file as input
Depends on D106527.
Differential Revision: https://reviews.llvm.org/D106639
|
 | clang-tools-extra/clangd/GlobalCompilationDatabase.cpp |
 | clang-tools-extra/clangd/test/did-change-configuration-params.test |
 | clang-tools-extra/clangd/CompileCommands.cpp |
 | clang-tools-extra/clangd/CompileCommands.h |
 | clang-tools-extra/clangd/unittests/TestTU.cpp |
 | clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp |
Commit
2c508cf583f89f811d507b5cab2e869c11a0c0f1
by thakis[lld/mac] Don't crash on absolute symbols in order files
Absolute symbols have a nullptr isec. buildInputSectionPriorities() would defer isec, causing crashes. Ordering absolute symbols doesn't make sense, so just ignore them. This seems to match ld64.
Differential Revision: https://reviews.llvm.org/D106628
|
 | lld/MachO/Writer.cpp |
 | lld/test/MachO/order-file.s |
Commit
31677c6481a5ceac1eec10c8e9fbe6694bf551ba
by i[llvm-symbolizer] Remove one-dash long options
Most modern tools only accept two-dash long options. Remove one-dash long options which are not recognized by GNU style `getopt_long`. This ensures long options cannot collide with grouped short options.
Note: llvm-symbolizer has `-demangle={true,false}` for pprof compatibility (for a while). They are kept.
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D106377
|
 | llvm/test/tools/llvm-symbolizer/pdb/missing_pdb.test |
 | llvm/test/tools/llvm-symbolizer/pdb/pdb-columns.test |
 | llvm/tools/llvm-symbolizer/Opts.td |
Commit
73a9d6d0e200d7553f925ca0f4caae86dc2b2f67
by thomasraoux[mlir][linalg] Fix bug in contraction op vectorization with output perm
When the output indexing map has a permutation we need to consider in the contraction vector type.
Differential Revision: https://reviews.llvm.org/D106469
|
 | mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp |
 | mlir/test/Dialect/Linalg/vectorization.mlir |
 | mlir/include/mlir/IR/AffineMap.h |
 | mlir/lib/Dialect/Vector/VectorTransforms.cpp |
Commit
9482aa98e5514f8d399bc5a16d0ff33a7f746e9d
by thakis[lld/mac] Let OutputSegment store its start address
segment$start$/segment$end$ symbols allow creating segments without sections, so getting the segment address off the first section won't work there. Storing the address on the segment is arguably a bit simpler too.
No behavior change, part of PR50760.
Differential Revision: https://reviews.llvm.org/D106665
|
 | lld/MachO/Writer.cpp |
 | lld/MachO/SyntheticSections.cpp |
 | lld/MachO/OutputSegment.h |
 | lld/MachO/OutputSection.cpp |
Commit
0ad562b48bfd7a487eb38ceaa309cdd9a1ad87e7
by luxufan[JITLink][RISCV] Initial Support RISCV64 in JITLink
This patch is the initial support, it implements translation from object file to JIT link graph, and very few relocations were supported. Currently, the test file ELF_pc_indirect.s is passed, the HelloWorld program(compiled with mno-relax flag) can be linked correctly and run on instruction emulator correctly.
In the downstream implementation, I have implemented the GOT, PLT function, and EHFrame and some optimization will be implement soon. I will organize the code in to patches, then gradually send it to upstream.
Differential Revision: https://reviews.llvm.org/D105429
|
 | llvm/lib/ExecutionEngine/JITLink/CMakeLists.txt |
 | llvm/lib/ExecutionEngine/JITLink/ELF.cpp |
 | llvm/include/llvm/ExecutionEngine/JITLink/ELF_riscv.h |
 | llvm/include/llvm/ExecutionEngine/JITLink/riscv.h |
 | llvm/lib/ExecutionEngine/JITLink/ELF_riscv.cpp |
 | llvm/test/ExecutionEngine/JITLink/RISCV/ELF_pc_indirect.s |
Commit
8eac5dcb36ddbb66dff467eda3fc0eee31d73631
by jezng[lld-macho] Reorganize + extend ICF test
I found icf.s a bit hard to work with as it was not possible to extend any of the functions `_a` ... `_k` to test new relocation / referent types without modifying every single one of them. Additionally, their one-letter names were not descriptive (though the comments helped).
I've renamed all the functions to reflect the feature they are testing, and shrunk them so that they contain just enough to test that one feature.
I've also added tests for non-zero addends (via the `_abs1a_ref_with_addend` and `_defined_ref_with_addend_1` functions).
Reviewed By: #lld-macho, gkm
Differential Revision: https://reviews.llvm.org/D106211
|
 | lld/test/MachO/icf.s |
Commit
3313b84481f3caa36cee3071d1379f8b9a028715
by jezng[lld-macho] ICF: Do more work in equalsConstant, less in equalsVariable
In particular, relocations to absolute symbols or literal sections can be handled in equalsConstant(), since their output addresses will not change across each iteration of ICF. Offsets and addends can also be dealt with entirely in equalsConstant(), making the code somewhat easier to reason about. Only ConcatInputSections need to be handled in equalsVariable().
LLD-ELF's implementation takes a similar approach.
Although this should make ICF do less work, in practice it seems like there is no stat sig difference in time taken when linking chromium_framework.
This refactor is motivated by an upcoming diff which improves ICF's handling of addends.
Reviewed By: #lld-macho, gkm
Differential Revision: https://reviews.llvm.org/D106212
|
 | lld/MachO/ICF.cpp |
Commit
cafed6f2923c63410450e80fc8cf1bbc8b63d708
by jezng[lld-macho][nfc] Fix test to reflect that symbol attributes don't matter within an archive
We had a comment that claimed that defined symbols had priority over common symbols if they occurred in the same archive. In fact, they appear to have equal precedence. Our implementation already does this, so I'm just updating the test comment. Also added a few other test comments along the way for readability.
Reviewed By: #lld-macho, thakis
Differential Revision: https://reviews.llvm.org/D106595
|
 | lld/test/MachO/common-symbol-resolution.s |
 | lld/test/MachO/weak-definition-direct-fetch.s |
Commit
d9a639901f8940a979cae6c501c21890e5da07cd
by jezng[lld-macho][nfc] Add test for resolution of bitcode symbols
We lacked a test for bitcode symbol precedence. We assumed that they followed the same rules as their regular symbol counterparts, but never had a test to verify that we were matching ld64's behavior. It turns out that we were largely correct, though we deviate from ld64 when there are bitcode and non-bitcode symbols of the same name. The test added in this diff both verifies our behavior and documents the differences.
Reviewed By: #lld-macho, thakis
Differential Revision: https://reviews.llvm.org/D106596
|
 | lld/test/MachO/lto-symbol-resolution.ll |
Commit
c7c70f20a16e91e616be216ae2f3fd2586c1d30e
by luxufan[JITLink] Add riscv.cpp
|
 | llvm/lib/ExecutionEngine/JITLink/riscv.cpp |
Commit
04e21fbc44c145d5599ef8db9aaf66b159107f33
by kadircetRevert "[clangd] Adjust compile flags to contain only the requested file as input"
This reverts commit ba5dd945ad9124f24452987be64040a6ea6cd25e.
|
 | clang-tools-extra/clangd/GlobalCompilationDatabase.cpp |
 | clang-tools-extra/clangd/test/did-change-configuration-params.test |
 | clang-tools-extra/clangd/CompileCommands.cpp |
 | clang-tools-extra/clangd/unittests/TestTU.cpp |
 | clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp |
 | clang-tools-extra/clangd/CompileCommands.h |
Commit
cc6d302c91baad2ecf3c9a75ce68d552df0a42b7
by craig.topper[X86] Fix a bug in TEST with immediate creation
This code tries to form a TEST from CMP+AND with an optional truncate in between. If we looked through the truncate, we may have extra bits in the AND mask that shouldn't participate in the checks. Normally SimplifyDemendedBits takes care of this, but the AND may have another user. So manually mask out any extra bits.
Fixes PR51175.
Differential Revision: https://reviews.llvm.org/D106634
|
 | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp |
 | llvm/test/CodeGen/X86/pr51175.ll |
Commit
fa7a9ef1784eca70bc6653bcda6e9a02e0f900bb
by caitlyncano[libc] Add option to run specific tests
This addition reads command line input to run specific single tests within a larger call to run all the tests for a particular function. When the user adds a second argument to the command line, the code skips all the tests that don't match the user's specified binary. If the user doesn't specify a test correctly and/or no tests are run, a failure message prints.
Reviewed By: sivachandra, aeubanks
Differential Revision: https://reviews.llvm.org/D105843
|
 | libc/utils/UnitTest/LibcTest.h |
 | libc/utils/UnitTest/LibcTest.cpp |
 | libc/cmake/modules/LLVMLibCTestRules.cmake |
 | libc/utils/UnitTest/CMakeLists.txt |
 | libc/test/utils/UnitTest/CMakeLists.txt |
 | libc/utils/UnitTest/LibcTestMain.cpp |
 | libc/test/utils/UnitTest/testfilter_test.cpp |
 | libc/test/utils/CMakeLists.txt |
Commit
e5d8b93e5a25072ec27260e162f5a036a2c32dc2
by zoecarver[libcxx][ranges] Add `ranges::common_view`.
Differential Revision: https://reviews.llvm.org/D105753
|
 | libcxx/test/std/ranges/range.adaptors/range.common.view/borrowing.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/ctor.default.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/size.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/ctad.compile.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/ctor.view.pass.cpp |
 | libcxx/test/libcxx/diagnostics/detail.headers/ranges/common_view.module.verify.cpp |
 | libcxx/docs/Status/RangesPaper.csv |
 | libcxx/include/CMakeLists.txt |
 | libcxx/test/support/test_iterators.h |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/base.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/end.pass.cpp |
 | libcxx/include/ranges |
 | libcxx/include/__ranges/common_view.h |
 | libcxx/include/module.modulemap |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/begin.pass.cpp |
Commit
1e4ba7eba607623cd12cddd459258ffcad15ee1b
by zoecarver[libcxx][nfc] Global `constexpr friend` -> `friend constexpr`.
|
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/begin.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.transform/types.h |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_sentinel.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/ctor.default.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.drop/types.h |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp |
 | libcxx/test/std/ranges/range.access/range.prim/data.pass.cpp |
 | libcxx/test/std/utilities/optional/optional.object/optional.object.assign/emplace.pass.cpp |
 | libcxx/test/support/test_iterators.h |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/size.pass.cpp |
 | libcxx/test/std/ranges/range.adaptors/range.common.view/base.pass.cpp |
 | libcxx/test/support/type_classification/swappable.h |
 | libcxx/test/std/ranges/range.adaptors/range.all/all.pass.cpp |
Commit
5edccc45815518046d715d384c168f41b578cd6c
by craig.topper[RISCV] Avoid using x0,x0 vsetvli for vmv.x.s and vfmv.f.s unless we know the sew/lmul ratio is constant.
Since we're changing VTYPE, we may change VLMAX which could invalidate the previous VL. If we can't tell if it is safe we should use an AVL of 1 instead of keeping the old VL.
This is a quick fix. We may want to thread VL to the pseudo instruction instead of making up a value. That will require ISD opcode changes and changes to the C intrinsic interface.
This fixes the issue raised in D106286.
Reviewed By: frasercrmck
Differential Revision: https://reviews.llvm.org/D106403
|
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bitcast.ll |
 | llvm/test/CodeGen/RISCV/srem-seteq-illegal-types.ll |
 | llvm/test/CodeGen/RISCV/rvv/extractelt-fp-rv32.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-bitcast.ll |
 | llvm/test/CodeGen/RISCV/rvv/extractelt-int-rv32.ll |
 | llvm/test/CodeGen/RISCV/rvv/extractelt-int-rv64.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-unaligned.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll |
 | llvm/test/CodeGen/RISCV/spill-fpr-scalar.ll |
 | llvm/test/CodeGen/RISCV/rvv/vfmv.f.s.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-shuffles.ll |
 | llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp |
 | llvm/test/CodeGen/RISCV/rvv/extractelt-fp-rv64.ll |
 | llvm/test/CodeGen/RISCV/rvv/vmv.x.s-rv32.ll |
 | llvm/test/CodeGen/RISCV/rvv/vsetvli-insert.mir |
 | llvm/test/CodeGen/RISCV/rvv/vmv.x.s-rv64.ll |
Commit
f890d6b892a4bfa055b54bf61dd9b7bc1fa66e44
by llvmgnsyncbot[gn build] Port 0ad562b48bfd
|
 | llvm/utils/gn/secondary/llvm/lib/ExecutionEngine/JITLink/BUILD.gn |
Commit
d556d7167047d677308509f6b78f8c37a4c25070
by llvmgnsyncbot[gn build] Port e5d8b93e5a25
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn |
Commit
e7590d748adfa6afb67c4fb4f72c6f7eeb812734
by kadircetRevert "[clangd] Canonicalize compile flags before applying edits"
This reverts commit 7cc8a8e3849dc4044cc799e2c1f6cc241b851b70.
|
 | clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp |
 | clang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp |
 | clang-tools-extra/clangd/CompileCommands.cpp |
 | clang-tools-extra/clangd/test/did-change-configuration-params.test |
Commit
1ffc3693949ce4ea6e2159ecb7d0d7386258e21f
by craig.topper[RISCV] Add a test showing an incorrect vsetvli insertion
This patch adds a reduced test case which identifies an illegal vsetvli inserted by the compiler. The compiler emits a vsetvli which is intended to preserve VL with the SEW/LMUL ratio e32/m1 when in fact the VL could have been set by e64/m2 in a predecessor block.
Differential Revision: https://reviews.llvm.org/D106286
|
 | llvm/test/CodeGen/RISCV/rvv/vsetvli-regression.ll |
Commit
d9908523273dbe08af76b78abb366caf607bf91e
by koraq[libcxx][nfc] Cleanup libc++ specific tests.
Move the tests to libcxx so they no longer need `REQUIRES: libc++`. Verify tests don't need `REQUIRES: libc++`.
Reviewed By: #libc, ldionne
Differential Revision: https://reviews.llvm.org/D106673
|
 | libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/libcxx.control_block_layout.pass.cpp |
 | libcxx/test/std/input.output/filesystems/class.path/path.member/path.native.obs/string_alloc.pass.cpp |
 | libcxx/test/libcxx/input.output/filesystems/class.path/path.member/path.native.obs/string_alloc.pass.cpp |
 | libcxx/test/libcxx/utilities/memory/util.smartptr/util.smartptr.shared/libcxx.control_block_layout.pass.cpp |
 | libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.nodiscard.verify.cpp |
Commit
13f95cc3d10d9884acd2dbfc112e3c7079403c0a
by pataccaUpdate isl to isl-0.24-69-g54aac5ac
This is needed for having the functions isl_{set,map}_n_basic_{set,map} exported to the C++ interface
|
 | polly/lib/External/isl/check_parse_fail_test_templ.c |
 | polly/lib/External/isl/Makefile.in |
 | polly/lib/External/isl/isl_stream.c |
 | polly/lib/External/isl/include/isl/typed_cpp.h |
 | polly/lib/External/isl/include/isl/cpp.h |
 | polly/lib/External/isl/isl_ctx_private.h |
 | polly/lib/External/isl/isl_coalesce.c |
 | polly/lib/External/isl/interface/template_cpp.cc |
 | polly/lib/External/isl/include/isl/cpp-checked.h |
 | polly/lib/External/isl/include/isl/map.h |
 | polly/lib/External/isl/test_inputs/schedule/niewang.sc |
 | polly/lib/External/isl/include/isl/aff.h |
 | polly/lib/External/isl/isl_test.c |
 | polly/lib/External/isl/Makefile.am |
 | polly/lib/External/isl/isl_input.c |
 | polly/lib/External/isl/GIT_HEAD_ID |
 | polly/lib/External/isl/interface/isl.py |
 | polly/lib/External/isl/isl_scheduler.c |
 | polly/lib/External/isl/include/isl/set.h |
 | polly/lib/External/isl/check_reparse_test_templ.c |
Commit
42896eeed9e3d12e7e38217a0d7e35b9736451ac
by i[clang] -falign-loops=
|
 | clang/include/clang/Basic/CodeGenOptions.def |
 | llvm/include/llvm/Target/TargetOptions.h |
 | clang/include/clang/Basic/LangOptions.def |
 | clang/lib/CodeGen/BackendUtil.cpp |
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/include/clang/Driver/Options.td |
Commit
2aa0cf19e7fe17c9eb5eb2555e10184061b933f1
by iRevert D106562 "[clangd] Get rid of arg adjusters in CommandMangler"
This reverts commit 1c0d0085bcaaf27cc8d9492eb3c5c05058e54b8e.
This commit made unittest BuildCompilerInvocation.DropsPlugins crash.
|
 | clang-tools-extra/clangd/CompileCommands.cpp |
 | clang-tools-extra/clangd/CompileCommands.h |
 | clang-tools-extra/clangd/unittests/CompilerTests.cpp |
 | clang-tools-extra/clangd/unittests/CompileCommandsTests.cpp |
 | clang-tools-extra/clangd/Compiler.cpp |
Commit
7290ddd6b1090aaab5f8759581c8d307595567ae
by iRevert "[clang] -falign-loops="
This reverts commit 42896eeed9e3d12e7e38217a0d7e35b9736451ac.
Unfinished. Accidentally pushed when reverting a clangd commit.
|
 | clang/include/clang/Basic/LangOptions.def |
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/lib/CodeGen/BackendUtil.cpp |
 | clang/include/clang/Basic/CodeGenOptions.def |
 | llvm/include/llvm/Target/TargetOptions.h |
 | clang/include/clang/Driver/Options.td |
Commit
2ae7d6d42741347346d9760f6243b72a4a0c343f
by pataccaRevert "Update isl to isl-0.24-69-g54aac5ac"
This reverts commit 13f95cc3d10d9884acd2dbfc112e3c7079403c0a.
The commit makes some polly tests failing
|
 | polly/lib/External/isl/include/isl/aff.h |
 | polly/lib/External/isl/Makefile.am |
 | polly/lib/External/isl/isl_ctx_private.h |
 | polly/lib/External/isl/isl_stream.c |
 | polly/lib/External/isl/include/isl/cpp.h |
 | polly/lib/External/isl/isl_test.c |
 | polly/lib/External/isl/include/isl/set.h |
 | polly/lib/External/isl/include/isl/typed_cpp.h |
 | polly/lib/External/isl/Makefile.in |
 | polly/lib/External/isl/include/isl/map.h |
 | polly/lib/External/isl/include/isl/cpp-checked.h |
 | polly/lib/External/isl/interface/template_cpp.cc |
 | polly/lib/External/isl/GIT_HEAD_ID |
 | polly/lib/External/isl/check_parse_fail_test_templ.c |
 | polly/lib/External/isl/isl_coalesce.c |
 | polly/lib/External/isl/check_reparse_test_templ.c |
 | polly/lib/External/isl/interface/isl.py |
 | polly/lib/External/isl/isl_scheduler.c |
 | polly/lib/External/isl/test_inputs/schedule/niewang.sc |
 | polly/lib/External/isl/isl_input.c |
Commit
da06d1795ab0e004ec90d24b053a82a3db94df49
by michaelrj[libc] add option to use SCUDO as the allocator
This patch adds LLVM_LIBC_INCLUDE_SCUDO as a flag. When enabled it should link in the standalone version of SCUDO as the allocator for LLVM libc.
Reviewed By: sivachandra
Differential Revision: https://reviews.llvm.org/D106502
|
 | libc/cmake/modules/LLVMLibCLibraryRules.cmake |
 | libc/lib/CMakeLists.txt |
 | libc/CMakeLists.txt |
Commit
ae69f46867cd99d18ec7e23509eb1d71a098d48f
by tianshilei1992[AbstractAttributor] Refine logic to indicate pessimistic fixed point when folding `__kmpc_is_spmd_exec_mode`
Since we are using assumed information now, the logic should be refined to avoid unncessary assertion.
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D106630
|
 | llvm/lib/Transforms/IPO/OpenMPOpt.cpp |
Commit
deebf18512266e0e6917508052f6d9bbd06c7d5e
by gysit[mlir][linalg] Add pooling_nchw_max, conv_2d_nchw as yaml ops.
- Add pooling_nchw_max. - Move conv_2d_nchw to yaml ops and add strides and dilation attributes.
Reviewed By: gysit
Differential Revision: https://reviews.llvm.org/D106658
|
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgNamedStructuredOps.yaml |
 | mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp |
 | mlir/test/Integration/Dialect/Linalg/CPU/test-conv-2d-nchw-call.mlir |
 | mlir/test/Dialect/Linalg/named-ops.mlir |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgNamedStructuredOpsSpec.tc |
 | mlir/python/mlir/dialects/linalg/opdsl/ops/core_named_ops.py |
Commit
55e12f7080df4f2adb43e6aa8151d59e981c724a
by mtrofin[NFC][MLGO] Just use the underlying protobuf object for logging
Avoid buffering just to copy the buffered data, in 'development mode', when logging. Instead, just populate the underlying protobuf.
Differential Revision: https://reviews.llvm.org/D106592
|
 | llvm/lib/Analysis/DevelopmentModeInlineAdvisor.cpp |
 | llvm/lib/Analysis/TFUtils.cpp |
 | llvm/include/llvm/Analysis/Utils/TFUtils.h |
 | llvm/unittests/Analysis/TFUtilsTest.cpp |
Commit
68ef916659b9cd4127276f9502fc2870ca6cfdea
by erich.keaneDelete PrintingPolicy's copy constructor/operator.
This type is 'fat' now thanks to the callbacks, so it should never be copied as far as I know. Delete the copy operations so that we don't do so accidentially.
|
 | clang/include/clang/AST/PrettyPrinter.h |
Commit
e7afaadd8b7a41cf9fab15786e863e78a8cc1473
by erich.keaneRevert "Delete PrintingPolicy's copy constructor/operator."
My test that showed we don't copy it was wrong!
This reverts commit 68ef916659b9cd4127276f9502fc2870ca6cfdea.
|
 | clang/include/clang/AST/PrettyPrinter.h |
Commit
8594a24d63d8606fff344d72b6754547fb04c9b6
by Cyndy Ishida[llvm][NFC] Fix typos in Errc.h description
|
 | llvm/include/llvm/Support/Errc.h |
Commit
64c2b2c69d61dbb6459037a7bfddf29e1f280c8f
by kevin.neal[FPEnv][InstSimplify] Enable more folds for constrained fadd
Precommit tests.
|
 | llvm/test/Transforms/InstSimplify/strictfp-fadd.ll |
Commit
aee8457b8d4123d087c45aef95d14f24934fed53
by kevin.nealRevert "[FPEnv][InstSimplify] Enable more folds for constrained fadd"
Build bots have started failing.
This reverts commit 64c2b2c69d61dbb6459037a7bfddf29e1f280c8f.
|
 | llvm/test/Transforms/InstSimplify/strictfp-fadd.ll |
Commit
a085c23aa3c8f91866d7f4588d4f683407dc775d
by mvanotti[libunwind] Allow restoring SP while unwinding.
This commit modifies stepWithDwarf allowing for CFI directives to specify the value of the stack pointer.
Previously, the SP would be unconditionally set to the CFA, because it (wrongly) stated that the CFA is the stack pointer at the call site of a function, but that is not always true.
One situation in which that is false, is for example if you have switched stacks. In that case if you set the CFA to the SP before switching the stack, the CFA would be far away from where the current call frame is located.
The CFA always points to the current call frame, and that call frame could have a CFI directive that specifies how to restore the stack pointer. If not, it is OK to fallback and set the SP = CFA.
This change sets SP = CFA before restoring the registers during unwinding, allowing the stack frame to be restored with a value different than the CFA.
Reviewed By: #libunwind, phosek
Differential Revision: https://reviews.llvm.org/D106626
|
 | libunwind/src/DwarfInstructions.hpp |
Commit
04e8d0b62dca05c396422048b467bea31988cac3
by thakis[lld/mac] Implement support for section$start and section$ end symbols
With this, libclang_rt.profile_osx.a can be linked, that is coverage and PGO-instrumented builds should now work with lld.
section$start and section$end symbols can create non-existing sections. They're also undefined symbols that are only magic if there isn't a regular symbol with their name, which means the need to be handled in treatUndefined() instead of just looping over all existing sections and adding start and end symbols like the ELF port does.
To represent the actual symbols, this uses absolute symbols that get their value updated once an output section is layed out.
segment$start and segment$end are still missing for now, but they produce a nicer error message after this patch.
Main part of PR50760.
Differential Revision: https://reviews.llvm.org/D106629
|
 | lld/MachO/Writer.cpp |
 | lld/MachO/OutputSection.h |
 | lld/MachO/OutputSection.cpp |
 | lld/MachO/SymbolTable.cpp |
 | lld/test/MachO/start-end.s |
Commit
0a1683f8cc0df2889f1d86da7a795914f07e5599
by martin[llvm-rc] Allow dashes as part of resource name strings
This matches what MS rc.exe allows in practice. I'm not aware of any legal syntax case that are broken by allowing dashes as part of what the tokenizer considers an Identifier - but I'm not very well versed in the RC syntax either, can @amccarth think of any case that would be broken by this?
This fixes downstream bug https://github.com/msys2/MINGW-packages/issues/9180.
Additionally, rc.exe allows such resource name strings to be surrounded by quotes, ending up with e.g.
Resource name (string): "QUOTEDNAME"
(i.e., the quotes end up as part of the string), which llvm-rc doesn't support yet either. (I'm not aware of such cases in the wild though, but resource string names with dashes do exist.)
This also allows including files with unquoted paths, with filenames containing dashes (which fixes https://github.com/msys2/MINGW-packages/issues/9130, which has been worked around differently so far).
Differential Revision: https://reviews.llvm.org/D106598
|
 | llvm/test/tools/llvm-rc/tokenizer.test |
 | llvm/tools/llvm-rc/ResourceScriptToken.cpp |
 | llvm/test/tools/llvm-rc/Inputs/resname-string.rc |
 | llvm/test/tools/llvm-rc/Inputs/tokens.rc |
 | llvm/test/tools/llvm-rc/resname-string.test |
Commit
b22bf7e82ae06acb91a248c69c5fa44393d49906
by martin[CMake] Add version to libLLVM also on non-UNIX
As discussed in https://reviews.llvm.org/D87521
llvm-config expects versioned library regardless of platform.
Reviewed By: mstorsjo
Differential Revision: https://reviews.llvm.org/D89009
|
 | llvm/cmake/modules/AddLLVM.cmake |
Commit
18ce3d3f2c362b7fda33ebd7b4d544e9cae23ad4
by tianshilei1992[OpenMP][Offloading] Fix data race in data mapping by using two locks
This patch tries to partially fix one of the two data race issues reported in [1] by introducing a per-entry mutex. Additional discussion can also be found in D104418, which will also be refined to fix another data race problem.
Here is how it works. Like before, `DataMapMtx` is still being used for mapping table lookup and update. In any case, we will get a table entry. If we need to make a data transfer (update the data on the device), we need to lock the entry right before releasing `DataMapMtx`, and the issue of data transfer should be after releasing `DataMapMtx`, and the entry is unlocked afterwards. This can guarantee that: 1) issue of data movement is not in critical region, which will not affect performance too much, and also will not affect other threads that don't touch the same entry; 2) if another thread accesses the same entry, the state of data movement is consistent (which requires that a thread must first get the update lock before getting data movement information).
For a target that doesn't support async data transfer, issue of data movement is data transfer. This two-lock design can potentially improve concurrency compared with the design that guards data movement with `DataMapMtx` as well. For a target that supports async data movement, we could simply attach the event between the issue of data movement and unlock the entry. For a thread that wants to get the event, it must first get the lock. This can also get rid of the busy wait until the event pointer is valid.
Reference: [1] https://bugs.llvm.org/show_bug.cgi?id=49940
Reviewed By: grokos
Differential Revision: https://reviews.llvm.org/D104555
|
 | openmp/libomptarget/src/omptarget.cpp |
 | openmp/libomptarget/src/device.cpp |
 | openmp/libomptarget/src/device.h |
Commit
f502683750f4240c48a3e24bf023294e4a27929e
by nikita.ppv[MergeICmps] Relax sinking check
The check for sinking instructions past the load + cmp sequence currently checks for side-effects, which includes writing to memory and unwinding. However, I don't believe we care about sinking the instructions past an unwind (as they don't have any side-effects themselves).
Differential Revision: https://reviews.llvm.org/D106591
|
 | llvm/lib/Transforms/Scalar/MergeICmps.cpp |
 | llvm/test/Transforms/MergeICmps/X86/split-block-does-work.ll |
Commit
3c2c9851634ab5889377b0457fac0b7bb79a935b
by code[NFC][compiler-rt] tidy up some whitespace in lit config
|
 | compiler-rt/test/lit.common.cfg.py |
Commit
17de7ed556ad8df3d2dcaa9322a792fc70243194
by jurahul[MLIR][NFC] Minor cleanup in liveness.
- Rename isLastUse to isDeadAfter to reflect what the function does. - Avoid a second walk over all operations in BlockInfoBuilder constructor. - use std::move() to save the new in set.
Differential Revision: https://reviews.llvm.org/D106702
|
 | mlir/lib/Analysis/Liveness.cpp |
 | mlir/include/mlir/Analysis/Liveness.h |
Commit
d71fc323f998b0d2f063cfedf53a8d89f8857279
by code[compiler-rt][NFC] add debugging options to iossim_run
Add the ability to: 1. tell simctl to wait for debugger when spawning process 2. print the command that is called to launch the process
Reviewed By: delcypher
Differential Revision: https://reviews.llvm.org/D106700
|
 | compiler-rt/test/sanitizer_common/ios_commands/iossim_run.py |
Commit
e1dedecaa6f83223efde5e0bf98a8f070aa5d6a5
by huberjn[Libomptarget] Add unroll flag to shared variables loop
Unrolling this loop provides better performance in practice because it is executed on the device and is likely to be very small.
Reviewed By: tianshilei1992
Differential Revision: https://reviews.llvm.org/D106692
|
 | openmp/libomptarget/deviceRTLs/common/src/parallel.cu |
Commit
c2c43132f69c6f7e89d97c0c2ce32b0cf2f30e90
by tianshilei1992[OpenMP] Fix bug 50022
Bug 50022 [0] reports target nowait fails in certain case, which is added in this patch. The root cause of the failure is, when the second task is created, its parent's `td_incomplete_child_tasks` will not be incremented because there is no parallel region here thus its team is serialized. Therefore, when the initial thread is waiting for its unfinished children tasks, it thought there is only one, the first task, because it is hidden helper task, so it is tracked. The second task will only be pushed to the queue when the first task is finished. However, when the first task finishes, it first decrements the counter of its parent, and then release dependences. Once the counter is decremented, the thread will move on because its counter is reset, but actually, the second task has not been executed at all. As a result, since in this case, the main function finishes, then `libomp` starts to destroy. When the second task is pushed somewhere, all some of the structures might already have already been destroyed, then anything could happen.
This patch simply moves `__kmp_release_deps` ahead of decrement of the counter. In this way, we can make sure that the initial thread is aware of the existence of another task(s) so it will not move on. In addition, in order to tackle dependence chain starting with hidden helper thread, when hidden helper task is encountered, we force the task to release dependences.
Reference: [0] https://bugs.llvm.org/show_bug.cgi?id=50022
Reviewed By: AndreyChurbanov
Differential Revision: https://reviews.llvm.org/D106519
|
 | openmp/runtime/src/kmp_tasking.cpp |
 | openmp/libomptarget/test/offloading/bug50022.cpp |
Commit
04f5eb407c74d433589739a719c3fc75a08859b3
by thakis[lld/mac] Fix start-stop.s test with expensive checks enabled
See e.g. https://lab.llvm.org/buildbot/#/builders/16/builds/14317 Not 100% sure why this fails yet, but this fixes it. Let's get the bots green again first :)
Differential Revision: https://reviews.llvm.org/D106711
|
 | lld/MachO/OutputSegment.cpp |
Commit
5d679fc502c78eba4758d034cdffc44bc6d48efb
by caitlyncano[libc] Clean up Windows macros
This clean-up removes checks for _WIN64, as the _WIN32 macro returns 1 whenever the compilation targe is 32- or 64-bit ARM.
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D106706
|
 | libc/utils/FPUtil/TestHelpers.cpp |
 | libc/utils/FPUtil/PlatformDefs.h |
 | libc/utils/UnitTest/PlatformDefs.h |
Commit
c45e17f11f508d1aea97eded3f1bda2a448f2032
by pirama[NewPM] Add CrossDSOCFI pass irrespective of LTO optimization level
This pass is not an optimization and is needed for CFI functionality (cross-dso verification).
Differential Revision: https://reviews.llvm.org/D106699
|
 | llvm/test/Other/new-pm-lto-defaults.ll |
 | llvm/lib/Passes/PassBuilder.cpp |
 | llvm/test/Other/new-pm-O0-defaults.ll |
Commit
2aa2fdeed9dc8af922e424545eae56d81c10599f
by lebedev.ri[NFC][BasicBlockUtils] Refactor GetIfCondition() to return the branch, not it's condition
Otherwise e.g. the FoldTwoEntryPHINode() has to do a lot of legwork to re-deduce what is the dominant block (i.e. for which block is this branch the terminator).
|
 | llvm/lib/Transforms/Utils/SimplifyCFG.cpp |
 | llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h |
 | llvm/lib/Transforms/Utils/FlattenCFG.cpp |
 | llvm/lib/Transforms/Utils/BasicBlockUtils.cpp |
Commit
418dba06064ffe9c5e6433e0045bd88966b5ed12
by lebedev.ri[NFC][SimplifyCFG] FoldTwoEntryPHINode(): make better use of GetIfCondition() returning dom block
|
 | llvm/lib/Transforms/Utils/SimplifyCFG.cpp |
Commit
943f85123b72720c1c960c6dee7d20ff1c37ea52
by lebedev.ri[NFC][SimplifyCFG] Make 'conditional block' handling more straight-forward
This will simplify making use of profile weights to not perform the speculation when obviously unprofitable.
|
 | llvm/lib/Transforms/Utils/SimplifyCFG.cpp |
Commit
4079037a3e11506e035b98b906a907cc5b60c1e7
by tianshilei1992[OpenMP] always compile with c++14 instead of gnu++14
Fixes PR 51174. c++14 should be a more portable option than gnu++14.
Reviewed By: tianshilei1992
Differential Revision: https://reviews.llvm.org/D106632
|
 | openmp/cmake/config-ix.cmake |
 | openmp/cmake/HandleOpenMPOptions.cmake |
Commit
39c0e4afce5d1ac5e5ae4012c1201fc461218ae4
by tlively[WebAssembly][NFC] Simplify SIMD bitconvert pattern
Differential Revision: https://reviews.llvm.org/D106680
|
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td |
Commit
85157c0079031b51c0446b222894aec4aad71b53
by tlively[WebAssembly] Codegen for pmin and pmax
Replace the clang builtins and LLVM intrinsics for {f32x4,f64x2}.{pmin,pmax} with standard codegen patterns. Since wasm_simd128.h uses an integer vector as the standard single vector type, the IR for the pmin and pmax intrinsic functions contains bitcasts that would not be there otherwise. Add extra codegen patterns that can still select the pmin and pmax instructions in the presence of these bitcasts.
Differential Revision: https://reviews.llvm.org/D106612
|
 | llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll |
 | clang/lib/Headers/wasm_simd128.h |
 | clang/test/CodeGen/builtins-wasm.c |
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td |
 | llvm/test/CodeGen/WebAssembly/simd-arith.ll |
 | clang/include/clang/Basic/BuiltinsWebAssembly.def |
 | llvm/include/llvm/IR/IntrinsicsWebAssembly.td |
 | clang/lib/CodeGen/CGBuiltin.cpp |
 | clang/test/Headers/wasm.c |
Commit
923727e8bedac0257f5603ca3a1032737b01be96
by nikita.ppv[ConstantFold] Extract GEP of GEP fold (NFCI)
Move this fold into a separate function and clean up the control flow a bit.
|
 | llvm/lib/IR/ConstantFold.cpp |
Commit
f623b3a29aa9932fedf5b043b0f3b7535a19fdb7
by nikita.ppv[ConstantFold] Fix GEP of GEP fold with opaque pointers
This was previously combining indices even though they operate on different types. For non-opaque pointers, the condition is automatically satisfied based on the pointer types being equal.
|
 | llvm/lib/IR/ConstantFold.cpp |
 | llvm/test/Other/force-opaque-ptrs.ll |
Commit
1f341aedc923ad5bc7654eabc07429a388c0fc0c
by lebedev.ri[NFC][SimplifyCFG] Add tests for `FoldTwoEntryPHINode()` with prof md
|
 | llvm/test/Transforms/SimplifyCFG/fold-two-entry-phi-node-with-two-blocks-profmd.ll |
 | llvm/test/Transforms/SimplifyCFG/speculatively-execute-block-profmd.ll |
 | llvm/test/Transforms/SimplifyCFG/fold-two-entry-phi-node-with-one-block-profmd.ll |
Commit
3f2c1e99e44d028d5e9dd685f3c568f2661f2f68
by gcmn[Bazel] Swap stray td_srcs to deps
This is the last instance of td_srcs in MLIR core build files. `deps` is generally preferred. There are still some cases where `td_srcs` is useful where creating a td_library would just be another layer of indirection, so not (yet) dropping it entirely.
Differential Revision: https://reviews.llvm.org/D106716
|
 | utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel |
Commit
92c085e7c45298a4f4e96f50b21f39ce309279fa
by thakis[lld/mac] Fix comment typo in new start-end.s test
|
 | lld/test/MachO/start-end.s |
Commit
c24c18bba61fa4e9e5513b70cd133ec39eaf9e25
by sivachandra[libc] Accommodate Fuchsia's death test framework in fenv tests.
Fuchsia's death test framework runs the closure which can die in a different thread. Hence, the FP exceptions which cause the closure to die should be enalbed in the closure.
Reviewed By: michaelrj
Differential Revision: https://reviews.llvm.org/D106683
|
 | libc/test/src/fenv/enabled_exceptions_test.cpp |
 | libc/test/src/fenv/feholdexcept_test.cpp |
Commit
4a3dc7dc9a03ff4864a0e2cd31b15848481c322b
by listmail[SCEV] Fix bug involving zero step and non-invariant RHS in trip count logic
Eli pointed out the issue when reviewing D104140. The max trip count logic makes an assumption that the value of IV changes. When the step is zero, the nowrap fact becomes trivial, and thus there's nothing preventing the loop from being nearly infinite. (The "nearly" part is because mustprogress may disallow an infinite loop while still allowing 999999999 iterations before RHS happens to allow an exit.)
This is very difficult to see in practice. You need a means to produce a loop varying RHS in a mustprogress loop which doesn't allow the loop to be infinite. In most cases, LICM or SCEV are smart enough to remove the loop varying expressions.
Differential Revision: https://reviews.llvm.org/D106327
|
 | llvm/test/Analysis/ScalarEvolution/trip-count-unknown-stride.ll |
 | llvm/lib/Analysis/ScalarEvolution.cpp |
Commit
328bb2caae810d484422a13c279939c03ac8c6b3
by stilis[cmake] Export LLVM_HOST_TRIPLE in the LLVMConfig.cmake
This is referenced in several of the cmake files that are part of an llvm install and it is also useful by downstream components such as onnx-mlir.
Differential Revision: https://reviews.llvm.org/D106686
|
 | llvm/cmake/modules/LLVMConfig.cmake.in |
Commit
0cd964ff254888d563659f4f8f39c934732aa487
by kuterdinel[Attributor][FIX] checkForAllInstructions, correctly handle declarations
checkForAllInstructions was not handling declarations correctly. It should have been returning false when it gets called on a declaration
The patch also fixes a test case for AAFunctionReachability for it to be able to pass after the changes to the checkForAllinstructions.
Differential Revision: https://reviews.llvm.org/D106625
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
 | llvm/unittests/Transforms/IPO/AttributorTest.cpp |
Commit
d5401315cd29b67607b5914997c99d34427ac354
by i[LangRef] Clarify comdat
* ELF supports `nodeduplicate`. * ELF calls the concept "section group". `GRP_COMDAT` emulates the PE COMDAT deduplication feature. * "COMDAT group" is an ELF term. Avoid it for PE/COFF. * WebAssembly supports comdat but only supports the `any` selection kind. https://bugs.llvm.org/show_bug.cgi?id=50531 * A comdat must be included or omitted as a unit. Both the compiler and the linker must obey this rule. * A global object can be a member of at most one comdat. * COFF requires a non-local linkage for non-`nodeduplicate` selection kinds. * llvm.global_ctors/.llvm.global_dtors: if the third field is used on ELF, it must reference a global variable or function in a comdat
Reviewed By: rnk
Differential Revision: https://reviews.llvm.org/D106300
|
 | llvm/docs/LangRef.rst |
Commit
ec43def7003db38640597b94fee38f6bc53379f9
by listmailStyle tweaks for SCEV's computeMaxBECountForLT [NFC]
|
 | llvm/lib/Analysis/ScalarEvolution.cpp |
Commit
e9d4bb43f8432c58d87ff6c725f4b92db084d650
by listmail[tests] SCEV trip count w/ neg step and varying rhs
|
 | llvm/test/Analysis/ScalarEvolution/trip-count-negative-stride.ll |
Commit
ef8c6849a235e97b8b981e0f998d430fdbd7bc2a
by walter erquinigo[source maps] fix source mapping when there are multiple matching rules
D104406 introduced an error in which, if there are multiple matchings rules for a given path, lldb was only checking for the validity in the filesystem of the first match instead of looking exhaustively one by one until a valid file is found.
Besides that, a call to consume_front was being done incorrectly, as it was modifying the input, which renders subsequent matches incorrect.
I added a test that checks for both cases.
Differential Revision: https://reviews.llvm.org/D106723
|
 | lldb/test/API/tools/lldb-vscode/breakpoint/TestVSCode_setBreakpoints.py |
 | lldb/include/lldb/Target/PathMappingList.h |
 | lldb/source/Target/PathMappingList.cpp |
Commit
e160b3987e734ba834cbd985315765ea7f468680
by gclayton[LLDB][GUI] Add Platform Plugin Field
This patch adds a new Platform Plugin Field. It is a choices field that lists all the available platform plugins and can retrieve the name of the selected plugin. The default selected plugin is the currently selected one. This patch also allows for arbitrary scrolling to make scrolling easier when setting choices.
Differential Revision: https://reviews.llvm.org/D106483
|
 | lldb/source/Core/IOHandlerCursesGUI.cpp |
Commit
80ac12b70b16a51fac9918c4b25e3bdfad05eee5
by gclayton[LLDB][GUI] Check fields validity in actions
This patch adds a virtual method HasError to fields, it can be overridden by fields that have errors. Additionally, a form method CheckFieldsValidity was added to be called by actions that expects all the field to be valid.
Differential Revision: https://reviews.llvm.org/D106459
|
 | lldb/source/Core/IOHandlerCursesGUI.cpp |
Commit
e093cbb7ae1448379cad5520db5dfa5cf0b06bdf
by pklausler[flang] Runtime: Reset list-directed input state for each NAMELIST item
NAMELIST I/O formatting uses the runtime infrastructure for list-directed I/O. List-directed input processing has same state that requires reinitialization for each successive NAMELIST input item. This patch fixes bugs with "null" items and repetition counts on NAMELIST input items after the first in the group.
Differential Revision: https://reviews.llvm.org/D106694
|
 | flang/runtime/namelist.cpp |
 | flang/runtime/io-stmt.h |
Commit
4d42e16eb8f7bb1484a1970324aa3391809188de
by pklausler[flang] runtime: fix problems with I/O around EOF & delimited characters
When a WRITE overwrites an endfile record, we need to forget that there was an endfile record. When doing a BACKSPACE after an explicit ENDFILE statement, the position afterwards must be upon the endfile record.
Attempts to join list-directed delimited character input across record boundaries was due to a bad reading of the standard and has been deleted, now that the requirements are better understood. This problem would cause a read attempt past EOF if a delimited character input value was at the end of a record.
It turns out that delimited list-directed (and NAMELIST) character output is required to emit contiguous doubled instances of the delimiter character when it appears in the output value. When fixed-size records are being emitted, as is the case with internal output, this is not possible when the problematic character falls on the last position of a record. No two other Fortran compilers do the same thing in this situation so there is no good precedent to follow.
Because it seems least wrong, with this patch we now emit one copy of the delimiter as the last character of the current record and another as the first character of the next record. (The second-least-wrong alternative might be to flag a runtime error, but that seems harsh since it's not an explicit error in the standard, and the output may not have to be usable later as input anyway.) Consequently, the output is not suitable for use as list-directed or NAMELIST input.
If a later standard were to clarify this case, this behavior will of course change as needed to conform.
Differential Revision: https://reviews.llvm.org/D106695
|
 | flang/docs/Extensions.md |
 | flang/runtime/unit.cpp |
 | flang/runtime/edit-output.cpp |
 | flang/unittests/RuntimeGTest/Namelist.cpp |
 | flang/runtime/edit-input.cpp |
Commit
96709823ec37e98b16332f4ce19523b3f6798bdf
by kuterdinel[AMDGPU] Deduce attributes with the Attributor
This patch introduces a pass that uses the Attributor to deduce AMDGPU specific attributes.
Reviewed By: jdoerfert, arsenm
Differential Revision: https://reviews.llvm.org/D104997
|
 | llvm/test/CodeGen/AMDGPU/uniform-work-group-prevent-attribute-propagation.ll |
 | llvm/test/CodeGen/AMDGPU/uniform-work-group-nested-function-calls.ll |
 | llvm/test/CodeGen/AMDGPU/annotate-kernel-features-hsa.ll |
 | llvm/lib/Target/AMDGPU/AMDGPU.h |
 | llvm/test/CodeGen/AMDGPU/duplicate-attribute-indirect.ll |
 | llvm/test/CodeGen/AMDGPU/simple-indirect-call.ll |
 | llvm/include/llvm/Transforms/IPO/Attributor.h |
 | llvm/test/CodeGen/AMDGPU/uniform-work-group-propagate-attribute.ll |
 | llvm/test/CodeGen/AMDGPU/addrspacecast-constantexpr.ll |
 | llvm/lib/Transforms/IPO/Attributor.cpp |
 | llvm/test/CodeGen/AMDGPU/uniform-work-group-multistep.ll |
 | llvm/test/CodeGen/AMDGPU/annotate-kernel-features.ll |
 | llvm/test/CodeGen/AMDGPU/pal-simple-indirect-call.ll |
 | llvm/test/CodeGen/AMDGPU/uniform-work-group-test.ll |
 | llvm/test/CodeGen/AMDGPU/uniform-work-group-recursion-test.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp |
 | llvm/test/CodeGen/AMDGPU/direct-indirect-call.ll |
 | llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp |
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
 | llvm/test/CodeGen/AMDGPU/annotate-kernel-features-hsa-call.ll |
 | llvm/lib/Target/AMDGPU/CMakeLists.txt |
 | llvm/test/CodeGen/AMDGPU/uniform-work-group-attribute-missing.ll |
Commit
698fef3eb68bdce46f2f629dec6c3f39db78399e
by llvmgnsyncbot[gn build] Port 96709823ec37
|
 | llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn |
Commit
eda6afdad62cd79b05191c3cbeb62e99d0f986fa
by Lang HamesRe-re-re-apply "[ORC][ORC-RT] Add initial native-TLV support to MachOPlatform."
The ccache builders have recevied a config update that should eliminate the build issues seen previously.
|
 | llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h |
 | compiler-rt/lib/orc/macho_tlv.x86-64.S |
 | compiler-rt/lib/orc/macho_platform.h |
 | llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp |
 | compiler-rt/test/orc/TestCases/Darwin/x86-64/trivial-tlv.S |
 | compiler-rt/lib/orc/macho_platform.cpp |
 | compiler-rt/lib/orc/CMakeLists.txt |
 | llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp |