Changes

Summary

  1. [CSKY] Add compressed instruction mapping between 32-bit and 16-bit instruction (details)
  2. [clang-format] Adjust braced list detection (details)
  3. [mlir][linalg] Pad independent of application order (NFC). (details)
  4. [mlir][Vector] Support 0-D vectors in `ConstantMaskOp` (details)
  5. [llvm-c] Add header deprecations (details)
  6. [mlir][linalg][bufferize][NFC] Collect equivalent FuncOp BBArgs in PostAnalysisStep (details)
  7. [mlir] Add default implementations for methods in `TilingInterface`. (details)
  8. [WebAssembly] Implementation of intrinsic for ref.null and HeapType removal (details)
  9. [mlir][linalg][bufferize] Remove buffer equivalence from bufferize (details)
  10. [analyzer] Ignore flex generated files (details)
  11. [mlir][linalg][bufferize][NFC] Utilize isWritable for FuncOps (details)
  12. [clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block (details)
  13. [VE] Support multiple architectures installation (details)
  14. [NFC][LICM] Update the comment in the scalar-promote.ll (details)
  15. [ARM] Add a vrinta.f16.f16 alias (details)
  16. [VE] Change to use R_VE_SREL32 (details)
  17. [ARM] Implement setjmp BTI placement for PACBTI-M (details)
  18. [VE] Support VE specific data directives in MC (details)
  19. [clang][docs][dataflow] Added an introduction to dataflow analysis (details)
  20. [LV] Pass compare predicate to getCmpSelInstrCost. (details)
  21. tsan: disable dlopen_static_tls.cpp test on powerpc64 (details)
  22. [Clang] Ignore CLANG_DEFAULT_LINKER for custom-linker toolchains (details)
  23. [mlir] Avoid needlessly converting LLVM named structs with compatible elements (details)
  24. [DSE] Add additional memset_chk tests. (details)
  25. [openmp][amdgpu] Disable tests requiring USM on amdgcn (details)
  26. [lldb] [Process/elf-core] Disable for FreeBSD vmcores (details)
  27. [lldb] Remove extern "C" from lldb-swig-lua interface (details)
  28. [lldb/lua] Add a file that should have been a part of a52af6d3 (details)
  29. [lldb/qemu] Add support for pty redirection (details)
  30. [MC] Add emitXCOFFSymbolLinkageWithVisibility to MCNullStreamer (details)
Commit bdd7c53dc5e0fc3c3fde408df2fd187b11bb8330 by zixuan.wu
[CSKY] Add compressed instruction mapping between 32-bit and 16-bit instruction

Add all CompressPat to map instructions between 16-bit and 32-bit with using the CompressInstEmitter infra.
Although it's only used in asm printer, also enable it in asm parser to debug mapping when -enable-csky-asm-compressed-inst is on.

Differential Revision: https://reviews.llvm.org/D115026
The file was modifiedllvm/lib/Target/CSKY/CMakeLists.txt (diff)
The file was modifiedllvm/lib/Target/CSKY/CSKYAsmPrinter.h (diff)
The file was modifiedllvm/lib/Target/CSKY/CSKYInstrInfo.td (diff)
The file was modifiedllvm/lib/Target/CSKY/CSKYRegisterInfo.td (diff)
The file was modifiedllvm/test/MC/CSKY/basic-16bit.s (diff)
The file was modifiedllvm/test/CodeGen/CSKY/base-i.ll (diff)
The file was modifiedllvm/lib/Target/CSKY/CSKYInstrFormats16Instr.td (diff)
The file was modifiedllvm/lib/Target/CSKY/CSKYInstrInfo16Instr.td (diff)
The file was addedllvm/test/MC/CSKY/compressed-inst.s
The file was modifiedllvm/lib/Target/CSKY/CSKYAsmPrinter.cpp (diff)
The file was modifiedllvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp (diff)
Commit c41b3b0fa0f4f70aad8deaf48bcd42a04385066c by owenpiano
[clang-format] Adjust braced list detection

This avoids mishandling nested compound statements that are followed by another compound statement.

Fixes https://llvm.org/PR38314 and https://llvm.org/PR48305.

Differential Revision: https://reviews.llvm.org/D114583
The file was modifiedclang/lib/Format/UnwrappedLineParser.cpp (diff)
The file was modifiedclang/unittests/Format/FormatTest.cpp (diff)
Commit 69bcff46bff34838c91880ecaa6616bb6979cd23 by gysit
[mlir][linalg] Pad independent of application order (NFC).

This revision makes the padding pattern independent of the application order. It addresses the concern that we cannot rely on the execution order of the greedy rewriter (https://reviews.llvm.org/D114689). Instead, the pattern is updated to apply repeatedly till all operations are padded.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D114851
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp (diff)
Commit caf89c0db679f79ca6c9a75c5acc6151dd380f26 by nicolas.vasilache
[mlir][Vector] Support 0-D vectors in `ConstantMaskOp`

To support creating both a mask with just a single `true` and `false` values,
I had to relax the restriction in the verifier that the rank is always equal to
the length of the attribute array, in other words, we now allow:

- `vector.constant_mask [0] : vector<i1>` which gets lowered to
  `arith.constant dense<false> : vector<i1>`
- `vector.constant_mask [1] : vector<i1>` which gets lowered to
  `arith.constant dense<true> : vector<i1>`

(the attribute list for the 0-D case must be a singleton containing
either `0` or `1`)

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D115023
The file was modifiedmlir/test/Dialect/Vector/ops.mlir (diff)
The file was modifiedmlir/test/Integration/Dialect/Vector/CPU/test-0-d-vectors.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td (diff)
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp (diff)
The file was modifiedmlir/test/Dialect/Vector/invalid.mlir (diff)
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp (diff)
The file was modifiedmlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir (diff)
Commit b15d77928e2b44d1667391d4650e61f1ab76bded by npopov
[llvm-c] Add header deprecations

This adds support for header deprecation using
LLVM_ATTRIBUTE_C_DEPRECATED (note that we can't use
LLVM_ATTRIBUTE_DEPRECATED, which is C++ specific). This will not
help people using the FFI interface, but may help people using the
C headers.

Differential Revision: https://reviews.llvm.org/D114936
The file was addedllvm/include/llvm-c/Deprecated.h
The file was modifiedllvm/include/llvm-c/Core.h (diff)
Commit cb4d0bf9976ccb0da2850ea894254635f96fa9c2 by springerm
[mlir][linalg][bufferize][NFC] Collect equivalent FuncOp BBArgs in PostAnalysisStep

Collect equivalent BBArgs right after the equivalence analysis of the FuncOp and before bufferizing. This is in preparation of decoupling bufferization from aliasInfo.

Also gather equivalence info for CallOps, which was missing in the
previous commit.

Differential Revision: https://reviews.llvm.org/D114847
The file was modifiedmlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/BufferizableOpInterface.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/ComprehensiveBufferize.h (diff)
The file was modifiedmlir/test/Dialect/Linalg/comprehensive-module-bufferize.mlir (diff)
The file was modifiedmlir/test/Dialect/Linalg/comprehensive-module-bufferize-analysis.mlir (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/ComprehensiveBufferize.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/ModuleBufferization.cpp (diff)
Commit 3ec6b1bfacebd65450662c75215a96ae59769368 by nicolas.vasilache
[mlir] Add default implementations for methods in `TilingInterface`.

Adding the default implementation of `getLoopIteratorTypes` and
`getLoopBounds` allows ExternalModels to override these methods.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D115101
The file was modifiedmlir/include/mlir/Interfaces/TilingInterface.td (diff)
Commit a96d8285101546c92116246939c2d53c57b88cf0 by pmatos
[WebAssembly] Implementation of intrinsic for ref.null and HeapType removal

This patch implements the intrinsic for ref.null.
In the process of implementing int_wasm_ref_null_func() and
int_wasm_ref_null_extern() intrinsics, it removes the redundant
HeapType.

This also causes the textual assembler syntax for ref.null to
change. Instead of receiving an argument: `func` or `extern`, the
instruction mnemonic is either ref.null_func or ref.null_extern,
without the need for a further operand.

Reviewed By: tlively

Differential Revision: https://reviews.llvm.org/D114979
The file was modifiedllvm/include/llvm/IR/Intrinsics.td (diff)
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrRef.td (diff)
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.h (diff)
The file was modifiedllvm/utils/TableGen/IntrinsicEmitter.cpp (diff)
The file was modifiedllvm/lib/IR/Function.cpp (diff)
The file was modifiedllvm/include/llvm/IR/IntrinsicsWebAssembly.td (diff)
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp (diff)
The file was modifiedllvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.cpp (diff)
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp (diff)
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td (diff)
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyInstPrinter.cpp (diff)
The file was modifiedllvm/test/MC/WebAssembly/reference-types.s (diff)
The file was modifiedllvm/lib/Target/WebAssembly/Utils/WebAssemblyTypeUtilities.h (diff)
The file was addedllvm/test/CodeGen/WebAssembly/ref-null.ll
The file was modifiedllvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp (diff)
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp (diff)
The file was modifiedllvm/test/CodeGen/WebAssembly/funcref-call.ll (diff)
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h (diff)
The file was modifiedllvm/test/CodeGen/WebAssembly/funcref-table_call.ll (diff)
Commit e9fb4dc9e918e23384550df9b66c2fd87cb1ffdd by springerm
[mlir][linalg][bufferize] Remove buffer equivalence from bufferize

Remove all function calls related to buffer equivalence from bufferize implementations.

Add a new PostAnalysisStep for scf.for that ensures that yielded values are equivalent to the corresponding BBArgs. (This was previously checked in `bufferize`.) This will be relaxed in a subsequent commit.

Note: This commit changes two test cases. These were broken by design
and should not have passed. With the new scf.for PostAnalysisStep, this
bug was fixed.

Differential Revision: https://reviews.llvm.org/D114927
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/ModuleBufferization.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/TensorInterfaceImpl.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/SCFInterfaceImpl.cpp (diff)
The file was modifiedmlir/test/Dialect/Linalg/comprehensive-module-bufferize-analysis.mlir (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferizePass.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/SCFInterfaceImpl.h (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/BufferizableOpInterface.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/ArithInterfaceImpl.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.cpp (diff)
Commit 9873ef409c4a937c566e20e7a88af049d212ce03 by balazs.benics
[analyzer] Ignore flex generated files

Some projects [1,2,3] have flex-generated files besides bison-generated
ones.
Unfortunately, the comment `"/* A lexical scanner generated by flex */"`
generated by the tools is not necessarily at the beginning of the file,
thus we need to quickly skim through the file for this needle string.

Luckily, StringRef can do this operation in an efficient way.

That being said, now the bison comment is not required to be at the very
beginning of the file. This allows us to detect a couple more cases
[4,5,6].

Alternatively, we could say that we only allow whitespace characters
before matching the bison/flex header comment. That would prevent the
(probably) unnecessary string search in the buffer. However, I could not
verify that these tools would actually respect this assumption.

Additionally to this, e.g. the Twin project [1] has other non-whitespace
characters (some preprocessor directives) before the flex-generated
header comment. So the heuristic in the previous paragraph won't work
with that.
Thus, I would advocate the current implementation.

According to my measurement, this patch won't introduce measurable
performance degradation, even though we will do 2 linear scans.

I introduce the ignore-bison-generated-files and
ignore-flex-generated-files to disable skipping these files.
Both of these options are true by default.

[1]: https://github.com/cosmos72/twin/blob/master/server/rcparse_lex.cpp#L7
[2]: https://github.com/marcauresoar/make-examples/blob/22362cdcf9dd7c597b5049ce7f176621e2e9ac7a/sandbox/count-words/lexer.c#L6
[3]: https://github.com/vladcmanea/2nd-faculty-year-Formal-Languages---Automata-assignments/blob/11abdf64629d9eb741438ba69f04636769d5a374/lab1/lex.yy.c#L6

[4]: https://github.com/KritikaChoudhary/System-Software-Lab/blob/47f5b2cfe2a2738fd54eae9f8439817f6a22034e/B_yacc/1/y1.tab.h#L2
[5]: https://github.com/VirtualMonitor/VirtualMonitor/blob/71d1bf9b1e7b392a7bd0c73dc217138dc5865651/src/VBox/Additions/x11/x11include/xorg-server-1.8.0/parser.h#L2
[6]: https://github.com/bspaulding/DrawTest/blob/3f773ceb13de14275429036b9cbc5aa19e29bab9/Framework/OpenEars.framework/Versions/A/Headers/jsgf_parser.h#L2

Reviewed By: xazax.hun

Differential Revision: https://reviews.llvm.org/D114510
The file was modifiedclang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp (diff)
The file was addedclang/test/Analysis/flexignore.c
The file was modifiedclang/test/Analysis/yaccignore.c (diff)
The file was modifiedclang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def (diff)
The file was modifiedclang/test/Analysis/analyzer-config.c (diff)
Commit e761c49a14a8fb84898694d68218dba906aa9272 by springerm
[mlir][linalg][bufferize][NFC] Utilize isWritable for FuncOps

This is a cleanup of ModuleBufferization. Instead of storing information about writable function arguments in BufferizationAliasInfo, we can use isWritable and make the decision there, based on dialect-specifc bufferization state.

Differential Revision: https://reviews.llvm.org/D114930
The file was modifiedmlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/BufferizableOpInterface.td (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/BufferizationInterfaceImpl.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/ModuleBufferization.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/BufferizableOpInterface.h (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/ArithInterfaceImpl.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/BufferizableOpInterface.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/ComprehensiveBufferize.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/SCFInterfaceImpl.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.cpp (diff)
Commit e403f4fdc88322201040f2bee7b328e8a78e2f7f by kbessonova
[clang][DebugInfo] Allow function-local statics and types to be scoped within a lexical block

This is almost a reincarnation of https://reviews.llvm.org/D15977 originally
implemented by Amjad Aboud. It was discussed on llvm-dev [0], committed
with its backend counterpart [1], but finally reverted [2].

This patch makes clang to emit debug info for function-local static variables,
records (classes, structs and unions) and typdefs correctly scoped if
those function-local entites defined within a lexical (bracketed) block.

Before this patch, clang emits all those entities directly scoped in
DISubprogram no matter where they were really defined, causing
debug info loss (reported several times in [3], [4], [5]).

[0] https://lists.llvm.org/pipermail/llvm-dev/2015-November/092551.html
[1] https://reviews.llvm.org/rG30e7a8f694a19553f64b3a3a5de81ce317b9ec2f
[2] https://reviews.llvm.org/rGdc4531e552af6c880a69d226d3666756198fbdc8
[3] https://bugs.llvm.org/show_bug.cgi?id=19238
[4] https://bugs.llvm.org/show_bug.cgi?id=23164
[5] https://bugs.llvm.org/show_bug.cgi?id=44695

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D113743
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGDebugInfo.h (diff)
The file was addedclang/test/CodeGenCXX/debug-info-lexcial-block.cpp
The file was modifiedclang/lib/CodeGen/CGDecl.cpp (diff)
Commit 83f572527e0fcc1cd0be8ee23bc12abf27027daf by marukawa
[VE] Support multiple architectures installation

Change C++ header files placement to support multiple LLVM_RUNTIME_TARGETS
build.  Also modifies regression test for it.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D114527
The file was modifiedclang/test/Driver/ve-toolchain.cpp (diff)
The file was addedclang/test/Driver/Inputs/basic_ve_tree/include/c++/v1/.keep
The file was modifiedclang/test/Driver/ve-toolchain.c (diff)
The file was modifiedclang/lib/Driver/ToolChains/VEToolchain.cpp (diff)
The file was addedclang/test/Driver/Inputs/basic_ve_tree/include/ve-unknown-linux-gnu/c++/v1/.keep
The file was addedclang/test/Driver/Inputs/basic_ve_tree/bin/.keep
Commit 0b23b80985e417e46d97c95f891f3e601dbfa5f1 by djtodoro
[NFC][LICM] Update the comment in the scalar-promote.ll

The comment was stale after the https://reviews.llvm.org/D113289
was committed.
The file was modifiedllvm/test/Transforms/LICM/scalar-promote.ll (diff)
Commit d8495e03529201e8af9abeab05a3f671d0249041 by david.green
[ARM] Add a vrinta.f16.f16 alias

The v8.1-m ARMARM uses the vrinta.f16.f16 names, as opposed to
vrinta.f16. This adds an alias for it in the same way that we have for
f32 and f64.

Differential Revision: https://reviews.llvm.org/D68127
The file was modifiedllvm/test/MC/ARM/fullfp16-neg.s (diff)
The file was modifiedllvm/test/MC/ARM/fullfp16.s (diff)
The file was modifiedllvm/lib/Target/ARM/ARMInstrVFP.td (diff)
Commit 6b41eb7f26d06ce018c0218360f9cdec239f2caa by marukawa
[VE] Change to use R_VE_SREL32

Change to use R_VE_SREL32 for relative branch instructions instead of
R_VE_PC_LO32 in order to check ranges of relative branch isntructions
at link time correctly.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D115097
The file was modifiedllvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp (diff)
The file was modifiedllvm/lib/Target/VE/MCTargetDesc/VEELFObjectWriter.cpp (diff)
The file was modifiedllvm/lib/Target/VE/MCTargetDesc/VEFixupKinds.h (diff)
The file was modifiedllvm/test/MC/VE/sym-br.s (diff)
The file was modifiedllvm/lib/Target/VE/MCTargetDesc/VEMCCodeEmitter.cpp (diff)
Commit 0fbb17458a01a6b388fc67661ffb92969503e977 by ties.stuij
[ARM] Implement setjmp BTI placement for PACBTI-M

This patch intends to guard indirect branches performed by longjmp
by inserting BTI instructions after calls to setjmp.

Calls with 'returns-twice' are lowered to a new pseudo-instruction
named t2CALL_BTI that is later expanded to a bundle of {tBL,t2BTI}.

This patch is part of a series that adds support for the PACBTI-M extension of
the Armv8.1-M architecture, as detailed here:

https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/armv8-1-m-pointer-authentication-and-branch-target-identification-extension

The PACBTI-M specification can be found in the Armv8-M Architecture Reference
Manual:

https://developer.arm.com/documentation/ddi0553/latest

The following people contributed to this patch:

- Alexandros Lamprineas
- Ties Stuij

Reviewed By: labrinea

Differential Revision: https://reviews.llvm.org/D112427
The file was modifiedclang/include/clang/Driver/Options.td (diff)
The file was modifiedllvm/lib/Target/ARM/ARM.td (diff)
The file was modifiedllvm/lib/Target/ARM/ARMInstrThumb2.td (diff)
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp (diff)
The file was addedllvm/test/CodeGen/ARM/setjmp-bti-basic.ll
The file was modifiedclang/docs/ClangCommandLineReference.rst (diff)
The file was addedclang/test/Driver/arm-bti-return-twice.c
The file was modifiedclang/lib/Driver/ToolChains/Arch/ARM.cpp (diff)
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.h (diff)
The file was addedllvm/test/CodeGen/ARM/setjmp-bti-outliner.ll
The file was modifiedllvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp (diff)
The file was modifiedllvm/lib/Target/ARM/ARMSubtarget.h (diff)
Commit 9d20fa09eb806cd210d040e5e1e9b29c6e40e98e by marukawa
[VE] Support VE specific data directives in MC

Support VE specific data directives, .word/.long/.llong, in MC layer.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D115120
The file was modifiedllvm/lib/Target/VE/AsmParser/VEAsmParser.cpp (diff)
The file was addedllvm/test/MC/VE/data.s
The file was addedllvm/test/MC/VE/data-size-error.s
Commit ab31d003e16e483bff298ea2f28fec0f23e8eb79 by gribozavr
[clang][docs][dataflow] Added an introduction to dataflow analysis

This documentation supports the dataflow analysis framework (see "[RFC]
A dataflow analysis framework for Clang AST" on cfe-dev).

Since the implementation of the framework has not been committed yet,
right now the doc describes dataflow analysis in general.

Since this is the first markdown document in clang/docs, I added support
for Markdown to clang/docs/conf.py in the same way as it is done in
llvm/docs.

Reviewed By: xazax.hun

Differential Revision: https://reviews.llvm.org/D114231
The file was addedclang/docs/DataFlowAnalysisIntroImages/CFGExample.svg
The file was modifiedclang/docs/index.rst (diff)
The file was addedclang/docs/DataFlowAnalysisIntro.md
The file was addedclang/docs/DataFlowAnalysisIntroImages/CFGJoinRule.svg
The file was addedclang/docs/DataFlowAnalysisIntroImages/IntegerSetsFiniteLattice.svg
The file was addedclang/docs/DataFlowAnalysisIntroImages/DefinitiveInitializationLattice.svg
The file was addedclang/docs/DataFlowAnalysisIntroImages/UniquePtrLattice.svg
The file was addedclang/docs/DataFlowAnalysisIntroImages/IntegerSetsInfiniteLattice.svg
The file was addedclang/docs/DataFlowAnalysisIntroImages/OutputParameterIdentificationLattice.svg
The file was modifiedclang/docs/conf.py (diff)
Commit 3d549dddf75b6ff9e0ec8c053677750bde4226ea by sander.desmalen
[LV] Pass compare predicate to getCmpSelInstrCost.

If the condition of a select is a compare, pass its predicate to
TTI::getCmpSelInstrCost to get a more accurate cost value instead
of passing BAD_ICMP_PREDICATE.

I noticed that the commit message from D90070 had a comment about the
vectorized select predicate possibly being composed of other compares with
different predicate values, but I wasn't able to construct an example
where this was an actual issue. If this is an issue, I guess we could
add another check that the block isn't predicated for any reason.

Reviewed By: dmgreen, fhahn

Differential Revision: https://reviews.llvm.org/D114646
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/select-costs.ll (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp (diff)
Commit 954582cdfc23a5dd90cb5bf6e5a0c45db300169e by dvyukov
tsan: disable dlopen_static_tls.cpp test on powerpc64

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D115142
The file was modifiedcompiler-rt/test/tsan/Linux/dlopen_static_tls.cpp (diff)
Commit 34a43f2115af79f896c889433c57f3b400e9f2c6 by simon.moll
[Clang] Ignore CLANG_DEFAULT_LINKER for custom-linker toolchains

Before, the CLANG_DEFAULT_LINKER cmake option was a global override for
the linker that shall be used on all toolchains.  The linker binary
specified that way may not be available on toolchains with custom
linkers. Eg, the only linker for VE is named 'nld' - any other linker
invalidates the toolchain.

This patch removes the hard override and instead lets the generic
toolchain implementation default to CLANG_DEFAULT_LINKER.  Toolchains
can now deviate with a custom linker name or deliberatly default to
CLANG_DEFAULT_LINKER.

Reviewed By: MaskRay, phosek

Differential Revision: https://reviews.llvm.org/D115045
The file was modifiedclang/test/Driver/ve-toolchain.cpp (diff)
The file was modifiedclang/lib/Driver/ToolChain.cpp (diff)
The file was modifiedclang/test/Driver/ve-toolchain.c (diff)
The file was modifiedclang/include/clang/Driver/ToolChain.h (diff)
Commit d64b3e47ba6347ef4c68c0666a90eda8f986f525 by zinenko
[mlir] Avoid needlessly converting LLVM named structs with compatible elements

Conversion of LLVM named structs leads to them being renamed since we cannot
modify the body of the struct type once it is set. Previously, this applied to
all named struct types, even if their element types were not affected by the
conversion. Make this behvaior only applicable when element types are changed.
This requires making the LLVM dialect type-compatibility check recursively look
at the element types (arguably, it should have been doing than since the moment
the LLVM dialect type system stopped being closed). In addition, have a more
lax check for outer types only to avoid repeated check when necessary (e.g.,
parser, verifiers that are going to also look at the inner type).

Reviewed By: wsmoses

Differential Revision: https://reviews.llvm.org/D115037
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-types.mlir (diff)
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h (diff)
The file was modifiedmlir/lib/Conversion/LLVMCommon/TypeConverter.cpp (diff)
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp (diff)
Commit 4a419ea4007bec1ca87299785113046024e475b6 by flo
[DSE] Add additional memset_chk tests.
The file was modifiedllvm/test/Transforms/DeadStoreElimination/stores-of-existing-values.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/libcalls.ll (diff)
Commit 1a87a1895597226ca655086b7f6972069eca0de1 by jonathanchesterfield
[openmp][amdgpu] Disable tests requiring USM on amdgcn

These tests tend to hang or crash on hardware that doesn't
support USM. Disabling them helps diagnose other issues. To safely
enable we require a means of testing whether USM is expected to work.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D115144
The file was modifiedopenmp/libomptarget/test/lit.cfg (diff)
Commit fdc1638b5cbd7f93937dce56f8ea29db52390502 by mgorny
[lldb] [Process/elf-core] Disable for FreeBSD vmcores

Recognize FreeBSD vmcores (kernel core dumps) through OS ABI = 0xFF
+ ELF version = 0, and do not process them via the elf-core plugin.
While these files use ELF as a container format, they contain raw memory
dump rather than proper VM segments and therefore are not usable
to the elf-core plugin.

Differential Revision: https://reviews.llvm.org/D114967
The file was modifiedlldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp (diff)
Commit a52af6d3714fa6ea749783400a98dcfad94814b0 by pavel
[lldb] Remove extern "C" from lldb-swig-lua interface

This is the lua equivalent of 9a14adeae0.
The file was modifiedlldb/unittests/ScriptInterpreter/Lua/LuaTests.cpp (diff)
The file was modifiedlldb/bindings/lua/lua.swig (diff)
The file was modifiedlldb/source/Plugins/ScriptInterpreter/Lua/Lua.cpp (diff)
The file was modifiedlldb/bindings/lua/lua-wrapper.swig (diff)
Commit 85578db68aa9e3ad3f62e9aa6830d2a4c362cd1d by pavel
[lldb/lua] Add a file that should have been a part of a52af6d3
The file was addedlldb/source/Plugins/ScriptInterpreter/Lua/SWIGLuaBridge.h
Commit 5c4cb323e86aaf816c0dd45191dad08e5d4691cf by pavel
[lldb/qemu] Add support for pty redirection

Lldb uses a pty to read/write to the standard input and output of the
debugged process. For host processes this would be automatically set up
by Target::FinalizeFileActions. The Qemu platform is in a unique
position of not really being a host platform, but not being remote
either. It reports IsHost() = false, but it is sufficiently host-like
that we can use the usual pty mechanism.

This patch adds the necessary glue code to enable pty redirection. It
includes a small refactor of Target::FinalizeFileActions and
ProcessLaunchInfo::SetUpPtyRedirection to reduce the amount of
boilerplate that would need to be copied.

I will note that qemu is not able to separate output from the emulated
program from the output of the emulator itself, so the two will arrive
intertwined. Normally this should not be a problem since qemu should not
produce any output during regular operation, but some output can slip
through in case of errors. This situation should be pretty obvious (to a
human), and it is the best we can do anyway.

For testing purposes, and inspired by lldb-server tests, I have extended
the mock emulator with the ability "program" the behavior of the
"emulated" program via command-line arguments.

Differential Revision: https://reviews.llvm.org/D114796
The file was modifiedlldb/source/Plugins/Platform/QemuUser/PlatformQemuUser.cpp (diff)
The file was modifiedlldb/test/API/qemu/TestQemuLaunch.py (diff)
The file was modifiedlldb/source/Host/common/ProcessLaunchInfo.cpp (diff)
The file was modifiedlldb/test/API/qemu/qemu.py (diff)
The file was modifiedlldb/source/Target/Target.cpp (diff)
Commit b23d17f6b5f7748645996f54c79dc0b58aa5a9c2 by Jake.Egan
[MC] Add emitXCOFFSymbolLinkageWithVisibility to MCNullStreamer

This patch adds `emitXCOFFSymbolLinkageWithVisibility` to MCNullStreamer to fix llvm_unreachable getting reached when using option `-filetype=null` on AIX.

Reviewed By: DiggerLin

Differential Revision: https://reviews.llvm.org/D114876
The file was modifiedllvm/lib/MC/MCNullStreamer.cpp (diff)