[all-commits] [llvm/llvm-project] 413a66: [LV, VP]VP intrinsics support for the Loop Vectori...
Paul Kirth via All-commits
all-commits at lists.llvm.org
Fri Apr 5 10:07:44 PDT 2024
Branch: refs/heads/users/ilovepi/spr/main.riscv-use-the-thread-local-stack-protector-for-android-targets
Home: https://github.com/llvm/llvm-project
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: f0724f0704299b49d42a48099b97c4cf0a55b155
https://github.com/llvm/llvm-project/commit/f0724f0704299b49d42a48099b97c4cf0a55b155
Author: Paul Kirth <paulkirth at google.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Log Message:
-----------
[llvm][NFC] Update URL in comment about Android ABI
The previous URL was stale, and referenced 'master' instead of 'main',
which will never be updated.
Reviewers: topperc, enh-google
Reviewed By: enh-google
Pull Request: https://github.com/llvm/llvm-project/pull/87726
Commit: 440d1a05e9d6e0abf74b6cec8ce6b71ce8b49b16
https://github.com/llvm/llvm-project/commit/440d1a05e9d6e0abf74b6cec8ce6b71ce8b49b16
Author: Paul Kirth <paulkirth at google.com>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
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/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/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/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 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/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
M flang/test/Driver/driver-help-hidden.f90
M flang/test/Driver/driver-help.f90
A flang/test/Driver/fopenmp.f90
M flang/test/Driver/omp-driver-offload.f90
M flang/test/Lower/CUDA/cuda-data-transfer.cuf
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
M libcxx/include/__format/formatter_floating_point.h
M libcxx/include/__memory/construct_at.h
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 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
M llvm/docs/CommandGuide/llvm-objcopy.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/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
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/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/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/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/ARM/Thumb1InstrInfo.cpp
M llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
M llvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
M llvm/lib/Target/X86/X86TargetTransformInfo.h
M llvm/lib/Transforms/Instrumentation/CMakeLists.txt
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
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
M llvm/test/Bitcode/dbg-record-roundtrip.ll
A llvm/test/CodeGen/AArch64/GlobalISel/combine-commute-const-infinite-loop.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/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/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/lower-builtin-allow-check.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/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/Arith/IR/ArithOps.td
M mlir/include/mlir/Dialect/LLVMIR/Transforms/TypeConsistency.h
M mlir/lib/Dialect/Arith/IR/ArithOps.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/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
M mlir/test/CMakeLists.txt
A mlir/test/Dialect/Arith/vscale_constants.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/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/tools/mlir-tblgen/OpFormatGen.cpp
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
M utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
M utils/bazel/llvm-project-overlay/llvm/driver.bzl
Log Message:
-----------
[𝘀𝗽𝗿] changes introduced through rebase
Created using spr 1.3.4
[skip ci]
Compare: https://github.com/llvm/llvm-project/compare/282e539d12ce...440d1a05e9d6
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