FailedChanges

Summary

  1. [RISCV] Define vadc/vmadc/vsbc/vmsbc intrinsics. (details)
  2. [RISCV] Define vsll/vsrl/vsra intrinsics. (details)
  3. [RISCV] Define vnsrl/vnsra intrinsics. (details)
  4. [RISCV] Define vmin/vminu/vmax/vmaxu intrinsics. (details)
  5. [RISCV] Define vfadd/vfsub/vfrsub intrinsics. (details)
  6. [libc++] Use consistent declaration for main() in test (details)
  7. RegisterCoalescer: Remove phi-only subranges when erasing identity copies (details)
  8. Don't memcpy from an empty ArrayRef; the base pointer could be null, and (details)
  9. [mlir] Tighten type verifiers for LLVM dialect ops results (details)
  10. [mlir] NFC: retire LLVM_Zero/OneResultOp from LLVM dialect ODS (details)
  11. [OpenMPOpt][NFC] Clang format (details)
  12. [Clang][Attr] Introduce the `assume` function attribute (details)
  13. [OpenMP] Use assumptions during ICV tracking (details)
  14. [OpenMP] Add initial support for `omp [begin/end] assumes` (details)
  15. [IR] Delete deprecated DebugLoc::get (details)
  16. DR2100: &expr is value-dependent if expr constant-evaluates to a (details)
  17. DR1413 and part of P1815R2: Minor improvements to Clang's determination (details)
  18. [mlir][Pass] Add a new PassNameCLParser specifically for parsing lists of pass names (details)
  19. [X86] Add REX prefix for GOTTPOFF/TLSDESC relocs in x32 mode (details)
Commit 19db6a652b88674b5b0a12eebc4b68244ec88ee4 by kai.wang
[RISCV] Define vadc/vmadc/vsbc/vmsbc intrinsics.

Authored-by: Roger Ferrer Ibanez <rofirrim@gmail.com>
Co-Authored-by: Hsiangkai Wang <kai.wang@sifive.com>

Differential Revision: https://reviews.llvm.org/D93175
The file was addedllvm/test/CodeGen/RISCV/rvv/vmadc-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vmadc.carry.in-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vmadc-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vmadc.carry.in-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vmsbc.borrow.in-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vmsbc.borrow.in-rv64.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
The file was addedllvm/test/CodeGen/RISCV/rvv/vadc-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vmsbc-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vsbc-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vsbc-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vadc-rv32.ll
The file was modifiedllvm/include/llvm/IR/IntrinsicsRISCV.td
The file was addedllvm/test/CodeGen/RISCV/rvv/vmsbc-rv32.ll
Commit 95795e7a65a7307065d8f6a030ba56d713a77d9a by kai.wang
[RISCV] Define vsll/vsrl/vsra intrinsics.

Authored-by: Roger Ferrer Ibanez <rofirrim@gmail.com>
Co-Authored-by: Hsiangkai Wang <kai.wang@sifive.com>

Differential Revision: https://reviews.llvm.org/D93193
The file was addedllvm/test/CodeGen/RISCV/rvv/vsll-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vsrl-rv32.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
The file was modifiedllvm/include/llvm/IR/IntrinsicsRISCV.td
The file was addedllvm/test/CodeGen/RISCV/rvv/vsra-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vsrl-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vsll-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vsra-rv32.ll
Commit fd2716456313f2e6067c2aef329ce2b1f6084f63 by kai.wang
[RISCV] Define vnsrl/vnsra intrinsics.

Authored-by: Roger Ferrer Ibanez <rofirrim@gmail.com>
Co-Authored-by: Hsiangkai Wang <kai.wang@sifive.com>

Differential Revision: https://reviews.llvm.org/D93207
The file was addedllvm/test/CodeGen/RISCV/rvv/vnsra-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vnsrl-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vnsrl-rv32.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
The file was addedllvm/test/CodeGen/RISCV/rvv/vnsra-rv64.ll
The file was modifiedllvm/include/llvm/IR/IntrinsicsRISCV.td
Commit 903f2950091a8a97778e558a1e6cea08794a12ce by kai.wang
[RISCV] Define vmin/vminu/vmax/vmaxu intrinsics.

Authored-by: Roger Ferrer Ibanez <rofirrim@gmail.com>
Co-Authored-by: Hsiangkai Wang <kai.wang@sifive.com>

Differential Revision: https://reviews.llvm.org/D93218
The file was addedllvm/test/CodeGen/RISCV/rvv/vmin-rv32.ll
The file was modifiedllvm/include/llvm/IR/IntrinsicsRISCV.td
The file was addedllvm/test/CodeGen/RISCV/rvv/vmax-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vmaxu-rv32.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
The file was addedllvm/test/CodeGen/RISCV/rvv/vmaxu-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vmax-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vminu-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vminu-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vmin-rv64.ll
Commit c1dac6bac5b808a6554181e4fe214f8c7b8e6c50 by kai.wang
[RISCV] Define vfadd/vfsub/vfrsub intrinsics.

Define vfadd/vfsub/vfrsub intrinsics and lower to V instructions.

We work with @rogfer01 from BSC to come out this patch.

Authored-by: Roger Ferrer Ibanez <rofirrim@gmail.com>
Co-Authored-by: Hsiangkai Wang <kai.wang@sifive.com>

Differential Revision: https://reviews.llvm.org/D93291
The file was addedllvm/test/CodeGen/RISCV/rvv/vfrsub-rv64.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
The file was addedllvm/test/CodeGen/RISCV/rvv/vfadd-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vfsub-rv32.ll
The file was modifiedllvm/include/llvm/IR/IntrinsicsRISCV.td
The file was addedllvm/test/CodeGen/RISCV/rvv/vfrsub-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vfsub-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vfadd-rv32.ll
Commit f2966d17a2706809308ae768f64c6b4046f6f432 by Louis Dionne
[libc++] Use consistent declaration for main() in test
The file was modifiedlibcxx/test/std/iterators/iterator.primitives/iterator.operations/robust_against_adl.pass.cpp
Commit 60eba8161bd314eaf02952deaa023c334fcca080 by Matthew.Arsenault
RegisterCoalescer: Remove phi-only subranges when erasing identity copies

Undef subranges are not present in the live range values, except when
they cross block boundaries. In this situation, a identity copy is
inside a loop, and one of the lanes is undefined. It only appears
alive inside the loop due to the copy. Once the copy was erased, it
would leave behind a segment inside the loop body with no
corresponding def anywhere in the program.

When RenameIndependentSubregs processed this dummy interval, it would
introduce a "Multiple connected components in live interval" verifier
error when IMPLICIT_DEFs were added to the other two blocks. I believe
there is a missing verifier check for this type of dummy interval.

I have found additional cases from the same fundamental problem in
other areas I haven't managed to fix yet (e.g. the commented out
prune_subrange_phi_value_* cases).
The file was modifiedllvm/lib/CodeGen/RegisterCoalescer.cpp
The file was addedllvm/test/CodeGen/AMDGPU/coalesce-identity-copies-undef-subregs.mir
Commit c4736b91f87e9163edcdef78891398f32390ffc2 by richard
Don't memcpy from an empty ArrayRef; the base pointer could be null, and
the C rules say memcpy can't accept a null pointer.

This should fix a test failure with the ubsan buildbots.
The file was modifiedclang/lib/AST/APValue.cpp
Commit 20d0cbd3fadf5a6e78373ab5c9d35e9e5d49f172 by zinenko
[mlir] Tighten type verifiers for LLVM dialect ops results

Now that we have predicates for LLVM dialect types in ODS, we can use them to
restrict the types allowed in results of LLVM dialect operations. This also
serves as additional documentation for these operations.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D93329
The file was modifiedmlir/test/Dialect/LLVMIR/invalid.mlir
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
Commit 02220f3204980496c8877abb51ba1fd87a108541 by zinenko
[mlir] NFC: retire LLVM_Zero/OneResultOp from LLVM dialect ODS

These classes were initially introduced to factor out two common parts of LLVM
op definitions: the fact that they have no results or a single result of
LLVM_Type, and the default builders. Neither of the two parts is really
common anymore: many ops have more specific on the result type, and many ops
provide custom builders. The TableGen classes only add conceptual complexity
and make LLVM dialect definition dissimilar to other dialects. Remove them in
favor of explicitly specified builders (results are already specified).

Depends On D93329

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D93330
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
Commit d08d490a4cb93d05d728b6661f8c34d0064a53c6 by johannes
[OpenMPOpt][NFC] Clang format
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
Commit b9c77542e23756967e77dc42412effc41257a850 by johannes
[Clang][Attr] Introduce the `assume` function attribute

The `assume` attribute is a way to provide additional, arbitrary
information to the optimizer. For now, assumptions are restricted to
strings which will be accumulated for a function and emitted as comma
separated string function attribute. The key of the LLVM-IR function
attribute is `llvm.assume`. Similar to `llvm.assume` and
`__builtin_assume`, the `assume` attribute provides a user defined
assumption to the compiler.

A follow up patch will introduce an LLVM-core API to query the
assumptions attached to a function. We also expect to add more options,
e.g., expression arguments, to the `assume` attribute later on.

The `omp [begin] asssumes` pragma will leverage this attribute and
expose the functionality in the absence of OpenMP.

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D91979
The file was modifiedclang/test/Misc/pragma-attribute-supported-attributes-list.test
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was addedclang/test/CodeGen/assume_attr.c
The file was modifiedllvm/lib/IR/CMakeLists.txt
The file was addedllvm/lib/IR/Assumptions.cpp
The file was modifiedclang/include/clang/Basic/Attr.td
The file was modifiedclang/lib/Sema/CMakeLists.txt
The file was addedclang/test/CodeGenCXX/assume_attr.cpp
The file was modifiedclang/docs/LanguageExtensions.rst
The file was modifiedclang/lib/CodeGen/CGCall.cpp
The file was addedclang/test/Sema/attr-assume.c
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was addedllvm/include/llvm/IR/Assumptions.h
Commit dcaec81211be973364cf7830a3db63781e15a474 by johannes
[OpenMP] Use assumptions during ICV tracking

The OpenMP 5.1 assumptions `no_openmp` and `no_openmp_routines` allow us
to ignore calls that would otherwise prevent ICV tracking.

Once we track more ICVs we might need to distinguish the ones that could
be impacted even with `no_openmp_routines`.

Reviewed By: sstefan1

Differential Revision: https://reviews.llvm.org/D92050
The file was modifiedllvm/test/Transforms/OpenMP/icv_tracking.ll
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
Commit a5a14cbe7f87e01882ecaa14df5d596cbf38823a by johannes
[OpenMP] Add initial support for `omp [begin/end] assumes`

The `assumes` directive is an OpenMP 5.1 feature that allows the user to
provide assumptions to the optimizer. Assumptions can refer to
directives (`absent` and `contains` clauses), expressions (`holds`
clause), or generic properties (`no_openmp_routines`, `ext_ABCD`, ...).

The `assumes` spelling is used for assumptions in the global scope while
`assume` is used for executable contexts with an associated structured
block.

This patch only implements the global spellings. While clauses with
arguments are "accepted" by the parser, they will simply be ignored for
now. The implementation lowers the assumptions directly to the
`AssumptionAttr`.

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D91980
The file was modifiedclang/lib/Sema/SemaLambda.cpp
The file was addedclang/test/OpenMP/assumes_include_nvptx.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticParseKinds.td
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMPConstants.h
The file was modifiedclang/lib/Parse/ParseOpenMP.cpp
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMP.td
The file was addedclang/test/OpenMP/assumes_codegen.cpp
The file was addedclang/test/OpenMP/assumes_messages.c
The file was addedclang/test/OpenMP/assumes_template_print.cpp
The file was addedclang/test/OpenMP/assumes_print.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/include/clang/Parse/Parser.h
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMPKinds.def
Commit 41c3b271399229976d9885233db79ebbbe0383c6 by i
[IR] Delete deprecated DebugLoc::get
The file was modifiedllvm/lib/IR/DebugLoc.cpp
The file was modifiedllvm/include/llvm/IR/DebugLoc.h
Commit 6b760a50f52142e401a6380ff71f933cda22a909 by richard
DR2100: &expr is value-dependent if expr constant-evaluates to a
dependent declaration.
The file was modifiedclang/lib/AST/Expr.cpp
The file was modifiedclang/test/CXX/drs/dr21xx.cpp
The file was modifiedclang/test/SemaTemplate/temp_arg_nontype_cxx1z.cpp
The file was modifiedclang/www/cxx_dr_status.html
The file was modifiedclang/lib/AST/ComputeDependence.cpp
The file was modifiedclang/include/clang/AST/ComputeDependence.h
Commit 7e7f38f853fbf96c6ab2a0e5f9d7747ef8a76ffe by richard
DR1413 and part of P1815R2: Minor improvements to Clang's determination
of type- and value-dependency.

A static data member initialized to a constant inside a class template
is no longer considered value-dependent, per DR1413. A const but not
constexpr variable of literal type (other than integer or enumeration)
is no longer considered value-dependent, per P1815R2.
The file was modifiedclang/test/CXX/drs/dr2xx.cpp
The file was modifiedclang/lib/AST/ComputeDependence.cpp
The file was modifiedclang/test/CXX/temp/temp.res/temp.dep/temp.dep.constexpr/p2-0x.cpp
The file was modifiedclang/test/CXX/drs/dr21xx.cpp
The file was modifiedclang/test/SemaCXX/vector.cpp
The file was modifiedclang/test/CXX/drs/dr14xx.cpp
The file was modifiedclang/test/SemaCXX/typedef-redecl.cpp
The file was modifiedclang/www/cxx_dr_status.html
The file was modifiedclang/include/clang/AST/Decl.h
Commit e9cda7c5a0b70dd029e201cd2cc2e1d7105d0672 by riddleriver
[mlir][Pass] Add a new PassNameCLParser specifically for parsing lists of pass names

This parser does not include the general `pass_pipeline` option, the pass pipeline entries, or the options of pass entries. This is useful for cases such as `print-ir-after` that just want the user to select specific pass types. This revision greatly reduces the amount of text in --help for several MLIR based tools.

Fixes PR#45495

Differential Revision: https://reviews.llvm.org/D92987
The file was modifiedmlir/lib/Pass/PassRegistry.cpp
The file was modifiedmlir/lib/Pass/PassManagerOptions.cpp
The file was modifiedmlir/include/mlir/Pass/PassRegistry.h
Commit 2aae2136d5c6b2da69787934f5963a6b3486e5fe by harald
[X86] Add REX prefix for GOTTPOFF/TLSDESC relocs in x32 mode

The REX prefix is needed to allow linker relaxations: even if the
instruction we emit may not need it, the linker may change it to a
different instruction which does need it.
The file was modifiedllvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp
The file was addedllvm/test/MC/X86/tlsdesc-x32.s