FailedChanges

Summary

  1. DWARFVerifier.h - remove unnecessary forward declarations and includes. NFCI. (details)
  2. [ARM][CostModel] Implement getCFInstrCost (details)
  3. [CUDA][HIP] Support accessing static device variable in host code for -fno-gpu-rdc (details)
  4. [mlir] Remove LLVMTypeTestDialect (details)
  5. [clang][NFC] Remove spurious +x flag on DeclTemplate.cpp and DeclTemplate.h (details)
  6. [clang][NFC] Add a test showcasing an unnamed template parameter in a diagnostic (details)
  7. [clang][NFC] Remove an old workaround for MSVC 2013 (details)
  8. [clang][NFC] Document NamedDecl::printName (details)
  9. [clang][nearly-NFC] Remove some superfluous uses of NamedDecl::getNameAsString (details)
  10. [clang][NFCI] Get rid of ConstantMatrixTypeBitfields to avoid increasing the size of every type. (details)
  11. [clang][NFC] DeclPrinter: use NamedDecl::getDeclName instead of NamedDecl::printName to print the name of enumerations, namespaces and template parameters. (details)
  12. [gn build] (manually) merge 3ab01550b (details)
  13. Recommit "[InstCombine] Negator: -(X << C)  -->  X * (-1 << C)" (details)
  14. [mlir] Initial version of C APIs (details)
  15. [clang] Add -fno-delayed-template-parsing to the added unit tests in DeclPrinterTest.cpp (details)
  16. [Statepoints] Operand folding in presense of tied registers. (details)
  17. [OpenMP] Fix `present` for exit from `omp target data` (details)
  18. [OpenMP][Docs] Add map clause reordering status as unclaimed (details)
  19. [OpenMP][Docs] Mark `present` map type modifier as done (details)
  20. [OpenMP] Fix `omp target update` for array extension (details)
  21. [llvm-readobj] - Make decode_relrs() don't return Expected<>. NFCI. (details)
  22. [X86][AVX] Fold CONCAT(HOP(X,Y),HOP(Z,W)) -> HOP(CONCAT(X,Z),CONCAT(Y,W)) for integer types (details)
  23. [X86] isHorizontalBinOp - only update LHS/RHS references on success (details)
  24. [libc] Add isspace, isprint, isxdigit implementations. (details)
  25. [libc] [obvious] Add ctype functions to linux api. (details)
  26. Bump forgotten version nbr in llvm/docs/conf.py (details)
  27. [clangd] Fix a crash in DefineInline (details)
  28. [InstSimplify] reduce code duplication in simplifyICmpWithMinMax(); NFC (details)
  29. MachO: support `-syslibroot` (details)
  30. [JITLink][AArch64] Improve debug output for addend relocations. (details)
  31. [JITLink][AArch64] Handle addends on PAGE21 / PAGEOFF12 relocations. (details)
  32. Add libFuzzer shared object build output (details)
  33. [ELF] --oformat=binary: use LMA to compute file offsets (details)
  34. [ELF] --icf: don't fold text sections with LSDA (details)
  35. [ELF] Allow sections after a non-SHF_ALLOC section to be covered by PT_LOAD (details)
  36. [mlir] Fix rank bitwidth in UnrankedMemRefType conversion. (details)
  37. [MLIR][NFC] Fix clang-tidy warnings in std to llvm conversion (details)
  38. [InstSimplify] add tests for icmp with 'mul nuw' operand; NFC (details)
  39. [NFC][InstCombine] Tests for negation of `add` w/ single negatible operand (details)
  40. [InstCombine] Negator: 0 - (X + Y)  -->  (-X) - Y  iff a single operand negated (details)
  41. Remove special Hexagon packet traversal code (details)
  42. [lldb] Make SBTarget::LaunchSimple start form the target's LaunchInfo (details)
  43. [lldb] Add an option to inherit TCC permissions from parent. (details)
  44. [NFC][InstCombine] Negator: include all the needed headers, IWYU (details)
  45. [LoopVectorizer] Inloop vector reductions (details)
  46. [ASan][Darwin] Adapt test for macOS 11+ version scheme (details)
  47. [lldb/test] Replace LLDB_TEST_SRC env variable with configuration (details)
  48. [TFUtils] Expose untyped accessor to evaluation result tensors (details)
  49. Revert "[LoopVectorizer] Inloop vector reductions" (details)
  50. [X86][SSE] Fold 128-bit PACK(EXTEND(X),EXTEND(Y)) -> CONCAT(X,Y) subvectors (details)
  51. [msan] Remove readnone and friends from call sites. (details)
  52. [LIBOMPTARGET]Fix order of mapper data for targetDataEnd function. (details)
  53. Fix _ExtInt(1) to be a i1 in memory. (details)
Commit 7b993903e0448a1f804882c97f3071e799cbe99e by llvm-dev
DWARFVerifier.h - remove unnecessary forward declarations and includes. NFCI.
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h (diff)
Commit f2675ab45fbb41bb7c1e1b0b86533fc83e877b6b by sam.parker
[ARM][CostModel] Implement getCFInstrCost

As with other targets, set the throughput cost of control-flow
instructions to free so that we don't miss out of vectorization
opportunities.

Differential Revision: https://reviews.llvm.org/D85283
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/shuffle.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/gep.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-umax.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-umin.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/cast_ldst.ll (diff)
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/cmps.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/mul-cast-vect.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/divrem.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/fparith.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/shl-cast-vect.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/select.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/arith-ssat.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/control-flow.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/mve-gather-scatter-cost.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/arith-overflow.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/memcpy.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/arith-usat.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/arith.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/load_store.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/sub-cast-vect.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-add.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-smin.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-smax.ll (diff)
The file was modifiedllvm/test/Analysis/CostModel/ARM/cast.ll (diff)
Commit 45f2a56856e29b8cb038b2e559289b91fb98fedf by Yaxun.Liu
[CUDA][HIP] Support accessing static device variable in host code for -fno-gpu-rdc

nvcc supports accessing file-scope static device variables in host code by host APIs
like cudaMemcpyToSymbol etc.

CUDA/HIP let users access device variables in host code by shadow variables. In host compilation,
clang emits a shadow variable for each device variable, and calls __*RegisterVariable to
register it in init function. The address of the shadow variable and the device side mangled
name of the device variable is passed to __*RegisterVariable. Runtime looks up the symbol
by name in the device binary  to find the address of the device variable.

The problem with static device variables is that they have internal linkage, therefore their
name may be changed by the linker if there are multiple symbols with the same name. Also
they end up as local symbols in the elf file, whereas the runtime only looks up the global symbols.

Another reason for making the static device variables external linkage is that they may be
initialized externally by host code and their final value may be accessed by host code
after kernel execution, therefore they actually have external linkage. Giving them internal
linkage will cause incorrect optimizations on them.

To support accessing static device var in host code for -fno-gpu-rdc mode, change the intnernal
linkage to external linkage. The name does not need change since there is only one TU for
-fno-gpu-rdc mode. Also the externalization is done only if the device static var is referenced
by host code.

Differential Revision: https://reviews.llvm.org/D80858
The file was modifiedclang/lib/AST/ASTContext.cpp (diff)
The file was modifiedclang/include/clang/AST/ASTContext.h (diff)
The file was modifiedclang/lib/Sema/SemaExpr.cpp (diff)
The file was modifiedclang/test/CodeGenCUDA/constexpr-variables.cu (diff)
The file was addedclang/test/CodeGenCUDA/static-device-var-no-rdc.cu
Commit 4e491570b5ecff17d3ac7cf6dbb328d379cd4fb6 by zinenko
[mlir] Remove LLVMTypeTestDialect

This dialect was introduced during the bring-up of the new LLVM dialect type
system for testing purposes. The main LLVM dialect now uses the new type system
and the test dialect is no longer necessary, so remove it.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D85224
The file was modifiedmlir/test/Dialect/LLVMIR/types-invalid.mlir (diff)
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/CMakeLists.txt (diff)
The file was modifiedmlir/tools/mlir-translate/CMakeLists.txt (diff)
The file was removedmlir/test/lib/Dialect/LLVMIR/CMakeLists.txt
The file was modifiedmlir/test/Target/llvmir-types.mlir (diff)
The file was modifiedmlir/tools/mlir-translate/mlir-translate.cpp (diff)
The file was modifiedmlir/tools/mlir-opt/CMakeLists.txt (diff)
The file was removedmlir/test/lib/Dialect/LLVMIR/LLVMTypeTestDialect.cpp
Commit 00b89f66f988e9ec6f366ed46a51ace39fac07c8 by riccibrun
[clang][NFC] Remove spurious +x flag on DeclTemplate.cpp and DeclTemplate.h
The file was modifiedclang/include/clang/AST/DeclTemplate.h (diff)
The file was modifiedclang/lib/AST/DeclTemplate.cpp (diff)
Commit 98b4b4570542a255e9a81e4a349183402a2d478d by riccibrun
[clang][NFC] Add a test showcasing an unnamed template parameter in a diagnostic
The file was modifiedclang/test/SemaCXX/cxx1z-class-template-argument-deduction.cpp (diff)
Commit bc29634b93acf2e55c82dd906f0d9af196c66ff3 by riccibrun
[clang][NFC] Remove an old workaround for MSVC 2013
The file was modifiedclang/include/clang/AST/DeclTemplate.h (diff)
Commit 6f2fa9d312fcea2448706a8e410c7bc1b6436ea7 by riccibrun
[clang][NFC] Document NamedDecl::printName
The file was modifiedclang/include/clang/AST/Decl.h (diff)
Commit 19701458d4691ee7ec59e5aa7217a479b0fb10e7 by riccibrun
[clang][nearly-NFC] Remove some superfluous uses of NamedDecl::getNameAsString

`OS << ND->getDeclName();` is equivalent to `OS << ND->getNameAsString();`
without the extra temporary string.

This is not quite a NFC since two uses of `getNameAsString` in a
diagnostic are replaced, which results in the named entity being
quoted with additional "'"s (ie: 'var' instead of var).
The file was modifiedclang-tools-extra/clang-move/HelperDeclRefGraph.cpp (diff)
The file was modifiedclang-tools-extra/clang-move/Move.cpp (diff)
The file was modifiedclang/lib/Sema/SemaChecking.cpp (diff)
The file was modifiedclang/test/Index/error-on-deserialized.c (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/FuchsiaHandleChecker.cpp (diff)
The file was modifiedclang-tools-extra/clang-include-fixer/find-all-symbols/FindAllSymbols.cpp (diff)
The file was modifiedclang/lib/AST/Interp/Disasm.cpp (diff)
The file was modifiedclang/lib/AST/ASTDiagnostic.cpp (diff)
The file was modifiedclang/lib/AST/TextNodeDumper.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Core/ExprEngine.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/CastValueChecker.cpp (diff)
The file was modifiedclang/lib/Frontend/FrontendAction.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp (diff)
The file was modifiedclang/lib/Index/FileIndexRecord.cpp (diff)
The file was modifiedclang/test/SemaCXX/warn-msvc-enum-bitfield.cpp (diff)
The file was modifiedclang/lib/Tooling/Refactoring/ASTSelection.cpp (diff)
The file was modifiedclang/lib/Sema/AnalysisBasedWarnings.cpp (diff)
Commit 94b43118e2203fed8ca0377ae762c08189aa6f3d by riccibrun
[clang][NFCI] Get rid of ConstantMatrixTypeBitfields to avoid increasing the size of every type.

sizeof(ConstantMatrixTypeBitfields) > 8 which increases the size of every type.
This was not detected because no corresponding static_assert for its size was
added.

To prevent this from occuring again replace the various static_asserts for
the size of each of the bit-field classes by a single static_assert for the
size of Type.

I have left ConstantMatrixType::MaxElementsPerDimension unchanged since
the limit is exercised by multiple tests.
The file was modifiedclang/lib/AST/Type.cpp (diff)
The file was modifiedclang/include/clang/AST/Type.h (diff)
Commit f7a039de7af7b83105f3e0345d65dceda1a0e0d4 by riccibrun
[clang][NFC] DeclPrinter: use NamedDecl::getDeclName instead of NamedDecl::printName to print the name of enumerations, namespaces and template parameters.

NamedDecl::printName will print the pretty-printed name of the entity, which
is not what we want here (we should print "enum { e };" instead of "enum
(unnamed enum at input.cc:1:5) { e };").

For now only DecompositionDecl and MDGuidDecl have an overloaded printName so
this does not result in any functional change, but this change is needed since
I will be adding overloads to better handle unnamed entities in diagnostics.
The file was modifiedclang/lib/AST/DeclPrinter.cpp (diff)
The file was modifiedclang/unittests/AST/DeclPrinterTest.cpp (diff)
Commit cc2612185833a0e4b7a19bfbde801ced9297b0f7 by thakis
[gn build] (manually) merge 3ab01550b

This reverts commit 0bbaacc8cae0373d4500c4e3f6f128d21f9033b7 and
2ad56119f5dc6c6af2b8ddfd9fc8c6460a7507c8 which merged 10b1b4a23
(and follow-ups), since that change was reverted in 3ab01550b.
The file was modifiedllvm/utils/gn/secondary/clang/test/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/lld/test/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/compiler-rt/test/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/test/BUILD.gn (diff)
Commit f5df5cd5586ae9cfb2d9e53704dfc76f47aff149 by lebedev.ri
Recommit "[InstCombine] Negator: -(X << C)  -->  X * (-1 << C)"

This reverts commit ac70b37a00dc02bd8923e0a4602d26be4581c570
which reverted commit 8aeb2fe13a4100b4c2e78d6ef75119304100cb1f
because codegen tests got broken and i needed time to investigate.

This shows some regressions in tests, but they are all around GEP's,
so i'm not really sure how important those are.

https://rise4fun.com/Alive/1Gn
The file was modifiedllvm/test/Transforms/InstCombine/icmp.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/sub-gep.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll (diff)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineNegator.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/reqd-work-group-size.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll (diff)
Commit 75f239e9756b157f209412268c5a50a69b1a4e74 by zinenko
[mlir] Initial version of C APIs

    Introduce an initial version of C API for MLIR core IR components: Value, Type,
    Attribute, Operation, Region, Block, Location. These APIs allow for both
    inspection and creation of the IR in the generic form and intended for wrapping
    in high-level library- and language-specific constructs. At this point, there
    is no stability guarantee provided for the API.

Reviewed By: stellaraccident, lattner

Differential Revision: https://reviews.llvm.org/D83310
The file was addedmlir/lib/CAPI/IR/CMakeLists.txt
The file was addedmlir/test/CAPI/ir.c
The file was addedmlir/include/mlir-c/IR.h
The file was addedmlir/lib/CAPI/Registration/Registration.cpp
The file was addedmlir/include/mlir-c/Registration.h
The file was addedmlir/docs/CAPI.md
The file was addedmlir/lib/CAPI/CMakeLists.txt
The file was addedmlir/lib/CAPI/IR/IR.cpp
The file was modifiedmlir/test/lit.cfg.py (diff)
The file was modifiedmlir/test/CMakeLists.txt (diff)
The file was addedmlir/test/CAPI/lit.local.cfg
The file was addedmlir/lib/CAPI/Registration/CMakeLists.txt
The file was modifiedmlir/CMakeLists.txt (diff)
The file was addedmlir/test/CAPI/CMakeLists.txt
Commit 4dcbb9cef71afa549afe8f6b4d335b1c996f8079 by riccibrun
[clang] Add -fno-delayed-template-parsing to the added unit tests in DeclPrinterTest.cpp
The file was modifiedclang/unittests/AST/DeclPrinterTest.cpp (diff)
Commit d21ce408218150e23b5cc4af45c088c0926d7e18 by dantrushin
[Statepoints] Operand folding in presense of tied registers.

Implement proper folding of statepoint meta operands (deopt and GC)
when statepoint uses tied registers.
For deopt operands it is just about properly preserving tiedness
in new instruction.
For tied GC operands folding is a little bit more tricky.
We can fold tied GC operands only from InlineSpiller, because it knows
how to properly reload tied def after it was turned into memory operand.
Other users (e.g. peephole) cannot properly fold such operands as they
do not know how (or when) to reload them from memory.
We do this by un-tieing operand we want to fold in InlineSpiller
and allowing to fold only untied operands in foldPatchpoint.
The file was addedllvm/test/CodeGen/X86/statepoint-vreg-folding.mir
The file was modifiedllvm/lib/CodeGen/InlineSpiller.cpp (diff)
The file was modifiedllvm/lib/CodeGen/TargetInstrInfo.cpp (diff)
Commit 002d61db2b7790dc884953bf9271878bf0af3a8e by jdenny.ornl
[OpenMP] Fix `present` for exit from `omp target data`

Without this patch, the following example fails but shouldn't
according to OpenMP TR8:

```
#pragma omp target enter data map(alloc:i)
#pragma omp target data map(present, alloc: i)
{
   #pragma omp target exit data map(delete:i)
} // fails presence check here
```

OpenMP TR8 sec. 2.22.7.1 "map Clause", p. 321, L23-26 states:

> If the map clause appears on a target, target data, target enter
> data or target exit data construct with a present map-type-modifier
> then on entry to the region if the corresponding list item does not
> appear in the device data environment an error occurs and the
> program terminates.

There is no corresponding statement about the exit from a region.
Thus, the `present` modifier should:

1. Check for presence upon entry into any region, including a `target
   exit data` region.  This behavior is already implemented correctly.

2. Should not check for presence upon exit from any region, including
   a `target` or `target data` region.  Without this patch, this
   behavior is not implemented correctly, breaking the above example.

In the case of `target data`, this patch fixes the latter behavior by
removing the `present` modifier from the map types Clang generates for
the runtime call at the end of the region.

In the case of `target`, we have not found a valid OpenMP program for
which such a fix would matter.  It appears that, if a program can
guarantee that data is present at the beginning of a `target` region
so that there's no error there, that data is also guaranteed to be
present at the end.  This patch adds a comment to the runtime to
document this case.

Reviewed By: grokos, RaviNarayanaswamy, ABataev

Differential Revision: https://reviews.llvm.org/D84422
The file was addedopenmp/libomptarget/test/mapping/present/target_data_at_exit.c
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.h (diff)
The file was modifiedclang/test/OpenMP/target_data_codegen.cpp (diff)
The file was modifiedopenmp/libomptarget/src/omptarget.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp (diff)
Commit 26cf9c17044515cdde3e7baeea843001ba33be59 by jdenny.ornl
[OpenMP][Docs] Add map clause reordering status as unclaimed
The file was modifiedclang/docs/OpenMPSupport.rst (diff)
Commit 03bb545b68c2edb9dc5bd092104bdb83a8e5e347 by jdenny.ornl
[OpenMP][Docs] Mark `present` map type modifier as done
The file was modifiedclang/docs/OpenMPSupport.rst (diff)
Commit 5ab43989c353a2378910d20c7b88e44ea92b3aee by jdenny.ornl
[OpenMP] Fix `omp target update` for array extension

OpenMP TR8 sec. 2.15.6 "target update Construct", p. 183, L3-4 states:

> If the corresponding list item is not present in the device data
> environment and there is no present modifier in the clause, then no
> assignment occurs to or from the original list item.

L10-11 states:

> If a present modifier appears in the clause and the corresponding
> list item is not present in the device data environment then an
> error occurs and the program termintates.

(OpenMP 5.0 also has the first passage but without mention of the
present modifier of course.)

In both passages, I assume "is not present" includes the case of
partially but not entirely present.  However, without this patch, the
target update directive misbehaves in this case both with and without
the present modifier.  For example:

```
#pragma omp target enter data map(to:arr[0:3])
#pragma omp target update to(arr[0:5]) // might fail on data transfer
#pragma omp target update to(present:arr[0:5]) // might fail on data transfer
```

The problem is that `DeviceTy::getTgtPtrBegin` does not return a null
pointer in that case, so `target_data_update` sees the data as fully
present, and the data transfer then might fail depending on the target
device.  However, without the present modifier, there should never be
a failure.  Moreover, with the present modifier, there should always
be a failure, and the diagnostic should mention the present modifier.

This patch fixes `DeviceTy::getTgtPtrBegin` to return null when
`target_data_update` is the caller.  I'm wondering if it should do the
same for more callers.

Reviewed By: grokos, jdoerfert

Differential Revision: https://reviews.llvm.org/D85246
The file was modifiedopenmp/libomptarget/src/device.cpp (diff)
The file was modifiedopenmp/libomptarget/src/omptarget.cpp (diff)
The file was addedopenmp/libomptarget/test/mapping/target_update_array_extension.c
The file was addedopenmp/libomptarget/test/mapping/present/target_update_array_extension.c
The file was modifiedopenmp/libomptarget/src/device.h (diff)
Commit 6ae5b9e40587f5586e2970ca717797b68c34758d by grimar
[llvm-readobj] - Make decode_relrs() don't return Expected<>. NFCI.

The `decode_relrs` helper is declared as:

`Expected<std::vector<Elf_Rel>> decode_relrs(Elf_Relr_Range relrs) const;`

it never returns an error though and hence can be simplified to return
a vector.

Differential revision: https://reviews.llvm.org/D85302
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp (diff)
The file was modifiedllvm/lib/Object/ELF.cpp (diff)
The file was modifiedllvm/include/llvm/Object/ELF.h (diff)
Commit a57bfb44bc7918c907500ba9ac4cdd80e445660a by llvm-dev
[X86][AVX] Fold CONCAT(HOP(X,Y),HOP(Z,W)) -> HOP(CONCAT(X,Z),CONCAT(Y,W)) for integer types
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/haddsub-2.ll (diff)
Commit 6a06c7a0a7688ce142865e92d879b8bece79de7a by llvm-dev
[X86] isHorizontalBinOp - only update LHS/RHS references on success

We've had issues in the past where isHorizontalBinOp calls would affect later combines as the LHS/RHS references had been commuted but still failed to match.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
Commit 1fdab96130fc86f2635d26b617adf10608b8e63b by gyurgyikcp
[libc] Add isspace, isprint, isxdigit implementations.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D85270
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt (diff)
The file was modifiedlibc/spec/stdc.td (diff)
The file was modifiedlibc/src/ctype/CMakeLists.txt (diff)
The file was addedlibc/src/ctype/isspace.cpp
The file was addedlibc/src/ctype/isprint.h
The file was modifiedlibc/test/src/ctype/CMakeLists.txt (diff)
The file was addedlibc/test/src/ctype/isprint_test.cpp
The file was addedlibc/test/src/ctype/isxdigit_test.cpp
The file was addedlibc/src/ctype/isprint.cpp
The file was addedlibc/src/ctype/isspace.h
The file was modifiedlibc/config/linux/aarch64/entrypoints.txt (diff)
The file was addedlibc/src/ctype/isxdigit.cpp
The file was addedlibc/test/src/ctype/isspace_test.cpp
The file was addedlibc/src/ctype/isxdigit.h
Commit 049f6ad4f69e6b9c5df290d6f9d86c991ed4ecec by noreply
[libc] [obvious] Add ctype functions to linux api.

Adds isspace, isprint, and isxdigit to Linux API to fix failed integration test.
The file was modifiedlibc/config/linux/api.td (diff)
Commit 271d9c507c783b3c13629376f3edf66099937938 by hans
Bump forgotten version nbr in llvm/docs/conf.py
The file was modifiedllvm/docs/conf.py (diff)
Commit 011732852c2c1ca1015fac1bed831308dc521583 by kadircet
[clangd] Fix a crash in DefineInline

Differential Revision: https://reviews.llvm.org/D85291
The file was modifiedclang-tools-extra/clangd/refactor/tweaks/DefineInline.cpp (diff)
The file was modifiedclang-tools-extra/clangd/unittests/TweakTests.cpp (diff)
Commit bd2c88b253b06c4957ec4bfef60d41e79f8492aa by spatel
[InstSimplify] reduce code duplication in simplifyICmpWithMinMax(); NFC
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp (diff)
Commit 0ccda7c2326e1dc4e0d5d601dcc06c4b576acb0e by Saleem Abdulrasool
MachO: support `-syslibroot`

This adds support for the `-syslibroot` option.  This is required to
make the library search order actually function.  With this, it is now
possible to link a test Darwin x86_64 program with lld on Darwin.

Differential Revision: https://reviews.llvm.org/D82252
Reviewed By: Jez Ng
The file was modifiedlld/test/MachO/search-paths.test (diff)
The file was modifiedlld/MachO/Driver.cpp (diff)
The file was addedlld/test/MachO/syslibroot.test
Commit d561d1bf96354c10ca664c20b5268d156a9a3da3 by Lang Hames
[JITLink][AArch64] Improve debug output for addend relocations.
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp (diff)
Commit 47cfffe893f345285ac9fb9c24b268dfcdc6aa38 by Lang Hames
[JITLink][AArch64] Handle addends on PAGE21 / PAGEOFF12 relocations.
The file was modifiedllvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp (diff)
The file was modifiedllvm/test/ExecutionEngine/JITLink/AArch64/MachO_arm64_relocations.s (diff)
Commit 98d91aecb26a51225242332e73ed454c0f6cac5e by mascasa
Add libFuzzer shared object build output

This change adds a CMake rule to produce shared object versions of
libFuzzer (no-main). Like the static library versions, these shared
libraries have a copy of libc++ statically linked in. For i386 we don't
link with libc++ since i386 does not support mixing position-
independent and non-position-independent code in the same library.

Patch By: IanPudney

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D84947
The file was modifiedllvm/docs/LibFuzzer.rst (diff)
The file was modifiedcompiler-rt/lib/fuzzer/CMakeLists.txt (diff)
Commit acb66b9111ba793509b5468a58107108317b7cf5 by i
[ELF] --oformat=binary: use LMA to compute file offsets

--oformat=binary is rare (used in a few places in FreeBSD, see `stand/i386/mbr/Makefile` `LDFLAGS_BIN`)
The result should be identical to a normal output transformed by `objcopy -O binary`.

The current implementation ignores addresses and lays out sections by
respecting output section alignments. It can fail when an output section
address is specified, e.g. `.rodata ALIGN(16) :` (PR33651).

Fix PR33651 by respecting LMA. The code is similar to
`tools/llvm-objcop/ELF/Object.cpp` BinaryWriter::finalize after D71035 and D79229.
Unforunately for an output section without PT_LOAD, we assume its LMA is equal
to its VMA. So the result is still incorrect when an output section LMA
(`AT(...)`) is specified

Also drop `alignTo(off, config->wordsize)`. GNU ld does not round up the file size.

Differential Revision: https://reviews.llvm.org/D85086
The file was modifiedlld/ELF/Writer.cpp (diff)
The file was modifiedlld/test/ELF/oformat-binary.s (diff)
The file was modifiedlld/test/ELF/oformat-binary-ttext.s (diff)
Commit 21b4f8060ab3b313009cf8995140edd5adbf7a4a by i
[ELF] --icf: don't fold text sections with LSDA

Fix PR36272 and PR46835

A .eh_frame FDE references a text section and (optionally) a LSDA (in
.gcc_except_table).  Even if two text sections have identical content and
relocations (e.g. a() and b()), we cannot fold them if their LSDA are different.

```
void foo();
void a() {
  try { foo(); } catch (int) { }
}
void b() {
  try { foo(); } catch (float) { }
}
```

Scan .eh_frame pieces with LSDA and disallow referenced text sections to be
folded. If two .gcc_except_table have identical semantics (usually identical
content with PC-relative encoding), we will lose folding opportunity.
For ClickHouse (an exception-heavy application), this can reduce --icf=all efficiency
from 9% to 5%. There may be some percentage we can reclaim without affecting
correctness, if we analyze .eh_frame and .gcc_except_table sections.

gold 2.24 implemented a more complex fix (resolution to
https://sourceware.org/bugzilla/show_bug.cgi?id=21066) which combines the
checksum of .eh_frame CIE/FDE pieces.

Reviewed By: grimar

Differential Revision: https://reviews.llvm.org/D84610
The file was modifiedlld/ELF/ICF.cpp (diff)
The file was modifiedlld/ELF/SyntheticSections.h (diff)
The file was modifiedlld/ELF/EhFrame.h (diff)
The file was modifiedlld/ELF/InputSection.h (diff)
The file was modifiedlld/ELF/EhFrame.cpp (diff)
The file was modifiedlld/ELF/SyntheticSections.cpp (diff)
The file was addedlld/test/ELF/icf-eh-frame.s
Commit 030ddc0a0bb9e2b25319eb681d520a9cee32b761 by i
[ELF] Allow sections after a non-SHF_ALLOC section to be covered by PT_LOAD

GNU ld allows sections after a non-SHF_ALLOC section to be covered by PT_LOAD
(PR37607) and assigns addresses to non-SHF_ALLOC output sections (similar to
SHF_ALLOC NOBITS sections. The location counter is not advanced).

This patch tries to fix PR37607 (remove a special case in
`Writer<ELFT>::createPhdrs`). To make the created PT_LOAD meaningful, we cannot
reset dot to 0 for a middle non-SHF_ALLOC output section. This results in
removal of two special cases in LinkerScript::assignOffsets. Non-SHF_ALLOC
non-orphan sections can have non-zero addresses like in GNU ld.

The zero address rule for non-SHF_ALLOC sections is weakened to apply to orphan
only. This results in a special case in createSection and findOrphanPos, respectively.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D85100
The file was modifiedlld/ELF/LinkerScript.cpp (diff)
The file was modifiedlld/test/ELF/linkerscript/sections.s (diff)
The file was modifiedlld/test/ELF/linkerscript/symbols-non-alloc.test (diff)
The file was modifiedlld/test/ELF/linkerscript/compress-debug-sections-custom.s (diff)
The file was modifiedlld/ELF/Writer.cpp (diff)
Commit bc7456fd8a11e3b477060af85b00c42ca728ad7f by pifon
[mlir] Fix rank bitwidth in UnrankedMemRefType conversion.

Differential Revision: https://reviews.llvm.org/D85300
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir (diff)
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp (diff)
Commit 1d75f004ab069a0de6ff0622a9cf937e8b54f6ba by uday
[MLIR][NFC] Fix clang-tidy warnings in std to llvm conversion

Fix clang-tidy warnings in std to llvm conversion.
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp (diff)
Commit 719954eacb704236cb726fa3db5503f650a89b81 by spatel
[InstSimplify] add tests for icmp with 'mul nuw' operand; NFC
The file was modifiedllvm/test/Transforms/InstSimplify/icmp-constant.ll (diff)
Commit 26f79e258ffd74bc5e8fadb44947c9deba2e5375 by lebedev.ri
[NFC][InstCombine] Tests for negation of `add` w/ single negatible operand
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll (diff)
Commit 3a3c9519e272e664172a0a90e8abf84b6d400106 by lebedev.ri
[InstCombine] Negator: 0 - (X + Y)  -->  (-X) - Y  iff a single operand negated

This was the most obvious regression in
f5df5cd5586ae9cfb2d9e53704dfc76f47aff149.f5df5cd5586ae9cfb2d9e53704dfc76f47aff149

We really don't want to do this if the original/outermost subtraction
isn't a negation, and therefore doesn't go away - just sinking negation
isn't a win. We are actually appear to be missing folds so hoist it.

https://rise4fun.com/Alive/tiVe
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll (diff)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineNegator.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll (diff)
Commit 3169d920ccd16ec3c3e1bf5d91595b70a5278045 by tedwood
Remove special Hexagon packet traversal code

On Hexagon, breakpoints need to be on the first instruction of a packet.
When the LLVM disassembler for Hexagon returned 32 bit instructions, we
needed code to find the start of the current packet. Now that the LLVM
disassembler for Hexagon returns packets instead of instructions, we always
have the first instruction of the packet. Remove the packet traversal code
because it can cause problems when the next packet has more than one
instruction.

Reviewed By: clayborg

Differential Revision: https://reviews.llvm.org/D84966
The file was modifiedlldb/source/Target/ThreadPlanStepRange.cpp (diff)
The file was modifiedlldb/source/Core/Disassembler.cpp (diff)
The file was modifiedlldb/source/Target/Process.cpp (diff)
The file was modifiedlldb/include/lldb/Core/Disassembler.h (diff)
Commit 882d8e60dd40c01c74b4e16b02cf7ca02e846434 by Jonas Devlieghere
[lldb] Make SBTarget::LaunchSimple start form the target's LaunchInfo

Currently SBTarget::LaunchSimple creates a new LaunchInfo which means it
ignores any target properties that have been set. Instead, it should
start from the target's LaunchInfo and populated the specified fields.

Differential revision: https://reviews.llvm.org/D85235
The file was modifiedlldb/test/API/python_api/target/main.c (diff)
The file was modifiedlldb/source/API/SBTarget.cpp (diff)
The file was modifiedlldb/test/API/python_api/target/TestTargetAPI.py (diff)
Commit 249a1d4f1bed2f2be5781a90b5d4bce8791d338b by Jonas Devlieghere
[lldb] Add an option to inherit TCC permissions from parent.

Add an option that allows the user to decide to not make the inferior is
responsible for its own TCC permissions. If you don't make the inferior
responsible, it inherits the permissions of its parent. The motivation
is the scenario of running the LLDB test suite from an external hard
drive. If the inferior is responsible, every test needs to be granted
access to the external volume. When the permissions are inherited,
approval needs to be granted only once.

Differential revision: https://reviews.llvm.org/D85237
The file was modifiedlldb/include/lldb/lldb-enumerations.h (diff)
The file was modifiedlldb/source/Host/macosx/objcxx/Host.mm (diff)
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py (diff)
The file was modifiedlldb/source/Target/Target.cpp (diff)
The file was modifiedlldb/source/Commands/CommandObjectProcess.cpp (diff)
The file was modifiedlldb/source/Target/TargetProperties.td (diff)
The file was modifiedlldb/include/lldb/Target/Target.h (diff)
The file was modifiedlldb/test/Shell/lit-lldb-init.in (diff)
Commit a05ec856a3e79c03fa2657b05b440401bf4af1a3 by lebedev.ri
[NFC][InstCombine] Negator: include all the needed headers, IWYU
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineNegator.cpp (diff)
Commit e9761688e41cb979a1fa6a79eb18145a75104933 by david.green
[LoopVectorizer] Inloop vector reductions

Arm MVE has multiple instructions such as VMLAVA.s8, which (in this
case) can take two 128bit vectors, sign extend the inputs to i32,
multiplying them together and sum the result into a 32bit general
purpose register. So taking 16 i8's as inputs, they can multiply and
accumulate the result into a single i32 without any rounding/truncating
along the way. There are also reduction instructions for plain integer
add and min/max, and operations that sum into a pair of 32bit registers
together treated as a 64bit integer (even though MVE does not have a
plain 64bit addition instruction). So giving the vectorizer the ability
to use these instructions both enables us to vectorize at higher
bitwidths, and to vectorize things we previously could not.

In order to do that we need a way to represent that the reduction
operation, specified with a llvm.experimental.vector.reduce when
vectorizing for Arm, occurs inside the loop not after it like most
reductions. This patch attempts to do that, teaching the vectorizer
about in-loop reductions. It does this through a vplan recipe
representing the reductions that the original chain of reduction
operations is replaced by. Cost modelling is currently just done through
a prefersInloopReduction TTI hook (which follows in a later patch).

Differential Revision: https://reviews.llvm.org/D75069
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll (diff)
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop.ll (diff)
The file was modifiedllvm/include/llvm/Analysis/IVDescriptors.h (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp (diff)
The file was modifiedllvm/lib/Analysis/IVDescriptors.cpp (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h (diff)
Commit 1e90bd7f84d3948807c8f40926e72def664f07fa by julian.lettner
[ASan][Darwin] Adapt test for macOS 11+ version scheme

This test depends on the versioning scheme of OSX.
The file was modifiedcompiler-rt/test/asan/TestCases/Darwin/dyld_insert_libraries_reexec.cpp (diff)
Commit f425c0442c3ef137f2c4ab5eebd3d39036b09d70 by rupprecht
[lldb/test] Replace LLDB_TEST_SRC env variable with configuration

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D85322
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py (diff)
The file was modifiedlldb/packages/Python/lldbsuite/test/configuration.py (diff)
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py (diff)
The file was modifiedlldb/packages/Python/lldbsuite/test/plugins/builder_base.py (diff)
Commit b18c41c66fd16bde1a0a80a94f03815bc58dcc5a by mtrofin
[TFUtils] Expose untyped accessor to evaluation result tensors

These were implementation detail, but become necessary for generic data
copying.

Also added const variations to them, and move assignment, since we had a
move ctor (and the move assignment helps in a subsequent patch).

Differential Revision: https://reviews.llvm.org/D85262
The file was modifiedllvm/unittests/Analysis/TFUtilsTest.cpp (diff)
The file was modifiedllvm/include/llvm/Analysis/Utils/TFUtils.h (diff)
The file was modifiedllvm/lib/Analysis/TFUtils.cpp (diff)
Commit 3c39db0c4452218c967a8ac3ad48144fbf1159ff by rupprecht
Revert "[LoopVectorizer] Inloop vector reductions"

This reverts commit e9761688e41cb979a1fa6a79eb18145a75104933. It breaks the build:

```
~/src/llvm-project/llvm/lib/Analysis/IVDescriptors.cpp:868:10: error: no viable conversion from returned value of type 'SmallVector<[...], 8>' to function return type 'SmallVector<[...], 4>'
  return ReductionOperations;
```
The file was modifiedllvm/include/llvm/Analysis/IVDescriptors.h (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp (diff)
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop-uf4.ll (diff)
The file was modifiedllvm/test/Transforms/LoopVectorize/reduction-inloop.ll (diff)
The file was modifiedllvm/lib/Analysis/IVDescriptors.cpp (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp (diff)
Commit b60f998859458a13774fff296b58f587da8e56dd by llvm-dev
[X86][SSE] Fold 128-bit PACK(EXTEND(X),EXTEND(Y)) -> CONCAT(X,Y) subvectors

This is seen in the sub-128-bit vector trunc(ext()) of comparison results

Fixes pr46585.ll regression in D66004
The file was modifiedllvm/test/CodeGen/X86/bitcast-setcc-128.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-and-bool.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-or-bool.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/vector-reduce-xor-bool.ll (diff)
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
Commit f2c04239955a8e0d71aa27f7ffa3bbba6c623aef by eugenis
[msan] Remove readnone and friends from call sites.

MSan removes readnone/readonly and similar attributes from callees,
because after MSan instrumentation those attributes no longer apply.

This change removes the attributes from call sites, as well.

Failing to do this may cause DSE of paramTLS stores before calls to
readonly/readnone functions.

Differential Revision: https://reviews.llvm.org/D85259
The file was modifiedllvm/include/llvm/IR/InstrTypes.h (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp (diff)
The file was modifiedllvm/test/Instrumentation/MemorySanitizer/attributes.ll (diff)
Commit 6780d5675b7cd75279d8fc13ee1a1cc272087613 by a.bataev
[LIBOMPTARGET]Fix order of mapper data for targetDataEnd function.

targetDataMapper function fills arrays with the mapping data in the
direct order. When this function is called by targetDataBegin or
tgt_target_update functions, it works as expected. But targetDataEnd
function processes mapped data in reverse order. In this case, the base
pointer might be deleted before the associated data is deleted. Need to
reverse data, mapped by mapper, too, since it always adds data that must
be deleted at the end of the buffer.
Fixes the test declare_mapper_target_update.cpp.
Also, reduces the memry fragmentation by preallocation the memory
buffers.

Differential Revision: https://reviews.llvm.org/D85216
The file was modifiedopenmp/libomptarget/src/omptarget.cpp (diff)
Commit 2143a90b34a7846369127e762cec5917d5e1a5bd by erich.keane
Fix _ExtInt(1) to be a i1 in memory.

The _ExtInt(1) in getTypeForMem was hitting the bool logic for expanding
to an 8 bit value.  The result was an assert, or store i1 %0, i8* %2, align 1
since the parameter IS an i1.  This patch changes the 'forMem' test to
exclude ext-int from the bool test.
The file was modifiedclang/test/CodeGen/ext-int.c (diff)
The file was modifiedclang/lib/CodeGen/CodeGenTypes.cpp (diff)

Summary

  1. Use more efficient "e2" machine types (details)
  2. updated Windows container version (details)
  3. Added automatic cluster config and  deployment (details)
Commit fe0d2ecc195db768ccd9e2f3fab4b618d33097c7 by kuhnel
Use more efficient "e2" machine types

These are ~30% cheaper, but sadly don't support GPUs.

Differential Revision: https://reviews.llvm.org/D85211
The file was modifiedbuildbot/google/terraform/main.tf (diff)
Commit 9b433279a0b5802eaa12dd95150b9b06b718af83 by kuhnel
updated Windows container version
The file was modifiedbuildbot/google/terraform/main.tf (diff)
Commit 74e099cb9569f67ddb4341839eea408abc67e04e by kuhnel
Added automatic cluster config and  deployment

Based on ideas in https://reviews.llvm.org/D84258
The file was modifiedbuildbot/google/terraform/main.tf (diff)