[all-commits] [llvm/llvm-project] 02b49d: [ValueTracking] Add tests for computing known bits...
Fangrui Song via All-commits
all-commits at lists.llvm.org
Fri Apr 5 10:30:11 PDT 2024
Branch: refs/heads/users/MaskRay/spr/sema-mark-aliasifunc-targets-used-and-consider-mangled-names
Home: https://github.com/llvm/llvm-project
Commit: 02b49d14a50cbfad0196cdddba6771f0593fdc3b
https://github.com/llvm/llvm-project/commit/02b49d14a50cbfad0196cdddba6771f0593fdc3b
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/test/Transforms/InstCombine/known-bits.ll
Log Message:
-----------
[ValueTracking] Add tests for computing known bits from `(icmp eq (and/or x,y), C)`; NFC
Commit: 05cff99a29b2df17142907aa81ae488559756f01
https://github.com/llvm/llvm-project/commit/05cff99a29b2df17142907aa81ae488559756f01
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/InstCombine/known-bits.ll
M llvm/test/Transforms/InstCombine/zext-or-icmp.ll
Log Message:
-----------
[ValueTracking] Infer known bits fromfrom `(icmp eq (and/or x,y), C)`
In `(icmp eq (and x,y), C)` all 1s in `C` must also be set in both
`x`/`y`.
In `(icmp eq (or x,y), C)` all 0s in `C` must also be set in both
`x`/`y`.
Closes #87143
Commit: 74447cf46f97f24f52ac6675d642e6cc771447bb
https://github.com/llvm/llvm-project/commit/74447cf46f97f24f52ac6675d642e6cc771447bb
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
A llvm/test/Transforms/InstCombine/implies.ll
M llvm/test/Transforms/InstSimplify/implies.ll
Log Message:
-----------
[ValueTracking] Add tests for deducing more conditions in `isTruePredicate`; NFC
Commit: 678f32ab66508aea2068a5e4e07d53b71ce5cf31
https://github.com/llvm/llvm-project/commit/678f32ab66508aea2068a5e4e07d53b71ce5cf31
Author: Noah Goldstein <goldstein.w.n at gmail.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/test/Transforms/InstCombine/implies.ll
M llvm/test/Transforms/InstSimplify/implies.ll
Log Message:
-----------
[ValueTracking] Add more conditions in to `isTruePredicate`
There is one notable "regression". This patch replaces the bespoke `or
disjoint` logic we a direct match. This means we fail some
simplification during `instsimplify`.
All the cases we fail in `instsimplify` we do handle in `instcombine`
as we add `disjoint` flags.
Other than that, just some basic cases.
See proofs: https://alive2.llvm.org/ce/z/_-g7C8
Closes #86083
Commit: 515d3f7d62679cba178fb3603db963baa6ec8c93
https://github.com/llvm/llvm-project/commit/515d3f7d62679cba178fb3603db963baa6ec8c93
Author: Cyndy Ishida <cyndy_ishida at apple.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/include/llvm/TextAPI/InterfaceFile.h
M llvm/lib/TextAPI/InterfaceFile.cpp
M llvm/lib/TextAPI/TextStubV5.cpp
M llvm/unittests/TextAPI/TextStubV5Tests.cpp
Log Message:
-----------
[TextAPI] Reorder addRPath parameters (#87601)
It matches up with other _attribute_ adding member functions and helps
simplify InterfaceFile assignment for InstallAPI.
Commit: d97d560fbf6ed26a198b3afe1594d7d63b88ab3a
https://github.com/llvm/llvm-project/commit/d97d560fbf6ed26a198b3afe1594d7d63b88ab3a
Author: Daniil Kovalev <dkovalev at accesssoftek.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/lib/IR/Verifier.cpp
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
A llvm/test/CodeGen/AArch64/note-gnu-property-elf-pauthabi.ll
A llvm/test/Verifier/module-flags-note-gnu-property-elf-pauthabi.ll
Log Message:
-----------
[AArch64][PAC][MC][ELF] Support PAuth ABI compatibility tag (#85236)
Depends on #87545
Emit `GNU_PROPERTY_AARCH64_FEATURE_PAUTH` property in
`.note.gnu.property` section depending on
`aarch64-elf-pauthabi-platform` and `aarch64-elf-pauthabi-version` llvm
module flags.
Commit: 53fe94a0ce262c6e38117429a30814f54ea55b0f
https://github.com/llvm/llvm-project/commit/53fe94a0ce262c6e38117429a30814f54ea55b0f
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
A llvm/test/Analysis/CostModel/X86/masked-intrinsic-codesize.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost-inseltpoison.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll
A llvm/test/Analysis/CostModel/X86/masked-intrinsic-latency.ll
A llvm/test/Analysis/CostModel/X86/masked-intrinsic-sizelatency.ll
Log Message:
-----------
[CostModel][X86] Add costkinds test coverage for masked load/store/gather/scatter
Noticed while starting triage for #87640
Commit: c83f23d6abb6f8d693c643bc1b43f9b9e06bc537
https://github.com/llvm/llvm-project/commit/c83f23d6abb6f8d693c643bc1b43f9b9e06bc537
Author: Eli Friedman <efriedma at quicinc.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.td
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
M llvm/test/CodeGen/AArch64/aarch64-fold-lslfast.ll
M llvm/test/CodeGen/AArch64/aarch64-split-and-bitmask-immediate.ll
M llvm/test/CodeGen/AArch64/arm64-addr-mode-folding.ll
M llvm/test/CodeGen/AArch64/arm64-vector-ldst.ll
M llvm/test/CodeGen/AArch64/avoid-free-ext-promotion.ll
M llvm/test/CodeGen/AArch64/cheap-as-a-move.ll
M llvm/test/CodeGen/AArch64/extract-bits.ll
M llvm/test/CodeGen/AArch64/machine-licm-hoist-load.ll
M llvm/test/CodeGen/AArch64/sink-and-fold.ll
Log Message:
-----------
[AArch64] Fix heuristics for folding "lsl" into load/store ops. (#86894)
The existing heuristics were assuming that every core behaves like an
Apple A7, where any extend/shift costs an extra micro-op... but in
reality, nothing else behaves like that.
On some older Cortex designs, shifts by 1 or 4 cost extra, but all other
shifts/extensions are free. On all other cores, as far as I can tell,
all shifts/extensions for integer loads are free (i.e. the same cost as
an unshifted load).
To reflect this, this patch:
- Enables aggressive folding of shifts into loads by default.
- Removes the old AddrLSLFast feature, since it applies to everything
except A7 (and even if you are explicitly targeting A7, we want to
assume extensions are free because the code will almost always run on a
newer core).
- Adds a new feature AddrLSLSlow14 that applies specifically to the
Cortex cores where shifts by 1 or 4 cost extra.
I didn't add support for AddrLSLSlow14 on the GlobalISel side because it
would require a bunch of refactoring to work correctly. Someone can pick
this up as a followup.
Commit: 5ae143da459a73d0f6fc796d42c3fabf3ab5f9e8
https://github.com/llvm/llvm-project/commit/5ae143da459a73d0f6fc796d42c3fabf3ab5f9e8
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
A llvm/test/Transforms/SLPVectorizer/X86/external-user-instruction-minbitwidth.ll
Log Message:
-----------
[SLP]Add a test with the incorrect casting for external user, NFC.
Commit: 8004ce236795d48063c636d1ce4818ebcb526b21
https://github.com/llvm/llvm-project/commit/8004ce236795d48063c636d1ce4818ebcb526b21
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M libc/src/__support/RPC/rpc.h
Log Message:
-----------
[libc] Move thread sync when closing port earlier
Summary:
This synchronization should be done before we handle the logic relating
to closing the port. This isn't majorly important now but it would break
if we ever decided to run a server on the GPU.
Commit: d6713ad80d6907210c629f22babaf12177fa329c
https://github.com/llvm/llvm-project/commit/d6713ad80d6907210c629f22babaf12177fa329c
Author: Kevin Frei <kevinfrei at users.noreply.github.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Plugins/SymbolLocator/CMakeLists.txt
M lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
A lldb/test/API/debuginfod/Normal/Makefile
A lldb/test/API/debuginfod/Normal/TestDebuginfod.py
A lldb/test/API/debuginfod/Normal/main.c
A lldb/test/API/debuginfod/SplitDWARF/Makefile
A lldb/test/API/debuginfod/SplitDWARF/TestDebuginfodDWP.py
A lldb/test/API/debuginfod/SplitDWARF/main.c
Log Message:
-----------
Debuginfod Testing & fixes: 3rd times the charm? (#87676)
I believe I've got the tests properly configured to only run on Linux
x86(_64), as I don't have a Linux AArch64/Arm device to diagnose what's
going wrong with the tests (I suspect there's some issue with generating
`.note.gnu.build-id` sections...)
The actual code fixes have now been reviewed 3 times:
https://github.com/llvm/llvm-project/pull/79181 (moved shell tests to
API tests), https://github.com/llvm/llvm-project/pull/85693 (Changed
some of the testing infra), and
https://github.com/llvm/llvm-project/pull/86812 (didn't get the tests
configured quite right). The Debuginfod integration for symbol
acquisition in LLDB now works with the `executable` and `debuginfo`
Debuginfod network requests working properly for normal, `objcopy
--only-keep-debug` stripped, split-dwarf, and `objcopy
--only-keep-debug` stripped *plus* split-dwarf symbols/binaries.
The reasons for the multiple attempts have been tests on platforms I
don't have access to (Linux AArch64/Arm + MacOS x86_64). I believe I've
got the tests properly disabled for everything except for Linux x86(_64)
now. I've built & tested on MacOS AArch64 and Linux x86_64.
---------
Co-authored-by: Kevin Frei <freik at meta.com>
Commit: b798c2af8b8888f8db2a9ec293066fb72d893f0c
https://github.com/llvm/llvm-project/commit/b798c2af8b8888f8db2a9ec293066fb72d893f0c
Author: Mark de Wever <koraq at xs4all.nl>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M .github/workflows/libcxx-build-and-test.yaml
M libcxx/docs/index.rst
M libcxx/test/libcxx/atomics/diagnose_invalid_memory_order.verify.cpp
M libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/no_unique_address.compile.pass.cpp
M libcxx/test/libcxx/ranges/range.adaptors/range.split/no_unique_address.compile.pass.cpp
M libcxx/test/libcxx/ranges/range.factories/range.istream.view/no_unique_address.compile.pass.cpp
Log Message:
-----------
[libc++][CI] Updates to Clang 19. (#85301)
Since we have released Clang 16 is no longer actively supported. However
the FreeBSD runner is still using this, so some tests still guard
against Clang 16.
Commit: eeaaf33fc296d52a28252ba0d6cfe187b7b3412f
https://github.com/llvm/llvm-project/commit/eeaaf33fc296d52a28252ba0d6cfe187b7b3412f
Author: Jonathan Peyton <jonathan.l.peyton at intel.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M openmp/runtime/test/affinity/kmp-abs-hw-subset.c
Log Message:
-----------
[OpenMP] Unsupport absolute KMP_HW_SUBSET test for s390x (#87555)
Commit: 8a0bfe490592de3df28d82c5dd69956e43c20f1d
https://github.com/llvm/llvm-project/commit/8a0bfe490592de3df28d82c5dd69956e43c20f1d
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/test/Transforms/SLPVectorizer/X86/external-user-instruction-minbitwidth.ll
Log Message:
-----------
[SLP]Fix PR87630: wrong result for externally used vector value.
Need to check that the externally used value can be represented with the
BitWidth before applying it, otherwise need to keep wider type.
Commit: 9a0ae081047d7088cdecfa86a8c90b721485e418
https://github.com/llvm/llvm-project/commit/9a0ae081047d7088cdecfa86a8c90b721485e418
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
Log Message:
-----------
[NFC][HWASAN] Simplify `selectiveInstrumentationShouldSkip` (#87670)
Commit: c0c11e788a30e01128776bdd2f206c2a0d799a1f
https://github.com/llvm/llvm-project/commit/c0c11e788a30e01128776bdd2f206c2a0d799a1f
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out.ll
Log Message:
-----------
[NFC][HWASAN] Cleanup opt opt test (#87687)
Main change is replacing DEFAULT with HOT99.
I'll remove DEFAULT related functionality in the followup patches.
Commit: beded9b9ceab19f81320c7cf5e3600a7745c8f05
https://github.com/llvm/llvm-project/commit/beded9b9ceab19f81320c7cf5e3600a7745c8f05
Author: Florian Mayer <fmayer at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M compiler-rt/lib/hwasan/hwasan_thread_list.h
Log Message:
-----------
[HWASan] Allow stack_history_size of 4096 (#86362)
There is no reason to limit the minimum to two pages.
Commit: 7e87d03b45f3ca0f6d9c09e8e9090329cc84592e
https://github.com/llvm/llvm-project/commit/7e87d03b45f3ca0f6d9c09e8e9090329cc84592e
Author: Keyi Zhang <Kuree at users.noreply.github.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
M mlir/test/Dialect/ControlFlow/ops.mlir
Log Message:
-----------
[MLIR][CF] Fix cf.switch parsing with result numbers (#87658)
This PR should fix the parsing bug reported in
https://github.com/llvm/llvm-project/issues/87430. It allows using
result number as the `cf.switch` operand.
Commit: ce46b400d568994c45361c3061554bd2b2e81b8b
https://github.com/llvm/llvm-project/commit/ce46b400d568994c45361c3061554bd2b2e81b8b
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/test/Transforms/RemoveTraps/remove-traps.ll
Log Message:
-----------
[NFC][UBSAN] Similar to #87687 for UBSAN
Commit: dad065dc6e03725aeb60d703cbaccd175a2f1d53
https://github.com/llvm/llvm-project/commit/dad065dc6e03725aeb60d703cbaccd175a2f1d53
Author: Jeff Niu <jeff at modular.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
A mlir/test/mlir-tblgen/op-properties.td
M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
Log Message:
-----------
[mlir][ods] Fix attribute setter gen when properties are on (#87688)
ODS was still generating the old `Operation::setAttr` hooks for ODS
methods for setting attributes, when the backing implementation of the
attributes was changed to properties. No idea how this wasn't noticed
until now.
Commit: f2a0dd3305beb0e69eb165c31c40214c16278697
https://github.com/llvm/llvm-project/commit/f2a0dd3305beb0e69eb165c31c40214c16278697
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M flang/lib/Semantics/check-declarations.cpp
M flang/test/Semantics/cuf03.cuf
Log Message:
-----------
[flang][cuda] Add restriction on assumed size device variable (#87664)
According to
https://docs.nvidia.com/hpc-sdk/compilers/cuda-fortran-prog-guide/#cfpg-var-qual-attr-device
> A device array may be an explicit-shape array, an allocatable array,
or an assumed-shape dummy array.
Assumed size array are not supported. This patch adds an error for that
case.
Commit: c91a0a28908ec48f3775cdacede66163eb6339ff
https://github.com/llvm/llvm-project/commit/c91a0a28908ec48f3775cdacede66163eb6339ff
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/include/llvm/IR/Intrinsics.td
Log Message:
-----------
[builtin][NFC] Remove ClangBuiltin<"__builtin_allow_ubsan_check"> (#87581)
We don't need clang builtin for this one.
It was copy pasted from `__builtin_allow_runtime_check`
RFC:
https://discourse.llvm.org/t/rfc-add-llvm-experimental-hot-intrinsic-or-llvm-hot/77641
Commit: dfaa144d0ca15839d1d11af472a4b7e2d2c6b7ec
https://github.com/llvm/llvm-project/commit/dfaa144d0ca15839d1d11af472a4b7e2d2c6b7ec
Author: Florian Mayer <fmayer at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M compiler-rt/lib/hwasan/hwasan_thread_list.h
Log Message:
-----------
[NFC] [HWASan] clarify FIXME comment (#87689)
Commit: df69a305253f1d1b4a4066055a07101a4cc03e55
https://github.com/llvm/llvm-project/commit/df69a305253f1d1b4a4066055a07101a4cc03e55
Author: Ian Anderson <iana at apple.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M clang/lib/Headers/__stddef_unreachable.h
Log Message:
-----------
[Headers] Don't declare unreachable() from stddef.h in C++ (#86748)
Even if __need_unreachable is set, stddef.h should not declare
unreachable() in C++ because it conflicts with the declaration in
\<utility>.
Commit: 74373c1bef3d35b03c9dc6186229abf74556b256
https://github.com/llvm/llvm-project/commit/74373c1bef3d35b03c9dc6186229abf74556b256
Author: Victor Campos <victor.campos at arm.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/lib/Target/ARM/Thumb2InstrInfo.cpp
M llvm/lib/Target/ARM/Thumb2InstrInfo.h
R llvm/test/CodeGen/ARM/misched-branch-targets.mir
Log Message:
-----------
Revert "[ARM][Thumb2] Mark BTI-clearing instructions as scheduling region boundaries" (#87699)
Reverts llvm/llvm-project#79173
The testcase fails in non-asserts builds.
Commit: fd2a5c46d8450f0f37a468d4e5f06a9662abae2d
https://github.com/llvm/llvm-project/commit/fd2a5c46d8450f0f37a468d4e5f06a9662abae2d
Author: Kazu Hirata <kazu at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/lib/ProfileData/InstrProfWriter.cpp
Log Message:
-----------
[memprof] Introduce writeMemProf (NFC) (#87698)
This patch refactors the serialization of MemProf data to a switch
statement style:
switch (Version) {
case Version0:
return ...;
case Version1:
return ...;
}
just like IndexedMemProfRecord::serialize.
A reasonable amount of code is shared and factored out to helper
functions between writeMemProfV0 and writeMemProfV1 to the extent that
doens't hamper readability.
Commit: 5aeb604c7ce417eea110f9803a6c5cb1cdbc5372
https://github.com/llvm/llvm-project/commit/5aeb604c7ce417eea110f9803a6c5cb1cdbc5372
Author: MaheshRavishankar <1663364+MaheshRavishankar at users.noreply.github.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M mlir/include/mlir/Dialect/Affine/LoopUtils.h
M mlir/include/mlir/Dialect/SCF/Utils/Utils.h
M mlir/include/mlir/IR/PatternMatch.h
M mlir/lib/Dialect/Affine/Transforms/LoopCoalescing.cpp
M mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp
M mlir/lib/Dialect/SCF/TransformOps/SCFTransformOps.cpp
M mlir/lib/Dialect/SCF/Transforms/ParallelLoopCollapsing.cpp
M mlir/lib/Dialect/SCF/Utils/Utils.cpp
M mlir/lib/IR/PatternMatch.cpp
M mlir/test/Dialect/Affine/loop-coalescing.mlir
M mlir/test/Dialect/SCF/transform-op-coalesce.mlir
M mlir/test/Transforms/parallel-loop-collapsing.mlir
M mlir/test/Transforms/single-parallel-loop-collapsing.mlir
Log Message:
-----------
[mlir][SCF] Modernize `coalesceLoops` method to handle `scf.for` loops with iter_args (#87019)
As part of this extension this change also does some general cleanup
1) Make all the methods take `RewriterBase` as arguments instead of
creating their own builders that tend to crash when used within
pattern rewrites
2) Split `coalesePerfectlyNestedLoops` into two separate methods, one
for `scf.for` and other for `affine.for`. The templatization didnt
seem to be buying much there.
Also general clean up of tests.
Commit: f5960c168dfe17c7599acea0a7d94a26545f4777
https://github.com/llvm/llvm-project/commit/f5960c168dfe17c7599acea0a7d94a26545f4777
Author: Nikolas Klauser <nikolasklauser at berlin.de>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M libcxx/include/CMakeLists.txt
M libcxx/include/__algorithm/comp.h
M libcxx/include/__algorithm/equal.h
M libcxx/include/__algorithm/mismatch.h
M libcxx/include/__algorithm/pstl_backends/cpu_backends/transform_reduce.h
M libcxx/include/__functional/operations.h
M libcxx/include/__functional/ranges_operations.h
M libcxx/include/__numeric/pstl_transform_reduce.h
A libcxx/include/__type_traits/desugars_to.h
R libcxx/include/__type_traits/operation_traits.h
M libcxx/include/libcxx.imp
M libcxx/include/module.modulemap
Log Message:
-----------
[libc++][NFC] Make __desugars_to a variable template and rename the header to desugars_to.h (#87337)
This improves compile times and memory usage slightly and removes some
boilerplate.
Commit: 864d2531df8078a5bb49d24383d7219595d23690
https://github.com/llvm/llvm-project/commit/864d2531df8078a5bb49d24383d7219595d23690
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
A flang/include/flang/Common/windows-include.h
M flang/runtime/command.cpp
M flang/runtime/execute.cpp
M flang/runtime/file.cpp
M flang/runtime/lock.h
Log Message:
-----------
[flang] Added windows-include.h wrapper to resolve name conflicts. (#87650)
The header file includes windows.h in a mean-and-lean way to avoid
bringing in names that may conflict with Flang code.
Commit: 03f54725c3f2b26bfef052b9f4b5deee749e5369
https://github.com/llvm/llvm-project/commit/03f54725c3f2b26bfef052b9f4b5deee749e5369
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
M llvm/lib/Transforms/Instrumentation/RemoveTrapsPass.cpp
M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out.ll
M llvm/test/Transforms/RemoveTraps/remove-traps.ll
Log Message:
-----------
[HWASAN][UBSAN] Don't use default `profile-summary-cutoff-hot` (#87691)
Default cutoff is not usefull here. Decision to
enable or not sanitizer causes more significant
performance impact, than a typical optimizations
which rely on `profile-summary-cutoff-hot`.
Commit: 5264c22ef15a308bad420cd85051ed6c4c175bc7
https://github.com/llvm/llvm-project/commit/5264c22ef15a308bad420cd85051ed6c4c175bc7
Author: Michael Jones <michaelrj at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/include/llvm-libc-macros/math-macros.h
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[libc] Temporary math macros fix (#87681)
Downstream's having some issues due to math-macros.h issues. These will
be fixed properly soon.
See https://github.com/llvm/llvm-project/issues/87683 for tracking this
tech debt.
Commit: 2cbbbf71a4fbff9f7015d83a599428ea9ec9dab7
https://github.com/llvm/llvm-project/commit/2cbbbf71a4fbff9f7015d83a599428ea9ec9dab7
Author: Chenguang Wang <w3cing at gmail.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
[bazel] Add missing dependency for mlir:SCFUtils (#87711)
https://github.com/llvm/llvm-project/commit/5aeb604c7ce417eea110f9803a6c5cb1cdbc5372
https://buildkite.com/llvm-project/upstream-bazel/builds/93859
Commit: e628581aaab18cbd9bd33a4a42c57da0e018d32f
https://github.com/llvm/llvm-project/commit/e628581aaab18cbd9bd33a4a42c57da0e018d32f
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
M llvm/lib/Transforms/Instrumentation/RemoveTrapsPass.cpp
Log Message:
-----------
[NFC][HWASAN][UBSAN] Remove cl:init from few opts (#87692)
They are supposed to be used with `getNumOccurrences`.
Commit: 18380c522a90dd849caca3da28cd26c4c4c53eaf
https://github.com/llvm/llvm-project/commit/18380c522a90dd849caca3da28cd26c4c4c53eaf
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
M clang/test/CodeGen/remote-traps.c
M llvm/include/llvm/Transforms/Instrumentation/RemoveTrapsPass.h
M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
M llvm/lib/Transforms/Instrumentation/RemoveTrapsPass.cpp
M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out-no-ps.ll
M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out.ll
Log Message:
-----------
[UBSAN][HWASAN] Remove redundant flags (#87709)
Presense of `cutoff-hot` or `random-skip-rate`
should be enough to trigger optimization.
Commit: 697dd93ae30f489e5bcdac74c2ef2d876e3ca064
https://github.com/llvm/llvm-project/commit/697dd93ae30f489e5bcdac74c2ef2d876e3ca064
Author: Koakuma <koachan at protonmail.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/docs/LangRef.rst
M llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
M llvm/test/CodeGen/SPARC/inlineasm-bad.ll
M llvm/test/CodeGen/SPARC/inlineasm.ll
Log Message:
-----------
[SPARC] Implement L and H inline asm argument modifiers (#87259)
This adds support for using the L and H argument modifiers for twinword
operands in inline asm code, such as in:
```
%1 = tail call i64 asm sideeffect "rd %pc, ${0:L} ; srlx ${0:L}, 32, ${0:H}", "={o4}"()
```
This is needed by the Linux kernel.
Commit: aa6ba23235b4418d528fe8df4d1cd6d2ad50ceb2
https://github.com/llvm/llvm-project/commit/aa6ba23235b4418d528fe8df4d1cd6d2ad50ceb2
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Instrumentation/RemoveTrapsPass.cpp
Log Message:
-----------
[UBSAN] Remove invalid assert added with #87709
Commit: 75e7e7d327e0458b151fbe1e6b3a9ac0a5081f76
https://github.com/llvm/llvm-project/commit/75e7e7d327e0458b151fbe1e6b3a9ac0a5081f76
Author: Michael Kruse <llvm-project at meinersbur.de>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang/include/clang/Driver/Options.td
M flang/.gitignore
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-as
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld.bfd
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld.gold
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-as
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld.bfd
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld.gold
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/as
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld.bfd
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld.gold
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/lib/.keep
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/i386-unknown-linux-gnu/10.2.0/crtbegin.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbegin.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbeginT.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtfastmath.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbegin.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbeginT.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtfastmath.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/as
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.bfd
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.gold
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.lld
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/lib/.keep
M flang/test/Driver/driver-help-hidden.f90
M flang/test/Driver/driver-help.f90
A flang/test/Driver/gcc-toolchain-install-dir.f90
Log Message:
-----------
[flang] Add --gcc-toolchain and --gcc-install-dir options to flang. (#87360)
The `--gcc-toolchain` and `--gcc-install-dir` option were previously only visible to the Clang driver, but not Flang. These determine which assembler, linker, and libraries to use, e.g. for cross-compiling, and therefore are relevant for Flang as well.
Tests are implemented using a mock GCC installation in `basic_cross_linux_tree` copied over from Clang's tests. The Clang driver already contains tests with `--driver-mode=flang` but `flang-new` is an entirely different executable (containing the `-fc1` stage) that should be tested as well. While not all files in `basic_cross_linux_tree` are strictly needed for testing those two driver flags, they will be necessarily needed for future added flags such as `--rtlib`.
Also remove the entry `*.o` in flang's `.gitignore` since `crt*.o` files are needed in the GCC mock installation.
Fixes #86729
Commit: 4b077ed58e3b61e29ae2dbc157fc8122fda1f36c
https://github.com/llvm/llvm-project/commit/4b077ed58e3b61e29ae2dbc157fc8122fda1f36c
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M utils/bazel/.bazelrc
M utils/bazel/configure.bzl
A utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
A utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
A utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl
Log Message:
-----------
[bazel] Add support for building lldb (#87589)
This adds build configuration for building LLDB on macOS and Linux. It
uses a default subset of features that should work out of the box with
macOS + Ubuntu. It is notably missing python support right now, although
some of the scaffolding is there, because of the complexity of linking a
python dylib, especially if you plan to distribute the resulting
liblldb.so.
Most of this build file is pretty simple, one of the unfortunate
patterns I had to use was to split the header and sources cc_library
targets to break circular dependencies.
Commit: bffc0b65692596137cbdcdd3b48e2f31320dacbd
https://github.com/llvm/llvm-project/commit/bffc0b65692596137cbdcdd3b48e2f31320dacbd
Author: Paul Kirth <paulkirth at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/lib/Target/RISCV/RISCVSubtarget.h
Log Message:
-----------
[RISCV][NFC] Add isTargetAndroid API in RISCVSubtarget (#87671)
This is required to set target specific code generation options for
Android,
like using the TLS slot for the stack protector.
Commit: 413a66f33984a4d484ac1ff0ba7c0ac39ffa3095
https://github.com/llvm/llvm-project/commit/413a66f33984a4d484ac1ff0ba7c0ac39ffa3095
Author: Alexey Bataev <a.bataev at outlook.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/lib/Transforms/Vectorize/VPlanValue.h
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
A llvm/test/Transforms/LoopVectorize/PowerPC/vectorize-force-tail-with-evl.ll
A llvm/test/Transforms/LoopVectorize/PowerPC/vplan-force-tail-with-evl.ll
M llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-gather-scatter.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-interleave.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-iv32.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-masked-loadstore.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-no-masking.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-reverse-load-store.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-vp-intrinsics.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-intrinsics.ll
A llvm/test/Transforms/LoopVectorize/X86/vectorize-force-tail-with-evl.ll
A llvm/test/Transforms/LoopVectorize/X86/vplan-vp-intrinsics.ll
A llvm/test/Transforms/LoopVectorize/vectorize-force-tail-with-evl.ll
A llvm/test/Transforms/LoopVectorize/vplan-force-tail-with-evl.ll
Log Message:
-----------
[LV, VP]VP intrinsics support for the Loop Vectorizer + adding new tail-folding mode using EVL. (#76172)
This patch introduces generating VP intrinsics in the Loop Vectorizer.
Currently the Loop Vectorizer supports vector predication in a very
limited capacity via tail-folding and masked load/store/gather/scatter
intrinsics. However, this does not let architectures with active vector
length predication support take advantage of their capabilities.
Architectures with general masked predication support also can only take
advantage of predication on memory operations. By having a way for the
Loop Vectorizer to generate Vector Predication intrinsics, which (will)
provide a target-independent way to model predicated vector
instructions. These architectures can make better use of their
predication capabilities.
Our first approach (implemented in this patch) builds on top of the
existing tail-folding mechanism in the LV (just adds a new tail-folding
mode using EVL), but instead of generating masked intrinsics for memory
operations it generates VP intrinsics for loads/stores instructions. The
patch adds a new VPlanTransforms to replace the wide header predicate
compare with EVL and updates codegen for load/stores to use VP
store/load with EVL.
Other important part of this approach is how the Explicit Vector Length
is computed. (VP intrinsics define this vector length parameter as
Explicit Vector Length (EVL)). We use an experimental intrinsic
`get_vector_length`, that can be lowered to architecture specific
instruction(s) to compute EVL.
Also, added a new recipe to emit instructions for computing EVL. Using
VPlan in this way will eventually help build and compare VPlans
corresponding to different strategies and alternatives.
Differential Revision: https://reviews.llvm.org/D99750
Commit: ca55ee88263e5b190965c3f14fd3b2647efab26a
https://github.com/llvm/llvm-project/commit/ca55ee88263e5b190965c3f14fd3b2647efab26a
Author: Shubham Rastogi <shubhamrastogi at augusto.scv.apple.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M lldb/packages/Python/lldbsuite/test/make/Makefile.rules
M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
M lldb/source/Plugins/SymbolLocator/CMakeLists.txt
M lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp
R lldb/test/API/debuginfod/Normal/Makefile
R lldb/test/API/debuginfod/Normal/TestDebuginfod.py
R lldb/test/API/debuginfod/Normal/main.c
R lldb/test/API/debuginfod/SplitDWARF/Makefile
R lldb/test/API/debuginfod/SplitDWARF/TestDebuginfodDWP.py
R lldb/test/API/debuginfod/SplitDWARF/main.c
Log Message:
-----------
Revert "Debuginfod Testing & fixes: 3rd times the charm? (#87676)"
This reverts commit d6713ad80d6907210c629f22babaf12177fa329c.
This changed was reverted because of greendragon failures such
as
Unresolved Tests (2):
lldb-api :: debuginfod/Normal/TestDebuginfod.py
lldb-api :: debuginfod/SplitDWARF/TestDebuginfodDWP.py
Commit: 96a99a5e2f62475f13d7ba18b15acad733909e7f
https://github.com/llvm/llvm-project/commit/96a99a5e2f62475f13d7ba18b15acad733909e7f
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M clang/test/CodeGen/remote-traps.c
Log Message:
-----------
[NFC][UBSAN] Regenerate a test
Commit: 852eb20b4f091a535ef758407d8555798b0ad809
https://github.com/llvm/llvm-project/commit/852eb20b4f091a535ef758407d8555798b0ad809
Author: Craig Topper <craig.topper at sifive.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp
Log Message:
-----------
[RISCV][GISel] Make register bank selection for unary and binary arithmetic ops more generic. (#87593)
This is inspired by AArch64's getSameKindOfOperandsMapping, but based on
what RISC-V currently needs.
This removes the special vector case for G_ADD/SUB and unifies integer
and FP operations into the same handler.
G_SEXTLOAD/ZEXTLOAD have been separated from integer since they should
only be scalar integer and never vector.
Commit: cfadf3f62230505c1156e07f46c06813271bb5ac
https://github.com/llvm/llvm-project/commit/cfadf3f62230505c1156e07f46c06813271bb5ac
Author: Shilei Tian <i at tianshilei.me>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
Log Message:
-----------
[TableGen] Fix a potential crash when operand doesn't appear in the instruction pattern (#87663)
We have a check of whether an operand is in the instruction pattern, and
emit an
error if it is not, but we simply continue execution, including directly
dereferencing a point-like object `InVal`, which will be just created
when
accessing the map. It contains a `nullptr` so dereferencing it causes
crash.
This is a very trivial fix.
Commit: a9d93873f857963eeb9ef7f65a725e6aaf99c958
https://github.com/llvm/llvm-project/commit/a9d93873f857963eeb9ef7f65a725e6aaf99c958
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
R clang/test/CodeGen/remote-traps.c
M llvm/lib/Transforms/Instrumentation/RemoveTrapsPass.cpp
M llvm/test/Transforms/RemoveTraps/remove-traps.ll
Log Message:
-----------
[clang][ubsan] Switch UBSAN optimization to `llvm.allow.{runtime,ubsan}.check()` (#84858)
Intrinsic introduced with #84850. Intrinsics improves performance
by 3% comparing to removing traps (on
"test-suite/MultiSource/Benchmarks" with PGO+ThinLTO).
The pass will be renamed with #84853.
RFC:
https://discourse.llvm.org/t/rfc-add-llvm-experimental-hot-intrinsic-or-llvm-hot/77641
Commit: ab80d00438a04248f9a2f62546ea34c294d08f01
https://github.com/llvm/llvm-project/commit/ab80d00438a04248f9a2f62546ea34c294d08f01
Author: Qizhi Hu <836744285 at qq.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang/lib/AST/ASTImporter.cpp
M clang/unittests/AST/ASTImporterTest.cpp
Log Message:
-----------
[clang][ASTImporter] fix variable inline of CXX17 (#87314)
Fix crash in the testcase from
https://github.com/llvm/llvm-project/issues/75114#issuecomment-1872595956
Forget to set inline of variable declaration would make
`isThisDeclarationADefinition` get incorrect result and didn't get
imported variable. This will lead to a new `VarTemplateDecl` being
created and call `setDescribedVarTemplate` again which produces the
crash.
Co-authored-by: huqizhi <836744285 at qq.com>
Commit: 90453f4a9a8955ac612959504941153aa376cb0c
https://github.com/llvm/llvm-project/commit/90453f4a9a8955ac612959504941153aa376cb0c
Author: Youngsuk Kim <joseph942010 at gmail.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/Decl.h
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/test/SemaCXX/warn-unused-but-set-variables-cpp.cpp
Log Message:
-----------
[Clang][Sema] Warn unused cxx vardecl which entirely consists condition expr of if/while/for construct (#87348)
Emit `-Wunused-but-set-variable` warning on C++ variables whose
declaration (with initializer) entirely consist the condition expression
of a if/while/for construct but are not actually used in the body of the
if/while/for construct.
Fixes #41447
Commit: b76eb1ddfbacda273b8e6a9940f1da6812fdc2e0
https://github.com/llvm/llvm-project/commit/b76eb1ddfbacda273b8e6a9940f1da6812fdc2e0
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
Log Message:
-----------
[clang][CodeGen] Remove SimplifyCFGPass preceding RemoveTrapsPass (#84852)
There is no performance difference after switching to
`llvm.experimental.hot`.
Commit: 7c9c38eaa9b74debe5dd094535653c5d3f6ca591
https://github.com/llvm/llvm-project/commit/7c9c38eaa9b74debe5dd094535653c5d3f6ca591
Author: Owen Pan <owenpiano at gmail.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/unittests/Format/FormatTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
Log Message:
-----------
[clang-format] Fix a regression in annotating BK_BracedInit (#87450)
Fixes #86539.
Commit: 134176058fdee712ad213e83a39aec2d107dda42
https://github.com/llvm/llvm-project/commit/134176058fdee712ad213e83a39aec2d107dda42
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
A utils/bazel/llvm-project-overlay/compiler-rt/lib/orc/tests/unit/BUILD.bazel
Log Message:
-----------
[bazel] Add support for building orc_rt (#87730)
Commit: 1cb64d75b2739cce0c4d663410180febe06b7256
https://github.com/llvm/llvm-project/commit/1cb64d75b2739cce0c4d663410180febe06b7256
Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M clang/include/clang/Basic/Builtins.td
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/Headers/hlsl/hlsl_intrinsics.h
M clang/lib/Sema/SemaChecking.cpp
A clang/test/CodeGenHLSL/builtins/all.hlsl
M llvm/include/llvm/IR/IntrinsicsDirectX.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
Log Message:
-----------
[HLSL][DXIL][SPIRV] Implementation of an abstraction for intrinsic selection of HLSL backends (#87171)
Start of #83882
- `Builtins.td` - add the `hlsl` `all` elementwise builtin.
- `CGBuiltin.cpp` - Show a use case for CGHLSLUtils via an `all`
intrinsic codegen.
- `CGHLSLRuntime.cpp` - move `thread_id` to use CGHLSLUtils.
- `CGHLSLRuntime.h` - Create a macro to help pick the right intrinsic
for the backend.
- `hlsl_intrinsics.h` - Add the `all` api.
- `SemaChecking.cpp` - Add `all` builtin type checking
- `IntrinsicsDirectX.td` - Add the `all` `dx` intrinsic
- `IntrinsicsSPIRV.td` - Add the `all` `spv` intrinsic
Work still needed:
- `SPIRVInstructionSelector.cpp` - Add an implementation of `OpAll` for
`spv_all` intrinsic
Commit: 66190af7350df7edb03f7ebb8ac11065bb07e22c
https://github.com/llvm/llvm-project/commit/66190af7350df7edb03f7ebb8ac11065bb07e22c
Author: Youngsuk Kim <youngsuk.kim at hpe.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
Log Message:
-----------
[Clang] ReleaseNote item for 9dab2e3064a2ad4d5ce65832d605787dc394cb72
Add release item which was omitted at the time.
Commit: ff1e72d68d1224271801ff5192a8c14fbd3be83b
https://github.com/llvm/llvm-project/commit/ff1e72d68d1224271801ff5192a8c14fbd3be83b
Author: Congcong Cai <congcongcai0907 at 163.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang-tools-extra/clang-tidy/hicpp/IgnoredRemoveResultCheck.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/hicpp/ignored-remove-result.cpp
Log Message:
-----------
[clang-tidy] hicpp-ignored-remove-result ignore functions with same prefixes as the target (#87587)
Commit: 843cc474faefad1d639f4c44c1cf3ad7dbda76c8
https://github.com/llvm/llvm-project/commit/843cc474faefad1d639f4c44c1cf3ad7dbda76c8
Author: Younan Zhang <zyn7109 at gmail.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/DeclCXX.h
M clang/include/clang/Sema/Sema.h
M clang/lib/Frontend/FrontendActions.cpp
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/TreeTransform.h
A clang/test/SemaTemplate/alias-template-with-lambdas.cpp
Log Message:
-----------
[Clang][Sema] Fix the lambda call expression inside of a type alias declaration (#82310)
This patch attempts to fix the lambda call expression inside of a type
alias declaration from two aspects:
1. Defer the lambda call expression building until after we have
sufficient template arguments. This avoids the overeager (and often
wrong) semantic checking before the type alias instantiation.
2. Properly obtain template arguments involving a template type alias
for constraint checking.
It is unfortunate that a `TypeAliasTemplateDecl` (or a `TypeAliasDecl`)
is never a `DeclContext`, nor does it have an associated specialization
Decl from which we could collect these template arguments. Thus, I added
a new CodeSynthesisContext to record template arguments for alias
declarations.
Fixes https://github.com/llvm/llvm-project/issues/70601
Fixes https://github.com/llvm/llvm-project/issues/76674
Fixes https://github.com/llvm/llvm-project/issues/79555
Fixes https://github.com/llvm/llvm-project/issues/81145
Fixes https://github.com/llvm/llvm-project/issues/82104
Note that this doesn't involve the fix for
https://github.com/llvm/llvm-project/issues/28461. That seems different,
and I'd like to leave it as a follow-up.
Commit: 6b30ffef28c35c24bfd8190e06eeaa0c5cd73cbd
https://github.com/llvm/llvm-project/commit/6b30ffef28c35c24bfd8190e06eeaa0c5cd73cbd
Author: Matthias Springer <me at m-sp.org>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
M mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp
M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
M mlir/test/Dialect/SCF/value-bounds-op-interface-impl.mlir
Log Message:
-----------
[mlir][SCF] `ValueBoundsConstraintSet`: Support `scf.if` (branches) (#85895)
This commit adds support for `scf.if` to `ValueBoundsConstraintSet`.
Example:
```
%0 = scf.if ... -> index {
scf.yield %a : index
} else {
scf.yield %b : index
}
```
The following constraints hold for %0:
* %0 >= min(%a, %b)
* %0 <= max(%a, %b)
Such constraints cannot be added to the constraint set; min/max is not
supported by `IntegerRelation`. However, if we know which one of %a and
%b is larger, we can add constraints for %0. E.g., if %a <= %b:
* %0 >= %a
* %0 <= %b
This commit required a few minor changes to the
`ValueBoundsConstraintSet` infrastructure, so that values can be
compared while we are still in the process of traversing the IR/adding
constraints.
Commit: 24e4429980b3df039166c1ee6a9e530cc6f054c9
https://github.com/llvm/llvm-project/commit/24e4429980b3df039166c1ee6a9e530cc6f054c9
Author: Matthias Springer <me at m-sp.org>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
Log Message:
-----------
[mlir][SCF][NFC] `ValueBoundsConstraintSet`: Simplify `scf.for` implementation (#86239)
This commit simplifies the implementation of the
`ValueBoundsOpInterface` for `scf.for` based on the newly added
`ValueBoundsConstraintSet::compare` API and adds additional
documentation.
Previously, the interface implementation created a new constraint set
just to check if the yielded value and iter_arg are equal. This was
inefficient because constraints were added multiple times (to two
different constraint sets) for ops that are inside the loop.
Commit: 49f0b536fd337b58a937cf58b1843dd04ea1c171
https://github.com/llvm/llvm-project/commit/49f0b536fd337b58a937cf58b1843dd04ea1c171
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
A llvm/include/llvm/Transforms/Instrumentation/LowerAllowCheckPass.h
R llvm/include/llvm/Transforms/Instrumentation/RemoveTrapsPass.h
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/Transforms/Instrumentation/CMakeLists.txt
A llvm/lib/Transforms/Instrumentation/LowerAllowCheckPass.cpp
R llvm/lib/Transforms/Instrumentation/RemoveTrapsPass.cpp
R llvm/test/Transforms/RemoveTraps/remove-traps.ll
A llvm/test/Transforms/lower-builtin-allow-check.ll
M llvm/utils/gn/secondary/llvm/lib/Transforms/Instrumentation/BUILD.gn
Log Message:
-----------
[UBSAN] Rename `remove-traps` to `lower-allow-check` (#84853)
Commit: 62b58d34189f83d9e161cf01283ecc7c54b4a52e
https://github.com/llvm/llvm-project/commit/62b58d34189f83d9e161cf01283ecc7c54b4a52e
Author: Matthias Springer <me at m-sp.org>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M mlir/lib/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.cpp
M mlir/test/Dialect/Arith/value-bounds-op-interface-impl.mlir
Log Message:
-----------
[mlir][Arith] `ValueBoundsOpInterface`: Support `arith.select` (#86383)
This commit adds a `ValueBoundsOpInterface` implementation for
`arith.select`. The implementation is almost identical to `scf.if`
(#85895), but there is one special case: if the condition is a shaped
value, the selection is applied element-wise and the result shape can be
inferred from either operand.
Commit: 1c683eb324aea08b2f9de26cac27532da8a0f7e3
https://github.com/llvm/llvm-project/commit/1c683eb324aea08b2f9de26cac27532da8a0f7e3
Author: Cyndy Ishida <cyndy_ishida at apple.com>
Date: 2024-04-04 (Thu, 04 Apr 2024)
Changed paths:
A clang/test/InstallAPI/Inputs/Foundation/Foundation.framework/Headers/Foundation.h
M clang/test/InstallAPI/extra-exclude-headers.test
A clang/test/InstallAPI/forwarded-search-paths.test
Log Message:
-----------
[InstallAPI] Add test to validate cc1 arg forwarding (#87666)
Commit: 974f1ee58da1c51c547eaf5c7007a215fd286c68
https://github.com/llvm/llvm-project/commit/974f1ee58da1c51c547eaf5c7007a215fd286c68
Author: Christian Ulmann <christianulmann at gmail.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M mlir/lib/Dialect/LLVMIR/IR/LLVMMemorySlot.cpp
M mlir/test/Dialect/LLVMIR/mem2reg.mlir
Log Message:
-----------
[MLIR][LLVM][Mem2Reg] Relax type equality requirement for load and store (#87637)
This commit relaxes Mem2Reg's type equality requirement for the LLVM
dialect's load and store operations. For now, we only allow loads to be
promoted if the reaching definition can be casted into a value of the
target type.
For stores, the same conversion casting check is applied and we ensure
that their result is properly casted to the type of the memory slot.
This is necessary to satisfy assumptions of the general mem2reg pass, as
it creates block arguments with the types of the memory slot.
This relands https://github.com/llvm/llvm-project/pull/87504
Commit: ef8322f41d542bcf05dbe6079339d707534efbed
https://github.com/llvm/llvm-project/commit/ef8322f41d542bcf05dbe6079339d707534efbed
Author: Christian Ulmann <christianulmann at gmail.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/test/Dialect/LLVMIR/canonicalize.mlir
M mlir/test/Dialect/LLVMIR/mem2reg.mlir
Log Message:
-----------
[MLIR][LLVM] Improve bit- and addrspacecast folders (#87745)
This commit extends the folders of chainable casts (bitcast and
addrspacecast) to ensure that they fold a chain of the same casts into a
single cast.
Additionally cleans up the canonicalization test file, as this used some
outdated constructs.
Commit: cfb86ae7497e43e9221ab890221789ae320381e9
https://github.com/llvm/llvm-project/commit/cfb86ae7497e43e9221ab890221789ae320381e9
Author: Qizhi Hu <836744285 at qq.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/lib/Sema/SemaDecl.cpp
A clang/test/SemaCXX/PR86790.cpp
Log Message:
-----------
[Clang][Sema] Skip checking anonymous enum in using enum declaration (#87144)
Try to fix https://github.com/llvm/llvm-project/issues/86790
`getFETokenInfo` requires `DeclarationName` shouldn't be empty and this
will produce crash when checking name conflict of an anonymous
`NamedDecl` in `Sema::PushOnScopeChains` and whether it's a reserved
identifier or not. These wouldn't happen when it's a anonymous enum and
we can skip the checking and just add the declaration to current scope.
Co-authored-by: huqizhi <836744285 at qq.com>
Commit: 73fa6685c43ef61f5f5babb14f734097af6dc702
https://github.com/llvm/llvm-project/commit/73fa6685c43ef61f5f5babb14f734097af6dc702
Author: mlevesquedion <mlevesquedion at google.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M mlir/docs/DefiningDialects/AttributesAndTypes.md
M mlir/docs/DefiningDialects/_index.md
M mlir/docs/Dialects/Linalg/_index.md
M mlir/docs/Dialects/Transform.md
M mlir/docs/LangRef.md
M mlir/docs/Rationale/SideEffectsAndSpeculation.md
M mlir/docs/TargetLLVMIR.md
M mlir/docs/Tutorials/Toy/Ch-4.md
M mlir/docs/Tutorials/transform/Ch4.md
Log Message:
-----------
Fix a few broken links (#87098)
References to headings need to be preceded with a slash. Also,
references to headings on the same page do not need to contain the name
of the document (omitting the document name means if the name changes
the links will still be valid).
I double checked the links by building [the
website](https://github.com/llvm/mlir-www):
```shell
./mlir-www-helper.sh --install-docs ../llvm-project website
cd website && hugo serve
```
Commit: 7e958f64efea6cb824e96ace51e021afbc150922
https://github.com/llvm/llvm-project/commit/7e958f64efea6cb824e96ace51e021afbc150922
Author: David Spickett <david.spickett at linaro.org>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang-tools-extra/clangd/CompileCommands.cpp
M clang/include/clang/Driver/Options.td
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/utils/TableGen/ClangOptionDocEmitter.cpp
M flang/test/Driver/driver-help-hidden.f90
M flang/test/Driver/driver-help.f90
M lld/MachO/DriverUtils.cpp
M lld/MinGW/Driver.cpp
M lld/wasm/Driver.cpp
M llvm/include/llvm/Option/OptParser.td
M llvm/include/llvm/Option/OptTable.h
M llvm/lib/Option/OptTable.cpp
M llvm/unittests/Option/OptionMarshallingTest.cpp
M llvm/utils/TableGen/OptParserEmitter.cpp
Log Message:
-----------
[flang][clang] Add Visibility specific help text for options (#81869)
And use it to print the correct default OpenMP version for flang and
flang -fc1.
This change adds an optional `HelpTextsForVariants` to options. This
allows you to change the help text that gets shown in documentation and
`--help` based on the program its being generated for.
As `OptTable` needs to be constexpr compatible, I have used a std::array
of help text variants. Each entry is:
(list of visibilities) - > help text string
So for the OpenMP version we have (flang, fc1) -> "OpenMP version for
flang is...".
So you can have multiple visibilities use the same string. The number of
entries is currently set to 1, and the number of visibilities per entry
is 2, because that's the maximum we need for now. The code is written so
we can increase these numbers later, and the unused elements will be initialised.
I have not applied this to group descriptions just because I don't know
of one that needs changing. It could easily be enabled for those too if
needed. There are minor changes to them just to get it all to compile.
This approach of storing many help strings per option in the 1 driver
library seemed preferable to making a whole new library for Flang (even
if that would mostly be including stuff from Clang).
Commit: 67d20412b448533c77f54ac7a1e5d0775d273729
https://github.com/llvm/llvm-project/commit/67d20412b448533c77f54ac7a1e5d0775d273729
Author: David Spickett <david.spickett at linaro.org>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang-tools-extra/clangd/CompileCommands.cpp
M clang/include/clang/Driver/Options.td
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/utils/TableGen/ClangOptionDocEmitter.cpp
M flang/test/Driver/driver-help-hidden.f90
M flang/test/Driver/driver-help.f90
M lld/MachO/DriverUtils.cpp
M lld/MinGW/Driver.cpp
M lld/wasm/Driver.cpp
M llvm/include/llvm/Option/OptParser.td
M llvm/include/llvm/Option/OptTable.h
M llvm/lib/Option/OptTable.cpp
M llvm/unittests/Option/OptionMarshallingTest.cpp
M llvm/utils/TableGen/OptParserEmitter.cpp
Log Message:
-----------
Revert "[flang][clang] Add Visibility specific help text for options (#81869)"
This reverts commit 7e958f64efea6cb824e96ace51e021afbc150922.
Failing on multiple bots.
Commit: aff197ff2163a4b7732d08b833906cc21f4a5c89
https://github.com/llvm/llvm-project/commit/aff197ff2163a4b7732d08b833906cc21f4a5c89
Author: David Spickett <david.spickett at linaro.org>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang-tools-extra/clangd/CompileCommands.cpp
M clang/include/clang/Driver/Options.td
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/tools/clang-installapi/Options.cpp
M clang/tools/clang-installapi/Options.h
M clang/utils/TableGen/ClangOptionDocEmitter.cpp
M flang/test/Driver/driver-help-hidden.f90
M flang/test/Driver/driver-help.f90
M lld/MachO/DriverUtils.cpp
M lld/MinGW/Driver.cpp
M lld/wasm/Driver.cpp
M llvm/include/llvm/Option/OptParser.td
M llvm/include/llvm/Option/OptTable.h
M llvm/lib/Option/OptTable.cpp
M llvm/unittests/Option/OptionMarshallingTest.cpp
M llvm/utils/TableGen/OptParserEmitter.cpp
Log Message:
-----------
Reland "[flang][clang] Add Visibility specific help text for options (#81869)"
This reverts commit 67d20412b448533c77f54ac7a1e5d0775d273729.
This includes fixes for clanginstallapi.
Commit: 5ed60ffd790a2d1090dca9c685d6ccf09b3f08da
https://github.com/llvm/llvm-project/commit/5ed60ffd790a2d1090dca9c685d6ccf09b3f08da
Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
A mlir/cmake/modules/MLIRCheckHardwareFeatures.cmake
M mlir/docs/Dialects/ArmSME.md
M mlir/test/CMakeLists.txt
Log Message:
-----------
[mlir][test] Extend CMake logic for e2e tests
Adds two new CMake functions to query the host system:
* `check_hwcap`,
* `check_emulator`.
Together, these functions are used to check whether a given set of MLIR
integration tests require an emulator. If yes, then the corresponding
CMake var that defies the required emulator executable is also checked.
`check_hwcap` relies on ELF_HWCAP for discovering CPU features from
userspace on Linux systems. This is the recommended approach for Arm
CPUs running on Linux as outlined in this blog post:
* https://community.arm.com/arm-community-blogs/b/operating-systems-blog/posts/runtime-detection-of-cpu-features-on-an-armv8-a-cpu
Other operating systems (e.g. Android) and CPU architectures will
most likely require some other approach. Right now these new hooks are
only used for SVE and SME integration tests.
This relands #86489 with the following changes:
* Replaced:
`set(hwcap_test_file ${CMAKE_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/hwcap_check.c)`
with:
`set(hwcap_test_file ${CMAKE_BINARY_DIR}/temp/hwcap_check.c)`
The former would trigger an infinite loop when running `ninja`
(after the initial CMake configuration).
* Fixed commit msg. Previous one was taken from the initial GH PR
commit rather than the final re-worked solution (missed this when
merging via GH UI).
* A couple more NFCs/tweaks.
Commit: c5d000b1a84cfee99db157c6819e0a9c518f8ac8
https://github.com/llvm/llvm-project/commit/c5d000b1a84cfee99db157c6819e0a9c518f8ac8
Author: AtariDreams <gfunni234 at gmail.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/lib/Target/ARM/Thumb1InstrInfo.cpp
M llvm/test/CodeGen/ARM/sadd_sat.ll
M llvm/test/CodeGen/ARM/select_const.ll
M llvm/test/CodeGen/ARM/wide-compares.ll
M llvm/test/CodeGen/Thumb/pr35836.ll
M llvm/test/CodeGen/Thumb/urem-seteq-illegal-types.ll
Log Message:
-----------
[Thumb] Resolve FIXME: Use 'mov hi, $src; mov $dst, hi' (#81908)
Consider the following:
ldr r0, [r4]
ldr r7, [r0, #4]
cmp r7, r3
bhi .LBB0_6
cmp r0, r2
push {r0}
pop {r4}
bne .LBB0_3
movs r0, r6
pop {r4, r5, r6, r7}
pop {r1}
bx r1
Here is a snippet of the generated THUMB1 code of the K&R malloc
function that clang currently compiles to.
push {r0} ends up being popped to pop {r4}.
movs r4, r0 would destroy the flags set by cmp right above.
The compiler has no alternative in this case, except one:
the only alternative is to transfer through a high register.
However, it seems like LLVM does not consider that this is a valid
approach, even though it is a free clobbering a high register.
This patch addresses the FIXME so the compiler can do that when it can
in r10 or r11, or r12.
Commit: fb299cae5167f63933df45979e3e9de97fca1b8f
https://github.com/llvm/llvm-project/commit/fb299cae5167f63933df45979e3e9de97fca1b8f
Author: NagyDonat <donat.nagy at ericsson.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallDescription.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
M clang/lib/StaticAnalyzer/Core/CallDescription.cpp
M clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
M clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp
Log Message:
-----------
[analyzer] Make recognition of hardened __FOO_chk functions explicit (#86536)
In builds that use source hardening (-D_FORTIFY_SOURCE), many standard
functions are implemented as macros that expand to calls of hardened
functions that take one additional argument compared to the "usual"
variant and perform additional input validation. For example, a `memcpy`
call may expand to `__memcpy_chk()` or `__builtin___memcpy_chk()`.
Before this commit, `CallDescription`s created with the matching mode
`CDM::CLibrary` automatically matched these hardened variants (in a
addition to the "usual" function) with a fairly lenient heuristic.
Unfortunately this heuristic meant that the `CLibrary` matching mode was
only usable by checkers that were prepared to handle matches with an
unusual number of arguments.
This commit limits the recognition of the hardened functions to a
separate matching mode `CDM::CLibraryMaybeHardened` and applies this
mode for functions that have hardened variants and were previously
recognized with `CDM::CLibrary`.
This way checkers that are prepared to handle the hardened variants will
be able to detect them easily; while other checkers can simply use
`CDM::CLibrary` for matching C library functions (and they won't
encounter surprising argument counts).
The initial motivation for refactoring this area was that previously
`CDM::CLibrary` accepted calls with more arguments/parameters than the
expected number, so I wasn't able to use it for `malloc` without
accidentally matching calls to the 3-argument BSD kernel malloc.
After this commit this "may have more args/params" logic will only
activate when we're actually matching a hardened variant function (in
`CDM::CLibraryMaybeHardened` mode). The recognition of "sprintf()" and
"snprintf()" in CStringChecker was refactored, because previously it was
abusing the behavior that extra arguments are accepted even if the
matched function is not a hardened variant.
This commit also fixes the oversight that the old code would've
recognized e.g. `__wmemcpy_chk` as a hardened variant of `memcpy`.
After this commit I'm planning to create several follow-up commits that
ensure that checkers looking for C library functions use `CDM::CLibrary`
as a "sane default" matching mode.
This commit is not truly NFC (it eliminates some buggy corner cases),
but it does not intentionally modify the behavior of CSA on real-world
non-crazy code.
As a minor unrelated change I'm eliminating the argument/variable
"IsBuiltin" from the evalSprintf function family in CStringChecker,
because it was completely unused.
---------
Co-authored-by: Balazs Benics <benicsbalazs at gmail.com>
Commit: 163301d785a7e6b45d25a4060a239d6af72d6ae6
https://github.com/llvm/llvm-project/commit/163301d785a7e6b45d25a4060a239d6af72d6ae6
Author: NagyDonat <donat.nagy at ericsson.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
M clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
M clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
Log Message:
-----------
[analyzer] Remove barely used class 'KnownSVal' (NFC) (#86953)
The class `KnownSVal` was very magical abstract class within the `SVal`
class hierarchy: with a hacky `classof` method it acted as if it was the
common ancestor of the classes `UndefinedSVal` and `DefinedSVal`.
However, it was only used in two `getAs<KnownSVal>()` calls and the
signatures of two methods, which does not "pay for" its weird behavior,
so I created this commit that removes it and replaces its use with more
straightforward solutions.
Commit: be8bc3cf43f07f68d89c82db45e29f63b432ceb5
https://github.com/llvm/llvm-project/commit/be8bc3cf43f07f68d89c82db45e29f63b432ceb5
Author: Mitch Phillips <mitchp at google.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/docs/CommandGuide/llvm-objcopy.rst
M llvm/docs/ReleaseNotes.rst
M llvm/include/llvm/ObjCopy/CommonConfig.h
M llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
R llvm/test/tools/llvm-objcopy/ELF/compress-sections-within-segment.s
R llvm/test/tools/llvm-objcopy/ELF/compress-sections.s
M llvm/test/tools/llvm-objcopy/ELF/decompress-sections.test
M llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
M llvm/tools/llvm-objcopy/ObjcopyOpts.td
Log Message:
-----------
Revert "[llvm-objcopy] Add --compress-sections"
This reverts commit 9e3b64b9f95aadf57568576712902a272fe66503.
Reason: Broke the UBSan buildbot. See the comments in the pull request
(https://github.com/llvm/llvm-project/pull/85036) for more information.
Commit: 0b7362c257ff7b656c31266b4f9b8485a7ba4033
https://github.com/llvm/llvm-project/commit/0b7362c257ff7b656c31266b4f9b8485a7ba4033
Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
A mlir/test/Dialect/Arith/vscale_constants.mlir
Log Message:
-----------
[mlir][arith] Add result pretty printing for constant vscale values (#83565)
In scalable code it is very common to have constant multiples of vscale,
e.g. `4 * vscale`. This updates `arith.muli` to pretty print the result
name in cases like this, so `4 * vscale` would be `%c4_vscale`.
This makes reading IR dumps of scalable code a little nicer.
Commit: f2d8218efad69aacb7ef7509ba08f93ec333062d
https://github.com/llvm/llvm-project/commit/f2d8218efad69aacb7ef7509ba08f93ec333062d
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M mlir/lib/Dialect/Arith/IR/ValueBoundsOpInterfaceImpl.cpp
M mlir/test/Dialect/Arith/value-bounds-op-interface-impl.mlir
Log Message:
-----------
Revert "[mlir][Arith] `ValueBoundsOpInterface`: Support `arith.select` (#86383)"
This reverts commit 62b58d34189f83d9e161cf01283ecc7c54b4a52e.
gcc7 bot is broken.
Commit: e5e1bc0ad815647baeca67d7d47b71f792b5dde8
https://github.com/llvm/llvm-project/commit/e5e1bc0ad815647baeca67d7d47b71f792b5dde8
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
Log Message:
-----------
Revert "[mlir][SCF][NFC] `ValueBoundsConstraintSet`: Simplify `scf.for` implementation (#86239)"
This reverts commit 24e4429980b3df039166c1ee6a9e530cc6f054c9.
gcc7 bot is broken
Commit: 8487e05967aaa2dceadd582ac8c2b154ccd39db2
https://github.com/llvm/llvm-project/commit/8487e05967aaa2dceadd582ac8c2b154ccd39db2
Author: Mehdi Amini <joker.eph at gmail.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M mlir/include/mlir/Interfaces/ValueBoundsOpInterface.h
M mlir/lib/Dialect/SCF/IR/ValueBoundsOpInterfaceImpl.cpp
M mlir/lib/Dialect/Vector/IR/ScalableValueBoundsConstraintSet.cpp
M mlir/lib/Interfaces/ValueBoundsOpInterface.cpp
M mlir/test/Dialect/SCF/value-bounds-op-interface-impl.mlir
Log Message:
-----------
Revert "[mlir][SCF] `ValueBoundsConstraintSet`: Support `scf.if` (branches) (#85895)"
This reverts commit 6b30ffef28c35c24bfd8190e06eeaa0c5cd73cbd.
gcc7 bot is broken
Commit: 9a16c12abe13a06470502370833e7c0e6ff70e2c
https://github.com/llvm/llvm-project/commit/9a16c12abe13a06470502370833e7c0e6ff70e2c
Author: NagyDonat <donat.nagy at ericsson.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang/lib/StaticAnalyzer/Core/CallDescription.cpp
Log Message:
-----------
[NFC] Remove semicolons after function definitions (#87764)
They were accidentally left behind when
https://github.com/llvm/llvm-project/pull/86536 converted some lambdas
into stand-alone methods.
This fixes warnings from -Wc++98-compat-extra-semi
Commit: 1b4c37fec236f39a1ec530ecf07b6aa162518a6b
https://github.com/llvm/llvm-project/commit/1b4c37fec236f39a1ec530ecf07b6aa162518a6b
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.h
Log Message:
-----------
[TTI][X86] getGSVectorCost/getGSScalarCost - add CostKind to the function arguments.
Initial refactor - only getGSScalarCost can actually use CostKind so far, and currently both are only ever set to TCK_RecipThroughput.
Commit: 58187fad93bca76d1cce43a5caa70728282d2ff8
https://github.com/llvm/llvm-project/commit/58187fad93bca76d1cce43a5caa70728282d2ff8
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-codesize.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost-inseltpoison.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-latency.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-sizelatency.ll
Log Message:
-----------
[CostModel][X86] Update masked load/store/gather/scatter tests to explicitly use variable masks
Using <X x i1> undef masks means they are treated as constants, which underestimates the scalar costs as it assumes that the masks/branches will fold away.
Commit: 31fd6b8eec16d879a927cb4aa59e39880b5aca9e
https://github.com/llvm/llvm-project/commit/31fd6b8eec16d879a927cb4aa59e39880b5aca9e
Author: David Green <david.green at arm.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
A llvm/test/Transforms/SLPVectorizer/AArch64/scalable-external-user.ll
Log Message:
-----------
[SLP] Protect against scalable vector users.
We started seeing a crash after 8a0bfe490592de3df28d82c5dd69956e43c20f1d that
the user could be scalable, meaning the typesize is scalable and an implicit
convertion to uint64_t could be performed. Protect against that by making sure
the users type is not scalable.
Commit: c0211ff206eb9d39d3895e1a528046c3e9579832
https://github.com/llvm/llvm-project/commit/c0211ff206eb9d39d3895e1a528046c3e9579832
Author: Jacek Caban <jacek at codeweavers.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M lld/COFF/PDB.cpp
M lld/test/COFF/undefined-symbol-cv.s
Log Message:
-----------
[LLD][COFF] Add ARM64EC support to findLineTable. (#87240)
Fixes asserts in error messages. Use chunk machine type (instead of
global one) to support x86_64 objects and treat ARM64EC objects like
ARM64 ones.
Commit: a5ae54ab0565948f1ad4513f8bd601e617602556
https://github.com/llvm/llvm-project/commit/a5ae54ab0565948f1ad4513f8bd601e617602556
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M flang/include/flang/Optimizer/Dialect/FIROpsSupport.h
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/lib/Optimizer/Dialect/FIROps.cpp
Log Message:
-----------
[flang][NFC] Unify getIfConstantIntValue helpers (#87633)
There were different helpers for attempting to fetch compile time
constants from MLIR: one in fir::getIntIfConstant and one in CodeGen.
Unify the two.
Commit: 2c0a99f54fd5045a1b382c03fc5481b648a62a8e
https://github.com/llvm/llvm-project/commit/2c0a99f54fd5045a1b382c03fc5481b648a62a8e
Author: AX网 <ax-6 at outlook.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang/include/clang/Lex/Token.h
Log Message:
-----------
Fix formatting of a comment; NFC (#87739)
Commit: 9b5155c93616563165c9d8da5f15aa1f1260d2d2
https://github.com/llvm/llvm-project/commit/9b5155c93616563165c9d8da5f15aa1f1260d2d2
Author: Andrei Golubev <andrey.golubev at intel.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M mlir/tools/mlir-tblgen/OpFormatGen.cpp
Log Message:
-----------
[mlir][OpFormatGen][NFC] Change Raw{Operands,Types} arrays to objects (#85631)
Tablegen generates uninitialized arrays of size 1 for raw operands and
types. In the current state this causes static analysis warnings about
"uninitialized fixed-size arrays" as their init is separated from their
declaration. Since these are single-entry array, we can just use a plain
variable instead of an array here.
Co-authored-by: Orest Chura <orest.chura at intel.com>
Co-authored-by: Mehdi Amini <joker.eph at gmail.com>
Commit: f09f9bc0aafc1e9d0670b4a995ad5f610fc3c7bc
https://github.com/llvm/llvm-project/commit/f09f9bc0aafc1e9d0670b4a995ad5f610fc3c7bc
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
Log Message:
-----------
[X86] Add TODO to remove getGSScalarCost and use BaseT / getCommonMaskedMemoryOpCost directly
There are only a few differences in the use of AddressSpace and getScalarizationOverhead that need to be handled.
Commit: 08bb121835be432ac52372f92845950628ce9a4a
https://github.com/llvm/llvm-project/commit/08bb121835be432ac52372f92845950628ce9a4a
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
Log Message:
-----------
[TTI] getCommonMaskedMemoryOpCost - pull out repeated getNumElements calls. NFC.
Commit: 3b961d113e6986eb9a6b448b72a730c289b8e6ab
https://github.com/llvm/llvm-project/commit/3b961d113e6986eb9a6b448b72a730c289b8e6ab
Author: Vinayak Dev <104419489+vinayakdsci at users.noreply.github.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M libc/config/linux/x86_64/entrypoints.txt
M libc/docs/c23.rst
M libc/docs/math/index.rst
M libc/src/math/CMakeLists.txt
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/roundeven.cpp
A libc/src/math/generic/roundevenf.cpp
A libc/src/math/generic/roundevenf128.cpp
A libc/src/math/generic/roundevenl.cpp
A libc/src/math/roundeven.h
A libc/src/math/roundevenf.h
A libc/src/math/roundevenf128.h
A libc/src/math/roundevenl.h
M libc/test/src/math/CMakeLists.txt
A libc/test/src/math/RoundEvenTest.h
A libc/test/src/math/roundeven_test.cpp
A libc/test/src/math/roundevenf_test.cpp
A libc/test/src/math/roundevenl_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/RoundEvenTest.h
A libc/test/src/math/smoke/roundeven_test.cpp
A libc/test/src/math/smoke/roundevenf128_test.cpp
A libc/test/src/math/smoke/roundevenf_test.cpp
A libc/test/src/math/smoke/roundevenl_test.cpp
M libc/utils/MPFRWrapper/MPFRUtils.cpp
M libc/utils/MPFRWrapper/MPFRUtils.h
Log Message:
-----------
[libc] Implement roundeven C23 math functions (#87678)
Implements the functions `roundeven()`, `roundevenf()`, `roundevenl()`
from the roundeven family of functions introduced in C23. Also
implements `roundevenf128()`.
Commit: 2650375b3beeb60596ca38e2e06685e48e8ed01f
https://github.com/llvm/llvm-project/commit/2650375b3beeb60596ca38e2e06685e48e8ed01f
Author: Joseph Huber <huberjn at outlook.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
A clang/test/OpenMP/thread_limit_amdgpu.c
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
Log Message:
-----------
[OpenMP] Add amdgpu-num-work-groups attribute to OpenMP kernels (#87695)
Summary:
This new attribute was introduced recently. We already do this for NVPTX
kernels so we should apply this for AMDGPU as well. This patch simply
applies this metadata in cases where a lower bound is known
Commit: c6e38b928c56f562aea68a8e90f02dbdf0eada85
https://github.com/llvm/llvm-project/commit/c6e38b928c56f562aea68a8e90f02dbdf0eada85
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/include/llvm/Transforms/Utils/LoopUtils.h
M llvm/lib/Transforms/Utils/LoopUtils.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/test/Transforms/LoopVectorize/AArch64/sve-select-cmp.ll
M llvm/test/Transforms/LoopVectorize/RISCV/select-cmp-reduction.ll
M llvm/test/Transforms/LoopVectorize/epilog-vectorization-any-of-reductions.ll
M llvm/test/Transforms/LoopVectorize/select-cmp-predicated.ll
M llvm/test/Transforms/LoopVectorize/select-cmp.ll
M llvm/test/Transforms/LoopVectorize/select-reduction-start-value-may-be-undef-or-poison.ll
Log Message:
-----------
Reapply "[LV] Improve AnyOf reduction codegen. (#78304)"
This reverts the revert commit 589c7abb03448.
This patch includes a fix for any-of reductions and epilogue
vectorization. Extra test coverage for the issue that caused the revert
has been added in 399ff08e29d.
--------------------------------
Original commit message:
Update AnyOf reduction code generation to only keep track of the AnyOf
property in a boolean vector in the loop, only selecting either the new
or start value in the middle block.
The patch incorporates feedback from https://reviews.llvm.org/D153697.
This fixes the #62565, as now there aren't multiple uses of the
start/new values.
Fixes https://github.com/llvm/llvm-project/issues/62565
PR: https://github.com/llvm/llvm-project/pull/78304
Commit: 6d2f57d2c4053af8f0c730bbfed141949149604c
https://github.com/llvm/llvm-project/commit/6d2f57d2c4053af8f0c730bbfed141949149604c
Author: Mats Petersson <mats.petersson at arm.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Driver/Options.td
M clang/lib/Driver/ToolChains/Flang.cpp
A flang/test/Driver/fopenmp.f90
M flang/test/Driver/omp-driver-offload.f90
Log Message:
-----------
[FLANG] allow -fopenmp= (#86816)
This enables the -fopenmp=<library> option to the set of options
supported by flang.
The generated arguments for the FC1 compilation will appear in a
slightly different order, so one test had to be updated to be less
sensitive to order of the arguments.
Commit: 379628d446e5e6a043ead15fd29451f06fe3e100
https://github.com/llvm/llvm-project/commit/379628d446e5e6a043ead15fd29451f06fe3e100
Author: Stephen Tozer <stephen.tozer at sony.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/include/llvm/AsmParser/LLParser.h
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/Function.h
M llvm/include/llvm/IR/Module.h
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/Function.cpp
M llvm/lib/IR/IRPrintingPasses.cpp
M llvm/test/Bitcode/dbg-record-roundtrip.ll
M llvm/test/DebugInfo/roundtrip-non-instruction-debug-info.ll
M llvm/tools/llvm-link/llvm-link.cpp
M llvm/tools/llvm-lto/llvm-lto.cpp
M llvm/tools/llvm-lto2/llvm-lto2.cpp
Log Message:
-----------
[RemoveDIs] Add flag to preserve the debug info format of input IR (#87379)
This patch adds a new flag: `--preserve-input-debuginfo-format`
This flag instructs the tool to not convert the debug info format
(intrinsics/records) of input IR, but to instead determine the format of
the input IR and overwrite the other format-determining flags so that we
process and output the file in the same format that we received it in.
This flag is turned off by llvm-link, llvm-lto, and llvm-lto2, and
should be turned off by any other tool that expects to parse multiple IR
modules and have their debug info formats match.
The motivation for this flag is to allow tools to not convert the debug
info format - verify-uselistorder and llvm-reduce, and any downstream
tools that seek to test or mutate IR as-is, without applying extraneous
modifications to the input. This is a necessary step to using debug
records by default in all (other) LLVM tools.
Commit: 9708d0900311503aa4685d6810d8caf0412e15d7
https://github.com/llvm/llvm-project/commit/9708d0900311503aa4685d6810d8caf0412e15d7
Author: Jan Leyonberg <jan_sjodin at yahoo.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/Target/LLVMIR/omptarget-parallel-wsloop.mlir
A mlir/test/Target/LLVMIR/omptarget-target-inside-task.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-llvm.mlir
M mlir/test/Target/LLVMIR/omptarget-wsloop-collapsed.mlir
M mlir/test/Target/LLVMIR/omptarget-wsloop.mlir
A mlir/test/Target/LLVMIR/openmp-data-target-device.mlir
A mlir/test/Target/LLVMIR/openmp-task-target-device.mlir
Log Message:
-----------
[MLIR][OpenMP] Skip host omp ops when compiling for the target device (#85239)
This patch separates the lowering dispatch for host and target devices.
For the target device, if the current operation is not a top-level
operation (e.g. omp.target) or is inside a target device code region it
will be ignored, since it belongs to the host code.
This is an alternative approach to #84611, the new test in this PR was
taken from there.
Commit: 541962306db639cf62ab6aacd8ba509d45549411
https://github.com/llvm/llvm-project/commit/541962306db639cf62ab6aacd8ba509d45549411
Author: Christian Ulmann <christianulmann at gmail.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M mlir/include/mlir/Dialect/LLVMIR/Transforms/TypeConsistency.h
M mlir/lib/Dialect/LLVMIR/Transforms/TypeConsistency.cpp
M mlir/test/Dialect/LLVMIR/type-consistency.mlir
Log Message:
-----------
[MLIR][LLVM] Remove bitcast pattern from type consistency pass (#87755)
This commit removes the no longer required bitcast inserting pattern in
LLVM dialect's type consistency pattern. This was previously required to
enable Mem2Reg and SROA to promote accesses that had different types.
Recent changes to both passes added direct support for this feature to
them, so the pattern has no further use.
Commit: 3c3e0e556fd768897d003fffa9e2308de982d4ae
https://github.com/llvm/llvm-project/commit/3c3e0e556fd768897d003fffa9e2308de982d4ae
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
Log Message:
-----------
[TTI] getCommonMaskedMemoryOpCost - add AddressSpace argument
Still defaults to AddressSpace = 0, but will allow us to hook up getMaskedMemoryOpCost calls once we have test coverage.
Commit: f905935ff96da4c04d2a6bf431340fd16e3a14ea
https://github.com/llvm/llvm-project/commit/f905935ff96da4c04d2a6bf431340fd16e3a14ea
Author: Julian Nagele <j.nagele at apple.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang/lib/CodeGen/CodeGenTBAA.cpp
M clang/test/CodeGen/tbaa-struct-bitfield-endianness.cpp
Log Message:
-----------
Fix tbaa.struct metadata for bitfields using big endian. (#87753)
When generating tbaa.struct metadata we treat multiple adjacent
bitfields as a single "field", with one corresponding entry in the
metadata. At the moment this is achieved by adding an entry for the
first bitfield in the run using its StorageSize and skipping the
remaining bitfields. The problem is that "first" is determined by
checking that the Offset of the field in the run is 0, which breaks for
big endian.
PR: https://github.com/llvm/llvm-project/pull/87753
Commit: a1b2f0cc447736c27ad3899bb0b17704b79e4876
https://github.com/llvm/llvm-project/commit/a1b2f0cc447736c27ad3899bb0b17704b79e4876
Author: Michael Liao <michael.hliao at gmail.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/combine-commute-const-infinite-loop.mir
Log Message:
-----------
Reland "[GlobalISel] Fix the infinite loop issue in `commute_int_constant_to_rhs`"
- That test needs to disable combine rules by name and hence requires `asserts`.
Commit: 25afb7768f8278bfbc1839c914caf2f4883d5e43
https://github.com/llvm/llvm-project/commit/25afb7768f8278bfbc1839c914caf2f4883d5e43
Author: Jordan Rupprecht <rupprecht at google.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
M utils/bazel/llvm-project-overlay/lld/BUILD.bazel
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
M utils/bazel/llvm-project-overlay/llvm/driver.bzl
Log Message:
-----------
[bazel] Add the remaining llvm-driver tools (#87302)
Commit: f3c31d7040582bf1b1c7a3e0ddd9d3f49b4b7f31
https://github.com/llvm/llvm-project/commit/f3c31d7040582bf1b1c7a3e0ddd9d3f49b4b7f31
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M flang/include/flang/Runtime/io-api.h
M flang/runtime/environment.cpp
M flang/runtime/environment.h
M flang/runtime/freestanding-tools.h
M flang/runtime/io-api.cpp
M flang/runtime/io-error.cpp
M flang/runtime/io-error.h
M flang/runtime/namelist.cpp
Log Message:
-----------
Reland "[flang][runtime] Enable I/O APIs in F18 runtime offload builds." (#87729)
This reverts commit 22089ae6c591d11143724b4bde418aa067958a8f.
Commit: 6a6335fa39edc9441761cdc2bde2466dcef84d5c
https://github.com/llvm/llvm-project/commit/6a6335fa39edc9441761cdc2bde2466dcef84d5c
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/test/CodeGen/X86/bool-vector.ll
Log Message:
-----------
[X86] bool-vector.ll - add nounwind to silence cfi noise
Commit: b861e2736aa90467ec2e42225946e242590d3a29
https://github.com/llvm/llvm-project/commit/b861e2736aa90467ec2e42225946e242590d3a29
Author: Simon Pilgrim <llvm-dev at redking.me.uk>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/test/CodeGen/X86/pr45995.ll
Log Message:
-----------
[X86] pr45995.ll - add nounwind to silence cfi noise
Commit: 51a4ab287f43c129dd531867be880480a85ecb1e
https://github.com/llvm/llvm-project/commit/51a4ab287f43c129dd531867be880480a85ecb1e
Author: Keith Smiley <keithbsmiley at gmail.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Log Message:
-----------
[bazel] Improve libc build on macOS (#86174)
With these changes you can now `bazel build @llvm-project//...` on
macOS, and the targets in libc that don't yet support macOS (or
non-linux) are ignored
Commit: e84a757222aaee310170598dc60f2c2f7ba88c7e
https://github.com/llvm/llvm-project/commit/e84a757222aaee310170598dc60f2c2f7ba88c7e
Author: Jon Roelofs <jonathan_roelofs at apple.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/include/llvm/ADT/STLExtras.h
M llvm/unittests/ADT/CMakeLists.txt
A llvm/unittests/ADT/Interleave.cpp
Log Message:
-----------
[llvm][ADT] Use ADL to find begin()/end() in interleave* (#87669)
Commit: e1830f586ac4c504f632bdb69aab49234256e899
https://github.com/llvm/llvm-project/commit/e1830f586ac4c504f632bdb69aab49234256e899
Author: Brian Cain <bcain at quicinc.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M libcxx/include/__format/formatter_floating_point.h
Log Message:
-----------
[libcxx] coerce formatter precision to int (#87738)
__precision_ is declared as an int32_t which on some hexagon platforms
is defined as a long.
This change fixes errors like the ones below:
In file included from
/local/mnt/workspace/hex/llvm-project/libcxx/test/libcxx/diagnostics/format.nodiscard_extensions.compile.pass.cpp:19:
In file included from
/local/mnt/workspace/hex/obj_runtimes_hex88_qurt_v75_ON_ON_shared/include/c++/v1/format:202:
In file included from
/local/mnt/workspace/hex/obj_runtimes_hex88_qurt_v75_ON_ON_shared/include/c++/v1/__format/format_functions.h:29:
/local/mnt/workspace/hex/obj_runtimes_hex88_qurt_v75_ON_ON_shared/include/c++/v1/__format/formatter_floating_point.h:700:17:
error: no matching function for call to 'max'
700 | int __p = std::max(1, (__specs.__has_precision() ?
__specs.__precision_ : 6));
| ^~~~~~~~
/local/mnt/workspace/hex/obj_runtimes_hex88_qurt_v75_ON_ON_shared/include/c++/v1/__format/formatter_floating_point.h:771:25:
note: in instantiation of function template specialization
'std::__formatter::__format_floating_point<float, char,
std::format_context>' requested here
771 | return __formatter::__format_floating_point(__value, __ctx,
__parser_.__get_parsed_std_specifications(__ctx));
| ^
/local/mnt/workspace/hex/obj_runtimes_hex88_qurt_v75_ON_ON_shared/include/c++/v1/__format/format_functions.h:284:42:
note: in instantiation of function template specialization
'std::__formatter_floating_point<char>::format<float,
std::format_context>' requested here
284 | __ctx.advance_to(__formatter.format(__arg, __ctx));
| ^
/local/mnt/workspace/hex/obj_runtimes_hex88_qurt_v75_ON_ON_shared/include/c++/v1/__format/format_functions.h:429:15:
note: in instantiation of function template specialization
'std::__vformat_to<std::back_insert_iterator<std::string>, char,
std::back_insert_iterator<std::__format::__output_buffer<char>>>'
requested here
429 | return std::__vformat_to(std::move(__out_it), __fmt, __args);
| ^
/local/mnt/workspace/hex/obj_runtimes_hex88_qurt_v75_ON_ON_shared/include/c++/v1/__format/format_functions.h:462:8:
note: in instantiation of function template specialization
'std::vformat_to<std::back_insert_iterator<std::string>>' requested here
462 | std::vformat_to(std::back_inserter(__res), __fmt, __args);
| ^
/local/mnt/workspace/hex/llvm-project/libcxx/test/libcxx/diagnostics/format.nodiscard_extensions.compile.pass.cpp:29:8:
note: in instantiation of function template specialization
'std::vformat<void>' requested here
29 | std::vformat("", std::make_format_args());
| ^
/local/mnt/workspace/hex/obj_runtimes_hex88_qurt_v75_ON_ON_shared/include/c++/v1/__algorithm/max.h:35:1:
note: candidate template ignored: deduced conflicting types for
parameter '_Tp' ('int' vs. 'int32_t' (aka 'long'))
35 | max(_LIBCPP_LIFETIMEBOUND const _Tp& __a, _LIBCPP_LIFETIMEBOUND
const _Tp& __b) {
| ^
/local/mnt/workspace/hex/obj_runtimes_hex88_qurt_v75_ON_ON_shared/include/c++/v1/__algorithm/max.h:43:1:
note: candidate template ignored: could not match
'initializer_list<_Tp>' against 'int'
43 | max(initializer_list<_Tp> __t, _Compare __comp) {
| ^
/local/mnt/workspace/hex/obj_runtimes_hex88_qurt_v75_ON_ON_shared/include/c++/v1/__algorithm/max.h:48:86:
note: candidate function template not viable: requires single argument
'__t', but 2 arguments were provided
48 | _LIBCPP_NODISCARD_EXT inline _LIBCPP_HIDE_FROM_ABI
_LIBCPP_CONSTEXPR_SINCE_CXX14 _Tp max(initializer_list<_Tp> __t) {
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
/local/mnt/workspace/hex/obj_runtimes_hex88_qurt_v75_ON_ON_shared/include/c++/v1/__algorithm/max.h:29:1:
note: candidate function template not viable: requires 3 arguments, but
2 were provided
29 | max(_LIBCPP_LIFETIMEBOUND const _Tp& __a, _LIBCPP_LIFETIMEBOUND
const _Tp& __b, _Compare __comp) {
| ^
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Commit: 5f9ed2ff8364ff3e4fac410472f421299dafa793
https://github.com/llvm/llvm-project/commit/5f9ed2ff8364ff3e4fac410472f421299dafa793
Author: Vitaly Buka <vitalybuka at google.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M clang/lib/CodeGen/CGExpr.cpp
M clang/test/CodeGen/allow-ubsan-check.c
Log Message:
-----------
[clang][CodeGen] Guard ubsan checks with `llvm.allow.ubsan.check` (#87436)
Intrinsic inserted into CodeGenFunction::EmitCheck, which
is not mostly used by CFI.
CFI is not the goal, and fixing inconsistencies with CFI is outside of
the cope of the patch.
RFC:
https://discourse.llvm.org/t/rfc-add-llvm-experimental-hot-intrinsic-or-llvm-hot/77641
Commit: 953aa102a90099ae655eaa4645dd8d15c95ea86a
https://github.com/llvm/llvm-project/commit/953aa102a90099ae655eaa4645dd8d15c95ea86a
Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M flang/include/flang/Evaluate/tools.h
M flang/lib/Lower/Bridge.cpp
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
Log Message:
-----------
[flang][cuda] Lower device to host and device to device transfer (#87387)
Add more support for CUDA data transfer in assignment. This patch adds
device to device and device to host support. If device symbols are
present on the rhs, some implicit data transfer are initiated. A
temporary is created and the data are transferred to the host. The
expression is evaluated on the host and the assignment is done.
Commit: a671ceec3343063a4e6f45c231791ff925abedb5
https://github.com/llvm/llvm-project/commit/a671ceec3343063a4e6f45c231791ff925abedb5
Author: Lang Hames <lhames at gmail.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/Core.cpp
Log Message:
-----------
[ORC] Fix an EDU-update bug in ExecutionSession::IL_failSymbols.
We were catching a local variable, SymMI, by value instead of by reference
during EDU cleanup and this was leaving the dependence graph in an
inconsistent state that could lead to crashes on subsequent emits. Fixing this
bug required us to also avoid aliasing between SymMI and MI (which would have
caused cleanup to clear the MI.DependantEDUs set that we're iterating over).
No testcase: the crash only triggered in very specific circumstances
(including concurrent linking) in an out-of-tree ORC client. I'm working on a
session state verifier that could be turned on when compiling with
expensive-checks turned on and that should help us catch issues like this in
the future.
rdar://125164262
Coding my way home: 0.89527S, 89.61313W
Commit: 29cc80f4ecafe45586401ce4a79b324b6240b6e9
https://github.com/llvm/llvm-project/commit/29cc80f4ecafe45586401ce4a79b324b6240b6e9
Author: Eric <eric at efcs.ca>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M libcxx/include/__memory/construct_at.h
Log Message:
-----------
Fix issue with never-constexpr __construct_at in C++ < 20. (#87403)
The application of constexpr to __construct_at triggers weird linker
errors when building LLVM with modules enabled and C++ < 20.
> ld.lld: error: undefined hidden symbol: void*
std::__1::__voidify[abi:nn190000]<llvm::sys::ProcessStatistics>(llvm::sys::ProcessStatistics&)
>>>> referenced by construct_at.h:52
(/usr/local/bin/../include/c++/v1/__memory/construct_at.h:52)
>>>> Program.cpp.o:(llvm::sys::Wait(llvm::sys::ProcessInfo const&,
std::__1::optional<unsigned int>, std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char>>*,
std::__1::optional<llvm::sys::ProcessStatistics>*, bool)) in archive
lib/libLLVMSupport.a
I suspect this is related to undefined behavior caused by the fact that
construct_at is never really constexpr (which is UB NDR).
I'm unsure how to meaningfully write a test for this, as I haven't been
able to trigger it in smaller unit tests
Commit: 7e4883f8881bfaea30996c4e846369fbf0b4b549
https://github.com/llvm/llvm-project/commit/7e4883f8881bfaea30996c4e846369fbf0b4b549
Author: Fangrui Song <i at maskray.me>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/docs/ReleaseNotes.rst
M llvm/test/tools/llvm-ranlib/help-message.test
M llvm/tools/llvm-ar/llvm-ar.cpp
Log Message:
-----------
[llvm-ranlib] Change -v (alias for --version) to -V
-V prints the version information in both BSD and GNU ar/ranlib.
BSD ranlib rejects -v while -v enables verbose output in GNU ar but is
another alias for --version in GNU ranlib. The GNU ranlib behavior is
inconsistent: `ranlib -v` is different from `ar -sv`. But it's not a
major concern in practice:
* Users typically use ranlib solely for creating archive symbol tables,
and they don't need verbose output.
* Verbose output in ranlib seems a no-op.
* GNU ar creates an archive symbol table by default. Many ranlib uses
have been eliminated.
* Modern linkers like lld/ELF (since version 14) and mold don't rely on
archive symbol tables anymore.
https://reviews.llvm.org/D71554 introduced -v. This patch removes it so
that `llvm-ranlib -v` and `llvm-ranlib -version` lead to errors (GNU
ranlib rejects `-version` as well). -V is added as an alias for
--version.
Close #87654
Pull Request: https://github.com/llvm/llvm-project/pull/87661
Commit: c3793ad3a21ffe056e75abbb7fbccf32c07ac189
https://github.com/llvm/llvm-project/commit/c3793ad3a21ffe056e75abbb7fbccf32c07ac189
Author: Fangrui Song <i at maskray.me>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M .github/workflows/libcxx-build-and-test.yaml
M clang-tools-extra/clang-tidy/hicpp/IgnoredRemoveResultCheck.cpp
M clang-tools-extra/clangd/CompileCommands.cpp
M clang-tools-extra/docs/ReleaseNotes.rst
M clang-tools-extra/test/clang-tidy/checkers/hicpp/ignored-remove-result.cpp
M clang/docs/ReleaseNotes.rst
M clang/include/clang/AST/Decl.h
M clang/include/clang/AST/DeclCXX.h
M clang/include/clang/Basic/Builtins.td
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Driver/Options.td
M clang/include/clang/Lex/Token.h
M clang/include/clang/Sema/Sema.h
M clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallDescription.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h
M clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
M clang/lib/AST/ASTImporter.cpp
M clang/lib/CodeGen/BackendUtil.cpp
M clang/lib/CodeGen/CGBuiltin.cpp
M clang/lib/CodeGen/CGExpr.cpp
M clang/lib/CodeGen/CGHLSLRuntime.cpp
M clang/lib/CodeGen/CGHLSLRuntime.h
M clang/lib/CodeGen/CodeGenTBAA.cpp
M clang/lib/Driver/ToolChains/Flang.cpp
M clang/lib/Format/UnwrappedLineParser.cpp
M clang/lib/Frontend/CompilerInvocation.cpp
M clang/lib/Frontend/FrontendActions.cpp
M clang/lib/Headers/__stddef_unreachable.h
M clang/lib/Headers/hlsl/hlsl_intrinsics.h
M clang/lib/Sema/SemaChecking.cpp
M clang/lib/Sema/SemaConcept.cpp
M clang/lib/Sema/SemaDecl.cpp
M clang/lib/Sema/SemaDeclAttr.cpp
M clang/lib/Sema/SemaDeclCXX.cpp
M clang/lib/Sema/SemaTemplate.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
M clang/lib/Sema/TreeTransform.h
M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
M clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
M clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
M clang/lib/StaticAnalyzer/Core/CallDescription.cpp
M clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
M clang/test/CodeGen/allow-ubsan-check.c
R clang/test/CodeGen/remote-traps.c
M clang/test/CodeGen/tbaa-struct-bitfield-endianness.cpp
A clang/test/CodeGenHLSL/builtins/all.hlsl
A clang/test/InstallAPI/Inputs/Foundation/Foundation.framework/Headers/Foundation.h
M clang/test/InstallAPI/extra-exclude-headers.test
A clang/test/InstallAPI/forwarded-search-paths.test
A clang/test/OpenMP/thread_limit_amdgpu.c
A clang/test/Sema/alias-unused-win.cpp
M clang/test/Sema/alias-unused.cpp
A clang/test/SemaCXX/PR86790.cpp
M clang/test/SemaCXX/warn-unused-but-set-variables-cpp.cpp
A clang/test/SemaTemplate/alias-template-with-lambdas.cpp
M clang/tools/clang-installapi/Options.cpp
M clang/tools/clang-installapi/Options.h
M clang/unittests/AST/ASTImporterTest.cpp
M clang/unittests/Format/FormatTest.cpp
M clang/unittests/Format/TokenAnnotatorTest.cpp
M clang/unittests/StaticAnalyzer/CallDescriptionTest.cpp
M clang/utils/TableGen/ClangOptionDocEmitter.cpp
M compiler-rt/lib/hwasan/hwasan_thread_list.h
M flang/.gitignore
A flang/include/flang/Common/windows-include.h
M flang/include/flang/Evaluate/tools.h
M flang/include/flang/Optimizer/Dialect/FIROpsSupport.h
M flang/include/flang/Runtime/io-api.h
M flang/lib/Lower/Bridge.cpp
M flang/lib/Optimizer/CodeGen/CodeGen.cpp
M flang/lib/Optimizer/Dialect/FIROps.cpp
M flang/lib/Semantics/check-declarations.cpp
M flang/runtime/command.cpp
M flang/runtime/environment.cpp
M flang/runtime/environment.h
M flang/runtime/execute.cpp
M flang/runtime/file.cpp
M flang/runtime/freestanding-tools.h
M flang/runtime/io-api.cpp
M flang/runtime/io-error.cpp
M flang/runtime/io-error.h
M flang/runtime/lock.h
M flang/runtime/namelist.cpp
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-as
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld.bfd
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/i386-unknown-linux-gnu-ld.gold
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-as
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld.bfd
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/bin/x86_64-unknown-linux-gnu-ld.gold
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/as
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld.bfd
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/bin/ld.gold
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/i386-unknown-linux-gnu/lib/.keep
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/i386-unknown-linux-gnu/10.2.0/crtbegin.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbegin.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbeginT.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtfastmath.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbegin.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbeginT.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtfastmath.o
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/as
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.bfd
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.gold
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/bin/ld.lld
A flang/test/Driver/Inputs/basic_cross_linux_tree/usr/x86_64-unknown-linux-gnu/lib/.keep
M flang/test/Driver/driver-help-hidden.f90
M flang/test/Driver/driver-help.f90
A flang/test/Driver/fopenmp.f90
A flang/test/Driver/gcc-toolchain-install-dir.f90
M flang/test/Driver/omp-driver-offload.f90
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
M flang/test/Semantics/cuf03.cuf
M libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
M libc/config/linux/x86_64/entrypoints.txt
M libc/docs/c23.rst
M libc/docs/math/index.rst
M libc/include/llvm-libc-macros/math-macros.h
M libc/src/__support/RPC/rpc.h
M libc/src/math/CMakeLists.txt
M libc/src/math/generic/CMakeLists.txt
A libc/src/math/generic/roundeven.cpp
A libc/src/math/generic/roundevenf.cpp
A libc/src/math/generic/roundevenf128.cpp
A libc/src/math/generic/roundevenl.cpp
A libc/src/math/roundeven.h
A libc/src/math/roundevenf.h
A libc/src/math/roundevenf128.h
A libc/src/math/roundevenl.h
M libc/test/src/math/CMakeLists.txt
A libc/test/src/math/RoundEvenTest.h
A libc/test/src/math/roundeven_test.cpp
A libc/test/src/math/roundevenf_test.cpp
A libc/test/src/math/roundevenl_test.cpp
M libc/test/src/math/smoke/CMakeLists.txt
A libc/test/src/math/smoke/RoundEvenTest.h
A libc/test/src/math/smoke/roundeven_test.cpp
A libc/test/src/math/smoke/roundevenf128_test.cpp
A libc/test/src/math/smoke/roundevenf_test.cpp
A libc/test/src/math/smoke/roundevenl_test.cpp
M libc/utils/MPFRWrapper/MPFRUtils.cpp
M libc/utils/MPFRWrapper/MPFRUtils.h
M libcxx/docs/index.rst
M libcxx/include/CMakeLists.txt
M libcxx/include/__algorithm/comp.h
M libcxx/include/__algorithm/equal.h
M libcxx/include/__algorithm/mismatch.h
M libcxx/include/__algorithm/pstl_backends/cpu_backends/transform_reduce.h
M libcxx/include/__format/formatter_floating_point.h
M libcxx/include/__functional/operations.h
M libcxx/include/__functional/ranges_operations.h
M libcxx/include/__memory/construct_at.h
M libcxx/include/__numeric/pstl_transform_reduce.h
A libcxx/include/__type_traits/desugars_to.h
R libcxx/include/__type_traits/operation_traits.h
M libcxx/include/libcxx.imp
M libcxx/include/module.modulemap
M libcxx/test/libcxx/atomics/diagnose_invalid_memory_order.verify.cpp
M libcxx/test/libcxx/ranges/range.adaptors/range.lazy.split/no_unique_address.compile.pass.cpp
M libcxx/test/libcxx/ranges/range.adaptors/range.split/no_unique_address.compile.pass.cpp
M libcxx/test/libcxx/ranges/range.factories/range.istream.view/no_unique_address.compile.pass.cpp
M lld/COFF/PDB.cpp
M lld/MachO/DriverUtils.cpp
M lld/MinGW/Driver.cpp
M lld/test/COFF/undefined-symbol-cv.s
M lld/wasm/Driver.cpp
M llvm/docs/CommandGuide/llvm-objcopy.rst
M llvm/docs/LangRef.rst
M llvm/docs/ReleaseNotes.rst
M llvm/include/llvm/ADT/STLExtras.h
M llvm/include/llvm/Analysis/TargetTransformInfo.h
M llvm/include/llvm/AsmParser/LLParser.h
M llvm/include/llvm/CodeGen/BasicTTIImpl.h
M llvm/include/llvm/IR/BasicBlock.h
M llvm/include/llvm/IR/Function.h
M llvm/include/llvm/IR/Intrinsics.td
M llvm/include/llvm/IR/IntrinsicsDirectX.td
M llvm/include/llvm/IR/IntrinsicsSPIRV.td
M llvm/include/llvm/IR/Module.h
M llvm/include/llvm/ObjCopy/CommonConfig.h
M llvm/include/llvm/Option/OptParser.td
M llvm/include/llvm/Option/OptTable.h
M llvm/include/llvm/TextAPI/InterfaceFile.h
A llvm/include/llvm/Transforms/Instrumentation/LowerAllowCheckPass.h
R llvm/include/llvm/Transforms/Instrumentation/RemoveTrapsPass.h
M llvm/include/llvm/Transforms/Utils/LoopUtils.h
M llvm/lib/Analysis/ValueTracking.cpp
M llvm/lib/AsmParser/LLParser.cpp
M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
M llvm/lib/ExecutionEngine/Orc/Core.cpp
M llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
M llvm/lib/IR/BasicBlock.cpp
M llvm/lib/IR/Function.cpp
M llvm/lib/IR/IRPrintingPasses.cpp
M llvm/lib/IR/Verifier.cpp
M llvm/lib/ObjCopy/ELF/ELFObjcopy.cpp
M llvm/lib/Option/OptTable.cpp
M llvm/lib/Passes/PassBuilder.cpp
M llvm/lib/Passes/PassRegistry.def
M llvm/lib/ProfileData/InstrProfWriter.cpp
M llvm/lib/Target/AArch64/AArch64.td
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.h
M llvm/lib/Target/ARM/Thumb1InstrInfo.cpp
M llvm/lib/Target/ARM/Thumb2InstrInfo.cpp
M llvm/lib/Target/ARM/Thumb2InstrInfo.h
M llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp
M llvm/lib/Target/RISCV/RISCVSubtarget.h
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.h
M llvm/lib/TextAPI/InterfaceFile.cpp
M llvm/lib/TextAPI/TextStubV5.cpp
M llvm/lib/Transforms/Instrumentation/CMakeLists.txt
M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
A llvm/lib/Transforms/Instrumentation/LowerAllowCheckPass.cpp
R llvm/lib/Transforms/Instrumentation/RemoveTrapsPass.cpp
M llvm/lib/Transforms/Utils/LoopUtils.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/lib/Transforms/Vectorize/VPlan.cpp
M llvm/lib/Transforms/Vectorize/VPlan.h
M llvm/lib/Transforms/Vectorize/VPlanAnalysis.cpp
M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
M llvm/lib/Transforms/Vectorize/VPlanTransforms.h
M llvm/lib/Transforms/Vectorize/VPlanValue.h
M llvm/lib/Transforms/Vectorize/VPlanVerifier.cpp
A llvm/test/Analysis/CostModel/X86/masked-intrinsic-codesize.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost-inseltpoison.ll
M llvm/test/Analysis/CostModel/X86/masked-intrinsic-cost.ll
A llvm/test/Analysis/CostModel/X86/masked-intrinsic-latency.ll
A llvm/test/Analysis/CostModel/X86/masked-intrinsic-sizelatency.ll
M llvm/test/Bitcode/dbg-record-roundtrip.ll
A llvm/test/CodeGen/AArch64/GlobalISel/combine-commute-const-infinite-loop.mir
M llvm/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
M llvm/test/CodeGen/AArch64/aarch64-fold-lslfast.ll
M llvm/test/CodeGen/AArch64/aarch64-split-and-bitmask-immediate.ll
M llvm/test/CodeGen/AArch64/arm64-addr-mode-folding.ll
M llvm/test/CodeGen/AArch64/arm64-vector-ldst.ll
M llvm/test/CodeGen/AArch64/avoid-free-ext-promotion.ll
M llvm/test/CodeGen/AArch64/cheap-as-a-move.ll
M llvm/test/CodeGen/AArch64/extract-bits.ll
M llvm/test/CodeGen/AArch64/machine-licm-hoist-load.ll
A llvm/test/CodeGen/AArch64/note-gnu-property-elf-pauthabi.ll
M llvm/test/CodeGen/AArch64/sink-and-fold.ll
R llvm/test/CodeGen/ARM/misched-branch-targets.mir
M llvm/test/CodeGen/ARM/sadd_sat.ll
M llvm/test/CodeGen/ARM/select_const.ll
M llvm/test/CodeGen/ARM/wide-compares.ll
M llvm/test/CodeGen/SPARC/inlineasm-bad.ll
M llvm/test/CodeGen/SPARC/inlineasm.ll
M llvm/test/CodeGen/Thumb/pr35836.ll
M llvm/test/CodeGen/Thumb/urem-seteq-illegal-types.ll
M llvm/test/CodeGen/X86/bool-vector.ll
M llvm/test/CodeGen/X86/pr45995.ll
M llvm/test/DebugInfo/roundtrip-non-instruction-debug-info.ll
M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out-no-ps.ll
M llvm/test/Instrumentation/HWAddressSanitizer/pgo-opt-out.ll
A llvm/test/Transforms/InstCombine/implies.ll
M llvm/test/Transforms/InstCombine/known-bits.ll
M llvm/test/Transforms/InstCombine/zext-or-icmp.ll
M llvm/test/Transforms/InstSimplify/implies.ll
M llvm/test/Transforms/LoopVectorize/AArch64/sve-select-cmp.ll
A llvm/test/Transforms/LoopVectorize/PowerPC/vectorize-force-tail-with-evl.ll
A llvm/test/Transforms/LoopVectorize/PowerPC/vplan-force-tail-with-evl.ll
M llvm/test/Transforms/LoopVectorize/RISCV/inloop-reduction.ll
M llvm/test/Transforms/LoopVectorize/RISCV/select-cmp-reduction.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-gather-scatter.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-interleave.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-iv32.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-masked-loadstore.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-no-masking.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-force-tail-with-evl-reverse-load-store.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vectorize-vp-intrinsics.ll
A llvm/test/Transforms/LoopVectorize/RISCV/vplan-vp-intrinsics.ll
A llvm/test/Transforms/LoopVectorize/X86/vectorize-force-tail-with-evl.ll
A llvm/test/Transforms/LoopVectorize/X86/vplan-vp-intrinsics.ll
M llvm/test/Transforms/LoopVectorize/epilog-vectorization-any-of-reductions.ll
M llvm/test/Transforms/LoopVectorize/select-cmp-predicated.ll
M llvm/test/Transforms/LoopVectorize/select-cmp.ll
M llvm/test/Transforms/LoopVectorize/select-reduction-start-value-may-be-undef-or-poison.ll
A llvm/test/Transforms/LoopVectorize/vectorize-force-tail-with-evl.ll
A llvm/test/Transforms/LoopVectorize/vplan-force-tail-with-evl.ll
R llvm/test/Transforms/RemoveTraps/remove-traps.ll
A llvm/test/Transforms/SLPVectorizer/AArch64/scalable-external-user.ll
A llvm/test/Transforms/SLPVectorizer/X86/external-user-instruction-minbitwidth.ll
A llvm/test/Transforms/lower-builtin-allow-check.ll
A llvm/test/Verifier/module-flags-note-gnu-property-elf-pauthabi.ll
R llvm/test/tools/llvm-objcopy/ELF/compress-sections-within-segment.s
R llvm/test/tools/llvm-objcopy/ELF/compress-sections.s
M llvm/test/tools/llvm-objcopy/ELF/decompress-sections.test
M llvm/test/tools/llvm-ranlib/help-message.test
M llvm/tools/llvm-ar/llvm-ar.cpp
M llvm/tools/llvm-link/llvm-link.cpp
M llvm/tools/llvm-lto/llvm-lto.cpp
M llvm/tools/llvm-lto2/llvm-lto2.cpp
M llvm/tools/llvm-objcopy/ObjcopyOptions.cpp
M llvm/tools/llvm-objcopy/ObjcopyOpts.td
M llvm/unittests/ADT/CMakeLists.txt
A llvm/unittests/ADT/Interleave.cpp
M llvm/unittests/Option/OptionMarshallingTest.cpp
M llvm/unittests/TextAPI/TextStubV5Tests.cpp
M llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
M llvm/utils/TableGen/OptParserEmitter.cpp
M llvm/utils/gn/secondary/llvm/lib/Transforms/Instrumentation/BUILD.gn
A mlir/cmake/modules/MLIRCheckHardwareFeatures.cmake
M mlir/docs/DefiningDialects/AttributesAndTypes.md
M mlir/docs/DefiningDialects/_index.md
M mlir/docs/Dialects/ArmSME.md
M mlir/docs/Dialects/Linalg/_index.md
M mlir/docs/Dialects/Transform.md
M mlir/docs/LangRef.md
M mlir/docs/Rationale/SideEffectsAndSpeculation.md
M mlir/docs/TargetLLVMIR.md
M mlir/docs/Tutorials/Toy/Ch-4.md
M mlir/docs/Tutorials/transform/Ch4.md
M mlir/include/mlir/Dialect/Affine/LoopUtils.h
M mlir/include/mlir/Dialect/Arith/IR/ArithOps.td
M mlir/include/mlir/Dialect/LLVMIR/Transforms/TypeConsistency.h
M mlir/include/mlir/Dialect/SCF/Utils/Utils.h
M mlir/include/mlir/IR/PatternMatch.h
M mlir/lib/Dialect/Affine/Transforms/LoopCoalescing.cpp
M mlir/lib/Dialect/Affine/Utils/LoopUtils.cpp
M mlir/lib/Dialect/Arith/IR/ArithOps.cpp
M mlir/lib/Dialect/ControlFlow/IR/ControlFlowOps.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
M mlir/lib/Dialect/LLVMIR/IR/LLVMMemorySlot.cpp
M mlir/lib/Dialect/LLVMIR/Transforms/TypeConsistency.cpp
M mlir/lib/Dialect/SCF/TransformOps/SCFTransformOps.cpp
M mlir/lib/Dialect/SCF/Transforms/ParallelLoopCollapsing.cpp
M mlir/lib/Dialect/SCF/Utils/Utils.cpp
M mlir/lib/IR/PatternMatch.cpp
M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/CMakeLists.txt
M mlir/test/Dialect/Affine/loop-coalescing.mlir
A mlir/test/Dialect/Arith/vscale_constants.mlir
M mlir/test/Dialect/ControlFlow/ops.mlir
M mlir/test/Dialect/LLVMIR/canonicalize.mlir
M mlir/test/Dialect/LLVMIR/mem2reg.mlir
M mlir/test/Dialect/LLVMIR/type-consistency.mlir
M mlir/test/Dialect/SCF/transform-op-coalesce.mlir
M mlir/test/Target/LLVMIR/omptarget-parallel-wsloop.mlir
A mlir/test/Target/LLVMIR/omptarget-target-inside-task.mlir
M mlir/test/Target/LLVMIR/omptarget-teams-llvm.mlir
M mlir/test/Target/LLVMIR/omptarget-wsloop-collapsed.mlir
M mlir/test/Target/LLVMIR/omptarget-wsloop.mlir
A mlir/test/Target/LLVMIR/openmp-data-target-device.mlir
A mlir/test/Target/LLVMIR/openmp-task-target-device.mlir
M mlir/test/Transforms/parallel-loop-collapsing.mlir
M mlir/test/Transforms/single-parallel-loop-collapsing.mlir
A mlir/test/mlir-tblgen/op-properties.td
M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
M mlir/tools/mlir-tblgen/OpFormatGen.cpp
M openmp/runtime/test/affinity/kmp-abs-hw-subset.c
M utils/bazel/.bazelrc
M utils/bazel/configure.bzl
M utils/bazel/llvm-project-overlay/clang/BUILD.bazel
M utils/bazel/llvm-project-overlay/compiler-rt/BUILD.bazel
A utils/bazel/llvm-project-overlay/compiler-rt/lib/orc/tests/unit/BUILD.bazel
M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
M utils/bazel/llvm-project-overlay/lld/BUILD.bazel
A utils/bazel/llvm-project-overlay/lldb/BUILD.bazel
A utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
A utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
M utils/bazel/llvm-project-overlay/llvm/driver.bzl
M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
Log Message:
-----------
improve tests. use FreeDeleter
Created using spr 1.3.5-bogner
Compare: https://github.com/llvm/llvm-project/compare/1b3847ea3920...c3793ad3a21f
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list