LLVM/project e4b130fllvm/utils/emacs llvm-mode.el

[emacs] Handle vector types, arbitary integer types and function names (#88246)

Resurrecting this patch from https://reviews.llvm.org/D158321

This adds a few more regexp patterns for llvm-mode-syntax-table. The
primitive type regexp was split out so it could be reused when handling
vectors. Also worth noting is that the vector regexp needs to come
before the primitive types, otherwise they will match first.
DeltaFile
+25-4llvm/utils/emacs/llvm-mode.el
+25-41 files

LLVM/project 117921ellvm/docs LangRef.rst, llvm/lib/IR Globals.cpp

[PowerPC] Alignment of toc-data symbol should not be increased during optimizations (#94593)

Currently, the alignment of toc-data symbol might be changed during
instcombine
```
IC: Visiting:   %global = alloca %struct.widget, align 8                                                                                         
Found alloca equal to global:   %global = alloca %struct.widget, align 8                                                                         
  memcpy =   call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %global, ptr align 1 @global, i64 3, i1 false)
```
The `alloca` is created with `PrefAlign` which is 8 and after IC, the
alignment of `@global` is enforced into `8`, same as the `alloca`. This
is not expected, since toc-data symbol has the same alignment as toc
entry and should not be increased during optimizations.

---------

Co-authored-by: Sean Fertile <sd.fertile at gmail.com>
Co-authored-by: Eli Friedman <efriedma at quicinc.com>
DeltaFile
+10-0llvm/lib/IR/Globals.cpp
+4-0llvm/docs/LangRef.rst
+1-1llvm/test/CodeGen/PowerPC/tocdata-firm-alignment.ll
+15-13 files

LLVM/project d68eb5blld/MachO ObjC.cpp ObjC.h

[lld-macho][NFC] Track category merger input data source language for better verification (#95473)

This change adds tracking for the source language of the various input
structs used by the category merger. Identification is based on expected
symbol names. It also adds checks to ensure we're dealing with the
expected data in known scenarios.
DeltaFile
+50-22lld/MachO/ObjC.cpp
+1-0lld/MachO/ObjC.h
+51-222 files

LLVM/project 2c2f490llvm/include/llvm/Analysis IndirectCallPromotionAnalysis.h, llvm/lib/Analysis ModuleSummaryAnalysis.cpp IndirectCallPromotionAnalysis.cpp

[Analysis] Clean up getPromotionCandidatesForInstruction (NFC) (#95624)

Callers of getPromotionCandidatesForInstruction pass NumVals as an out
parameter for the number of value-count pairs of the value profiling
data, but nobody uses the out parameter.

This patch removes the parameter and updates the callers.  Note that
the number of value-count pairs is still available via
getPromotionCandidatesForInstruction(...).size().
DeltaFile
+2-4llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h
+3-3llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
+2-2llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp
+2-2llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
+9-114 files

LLVM/project d6b0b7allvm/include/llvm/ProfileData InstrProf.h, llvm/lib/ProfileData InstrProf.cpp

[ProfileData] Remove getValueProfDataFromInst (#95617)

I've migrated all uses to the new version of getValueProfDataFromInst
that returns std::unique_ptr<InstrProfValueData[]>.
DeltaFile
+0-16llvm/lib/ProfileData/InstrProf.cpp
+0-10llvm/include/llvm/ProfileData/InstrProf.h
+0-262 files

LLVM/project 3c6a109clang/lib/Format TokenAnnotator.cpp UnwrappedLineParser.cpp

[clang-format][NFC] Add FormatToken::isAccessSpecifierKeyword() (#95727)

DeltaFile
+21-23clang/lib/Format/TokenAnnotator.cpp
+11-12clang/lib/Format/UnwrappedLineParser.cpp
+11-9clang/lib/Format/FormatToken.h
+43-443 files

LLVM/project ffed34elibc/test/IntegrationTest test.cpp, libc/test/UnitTest HermeticTestUtils.cpp

[libc] Fix getauxval being defined in a namespace
DeltaFile
+4-2libc/test/IntegrationTest/test.cpp
+4-2libc/test/UnitTest/HermeticTestUtils.cpp
+8-42 files

LLVM/project 2cf2f1blibcxx/cmake/caches Apple.cmake, libcxx/test/configs apple-libc++-shared.cfg.in

[libc++] Test suite adjustments on macOS (#95835)

This patch makes a few adjustments to the way we run the tests in the
Apple configuration on macOS:

First, we stop using DYLD_LIBRARY_PATH. Using that environment variable
leads to libc++.dylib being replaced by the just-built one for the whole
process, and that assumes compatibility between the system-provided
dylib and the just-built one. Unfortunately, that is not the case
anymore due to typed allocation, which is only available in the system
one. Instead, we want to layer the just-built libc++ on top of the
system-provided one, which seems to be what happens when we set a rpath
instead.

Second, add a missing XFAIL for a std::print test that didn't work as
expected when building with availability annotations enabled. When we
enable these annotations, std::print falls back to a non-unicode and
non-terminal output, which breaks the test.
DeltaFile
+0-35libcxx/test/configs/apple-libc++-shared.cfg.in
+0-29libcxxabi/test/configs/apple-libc++abi-shared.cfg.in
+3-3libcxx/utils/ci/apple-install-libcxx.sh
+5-0libcxx/test/libcxx/input.output/iostream.format/output.streams/ostream.formatted/ostream.formatted.print/vprint_unicode.pass.cpp
+0-3libcxx/cmake/caches/Apple.cmake
+8-705 files

LLVM/project 753498ebolt/lib/Profile StaleProfileMatching.cpp, bolt/test/X86 infer_no_exits.test

 [BOLT] Add sink block to flow CFG in profile inference (#95047)

Summary: Constructing an artificial sink block for the
flow CFG in stale profile inference to allow profile
inference to be run on CFGs with blocks that terminate
and have successors.

Testing Plan: Added infer_no_exits.test to verify that 
functions with exit blocks with a landing pad are 
covered by stale profile inference.

---------

Co-authored-by: Amir Ayupov <fads93 at gmail.com>
DeltaFile
+175-0bolt/test/X86/Inputs/infer_no_exits.s
+30-12bolt/lib/Profile/StaleProfileMatching.cpp
+11-0bolt/test/X86/infer_no_exits.test
+216-123 files

LLVM/project a02010bmlir/lib/Dialect/SparseTensor/Transforms/Utils LoopEmitter.cpp, mlir/test/Dialect/SparseTensor sparse_concat.mlir sparse_int_ops.mlir

[mlir][sparse] support sparsifying sparse kernels to sparse-iterator-based loop (#95858)

DeltaFile
+97-42mlir/lib/Dialect/SparseTensor/Transforms/Utils/LoopEmitter.cpp
+50-50mlir/test/Dialect/SparseTensor/sparse_concat.mlir
+50-50mlir/test/Dialect/SparseTensor/sparse_int_ops.mlir
+44-44mlir/test/Dialect/SparseTensor/sparse_fp_ops.mlir
+42-42mlir/test/Dialect/SparseTensor/vectorize_reduction.mlir
+79-0mlir/test/Integration/Dialect/SparseTensor/CPU/iterator-based-sqsum.mlir
+362-22834 files not shown
+746-47540 files

LLVM/project c67ecf3bolt/test/X86 bug-reorder-bb-jrcxz.s

[BOLT][tests] Fix jrcxz instruction test (#95861)

Rewrite the test case intended to check that BOLT does not separate
jrcxz instruction from its destination by more than a one-byte offset.
DeltaFile
+21-628bolt/test/X86/bug-reorder-bb-jrcxz.s
+21-6281 files

LLVM/project bea329ellvm/lib/Transforms/IPO AttributorAttributes.cpp

[Attributor]: allow more than one offset for a pass through user in AAPointerInfo (#94416)

Co-authored-by: Vidush Singhal <singhal2 at ruby964.llnl.gov>
DeltaFile
+5-1llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+5-11 files

LLVM/project 41ce289bolt/test/X86 profile-passthrough-block.test

spr amend

Created using spr 1.3.4
DeltaFile
+1-1bolt/test/X86/profile-passthrough-block.test
+1-11 files

LLVM/project ef5f0dabolt/lib/Profile YAMLProfileReader.cpp

spr amend

Created using spr 1.3.4
DeltaFile
+2-0bolt/lib/Profile/YAMLProfileReader.cpp
+2-01 files

LLVM/project 8e7b222bolt/lib/Profile YAMLProfileReader.cpp, bolt/test/X86 profile-passthrough-block.test

spr amend

Created using spr 1.3.4
DeltaFile
+1-1bolt/lib/Profile/YAMLProfileReader.cpp
+1-1bolt/test/X86/profile-passthrough-block.test
+2-22 files

LLVM/project 2497922bolt/lib/Profile YAMLProfileReader.cpp

spr amend

Created using spr 1.3.4
DeltaFile
+4-3bolt/lib/Profile/YAMLProfileReader.cpp
+4-31 files

LLVM/project 92212c9bolt/lib/Profile YAMLProfileReader.cpp

spr amend

Created using spr 1.3.4
DeltaFile
+2-0bolt/lib/Profile/YAMLProfileReader.cpp
+2-01 files

LLVM/project c6049e6compiler-rt/lib/hwasan hwasan_dynamic_shadow.cpp, compiler-rt/lib/sanitizer_common sanitizer_common.h sanitizer_linux_libcdep.cpp

Reapply "[HWASan] [compiler-rt] support non-4k pages on Android" (#95853)

Updated MapDynamicShadow callsite in asan_win.
DeltaFile
+8-9compiler-rt/lib/sanitizer_common/sanitizer_common.h
+11-6compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cpp
+2-3compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
+2-3compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
+2-2compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
+2-2compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
+27-255 files not shown
+37-3011 files

LLVM/project cd48335llvm/docs Security.rst

[docs][Security Group] Update Apple representation. (#95491)

Remove Kate; Apple is now represented by Oliver (and myself).
DeltaFile
+0-1llvm/docs/Security.rst
+0-11 files

LLVM/project 0041582lldb/test/API lit.cfg.py

[lldb] Fix Python interpreter workaround (attempt #2)

On macOS, to make DYLD_INSERT_LIBRARIES and the Python shim work
together, we have a workaroud that copies the "real" Python interpreter
into the build directory. This doesn't work when running in a virtual
environment, as the copied interpreter cannot find the packages
installed in the virtual environment relative to itself.

Address this issue by copying the Python interpreter into the virtual
environment's `bin` folder, rather than the build folder, when the test
suite detects that it's being run inside a virtual environment.

I'm not thrilled about this solution because it puts a file outside the
build directory. However, given virtual environments are considered
disposable, this seems reasonable.
DeltaFile
+5-4lldb/test/API/lit.cfg.py
+5-41 files

LLVM/project 68fc8dfbolt/docs CommandLineArgumentReference.md, bolt/lib/Profile StaleProfileMatching.cpp

[BOLT] Drop high discrepancy profiles in matching (#95156)

Summary: Functions with high discrepancy 
(measured by matched function blocks) 
can be ignored with an added command line 
argument for better performance.

Test Plan: Added 
stale-matching-min-matched-block.test

---------

Co-authored-by: Amir Ayupov <aaupov at fb.com>
DeltaFile
+57-0bolt/test/X86/Inputs/blarge_profile_stale_low_matched_blocks.yaml
+23-7bolt/lib/Profile/StaleProfileMatching.cpp
+10-0bolt/test/X86/stale-matching-min-matched-block.test
+6-1bolt/docs/CommandLineArgumentReference.md
+96-84 files

LLVM/project 6c17f1clldb/include/lldb/DataFormatters ValueObjectPrinter.h

Fix comments in ValueObjectPrinter.h (NFC)
DeltaFile
+10-11lldb/include/lldb/DataFormatters/ValueObjectPrinter.h
+10-111 files

LLVM/project ca1a963mlir/test/mlir-tblgen rewriter-static-matcher.td, mlir/tools/mlir-tblgen RewriterGen.cpp

[mlir][drr] Fix variadic destination emission (#95855)

Its possible for handleResultPattern to emit helpers, these helpers
cannot be interleaved with pushing into the array. Emit into a separate
string to enable helpers to be emitted before the population of vector.

Signed-off-by: Jacques Pienaar <jpienaar at google.com>
DeltaFile
+15-0mlir/test/mlir-tblgen/rewriter-static-matcher.td
+9-6mlir/tools/mlir-tblgen/RewriterGen.cpp
+24-62 files

LLVM/project ca22469libc/test/src/stdlib CMakeLists.txt

[libc][stdlib] Run freelist_heap_test only in full build mode. (#95850)

DeltaFile
+16-14libc/test/src/stdlib/CMakeLists.txt
+16-141 files

LLVM/project 6b54eccllvm/lib/Analysis DevelopmentModeInlineAdvisor.cpp, llvm/lib/Analysis/models gen-inline-oz-test-model.py

[mlgo] remove `inlining_default` - unused feature

The feature was only exposed for training and was immediately dropped on
the training side. It was bulk-copied into the test model generator, where
it had no effect (the generator always returns a constant).

In the AOT + test model case, since the test model returns a constant, all
input features are pruned by the AOT compiler, so its presence/absence
doesn't matter.
DeltaFile
+0-1llvm/lib/Analysis/DevelopmentModeInlineAdvisor.cpp
+0-1llvm/lib/Analysis/models/gen-inline-oz-test-model.py
+0-22 files

LLVM/project 1adf0facompiler-rt/lib/hwasan hwasan_dynamic_shadow.cpp, compiler-rt/lib/sanitizer_common sanitizer_common.h sanitizer_win.cpp

Revert "[HWASan] [compiler-rt] support non-4k pages on Android" (#95853)

Reverts llvm/llvm-project#95069

Broke windows bot
DeltaFile
+6-11compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cpp
+9-8compiler-rt/lib/sanitizer_common/sanitizer_common.h
+3-2compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
+3-2compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
+2-2compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
+2-2compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
+25-274 files not shown
+29-3510 files

LLVM/project 4a33a6cllvm/test/CodeGen/AMDGPU fp-atomics-gfx940.ll fp64-atomics-gfx90a.ll

AMDGPU: Add some addressing mode tests for flat atomic intrinsics

These are incorrectly matching with signed offsets.
DeltaFile
+276-0llvm/test/CodeGen/AMDGPU/fp-atomics-gfx940.ll
+228-0llvm/test/CodeGen/AMDGPU/fp64-atomics-gfx90a.ll
+504-02 files

LLVM/project 215d79dllvm/lib/Target/AMDGPU FLATInstructions.td AMDGPUInstructions.td, llvm/test/CodeGen/AMDGPU flat-atomicrmw-fadd.ll fp64-atomics-gfx90a.ll

AMDGPU: Flat instructions do not have signed offsets

Fixes some atomicrmw fadd and intrinsic cases. There are a few
more broken places using signed offsets.
DeltaFile
+58-16llvm/test/CodeGen/AMDGPU/flat-atomicrmw-fadd.ll
+42-12llvm/test/CodeGen/AMDGPU/fp64-atomics-gfx90a.ll
+22-23llvm/lib/Target/AMDGPU/FLATInstructions.td
+24-6llvm/test/CodeGen/AMDGPU/fp-atomics-gfx940.ll
+4-2llvm/test/Transforms/InferAddressSpaces/AMDGPU/flat_atomic.ll
+1-0llvm/lib/Target/AMDGPU/AMDGPUInstructions.td
+151-596 files

LLVM/project 3a2f7d8mlir/include/mlir/Target/LLVM/ROCDL Utils.h, mlir/lib/Dialect/GPU CMakeLists.txt

Revert "Reland [mlir][Target] Improve ROCDL gpu serialization API" (#95847)

Reverts llvm/llvm-project#95813
DeltaFile
+189-231mlir/lib/Target/LLVM/ROCDL/Target.cpp
+10-31mlir/include/mlir/Target/LLVM/ROCDL/Utils.h
+6-7mlir/lib/Target/LLVM/CMakeLists.txt
+1-1mlir/lib/Dialect/GPU/CMakeLists.txt
+206-2704 files

LLVM/project 6037a69llvm/include/llvm/Analysis MLInlineAdvisor.h, llvm/lib/Analysis MLInlineAdvisor.cpp

[mlgo] inline for size: add bypass mechanism for perserving performance (#95616)

This allows shrinking for size the cold part of the code, without sacrificing performance.
DeltaFile
+78-0llvm/test/Transforms/Inline/ML/bypass.ll
+17-1llvm/lib/Analysis/MLInlineAdvisor.cpp
+10-4llvm/lib/Analysis/models/gen-inline-oz-test-model.py
+2-0llvm/include/llvm/Analysis/MLInlineAdvisor.h
+107-54 files