SuccessChanges

Summary

  1. [sanitizer] Prepare for D102543 (details)
  2. [sanitizer] Remove QEMU from sanitizer-buildbot3 (details)
  3. [libfuzzer] Print running tests (details)
  4. [libfuzzer] Remove unnecessary cmake flags (details)
  5. [sanitizer] Run QEMU cmakes in parallel (details)
  6. [sanitizer] Remove nested buildbot_qemu call (details)
Commit 910833b342290804b635943cb4e3d35df32665a3 by Vitaly Buka
[sanitizer] Prepare for D102543

Mips requires special handling
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_qemu.sh (diff)
Commit 521bc7bf0b559294863399975bb29761a10a7f2a by Vitaly Buka
[sanitizer] Remove QEMU from sanitizer-buildbot3
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)
Commit 285fd4c34b43799e338b1ecfe4a67daeb82b358d by Vitaly Buka
[libfuzzer] Print running tests
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_fuzzer.sh (diff)
Commit 63d380830e464f37ddfa31c9bf2071293ff64b4f by Vitaly Buka
[libfuzzer] Remove unnecessary cmake flags

Linking job limit is unnecessary with LLD.
LIBFUZZER_ENABLE_TESTS does not exist any more.
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_fuzzer.sh (diff)
Commit 2edb19cb564715af6b594ab40eeb9d9983e5284f by Vitaly Buka
[sanitizer] Run QEMU cmakes in parallel
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_qemu.sh (diff)
Commit 89d3740d9144417b7f7e27ba7ed2cdcc10d6a1e9 by Vitaly Buka
[sanitizer] Remove nested buildbot_qemu call

Now it has own builder.
The file was modifiedzorg/buildbot/builders/sanitizers/buildbot_standard.sh (diff)

Summary

  1. Apply [[standalone_debug]] to some types in the STL. (details)
  2. [mlir] Speed up Lexer::getEncodedSourceLocation (details)
  3. Add a helper function to convert LogicalResult to int for return from main (details)
  4. [X86FixupLEAs] Transform the sequence LEA/SUB to SUB/SUB (details)
  5. [Attributor] Change AAExecutionDomain to only accept intrinsics (details)
  6. Revert "[IR] Add a Location to BlockArgument." and follow-on commit (details)
  7. Enhance InferShapedTypeOpInterface to make it accessible during dialect conversion (details)
  8. [CMake] Update Cmake cache file for Win to ARM Linux cross builds. NFC (details)
Commit 7c2f58278e664d336e9d0ef0687bdd6c3837dc03 by akhuang
Apply [[standalone_debug]] to some types in the STL.

Add this attribute to some types to ensure that they have
debug info.
The debug info for these classes are required for debuggers to display
some STL types. With constructor homing (a new debug info optimization)
their debug info isn't emitted because their constructors are never
called.

The list of types with the attribute added are __hash_value_type,
__value_type, __tree_node_base, __tree_node, __hash_node, __list_node,
and __forward_list_node.

Differential Revision: https://reviews.llvm.org/D98750
The file was modifiedlibcxx/include/list
The file was modifiedlibcxx/include/unordered_map
The file was modifiedlibcxx/include/forward_list
The file was modifiedlibcxx/include/__hash_table
The file was modifiedlibcxx/include/__config
The file was modifiedlibcxx/include/__tree
The file was modifiedlibcxx/include/map
Commit 861d69a5259653f60d59795597493a7939b794fe by riddleriver
[mlir] Speed up Lexer::getEncodedSourceLocation

We currently use SourceMgr::getLineAndColumn to get the line and column for an SMLoc, but this includes a call to StringRef::find_last_of that ends up dominating compile time. In D102567, we start creating locations from the input file for block arguments which resulted in an extreme performance regression for modules with very large amounts of block arguments. This revision switches to just using a pointer offset from the beginning of the line to calculate the column(all MLIR files are simple ascii), resulting in a compile time reduction from 4700 seconds (1 hour and 18 minutes) to 8 seconds.

Differential Revision: https://reviews.llvm.org/D102734
The file was modifiedmlir/lib/Parser/Lexer.cpp
Commit 58369fce30af484889356f225d89cb0b32009206 by joker.eph
Add a helper function to convert LogicalResult to int for return from main

At present, a lot of code contains main function bodies like "return failed(mlir::MlirOptMain(...);". This is unfortunate for two reasons: a) it uses ADL, which is maybe not what the free "failed" function was designed for; and b) it is a bit awkward to read, requring the reader to both understand the boolean nature of the value and the semantics of main's return value. (And it's also not portable, since 1 is not a portable success value.)

The replacement code, `return mlir::AsMainReturnCode(mlir::MlirOptMain(...))` is a bit more self-explanatory.

The change applies the new function to a few internal uses of MlirOptMain, too.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D102641
The file was modifiedmlir/examples/standalone/standalone-opt/standalone-opt.cpp
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was modifiedmlir/include/mlir/Support/MlirOptMain.h
Commit 528bc10e95d5f9d6a338f9bab5e91d7265d1cf05 by carrot
[X86FixupLEAs] Transform the sequence LEA/SUB to SUB/SUB

This patch transforms the sequence

    lea (reg1, reg2), reg3
    sub reg3, reg4

to two sub instructions

    sub reg1, reg4
    sub reg2, reg4

Similar optimization can also be applied to LEA/ADD sequence.
The modifications to TwoAddressInstructionPass is to ensure the operands of ADD
instruction has expected order (the dest register of LEA should be src register
of ADD).

Differential Revision: https://reviews.llvm.org/D101970
The file was modifiedllvm/test/CodeGen/X86/2009-03-23-MultiUseSched.ll
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp
The file was modifiedllvm/lib/CodeGen/TwoAddressInstructionPass.cpp
The file was modifiedllvm/lib/Target/X86/X86FixupLEAs.cpp
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.h
The file was modifiedllvm/test/CodeGen/X86/lea-opt2.ll
The file was modifiedllvm/test/CodeGen/X86/vp2intersect_multiple_pairs.ll
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
Commit 68abc3d26429ddc16af691c7895220b47819c869 by huberjn
[Attributor] Change AAExecutionDomain to only accept intrinsics

Summary:
The OpenMP runtime functions don't always provide unique thread ID's to
determine if a basic block is truly single-threaded. Change the implementation
to only check NVPTX intrinsics for now.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D102700
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
The file was modifiedllvm/test/Transforms/OpenMP/single_threaded_execution.ll
Commit 80d981eda69f1ada6d944ed89571456cad13b850 by richard
Revert "[IR] Add a Location to BlockArgument." and follow-on commit
"[mlir] Speed up Lexer::getEncodedSourceLocation"

This reverts commit 3043be9d2db4d0cdf079adb5e1bdff032405e941 and commit
861d69a5259653f60d59795597493a7939b794fe.

This change resulted in printing textual MLIR that can't be parsed; see
review thread https://reviews.llvm.org/D102567 for details.
The file was modifiedmlir/lib/IR/Builders.cpp
The file was modifiedmlir/test/mlir-tblgen/pattern.mlir
The file was modifiedmlir/include/mlir/IR/Value.h
The file was modifiedmlir/include/mlir/IR/Builders.h
The file was modifiedmlir/lib/IR/FunctionImplementation.cpp
The file was modifiedmlir/include/mlir/IR/OpImplementation.h
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedmlir/include/mlir/IR/Block.h
The file was modifiedmlir/test/Transforms/test-legalize-type-conversion.mlir
The file was modifiedmlir/lib/Parser/Lexer.cpp
The file was modifiedmlir/lib/IR/Value.cpp
The file was modifiedmlir/lib/IR/Block.cpp
The file was modifiedmlir/test/IR/locations.mlir
The file was modifiedmlir/lib/IR/AsmPrinter.cpp
Commit 851d02f61e945d335021858111416f444139e2b2 by joker.eph
Enhance InferShapedTypeOpInterface to make it accessible during dialect conversion

Original interfaces are not safe to be called during dialect conversion.
This is because some ops (e.g. `dynamic_reshape(input, target_shape)`)
depend on the values of their operands to calculate the output shape.
However the operands may be out of reach during dialect conversion (e.g.
converting from tensor world to buffer world). This patch provides a new
kind of interface which accpets user-provided operands to solve this
problem.

Reviewed By: herhut

Differential Revision: https://reviews.llvm.org/D102317
The file was modifiedmlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp
The file was modifiedmlir/include/mlir/Interfaces/InferTypeOpInterface.td
Commit b5a80a0f370ca218d935991fe2bec0d19ca3ba51 by vvereschaka
[CMake] Update Cmake cache file for Win to ARM Linux cross builds. NFC

Parametrize the cache file with TARGET_TRIPLE parameter. Normalize
the target triple to follow the runtime library installation directory.

Explicity enable LLVM_ENABLE_PER_TARGET_RUNTIME_DIR option.
The file was modifiedclang/cmake/caches/CrossWinToARMLinux.cmake