1. [OpenMP] Add initial support for `omp [begin/end] assumes` (details)
  2. [Debugify] Support checking Machine IR debug info (details)
  3. [RISCV] Define vle/vse intrinsics. (details)
Commit 2e6e4e6aeef71dd8fba038177a34a82b574d2126 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

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

Reviewed By: ABataev

Differential Revision:
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMPConstants.h
The file was addedclang/test/OpenMP/assumes_include_nvptx.cpp
The file was addedclang/test/OpenMP/assumes_codegen.cpp
The file was modifiedclang/include/clang/Basic/
The file was modifiedllvm/include/llvm/Frontend/OpenMP/OMPKinds.def
The file was modifiedclang/include/clang/Parse/Parser.h
The file was addedclang/test/OpenMP/assumes_template_print.cpp
The file was addedclang/test/OpenMP/assumes_messages.c
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/lib/Sema/SemaLambda.cpp
The file was addedclang/test/OpenMP/assumes_print.cpp
The file was modifiedclang/lib/Parse/ParseOpenMP.cpp
The file was modifiedllvm/include/llvm/Frontend/OpenMP/
Commit 50aaa8c274910d78d7bf6c929a34fe58b1f45579 by xiang1.zhang
[Debugify] Support checking Machine IR debug info
Add mir-check-debug pass to check MIR-level debug info.

For IR-level, currently, LLVM have debugify + check-debugify to generate
and check debug IR. Much like the IR-level pass debugify, mir-debugify
inserts sequentially increasing line locations to each MachineInstr in a
Module, But there is no equivalent MIR-level check-debugify pass, So now
we support it at "mir-check-debug".

Reviewed By: djtodoro

Differential Revision:
The file was addedllvm/test/CodeGen/Generic/MIRDebugify/check-line-and-variables.ll
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/
The file was modifiedllvm/test/CodeGen/Generic/MIRDebugify/locations-and-values.mir
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was modifiedllvm/docs/HowToUpdateDebugInfo.rst
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/include/llvm/CodeGen/Passes.h
The file was addedllvm/lib/CodeGen/MachineCheckDebugify.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/constant-mir-debugify.mir
The file was modifiedllvm/lib/CodeGen/CodeGen.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetPassConfig.h
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/phi-mir-debugify.mir
The file was addedllvm/test/CodeGen/Generic/MIRDebugify/check-line-and-variables-x.mir
The file was modifiedllvm/lib/CodeGen/MachineDebugify.cpp
The file was addedllvm/test/CodeGen/Generic/MIRDebugify/check-line-and-variables.mir
Commit c1d6d461aa77921d7ce761e2966e6bc1f3eee2db by zakk.chen
[RISCV] Define vle/vse intrinsics.

Define vle/vse intrinsics and lower to V instructions.

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

Authored-by: Roger Ferrer Ibanez <>
Co-Authored-by: Zakk Chen <>

Reviewed By: craig.topper

Differential Revision:
The file was addedllvm/test/CodeGen/RISCV/rvv/vle-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vle-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vse-rv32.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vse-rv64.ll
The file was modifiedllvm/include/llvm/IR/
The file was modifiedllvm/lib/Target/RISCV/