LLVM/project 6554c6bllvm/include/llvm/Transforms/IPO Instrumentor.h, llvm/lib/Transforms/IPO Instrumentor.cpp

[Instrumentor] Add Ptr2Int instrumentation support
DeltaFile
+82-0llvm/test/Instrumentation/Instrumentor/ptrtoint.ll
+29-0llvm/include/llvm/Transforms/IPO/Instrumentor.h
+28-0llvm/lib/Transforms/IPO/Instrumentor.cpp
+27-0llvm/test/Instrumentation/Instrumentor/ptrtoint_config.json
+21-0llvm/test/Instrumentation/Instrumentor/default_config.json
+187-05 files

LLVM/project e9122d1libcxx/include/__mdspan extents.h, libcxx/test/std/containers/views/mdspan/extents ctor_from_integral.pass.cpp

[libc++][mdspan] Add missing `std::move` in `std::extents` (#196574)

Without this fix, libc++ rejects this example:

```cpp
#include <mdspan>

struct RValueInt {
  constexpr operator int() && noexcept { return 0; }
};

int main() {
  std::extents<int, std::dynamic_extent> e(RValueInt{});
}
```
DeltaFile
+15-0libcxx/test/std/containers/views/mdspan/extents/ctor_from_integral.pass.cpp
+1-1libcxx/include/__mdspan/extents.h
+16-12 files

LLVM/project 13c66dcllvm/lib/Analysis MemoryBuiltins.cpp

[MemoryBuiltins] Consistently infer and use MallocFamily

MallocFamily (the enum and StringRef) are used alongside AllocFnsTy.
The latter is picked up from the tables while the former is encoded in
the IR. While they should be merged at some point (see TODO), this
commit makes sure we consistently initialize the MallocFamily String and
pass it to users.
DeltaFile
+28-12llvm/lib/Analysis/MemoryBuiltins.cpp
+28-121 files

LLVM/project f943c3dllvm/include/llvm/Transforms/IPO Instrumentor.h, llvm/lib/Transforms/IPO Instrumentor.cpp

[Instrumentor] Add call instrumentation support

We can now instrument call instructions and extract information about
the arguments, (de)allocation, intrinsic kind, etc.
DeltaFile
+402-0llvm/test/Instrumentation/Instrumentor/call_allocation_deallocation.ll
+227-1llvm/lib/Transforms/IPO/Instrumentor.cpp
+139-0llvm/test/Instrumentation/Instrumentor/call_flags.ll
+77-0llvm/test/Instrumentation/Instrumentor/call_filters.ll
+60-0llvm/test/Instrumentation/Instrumentor/call_flags_config.json
+59-0llvm/include/llvm/Transforms/IPO/Instrumentor.h
+964-16 files not shown
+1,146-2612 files

LLVM/project e4673b1llvm/include/llvm/Analysis DependenceAnalysis.h, llvm/lib/Analysis DependenceAnalysis.cpp

[DA] Consolidate accumulating GCD functions (NFCI)
DeltaFile
+11-28llvm/lib/Analysis/DependenceAnalysis.cpp
+5-5llvm/include/llvm/Analysis/DependenceAnalysis.h
+16-332 files

LLVM/project 741a6f2clang/lib/AST ItaniumMangle.cpp

Revert "[Clang][ItaniumMangle][NFC] Refactor FunctionTypeDepthState (#196240)"

This reverts commit a2643354db14aaf892519e98bf450c3fc3701dfe.
DeltaFile
+42-28clang/lib/AST/ItaniumMangle.cpp
+42-281 files

LLVM/project 3e20d3dllvm/lib/Analysis DependenceAnalysis.cpp

[DA] Delete early return in accumulateCoefficientsGCD (NFCI) (#197935)

This patch resolved one TODO comment in `accumulateCoefficientsGCD`
regarding an early return. I think this early return doesn't change the
final result because:

- The presence/absence of this early return can only affect whether
`CurLoopCoeff` is set.
- Regardless the value of `CurLoopCoeff`, if `RunningGCD` equals 1, the
result of caller side while loop doesn't change.

Deleting this early return is somewhat beneficial, because it allows us
to merge `analyzeCoefficientsForGCD` into this function.
DeltaFile
+0-5llvm/lib/Analysis/DependenceAnalysis.cpp
+0-51 files

LLVM/project 813f2abllvm/test/CodeGen/Thumb2 mve-clmul.ll, llvm/test/CodeGen/X86 vector-replicaton-i1-mask.ll

Merge branch 'main' into users/kasuga-fj/da-resolve-todo-acc-gcd
DeltaFile
+1,243-8,768llvm/test/CodeGen/X86/vector-replicaton-i1-mask.ll
+3,699-3,716llvm/test/CodeGen/Thumb2/mve-clmul.ll
+0-4,752llvm/test/tools/llvm-mca/RISCV/SiFiveP800/vlseg-vsseg.s
+4,549-0llvm/test/tools/llvm-mca/RISCV/SiFiveP800/rvv/arithmetic.test
+3,729-0llvm/test/tools/llvm-mca/RISCV/SiFiveP800/rvv/fp.test
+3,149-0llvm/test/tools/llvm-mca/RISCV/SiFiveP800/rvv/vlseg-vsseg.test
+16,369-17,236850 files not shown
+69,835-48,750856 files

LLVM/project 77fbde0llvm/include/llvm/Analysis MemoryBuiltins.h, llvm/lib/Analysis MemoryBuiltins.cpp

[MemoryBuiltins][NFC] Clang format and fixed coding style
DeltaFile
+75-75llvm/lib/Analysis/MemoryBuiltins.cpp
+1-1llvm/include/llvm/Analysis/MemoryBuiltins.h
+76-762 files

LLVM/project dfdbb6cllvm/include/llvm/Analysis MemoryBuiltins.h, llvm/include/llvm/IR InstrTypes.h

[MemoryBuiltins][NFC] Allow users to retrieve detailed (de)allocation info

There are some helpers to inspect a value or call but not all
information about the (de)allocation are made available outside of
MemoryBuiltins.cpp. The two new functions allow users a more in-depth
view of (de)allocations through a single API. To help with this, we now
read the alloc_align attribute to provide better alignment information
to users. alloc-family is used as well. Two new helpers provide argument
numbers, rather than values.
DeltaFile
+97-33llvm/lib/Analysis/MemoryBuiltins.cpp
+42-0llvm/include/llvm/Analysis/MemoryBuiltins.h
+10-3llvm/lib/IR/Instructions.cpp
+4-0llvm/include/llvm/IR/InstrTypes.h
+153-364 files

LLVM/project 426b949llvm/lib/Analysis MemoryBuiltins.cpp

[MemoryBuiltins] Consistently infer and use MallocFamily

MallocFamily (the enum and StringRef) are used alongside AllocFnsTy.
The latter is picked up from the tables while the former is encoded in
the IR. While they should be merged at some point (see TODO), this
commit makes sure we consistently initialize the MallocFamily String and
pass it to users.
DeltaFile
+28-12llvm/lib/Analysis/MemoryBuiltins.cpp
+28-121 files

LLVM/project bb2d0d6llvm/include/llvm/Analysis MemoryBuiltins.h, llvm/include/llvm/IR InstrTypes.h

[MemoryBuiltins][NFC] Allow users to retrieve detailed (de)allocation info

There are some helpers to inspect a value or call but not all
information about the (de)allocation are made available outside of
MemoryBuiltins.cpp. The two new functions allow users a more in-depth
view of (de)allocations through a single API. To help with this, we now
read the alloc_align attribute to provide better alignment information
to users. alloc-family is used as well. Two new helpers provide argument
numbers, rather than values.
DeltaFile
+97-33llvm/lib/Analysis/MemoryBuiltins.cpp
+42-0llvm/include/llvm/Analysis/MemoryBuiltins.h
+10-3llvm/lib/IR/Instructions.cpp
+4-0llvm/include/llvm/IR/InstrTypes.h
+153-364 files

LLVM/project 59fbb7dllvm/lib/Analysis MemoryBuiltins.cpp

[MemoryBuiltins] Consistently infer and use MallocFamily

MallocFamily (the enum and StringRef) are used alongside AllocFnsTy.
The latter is picked up from the tables while the former is encoded in
the IR. While they should be merged at some point (see TODO), this
commit makes sure we consistently initialize the MallocFamily String and
pass it to users.
DeltaFile
+28-12llvm/lib/Analysis/MemoryBuiltins.cpp
+28-121 files

LLVM/project 13442edllvm/include/llvm/Analysis MemoryBuiltins.h, llvm/include/llvm/IR InstrTypes.h

[MemoryBuiltins][NFC] Allow users to retrieve detailed (de)allocation info

There are some helpers to inspect a value or call but not all
information about the (de)allocation are made available outside of
MemoryBuiltins.cpp. The two new functions allow users a more in-depth
view of (de)allocations through a single API. To help with this, we now
read the alloc_align attribute to provide better alignment information
to users. alloc-family is used as well. Two new helpers provide argument
numbers, rather than values.
DeltaFile
+97-33llvm/lib/Analysis/MemoryBuiltins.cpp
+42-0llvm/include/llvm/Analysis/MemoryBuiltins.h
+10-3llvm/lib/IR/Instructions.cpp
+4-0llvm/include/llvm/IR/InstrTypes.h
+153-364 files

LLVM/project 8f740a3clang-tools-extra/clang-tidy/misc StaticInitializationCycleCheck.cpp, clang-tools-extra/test/clang-tidy/checkers/misc static-initialization-cycle.cpp

[clang-tidy] Fix crash in misc-static-initialization-cycle (#198155)

This commit fixes `misc-static-initialization-cycle` crashing on `catch
(...)`.

Catch-all handlers have no exception declaration, so traversal of
`CXXCatchStmt` can call `TraverseDecl(nullptr)`. The check previously
passed that null pointer to `DeclContext::containsDecl`. This commit
fixes the problem by adding a null guard.

Closes #198150
DeltaFile
+8-0clang-tools-extra/test/clang-tidy/checkers/misc/static-initialization-cycle.cpp
+1-1clang-tools-extra/clang-tidy/misc/StaticInitializationCycleCheck.cpp
+9-12 files

LLVM/project d191c2allvm/include/llvm/Analysis MemoryBuiltins.h, llvm/lib/Analysis MemoryBuiltins.cpp

[MemoryBuiltins][NFC] Clang format and fixed coding style
DeltaFile
+75-75llvm/lib/Analysis/MemoryBuiltins.cpp
+1-1llvm/include/llvm/Analysis/MemoryBuiltins.h
+76-762 files

LLVM/project e557242flang/lib/Semantics check-omp-structure.cpp check-omp-structure.h

[flang][OpenMP] Simplify checks for type-parameter inquiry

Remove the no longer needed IsDataRefTypeParamInquiry.
DeltaFile
+23-47flang/lib/Semantics/check-omp-structure.cpp
+2-1flang/lib/Semantics/check-omp-structure.h
+25-482 files

LLVM/project 3d3f4becompiler-rt/lib/sanitizer_common/tests sanitizer_stackdepot_test.cpp

[compiler-rt] Fix StackDepot benchmark thread barrier (#197633)

Use Param.Threads (number of worker threads) as barrier threshold
instead of Param.UniqueThreads (boolean that controls input generation).

This also silences
[-Wbool-integral-comparison](https://github.com/llvm/llvm-project/pull/194180)
warning I'm working on.
DeltaFile
+2-2compiler-rt/lib/sanitizer_common/tests/sanitizer_stackdepot_test.cpp
+2-21 files

LLVM/project 938211bllvm/lib/Transforms/Vectorize LoopVectorizationPlanner.cpp LoopVectorize.cpp

[LV] Move isMoreProfitable to LoopVectorizationPlanner.cpp (NFC). (#195269)

isMoreProfitable does not depend on anything in LoopVectorize.cpp, move
it to the recently added LoopVectorizationPlanner.cpp.

PR: https://github.com/llvm/llvm-project/pull/195269
DeltaFile
+90-0llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.cpp
+0-90llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+90-902 files

LLVM/project 6a14487llvm/lib/Target/AArch64 AArch64LowerHomogeneousPrologEpilog.cpp AArch64.h

[NewPM] Add newpm port for AArch64LowerHomogeneousPrologEpilog (#197606)
DeltaFile
+33-17llvm/lib/Target/AArch64/AArch64LowerHomogeneousPrologEpilog.cpp
+7-1llvm/lib/Target/AArch64/AArch64.h
+1-1llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+1-0llvm/lib/Target/AArch64/AArch64PassRegistry.def
+42-194 files

LLVM/project 3a1206allvm/test/Transforms/LoopVectorize epilog-iv-select-cmp.ll

[LV] Add find-last-iv test with blend (NFC). (#198214)

Add test cases showing functional change for
https://github.com/llvm/llvm-project/pull/194729.
DeltaFile
+78-2llvm/test/Transforms/LoopVectorize/epilog-iv-select-cmp.ll
+78-21 files

LLVM/project 5f2bedcclang/include/clang/AST ASTContext.h, clang/include/clang/Basic Builtins.td

Add clang warning if fp exception functions are called without appropriate flags/pragmas (#187860)

Fixes https://github.com/llvm/llvm-project/issues/128239

The implementation adds warnings for floating-point exception function
calls (fenv.h) made without enabling floating-point exception behavior
via `-ffp-exception-behavior=maytrap/strict` or `#pragma STDC
FENV_ACCESS ON`. To support recognition of all fenv.h builtins,
`fexcept_t` and `fenv_t` were added as builtin types.
DeltaFile
+68-0clang/test/Sema/fenv-access.c
+55-0clang/include/clang/Basic/Builtins.td
+51-0clang/test/Sema/builtin-fenv.c
+36-0clang/lib/Serialization/ASTReader.cpp
+34-1clang/include/clang/AST/ASTContext.h
+35-0clang/test/Sema/fenv-access-implicit.c
+279-114 files not shown
+424-220 files

LLVM/project c5c8e91llvm/lib/Transforms/Instrumentation IndirectCallPromotion.cpp

[ICP] Update comment about duplicate values in VP MD

With https://github.com/llvm/llvm-project/pull/196649 deduplicating VP
values and https://github.com/llvm/llvm-project/pull/193083 enforcing
this, we no longer need to worry about duplicate values, zero or
otherwise. Update the comment to reflect this.

Reviewers: mingmingl-llvm, teresajohnson

Reviewed By: mingmingl-llvm

Pull Request: https://github.com/llvm/llvm-project/pull/198140
DeltaFile
+3-3llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
+3-31 files

LLVM/project 46c1fa8llvm/lib/Transforms/Vectorize LoopVectorize.cpp

[VPlan] Use ResumeForEpilogue to get epilogue vector trip count (NFC). (#198210)

Use ResumeForEpilogue to look up the vector trip count instead of plain
IR lookup. Also prepares for non-phi resume values.
DeltaFile
+26-23llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+26-231 files

LLVM/project 856f7d4llvm/lib/Transforms/Vectorize LoopVectorize.cpp

[LV] Extract helper to simplify phi removal in connectEpiVectorL (NFC) (#198203)

Extract the repeated edge-redirect + DomTree update pattern into a
RedirectEdge lambda, and convert the separate removeIncomingValue calls
for check blocks into a loop.
DeltaFile
+21-31llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+21-311 files

LLVM/project 1745344clang/test/CodeGen/AArch64 neon-perm.c, clang/test/CodeGen/AArch64/neon perm.c

rebase

Created using spr 1.3.7
DeltaFile
+1,250-1,357llvm/test/CodeGen/X86/avx512-calling-conv.ll
+203-915llvm/test/CodeGen/X86/vector-compress.ll
+158-868llvm/test/CodeGen/X86/avx512-ext.ll
+154-866llvm/test/CodeGen/X86/avx512-mask-op.ll
+492-120clang/test/CodeGen/AArch64/neon/perm.c
+0-383clang/test/CodeGen/AArch64/neon-perm.c
+2,257-4,509144 files not shown
+4,879-5,730150 files

LLVM/project e78a23cclang/test/CodeGen/AArch64 neon-perm.c, clang/test/CodeGen/AArch64/neon perm.c

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+1,250-1,357llvm/test/CodeGen/X86/avx512-calling-conv.ll
+203-915llvm/test/CodeGen/X86/vector-compress.ll
+158-868llvm/test/CodeGen/X86/avx512-ext.ll
+154-866llvm/test/CodeGen/X86/avx512-mask-op.ll
+492-120clang/test/CodeGen/AArch64/neon/perm.c
+0-383clang/test/CodeGen/AArch64/neon-perm.c
+2,257-4,509144 files not shown
+4,879-5,730150 files

LLVM/project df90525llvm/lib/Transforms/Scalar JumpTableToSwitch.cpp

[JTS] Readd assertion

Now that VP metadata has been cleaned up a little bit, we can reenable
this assertion.

Reviewers: alexander-shaposhnikov, mtrofin

Pull Request: https://github.com/llvm/llvm-project/pull/198141
DeltaFile
+3-4llvm/lib/Transforms/Scalar/JumpTableToSwitch.cpp
+3-41 files

LLVM/project 94584e7llvm/lib/Transforms/Scalar JumpTableToSwitch.cpp

rebase

Created using spr 1.3.7
DeltaFile
+3-4llvm/lib/Transforms/Scalar/JumpTableToSwitch.cpp
+3-41 files

LLVM/project 56ef779llvm/lib/Transforms/Scalar JumpTableToSwitch.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+3-4llvm/lib/Transforms/Scalar/JumpTableToSwitch.cpp
+3-41 files