SuccessChanges

Summary

  1. [test] Precommit test for D101103 (details)
  2. [InstSimplify] Treat invariant group insts as bitcasts for load operands (details)
  3. [mlir-reduce] Reducer refactor. (details)
  4. [OpaquePtr] Create API to make a copy of a PointerType with some address space (details)
  5. [AMDGPU] All GWS instructions need aligned VGPR on gfx90a (details)
  6. Fix tmp files being left on Windows builds. (details)
  7. Remove x86 test amx-fast-tile-config.mir (by its author) (details)
  8. [CUDA][HIP] Change default lang std to c++14 (details)
  9. [RISCV][test] Add new tests of bitwise and with constant for the Zbs extension (details)
  10. Make ignore counts work as "after stop" modifiers so they play nicely with conditions (details)
  11. [CUDA][HIP] Promote const variables to constant (details)
  12. [mlir] Support tensor types in non-unrolled VectorToSCF (details)
  13. [llvm-readobj] Print function names with `--bb-addr-map`. (details)
  14. [mlir] Support tensor types in unrolled VectorToSCF (details)
  15. [libc++] NFC: Move unwrap_iter to its own header (details)
  16. [gn build] Port 924ea3bb53ca (details)
  17. [RISCV] Improve register allocation for masked vwadd(u).wv, vwsub(u).wv, vfwadd.wv, and vfwsub.wv. (details)
  18. [libc++] Add a CI job to test libc++ when building for 32 bit (details)
  19. Revert "Fix tmp files being left on Windows builds." for now; (details)
  20. [scudo] Enabled MTE in tests (details)
Commit 3aa943070cc1235c5b8d738dbeb0ca38cb7c6920 by aeubanks
[test] Precommit test for D101103
The file was addedllvm/test/Transforms/InstSimplify/invariant.group-load.ll
Commit 26044c6a54de3e03c73c5515702b95acdb0b7f22 by aeubanks
[InstSimplify] Treat invariant group insts as bitcasts for load operands

We can look through invariant group intrinsics for the purposes of
simplifying the result of a load.

Since intrinsics can't be constants, but we also don't want to
completely rewrite load constant folding, we convert the load operand to
a constant. For GEPs and bitcasts we just treat them as constants. For
invariant group intrinsics, we treat them as a bitcast.

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D101103
The file was modifiedllvm/test/Transforms/InstSimplify/invariant.group-load.ll
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
Commit c484c7dd9d2382f07216ae9142ceb76272e21dc4 by chiahungduan
[mlir-reduce] Reducer refactor.

* A Reducer is a kind of RewritePattern, so it's just the same as
writing graph rewrite.
* ReductionTreePass operates on Operation rather than ModuleOp, so that
* we are able to reduce a nested structure(e.g., module in module) by
* self-nesting.

Reviewed By: jpienaar, rriddle

Differential Revision: https://reviews.llvm.org/D101046
The file was modifiedmlir/include/mlir/Reducer/Passes.h
The file was addedmlir/test/mlir-reduce/crashop-reduction.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was addedmlir/include/mlir/Reducer/ReductionPatternInterface.h
The file was modifiedmlir/tools/mlir-reduce/mlir-reduce.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp
The file was removedmlir/tools/mlir-reduce/ReductionNode.cpp
The file was modifiedmlir/test/lib/Dialect/Test/CMakeLists.txt
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/lib/Reducer/Tester.cpp
The file was modifiedmlir/include/mlir/Reducer/Passes.td
The file was removedmlir/tools/mlir-reduce/OptReductionPass.cpp
The file was addedmlir/lib/Reducer/ReductionNode.cpp
The file was modifiedmlir/test/lib/Reducer/MLIRTestReducer.cpp
The file was modifiedmlir/test/mlir-reduce/simple-test.mlir
The file was removedmlir/include/mlir/Reducer/ReductionTreePass.h
The file was modifiedmlir/test/mlir-reduce/multiple-function.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.h
The file was modifiedmlir/lib/Reducer/CMakeLists.txt
The file was removedmlir/include/mlir/Reducer/Passes/OpReducer.h
The file was modifiedmlir/test/mlir-reduce/dce-test.mlir
The file was modifiedmlir/test/mlir-reduce/single-function.mlir
The file was modifiedmlir/tools/mlir-reduce/CMakeLists.txt
The file was removedmlir/include/mlir/Reducer/OptReductionPass.h
The file was addedmlir/lib/Reducer/OptReductionPass.cpp
The file was removedmlir/tools/mlir-reduce/ReductionTreePass.cpp
The file was addedmlir/lib/Reducer/ReductionTreePass.cpp
The file was modifiedmlir/include/mlir/Reducer/ReductionNode.h
Commit 89612938516b3623ecc038267539f2a4b69312d2 by aeubanks
[OpaquePtr] Create API to make a copy of a PointerType with some address space

Some existing places use getPointerElementType() to create a copy of a
pointer type with some new address space.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D103429
The file was modifiedllvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp
The file was modifiedllvm/lib/Analysis/ConstantFolding.cpp
The file was modifiedllvm/include/llvm/IR/DerivedTypes.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp
The file was modifiedllvm/unittests/IR/TypesTest.cpp
Commit 9e2e49328f19eeeab63c08721122815a27b2dad5 by Stanislav.Mekhanoshin
[AMDGPU] All GWS instructions need aligned VGPR on gfx90a

Fixes: SWDEV-288006

Differential Revision: https://reviews.llvm.org/D103197
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was addedllvm/test/CodeGen/AMDGPU/ds_gws_align.ll
The file was addedllvm/test/CodeGen/AMDGPU/verify-ds-gws-align.mir
Commit 7daa18215905c831e130c7542f17619e9d936dfc by akhuang
Fix tmp files being left on Windows builds.

Clang writes object files by first writing to a .tmp file and then
renaming to the final .obj name. On Windows, if a compile is killed
partway through the .tmp files don't get deleted.

Currently it seems like RemoveFileOnSignal takes care of deleting the
tmp files on Linux, but on Windows we need to call
setDeleteDisposition on tmp files so that they are deleted when
closed.

This patch switches to using TempFile to create the .tmp files we write
when creating object files, since it uses setDeleteDisposition on Windows.
This change applies to both Linux and Windows for consistency.

Differential Revision: https://reviews.llvm.org/D102876
The file was modifiedclang/include/clang/Frontend/CompilerInstance.h
The file was modifiedllvm/lib/Support/Windows/Path.inc
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
The file was modifiedllvm/lib/Support/Path.cpp
Commit 5fc9653faaf93f4cf2bc9d46c4619ec5811a602f by xiang1.zhang
Remove x86 test amx-fast-tile-config.mir (by its author)

This test contains a lot of manual changes which is not convenient
to update, and the checks are duplicated with test amx-configO2toO0.ll
The file was removedllvm/test/CodeGen/X86/AMX/amx-fast-tile-config.mir
Commit f7e87dd6ff0c1c4a41a6b654d2460557ae97ab8d by Yaxun.Liu
[CUDA][HIP] Change default lang std to c++14

Currently clang and nvcc use c++14 as default std for C++.
gcc 11 even uses c++17 as default std for C++. However,
clang uses c++98 as default std for CUDA/HIP.

As c++14 has been well adopted and became default for
clang, it seems reasonable to use c++14 as default std
for CUDA/HIP.

Reviewed by: Artem Belevich

Differential Revision: https://reviews.llvm.org/D103221
The file was modifiedclang/test/Parser/cuda-kernel-call.cu
The file was addedclang/test/Preprocessor/lang-std.cu
The file was modifiedclang/test/SemaCUDA/asm_delayed_diags.cu
The file was modifiedclang/test/SemaCUDA/cuda-builtin-vars.cu
The file was modifiedclang/test/SemaCUDA/function-target.cu
The file was modifiedclang/include/clang/Basic/LangStandards.def
The file was modifiedclang/test/SemaCUDA/implicit-member-target-collision.cu
Commit 59f44f9ad4f0f4c0f087b4e0287878adfed38081 by powerman1st
[RISCV][test] Add new tests of bitwise and with constant for the Zbs extension

These tests will show how (and r i) will be optimized to
(BCLRI (BCLRI r, i0), i1) or (BCLRI (ANDI r, i0), i1) by future
commits.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D103359
The file was modifiedllvm/test/CodeGen/RISCV/rv32zbs.ll
The file was modifiedllvm/test/CodeGen/RISCV/rv64zbs.ll
Commit 658f6ed1523b0e61ddee494ce1691f29a701c317 by jingham
Make ignore counts work as "after stop" modifiers so they play nicely with conditions

Previously ignore counts were checked when we stopped to do the sync callback in Breakpoint::ShouldStop. That meant we would do all the ignore count work even when
there is also a condition says the breakpoint should not stop.

That's wrong, lldb treats breakpoint hits that fail the thread or condition checks as "not having hit the breakpoint". So the ignore count check should happen after
the condition and thread checks in StopInfoBreakpoint::PerformAction.

The one side-effect of doing this is that if you have a breakpoint with a synchronous callback, it will run the synchronous callback before checking the ignore count.
That is probably a good thing, since this was already true of the condition and thread checks, so this removes an odd asymmetry. And breakpoints with sync callbacks
are all internal lldb breakpoints and there's not a really good reason why you would want one of these to use an ignore count (but not a condition or thread check...)

Differential Revision https://reviews.llvm.org/D103217
The file was modifiedlldb/include/lldb/Breakpoint/BreakpointLocation.h
The file was modifiedlldb/source/Target/StopInfo.cpp
The file was modifiedlldb/test/API/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py
The file was modifiedlldb/test/API/functionalities/breakpoint/breakpoint_ignore_count/main.c
The file was modifiedlldb/source/Breakpoint/Breakpoint.cpp
The file was modifiedlldb/include/lldb/Breakpoint/Breakpoint.h
The file was modifiedlldb/source/Breakpoint/BreakpointLocation.cpp
Commit 04caa7c3e02f0e2f96881b2b9b5ae5fec6e59aa9 by Yaxun.Liu
[CUDA][HIP] Promote const variables to constant

Recently we added diagnosing ODR-use of host variables
in device functions, which includes ODR-use of const
host variables since they are not really emitted on
device side. This caused regressions since we used
to allow ODR-use of const host variables in device
functions.

This patch allows ODR-use of const variables in device
functions if the const variables can be statically initialized
and have an empty dtor. Such variables are marked with
implicit constant attrs and emitted on device side. This is
in line with what clang does for constexpr variables.

Reviewed by: Artem Belevich

Differential Revision: https://reviews.llvm.org/D103108
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/SemaCUDA/device-use-host-var.cu
The file was modifiedclang/test/CodeGenCUDA/device-use-host-var.cu
The file was modifiedclang/test/SemaCUDA/static-device-var.cu
The file was modifiedclang/lib/Sema/SemaCUDA.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp
Commit 558e740170681c723ecb04156f7177d6dfebff13 by springerm
[mlir] Support tensor types in non-unrolled VectorToSCF

Support for tensor types in the unrolled version will follow in a separate commit.

Add a new pass option to activate lowering of transfer ops with tensor types (default: deactivated).

Differential Revision: https://reviews.llvm.org/D102666
The file was addedmlir/test/Conversion/VectorToSCF/tensor-transfer-ops.mlir
The file was modifiedmlir/include/mlir/Conversion/Passes.td
The file was modifiedmlir/include/mlir/Conversion/VectorToSCF/VectorToSCF.h
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
Commit 616ac1b961aa1ef9041d7e82b088ad2a9ad50014 by rahmanl
[llvm-readobj] Print function names with `--bb-addr-map`.

This patch uses the `getSymbolIndexForFunctionAddress` helper function to print function names for BB address map entries.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D102900
The file was modifiedllvm/test/tools/llvm-readobj/ELF/bb-addr-map.test
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
Commit bd20756d2c583002de862cb2aa41d54c8e9bc3d0 by springerm
[mlir] Support tensor types in unrolled VectorToSCF

Differential Revision: https://reviews.llvm.org/D102668
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
The file was addedmlir/test/Conversion/VectorToSCF/unrolled-tensor-transfer-ops.mlir
Commit 924ea3bb53ca98848cc54a656f6580dd95f45304 by Louis Dionne
[libc++] NFC: Move unwrap_iter to its own header

This re-applies 9968896cd62a, which was reverted in b13edf6e907b because
it broke the build.

Differential Revision: https://reviews.llvm.org/D103369
The file was modifiedlibcxx/include/algorithm
The file was modifiedlibcxx/include/module.modulemap
The file was modifiedlibcxx/include/CMakeLists.txt
The file was addedlibcxx/include/__algorithm/unwrap_iter.h
Commit e61917ce2dc71573248f5de54c5e1628d96648fc by llvmgnsyncbot
[gn build] Port 924ea3bb53ca
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit 41ff1e0e29bbd3c12c8fdb0a0bbed8bda95dec85 by craig.topper
[RISCV] Improve register allocation for masked vwadd(u).wv, vwsub(u).wv, vfwadd.wv, and vfwsub.wv.

The first source has the same EEW as the destination, but we're
using earlyclobber which prevents them from ever being the same
register.

To workaround this, add a special TIED pseudo to use whenever the
first source and merge operand are the same value. This allows
us to use a single operand for the merge operand and first source
which we can then tie to the destination. A tied source disables
earlyclobber for that operand.

Reviewed By: arcbbb

Differential Revision: https://reviews.llvm.org/D103211
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwsubu.w-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwadd.w-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwsub.w-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwaddu.w-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwadd.w-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwaddu.w-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwsubu.w-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwsub.w-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwsub.w-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwadd.w-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwsub.w-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwadd.w-rv32.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
Commit ae4dad2b731eefce5f65ed1a74510563ffe64c0f by Louis Dionne
[libc++] Add a CI job to test libc++ when building for 32 bit

Differential Revision: https://reviews.llvm.org/D92508
The file was modifiedlibcxx/utils/ci/buildkite-pipeline.yml
Commit 20797b129f844d4b12ffb2b12cf33baa2d42985c by akhuang
Revert "Fix tmp files being left on Windows builds." for now;
causing some asan test failures.

This reverts commit 7daa18215905c831e130c7542f17619e9d936dfc.
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
The file was modifiedllvm/lib/Support/Windows/Path.inc
The file was modifiedclang/include/clang/Frontend/CompilerInstance.h
The file was modifiedllvm/lib/Support/Path.cpp
Commit 4124bca309586234748c9c99600ec2f3b2f6d775 by Vitaly Buka
[scudo] Enabled MTE in tests

Reviewed By: pcc, hctim

Differential Revision: https://reviews.llvm.org/D103305
The file was modifiedcompiler-rt/lib/scudo/standalone/memtag.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/scudo_unit_test_main.cpp

Summary

  1. [test-suite] Decouple Fortran tests from C/C++ tests. (details)
Commit 2d54fa1403968969d7ebf265a27f3f4a91c9f45a by naromero
[test-suite] Decouple Fortran tests from C/C++ tests.

Fortran tests now go in top-level Fortran subdirectory and can be run with or without C/C++ tests.

Fortran tests are still excluded by default.

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D103354
The file was addedFortran/UnitTests/CMakeLists.txt
The file was modifiedSingleSource/UnitTests/CMakeLists.txt (diff)
The file was removedSingleSource/UnitTests/Fortran/hello.reference_output
The file was addedFortran/UnitTests/hello/hello.reference_output
The file was removedSingleSource/UnitTests/Fortran/CMakeLists.txt
The file was modifiedCMakeLists.txt (diff)
The file was removedSingleSource/UnitTests/Fortran/hello.f90
The file was addedFortran/UnitTests/hello/hello.f90
The file was addedFortran/CMakeLists.txt
The file was addedFortran/UnitTests/hello/CMakeLists.txt
The file was addedFortran/UnitTests/hello/lit.local.cfg