SuccessChanges

Summary

  1. fixed typo in comment (details)
  2. [clangd-ubuntu-clang] improved startup error logging (details)
Commit c3af800b7ac0cf2ca57621924e29ce832db378ad by kuhnel
fixed typo in comment
The file was modifiedbuildbot/google/docker/buildbot-clangd-ubuntu-clang/run.sh (diff)
Commit 41846a7dad69794a2741e2bec02ddaa56be21a59 by kuhnel
[clangd-ubuntu-clang] improved startup error logging
The file was modifiedbuildbot/google/docker/buildbot-clangd-ubuntu-clang/run.sh (diff)
The file was modifiedbuildbot/google/docker/buildbot-clangd-ubuntu-clang/VERSION (diff)
The file was modifiedbuildbot/google/terraform/main.tf (diff)

Summary

  1. [mlir] Add a new debug action framework. (details)
  2. [mlir] Add support for DebugCounters using the new DebugAction infrastructure (details)
  3. [X86] Support amx-int8 intrinsic. (details)
  4. [lldb][NFC] Don't inherit from UserID in ValueObject (details)
  5. [Sanitizer][NFC] Fix typo (details)
  6. Fix UBSAN in __ubsan::Value::getSIntValue (details)
  7. [lldb][NFC] Give CompilerType's IsArrayType/IsVectorType/IsBlockPointerType out-parameters default values (details)
  8. [OpenCL] Move remaining defines to opencl-c-base.h (details)
  9. Fix unused variable (details)
Commit 72d5afa4acc3cb7fdeb6ead90cc8f446a48c1f9d by riddleriver
[mlir] Add a new debug action framework.

This revision adds the infrastructure for `Debug Actions`. This is a DEBUG only
API that allows for external entities to control various aspects of compiler
execution. This is conceptually similar to something like DebugCounters in LLVM, but at a lower level. This framework doesn't make any assumptions about how the higher level driver is controlling the execution, it merely provides a framework for connecting the two together. This means that on top of DebugCounter functionality, we could also provide more interesting drivers such as interactive execution. A high level overview of the workflow surrounding debug actions is
shown below:

*   Compiler developer defines an `action` that is taken by the a pass,
    transformation, utility that they are developing.
*   Depending on the needs, the developer dispatches various queries, pertaining
    to this action, to an `action manager` that will provide an answer as to
    what behavior the action should do.
*   An external entity registers an `action handler` with the action manager,
    and provides the logic to resolve queries on actions.

The exact definition of an `external entity` is left opaque, to allow for more
interesting handlers.

This framework was proposed here: https://llvm.discourse.group/t/rfc-debug-actions-in-mlir-debug-counters-for-the-modern-world

Differential Revision: https://reviews.llvm.org/D84986
The file was modifiedmlir/include/mlir/IR/MLIRContext.h
The file was modifiedmlir/lib/IR/MLIRContext.cpp
The file was addedmlir/unittests/Support/DebugActionTest.cpp
The file was addedmlir/docs/DebugActions.md
The file was modifiedmlir/unittests/Support/CMakeLists.txt
The file was addedmlir/include/mlir/Support/DebugAction.h
Commit dc6a84fce617ab8367a84029d4ff3c698dc57dad by riddleriver
[mlir] Add support for DebugCounters using the new DebugAction infrastructure

DebugCounters allow for selectively enabling the execution of a debug action based upon a "counter". This counter is comprised of two components that are used in the control of execution of an action, a "skip" value and a "count" value. The "skip" value is used to skip a certain number of initial executions of a debug action. The "count" value is used to prevent a debug action from executing after it has executed for a set number of times (not including any executions that have been skipped). For example, a counter for a debug action with `skip=47` and `count=2`, would skip the first 47 executions, then execute twice, and finally prevent any further executions.

This is effectively the same as the DebugCounter infrastructure in LLVM, but using the DebugAction infrastructure in MLIR. We can't simply reuse the DebugCounter support already present in LLVM due to its heavy reliance on global constructors (which are not allowed in MLIR). The DebugAction infrastructure already nicely supports the debug counter use case, and promotes the separation of policy and mechanism design philosophy.

Differential Revision: https://reviews.llvm.org/D96395
The file was modifiedmlir/lib/Support/MlirOptMain.cpp
The file was modifiedmlir/docs/DebugActions.md
The file was modifiedmlir/unittests/Support/CMakeLists.txt
The file was addedmlir/include/mlir/Support/DebugCounter.h
The file was modifiedmlir/lib/Support/CMakeLists.txt
The file was addedmlir/unittests/Support/DebugCounterTest.cpp
The file was addedmlir/lib/Support/DebugCounter.cpp
Commit f8b9035aae4450b4c3c6c9e2a071ac06d520413a by chen3.liu
[X86] Support amx-int8 intrinsic.

Adding support for intrinsics of TDPBSUD/TDPBUSD/TDPBUUD.

Differential Revision: https://reviews.llvm.org/D97259
The file was modifiedclang/include/clang/Basic/BuiltinsX86_64.def
The file was modifiedllvm/lib/Target/X86/X86RegisterInfo.cpp
The file was modifiedclang/test/CodeGen/X86/amx_api.c
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/X86/AMX/amx-tile-basic.ll
The file was modifiedllvm/lib/Target/X86/X86InstrAMX.td
The file was modifiedllvm/lib/Target/X86/X86ExpandPseudo.cpp
The file was modifiedllvm/include/llvm/IR/IntrinsicsX86.td
The file was modifiedllvm/lib/Target/X86/X86LowerAMXType.cpp
The file was modifiedllvm/lib/Target/X86/X86PreTileConfig.cpp
The file was modifiedclang/lib/Headers/amxintrin.h
Commit d77e3c6aec2916fdf7b8ab0ca08c550230244695 by Raphael Isemann
[lldb][NFC] Don't inherit from UserID in ValueObject

ValueObject inherits from UserID which is just a bad idea:

* The inheritance gives ValueObject some member functions that are at best
  misleading (such as `Clear()` which doesn't clear any value beside `id`).

* It allows passing ValueObject to the overloaded operators for UserID (such as
  `==` or `<<` which won't actually compare or print anything in the ValueObject).

* It exposes the `SetID` and `Clear` which both allow users to change the
  internal id value.

Similar to D91699 which did the same for Process

Reviewed By: #lldb, JDevlieghere

Differential Revision: https://reviews.llvm.org/D97205
The file was modifiedlldb/include/lldb/Core/ValueObject.h
The file was modifiedlldb/source/Core/ValueObject.cpp
The file was modifiedlldb/source/DataFormatters/TypeSynthetic.cpp
Commit ebca13c665042d0aa1c1ffe064f100081045e818 by luismarques
[Sanitizer][NFC] Fix typo
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_allocator_size_class_map.h
Commit 16ede0956cb1f4b692dfa619ccfa6ab1de28e19b by mliska
Fix UBSAN in __ubsan::Value::getSIntValue

/home/marxin/Programming/gcc2/libsanitizer/ubsan/ubsan_value.cpp:77:25: runtime error: left shift of 0x0000000000000000fffffffffffffffb by 96 places cannot be represented in type '__int128'
    #0 0x7ffff754edfe in __ubsan::Value::getSIntValue() const /home/marxin/Programming/gcc2/libsanitizer/ubsan/ubsan_value.cpp:77
    #1 0x7ffff7548719 in __ubsan::Value::isNegative() const /home/marxin/Programming/gcc2/libsanitizer/ubsan/ubsan_value.h:190
    #2 0x7ffff7542a34 in handleShiftOutOfBoundsImpl /home/marxin/Programming/gcc2/libsanitizer/ubsan/ubsan_handlers.cpp:338
    #3 0x7ffff75431b7 in __ubsan_handle_shift_out_of_bounds /home/marxin/Programming/gcc2/libsanitizer/ubsan/ubsan_handlers.cpp:370
    #4 0x40067f in main (/home/marxin/Programming/testcases/a.out+0x40067f)
    #5 0x7ffff72c8b24 in __libc_start_main (/lib64/libc.so.6+0x27b24)
    #6 0x4005bd in _start (/home/marxin/Programming/testcases/a.out+0x4005bd)

Differential Revision: https://reviews.llvm.org/D97263
The file was modifiedcompiler-rt/lib/ubsan/ubsan_value.cpp
Commit 03310c1e952d0bf7aa84b8ed06809aa7ea1deb9b by Raphael Isemann
[lldb][NFC] Give CompilerType's IsArrayType/IsVectorType/IsBlockPointerType out-parameters default values

We already do this for most functions that have out-parameters, so let's do
the same here and avoid all the `nullptr, nullptr, nullptr` in every call.
The file was modifiedlldb/source/Core/ValueObject.cpp
The file was modifiedlldb/source/Symbol/CompilerType.cpp
The file was modifiedlldb/include/lldb/Symbol/CompilerType.h
The file was modifiedlldb/source/Plugins/ABI/ARM/ABISysV_arm.cpp
The file was modifiedlldb/source/DataFormatters/VectorType.cpp
The file was modifiedlldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
The file was modifiedlldb/source/Plugins/Language/CPlusPlus/LibCxxBitset.cpp
Commit 612d0ef1732f491ceec22249dc2dbf50df4353c0 by sven.vanhaastregt
[OpenCL] Move remaining defines to opencl-c-base.h

Move any remaining preprocessor defines from `opencl-c.h` to
`opencl-c-base.h`, such that they are shared with
`-fdeclare-opencl-builtins` too.

In particular, move:
- the `as_type` and `as_typen` definitions, and
- the `kernel_exec` and `__kernel_exec` definitions.

Also clang-format the changes.

Differential Revision: https://reviews.llvm.org/D96948
The file was modifiedclang/lib/Headers/opencl-c.h
The file was modifiedclang/lib/Headers/opencl-c-base.h
Commit 1fff7c892452b26c17844c7b651ef4959c316c1a by frgossen
Fix unused variable
The file was modifiedmlir/lib/Rewrite/ByteCode.cpp