Changes

Summary

  1. Update compiler on hexagon-build-0x machines (details)
  2. Add flang-x86_64-windows builder. (details)
Commit e7f9b7230c9a17d5ffb64ac3f7b46846ce334c4b by kparzysz
Update compiler on hexagon-build-0x machines
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)
Commit c406b636839cf07367241c224da3c0207c1396a3 by llvm-zorg
Add flang-x86_64-windows builder.

Add a buildbot to compile flang using msvc. Due to msvc doing some things differently than other compilers, the msvc flang build breaks regularly. This builder will notify committers if their change causes the build to break.

However, the tests never completed successfully on Windows, partially because many tests require a UNIX shell (see D89368). To not constantly fail, tests failures only trigger a warning, until all tests are fixed as well.

Currently running here: http://meinersbur.de:8011/#/builders/146

Reviewed By: gkistanova

Differential Revision: https://reviews.llvm.org/D103199
The file was modifiedbuildbot/osuosl/master/config/workers.py (diff)
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)

Summary

  1. Avoid unnecessary AArch64 DSB in __clear_cache in some situations. (details)
  2. [clangd] Use command line adjusters for inserting compile flags (details)
  3. [clangd] Fix feature modules to drop diagnostics (details)
  4. Update @llvm.powi to handle different int sizes for the exponent (details)
  5. [lldb] Skip variant/optional libc++ tests for Clang 5/6 (details)
  6. [mlir] ODS: emit interface traits outside of the interface class (details)
  7. [analyzer] Make checker silencing work for non-pathsensitive bug reports (details)
  8. [Format] Fix incorrect pointer/reference detection (details)
  9. [VPlan] Support PHIs as LastInst when inserting scalars in ::get(). (details)
  10. [Demangle] Support Rust v0 mangling scheme in llvm::demangle (details)
  11. [InterleaveAccess] Copy fast math flags when adjusting binary operators in interleave access pass (details)
  12. [clang][AST] Set correct DeclContext in ASTImporter lookup table for template params. (details)
  13. [RISCV][VP] Lower FP VP ISD nodes to RVV instructions (details)
  14. [FuncSpec] Don't specialise functions with attribute NoDuplicate. (details)
  15. [mlir] separable registration of operation interfaces (details)
  16. [libcxx] Fix a case of -Wundef warnings regarding _POSIX_TIMERS (details)
  17. [llvm-dlltool] [test] Test both short and long forms of options. NFC. (details)
  18. [llvm-dlltool] [test] Remove superfluous --coff-exports option to llvm-readobj. NFC. (details)
  19. [llvm-dlltool] [test] Add a testcase for all machine option types. NFC. (details)
  20. [llvm-dlltool] Imply the target arch from a tool triple prefix (details)
  21. [LLD] [COFF] Remove a stray duplicate comment. NFC. (details)
  22. [ELF] Restore arm-branch.s test (details)
  23. [NFC] test commit, fix namespace ending comment. (details)
  24. [flang] preserve symbol in DescriptorInquiry (details)
  25. [InstCombine] Fix miscompile on GEP+load to icmp fold (PR45210) (details)
  26. [hwasan] Do not use short granule tags as poison tags. (details)
  27. [hwasan] Improve report for addresses within regions. (details)
  28. [mlir] Enable delayed registration of attribute/operation/type interfaces (details)
  29. [lldb] Set return object failed status even if error string is empty (details)
  30. [lldb] Remove redundant calls to set eReturnStatusFailed (details)
  31. [mlir] define a customized DEBUG_TYPE in InterfaceSupport.h (details)
  32. [X86] Add test showing binary differences with -x86-pad-for-align. (details)
  33. [libc] Generate one benchmark per implementation (details)
  34. [X86] Check using default in test added in 0bd5bbb31e0345ae. (details)
  35. [mlir][linalg] Purge linalg.indexed_generic. (details)
  36. [X86] combineSelect - refactor MIN/MAX detection code to make it easier to add additional select(setcc,x,y) folds. NFCI. (details)
  37. [mlir] Split things dependent on LLVM_DEBUG into a .cpp file (details)
  38. [FuncSpec] Precommit test: don't specialise funcs with NoDuplicate instrs. NFC. (details)
  39. [lldb] Remove redundant calls to set eReturnStatusFailed (details)
  40. [mlir] Remove linalg.indexed_generic forward decl. (details)
  41. [DebugInfo] Prevent non-determinism when updating DIArgList users of a value (details)
  42. [Sema] Fix for PR50741 (details)
  43. Revert "[DebugInfo] Prevent non-determinism when updating DIArgList users of a value" (details)
  44. [llvm] fix typo in comment (details)
  45. [FPEnv][InstSimplify] Precommit tests for D103169. (details)
  46. [clangd] Explicitly fail if the file passed to --check is not valid. (details)
  47. [lld-macho] Avoid force-loading the same archive twice (details)
  48. Reapply "[DebugInfo] Prevent non-determinism when updating DIArgList users of a value" (details)
  49. RISCV: adjust handling of relocation emission for RISCV (details)
  50. Revert "Remove obsolete call to AsyncSignalSafeLazyInitiFakeStack." (details)
  51. [compiler-rt][hwasan]: undefine new/delete operators with alignment on Android. (details)
  52. [InstCombine][x86] add tests for complex vector shift value tracking; NFC (details)
  53. [InstSimplify] add tests for computeKnownBits of shift-with-bitcast op; NFC (details)
  54. fix an -Wunused-variable warning in release built, NFC (details)
  55. test: clean up some of the RISCV tests (NFC) (details)
  56. [libcxx][iwyu] 🎨 adds more headers to IWYU (details)
  57. [libcxx][module-map] 🎨 updates module map to account for ranges headers (details)
  58. [mlir][sparse] Add Matricized Tensor Times Khatri-Rao Product (MTTKRP) integration test (details)
  59. [clang] Fix a race condition in the build of clangInterpreter (details)
  60. [lld-macho] Implement ICF (details)
  61. [gn build] Port f27e4548fc42 (details)
  62. [AIX] Remove --as-needed passing into aix linker (details)
  63. [NFC] LoopVectorizationCostModel::getMaximizedVFForTarget(): clarify debug msg (details)
  64. [X86] AMD Zen 3: don't confuse shift and shuffle, NFC (details)
  65. [llvm-symbolizer][docs] Update example for --verbose in the guide (details)
  66. [lld-macho] Rework mergeFlag to behave closer to what ld64 does. (details)
  67. [lld][WebAssembly] Add new `--import-undefined` option (details)
  68. [MCA] [RegisterFile] Allow for skipping Defs with RegID of 0 (rather than assert(RegID) like we do before this patch). (details)
  69. [LoopUnroll] Fold all exits based on known trip count/multiple (details)
  70. [lldb-vscode] only report long running progress events (details)
  71. Revert "[NFC] Remove checking pointee type for byval/preallocated type" (details)
  72. [AArch64][GISel] and+or+shl => bfi (details)
  73. [GISel] Eliminate redundant bitmasking (details)
  74. [libc++] Make sure std::allocator<void> is always trivial (details)
  75. RISCV: clean up target expression handling (details)
  76. [ScalarEvolution] Fix pointer/int type handling converting select/phi to min/max. (details)
  77. [DFSan] Cleanup code for platforms other than Linux x86_64. (details)
  78. [PartiallyInlineLibCalls] Disable sqrt expansion for strictfp. (details)
  79. [InstrProfiling] Make __profd_ unconditionally private for ELF (details)
  80. Revert "[DFSan] Cleanup code for platforms other than Linux x86_64." (details)
  81. [Attributor] Derive AACallEdges attribute (details)
  82. [NFC][SimpleLoopUnswitch] unswitchTrivialBranch(): add debug output explaining unswitching failure (details)
  83. [lldb-vscode] remove failed test (details)
  84. [trace][intel-pt] Create basic SB API (details)
  85. [lld][WebAssembly] Fix crash calling weakly undefined function in PIC code (details)
  86. [clang][AST] Make `getLocalOrImportedSubmoduleID` work with const `Module*`. NFC. (details)
  87. [FIX][Attributor] Fix broken build due to missing virtual deconstructors. (details)
  88. Frontend: Respect -fno-temp-file when creating a PCH (details)
  89. [M68k][NFC] Fix indentation in M68kInstrArithmetic.td (details)
  90. [Coroutine] Properly deal with byval and noalias parameters (details)
  91. Bring our handling of -Wframe-larger-than more in line with GCC. (details)
  92. [WebAssembly] Rename event to tag (details)
  93. [AMDGPU] Remove duplicate setOperationAction for v4i16/v4f16 (NFC) (details)
  94. [objdump][ARM] Fix evaluating the target address of a Thumb BLX(i) (details)
  95. [InstCombine][NFC] Added tests for mul with zext/sext operands (details)
  96. [RISCV] Don't enable Interleaved Access Vectorization (details)
  97. [dfsan] Replace dfs$ prefix with .dfsan suffix (details)
  98. [Attributor][NFC] AAReachability is currently stateless, don't invalidate it (details)
  99. [Attributor][NFC] Precommit a set of test cases for load simplification (details)
  100. [Attributor][NFC] Add test from PR49606 (details)
  101. [OpenMP][NFC] Expose AAExecutionDomain and rename its getter (details)
  102. [Attributor] Make sure Heap2Stack works properly on a GPU target (details)
  103. [Attributor] Introduce a helper do deal with constant type mismatches (details)
  104. [Attributor] Use a centralized value simplification interface (details)
  105. [Attributor] Allow to skip the initial update for a new AA (details)
  106. [Attributor][FIX] Arguments of unknown functions can be undef (details)
Commit 6f0e74cd583ba6fbb897d3ab16a9b75e91484275 by kristof.beyls
Avoid unnecessary AArch64 DSB in __clear_cache in some situations.

The dsb after instruction cache invalidation only needs to be executed
if any instruction cache invalidation did happen.
Without this change, if the CTR_EL0.DIC bit indicates that instruction
cache invalidation is not needed, __clear_cache would execute two dsb
instructions in a row; with the second one being unnecessary.

Differential Revision: https://reviews.llvm.org/D104371
The file was modifiedcompiler-rt/lib/builtins/clear_cache.c
Commit b662651586bedd5350914f64463fe415105785c8 by kadircet
[clangd] Use command line adjusters for inserting compile flags

This fixes issues with `--` in the compile flags.

Fixes https://github.com/clangd/clangd/issues/632.

Differential Revision: https://reviews.llvm.org/D99523
The file was modifiedclang-tools-extra/clangd/unittests/ConfigCompileTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/CompileCommandsTests.cpp
The file was modifiedclang-tools-extra/clangd/CompileCommands.cpp
The file was modifiedclang-tools-extra/clangd/ConfigCompile.cpp
Commit 204014ec7557cde214ee8aae66661927bf9976f2 by kadircet
[clangd] Fix feature modules to drop diagnostics

Ignored diagnostics were only checked after level adjusters and assumed
it would stay the same for the rest. But it can also be modified by
FeatureModules.

Differential Revision: https://reviews.llvm.org/D103387
The file was modifiedclang-tools-extra/clangd/unittests/FeatureModulesTests.cpp
The file was modifiedclang-tools-extra/clangd/Diagnostics.h
The file was modifiedclang-tools-extra/clangd/Diagnostics.cpp
Commit 4c7f820b2b206bb7b4e32e575a78316701471203 by bjorn.a.pettersson
Update @llvm.powi to handle different int sizes for the exponent

This can be seen as a follow up to commit 0ee439b705e82a4fe20e2,
that changed the second argument of __powidf2, __powisf2 and
__powitf2 in compiler-rt from si_int to int. That was to align with
how those runtimes are defined in libgcc.
One thing that seem to have been missing in that patch was to make
sure that the rest of LLVM also handle that the argument now depends
on the size of int (not using the si_int machine mode for 32-bit).
When using __builtin_powi for a target with 16-bit int clang crashed.
And when emitting libcalls to those rtlib functions, typically when
lowering @llvm.powi), the backend would always prepare the exponent
argument as an i32 which caused miscompiles when the rtlib was
compiled with 16-bit int.

The solution used here is to use an overloaded type for the second
argument in @llvm.powi. This way clang can use the "correct" type
when lowering __builtin_powi, and then later when emitting the libcall
it is assumed that the type used in @llvm.powi matches the rtlib
function.

One thing that needed some extra attention was that when vectorizing
calls several passes did not support that several arguments could
be overloaded in the intrinsics. This patch allows overload of a
scalar operand by adding hasVectorInstrinsicOverloadedScalarOpd, with
an entry for powi.

Differential Revision: https://reviews.llvm.org/D99439
The file was modifiedllvm/test/CodeGen/Thumb2/float-intrinsics-float.ll
The file was modifiedllvm/lib/Analysis/VectorUtils.cpp
The file was modifiedllvm/test/CodeGen/AArch64/arm64-vfloatintrinsics.ll
The file was modifiedllvm/lib/Transforms/Scalar/Scalarizer.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/intrinsics-cc.ll
The file was modifiedllvm/test/CodeGen/Mips/msa/f16-llvm-ir.ll
The file was modifiedllvm/test/CodeGen/X86/2007-09-27-LDIntrinsics.ll
The file was modifiedllvm/test/CodeGen/Mips/pr36061.ll
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
The file was modifiedllvm/test/CodeGen/X86/tailcall-multiret.ll
The file was modifiedllvm/test/Transforms/Scalarizer/intrinsics.ll
The file was modifiedllvm/test/CodeGen/Mips/powif64_16.ll
The file was modifiedllvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/intrinsic.ll
The file was modifiedllvm/test/CodeGen/AArch64/illegal-float-ops.ll
The file was modifiedllvm/test/CodeGen/XCore/float-intrinsics.ll
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
The file was modifiedllvm/test/CodeGen/ARM/fpowi.ll
The file was modifiedllvm/test/Transforms/LICM/hoist-round.ll
The file was modifiedllvm/test/CodeGen/AArch64/powi-windows.ll
The file was modifiedllvm/test/Transforms/InstSimplify/fold-intrinsics.ll
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h
The file was addedllvm/test/Bitcode/upgrade-powi-intrinsics.ll
The file was modifiedllvm/test/CodeGen/ARM/vfloatintrinsics.ll
The file was modifiedllvm/test/CodeGen/X86/2010-05-07-ldconvert.ll
The file was modifiedllvm/test/CodeGen/ARM/fp16-fullfp16.ll
The file was modifiedllvm/test/Transforms/InstCombine/intrinsics.ll
The file was modifiedllvm/test/Transforms/InstSimplify/call.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.powi.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.powi.ll
The file was modifiedclang/test/CodeGen/avr-builtins.c
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rv64i-single-softfloat.ll
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
The file was modifiedllvm/test/CodeGen/RISCV/double-intrinsics.ll
The file was modifiedclang/test/CodeGen/math-builtins.c
The file was modifiedllvm/test/Transforms/InstCombine/pow-4.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/CodeGen/RISCV/float-intrinsics.ll
The file was modifiedllvm/test/Transforms/InstCombine/pow_fp_int.ll
The file was modifiedllvm/test/CodeGen/SystemZ/fp-libcall.ll
The file was modifiedllvm/test/CodeGen/WebAssembly/libcalls.ll
The file was modifiedllvm/test/CodeGen/Mips/mips64-f128.ll
The file was modifiedllvm/test/CodeGen/PowerPC/f128-arith.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/CodeGen/X86/powi.ll
The file was modifiedllvm/test/CodeGen/Thumb2/float-intrinsics-double.ll
The file was modifiedllvm/include/llvm/Analysis/VectorUtils.h
The file was modifiedllvm/test/CodeGen/NVPTX/libcall-intrinsic.ll
The file was modifiedllvm/test/CodeGen/WebAssembly/simd-unsupported.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/extract_in_tree_user.ll
The file was modifiedllvm/test/Transforms/InstSimplify/floating-point-compare.ll
The file was modifiedllvm/test/CodeGen/NVPTX/f16-instructions.ll
The file was modifiedllvm/test/CodeGen/ARM/fp16-promote.ll
The file was modifiedllvm/test/Transforms/InstCombine/fdiv.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
The file was modifiedllvm/lib/Target/Mips/Mips16HardFloat.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
The file was modifiedllvm/test/CodeGen/Generic/fpowi-promote.ll
The file was modifiedllvm/test/CodeGen/Generic/replace-intrinsics-with-veclib.ll
The file was modifiedllvm/test/CodeGen/ARM/2011-11-29-128bitArithmetics.ll
The file was modifiedllvm/test/CodeGen/X86/vector-intrinsics.ll
The file was modifiedllvm/test/CodeGen/AArch64/f16-instructions.ll
The file was modifiedllvm/test/CodeGen/ARM/Windows/powi.ll
The file was modifiedllvm/test/CodeGen/NVPTX/f16x2-instructions.ll
The file was modifiedllvm/test/CodeGen/X86/powi-windows.ll
The file was modifiedllvm/unittests/Analysis/ValueTrackingTest.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/math-2.ll
The file was addedclang/test/CodeGen/msp430-builtins.c
The file was modifiedllvm/test/Transforms/InstCombine/pow_fp_int16.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/intrinsic.ll
The file was addedllvm/test/Bitcode/upgrade-powi-intrinsics.ll.bc
Commit 25fa67868b36c99d2704bd291b3b495737f16f0e by Raphael Isemann
[lldb] Skip variant/optional libc++ tests for Clang 5/6

Clang 5 and Clang 6 can no longer parse newer versions of libc++. As we can't
specify the specific libc++ version in the decorator, let's only allow Clang
versions that can parse all currently available libc++ versions.
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/optional/TestDataFormatterLibcxxOptional.py
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/TestDataFormatterLibcxxVariant.py
Commit a4f81b2054c30954c6739532b923f2b223bc7d77 by zinenko
[mlir] ODS: emit interface traits outside of the interface class

ODS currently emits the interface trait class as a nested class inside the
interface class. As an unintended consequence, the default implementations of
interface methods have implicit access to static fields of the interface class,
e.g. those declared in `extraClassDeclaration`, including private methods (!),
or in the parent class. This may break the use of default implementations for
external models, which are not defined in the interface class, and generally
complexifies the abstraction.

Emit intraface traits outside of the interface class itself to avoid accidental
implicit visibility. Public static fields can still be accessed via explicit
qualification with a class name, e.g., `MyOpInterface::staticMethod()` instead
of `staticMethod`.

Update the documentation to clarify the role of `extraClassDeclaration` in
interfaces.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D104384
The file was modifiedmlir/docs/Interfaces.md
The file was modifiedmlir/include/mlir/Interfaces/ControlFlowInterfaces.td
The file was modifiedmlir/tools/mlir-tblgen/OpInterfacesGen.cpp
Commit 9cca5c1391d637b5500ada646cf136ddb38254a3 by dkszelethus
[analyzer] Make checker silencing work for non-pathsensitive bug reports

D66572 separated BugReport and BugReporter into basic and path sensitive
versions. As a result, checker silencing, which worked deep in the path
sensitive report generation facilities became specific to it. DeadStoresChecker,
for instance, despite being in the static analyzer, emits non-pathsensitive
reports, and was impossible to silence.

This patch moves the corresponding code before the call to the virtual function
generateDiagnosticForConsumerMap (which is overriden by the specific kinds of
bug reporters). Although we see bug reporting as relatively lightweight compared
to the analysis, this will get rid of several steps we used to throw away.

Quoting from D65379:

At a very high level, this consists of 3 steps:

For all BugReports in the same BugReportEquivClass, collect all their error
nodes in a set. With that set, create a new, trimmed ExplodedGraph whose leafs
are all error nodes.
Until a valid report is found, construct a bug path, which is yet another
ExplodedGraph, that is linear from a given error node to the root of the graph.
Run all visitors on the constructed bug path. If in this process the report got
invalidated, start over from step 2.
Checker silencing used to kick in after all of these. Now it does before any of
them :^)

Differential Revision: https://reviews.llvm.org/D102914

Change-Id: Ice42939304516f2bebd05a1ea19878b89c96a25d
The file was modifiedclang/lib/StaticAnalyzer/Core/BugReporter.cpp
The file was addedclang/test/Analysis/silence-checkers.cpp
The file was removedclang/test/Analysis/silence-checkers-malloc.cpp
Commit 873308fd8c96a54f0024251425daac1b78f70119 by mydeveloperday
[Format] Fix incorrect pointer/reference detection

https://llvm.org/PR50568

When an overloaded operator is called, its argument must be an
expression.

Before:
    void f() { a.operator()(a *a); }

After:
    void f() { a.operator()(a * a); }

Reviewed By: HazardyKnusperkeks, curdeius, MyDeveloperDay

Differential Revision: https://reviews.llvm.org/D103678
The file was modifiedclang/lib/Format/TokenAnnotator.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit 80a403348b0f4f5429c40816bf02ae37bd2e85a1 by flo
[VPlan] Support PHIs as LastInst when inserting scalars in ::get().

At the moment, we create insertelement instructions directly after
LastInst when inserting scalar values in a vector in
VPTransformState::get.

This results in invalid IR when LastInst is a phi, followed by another
phi. In that case, the new instructions should be inserted just after
the last PHI node in the block.

At the moment, I don't think the problematic case can be triggered, but
it can happen once predicate regions are merged and multiple
VPredInstPHI recipes are in the same block (D100260).

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D104188
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit 9b1085604ecf3d2d1a416ee658bca981af133128 by tomasz.miasko
[Demangle] Support Rust v0 mangling scheme in llvm::demangle

The llvm::demangle is currently used by llvm-objdump and llvm-readobj,
so this effectively adds support for Rust v0 mangling to those
applications.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D104340
The file was modifiedllvm/lib/Demangle/Demangle.cpp
The file was modifiedllvm/unittests/Demangle/DemangleTest.cpp
Commit fda8b4714e05c68deee469970cb6f7f7ea8b32b7 by david.green
[InterleaveAccess] Copy fast math flags when adjusting binary operators in interleave access pass

The Interleave Access pass will convert shuffle(binop(load, load)) to
binop(shuffle(load), shuffle(load)), in order to create more
interleaving load patterns (VLD2/3/4) that might have been messed up by
instcombine. As shown in D104247 we were missing copying IR flags to the
new instruction though, which should just be kept the same as the
original instruction.

Differential Revision: https://reviews.llvm.org/D104255
The file was modifiedllvm/test/Transforms/InterleavedAccess/AArch64/binopshuffles.ll
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was modifiedllvm/lib/CodeGen/InterleavedAccessPass.cpp
The file was modifiedllvm/test/Transforms/InterleavedAccess/AArch64/binopshuffles-inseltpoison.ll
Commit 05e95d2dd74973dd5163b7d44828fac61e416452 by 1.int32
[clang][AST] Set correct DeclContext in ASTImporter lookup table for template params.

Template parameters are created in ASTImporter with the translation unit as DeclContext.
The DeclContext is later updated (by the create function of template classes).
ASTImporterLookupTable was not updated after these changes of the DC. The patch
adds update of the DeclContext in ASTImporterLookupTable.

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D103792
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp
The file was modifiedclang/lib/AST/ASTImporter.cpp
Commit fed1503e855a1e3cf936fa0866f099bf1c8c9416 by fraser
[RISCV][VP] Lower FP VP ISD nodes to RVV instructions

With the exception of `frem`, this patch supports the current set of VP
floating-point binary intrinsics by lowering them to to RVV instructions. It
does so by using the existing `RISCVISD *_VL` custom nodes as an intermediate
layer. Both scalable and fixed-length vectors are supported by using this
method.

The `frem` node is unsupported due to a lack of available instructions. For
fixed-length vectors we could scalarize but that option is not (currently)
available for scalable-vector types. The support is intentionally left out so
it equivalent for both vector types.

The matching of vector/scalar forms is currently lacking, as scalable vector
types do not lower to the custom `VFMV_V_F_VL` node. We could either make
floating-point scalable vector splats lower to this node, or support the
matching of multiple kinds of splat via a `ComplexPattern`, much like we do for
integer types.

Reviewed By: rogfer01

Differential Revision: https://reviews.llvm.org/D104237
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfrdiv-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfadd-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vfadd-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfrsub-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vfrsub-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vfsub-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfmul-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vfrdiv-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfdiv-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vfdiv-vp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was addedllvm/test/CodeGen/RISCV/rvv/vfmul-vp.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vfsub-vp.ll
Commit dcd23d875a7e3750903ca4ec865508544757dd99 by sjoerd.meijer
[FuncSpec] Don't specialise functions with attribute NoDuplicate.

Differential Revision: https://reviews.llvm.org/D104378
The file was addedllvm/test/Transforms/FunctionSpecialization/function-specialization-nodup.ll
The file was modifiedllvm/lib/Transforms/IPO/FunctionSpecialization.cpp
Commit 23cdf7b6ed9781040ef7923372247ce30b250f29 by zinenko
[mlir] separable registration of operation interfaces

This is similar to attribute and type interfaces and mostly the same mechanism
(FallbackModel / ExternalModel, ODS generation). There are minor differences in
how the concept-based polymorphism is implemented for operations that are
accounted for by ODS backends, and this essentially adds a test and exposes the
API.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D104294
The file was modifiedmlir/docs/Interfaces.md
The file was modifiedmlir/include/mlir/IR/OpDefinition.h
The file was modifiedmlir/test/lib/Dialect/Test/TestInterfaces.td
The file was modifiedmlir/include/mlir/IR/OperationSupport.h
The file was modifiedmlir/unittests/IR/InterfaceAttachmentTest.cpp
The file was modifiedmlir/lib/IR/MLIRContext.cpp
Commit d7550e5d105f998ea34bd6c51c03d37a8c546025 by martin
[libcxx] Fix a case of -Wundef warnings regarding _POSIX_TIMERS

Differential Revision: https://reviews.llvm.org/D104372
The file was modifiedlibcxx/src/chrono.cpp
Commit 4fe3d5248dfae0a864f0cf0c77d10c4a966f05a9 by martin
[llvm-dlltool] [test] Test both short and long forms of options. NFC.

Differential Revision: https://reviews.llvm.org/D104213
The file was modifiedllvm/test/tools/llvm-dlltool/coff-noname.def
Commit 08be746728d7de59b045681a4a0f6567f14adea3 by martin
[llvm-dlltool] [test] Remove superfluous --coff-exports option to llvm-readobj. NFC.

The --coff-exports option to llvm-readobj prints the exported symbols
from a DLL/EXE, it doesn't do anything with regards to an import
library.

Differential Revision: https://reviews.llvm.org/D104214
The file was modifiedllvm/test/tools/llvm-dlltool/coff-exports.def
Commit 675d52bc46ff7e618ffa2fb282d031e387e3a114 by martin
[llvm-dlltool] [test] Add a testcase for all machine option types. NFC.

The existing tests only test that some options (but not e.g. arm)
are accepted, but it doesn't test their functional effect of
affecting the generated object files.

Differential Revision: https://reviews.llvm.org/D104215
The file was addedllvm/test/tools/llvm-dlltool/machine-opt.def
Commit ca56b33daf6781a248750b6d538cef84fdae0d1b by martin
[llvm-dlltool] Imply the target arch from a tool triple prefix

Also use the default LLVM target as default for dlltool. This
matches how GNU dlltool behaves; it is compiled with one default
target, which is used if no option is provided.

Extend the anonymous namespace in the implementation file instead
of using static functions.

Based on a patch by Mateusz Mikuła.

The effect of the default LLVM target, if neither the -m option
nor a tool triple prefix is provided, isn't tested, as we can't
make assumptions about what it is set to.

(We could make the default be forced to one of the four supported
architectures if the default triple is another arch, and then just
test that llvm-dlltool without an -m option is able to produce an
import library, without checking the actual architecture though.)

Differential Revision: https://reviews.llvm.org/D104212
The file was addedllvm/test/tools/llvm-dlltool/triple-prefix.def
The file was modifiedllvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp
Commit ceee35e3e4bf9729e1aae9bfadd6d25bfe3769ee by martin
[LLD] [COFF] Remove a stray duplicate comment. NFC.

The following class isn't part of the export table; there's a
second correctly placed comment about the things that actually
belong to the export table.
The file was modifiedlld/COFF/DLL.cpp
Commit 5355b8c6318c194ff15241b7a3217a51fc1a644b by ikudrin
[ELF] Restore arm-branch.s test

After D77330, the comments are inconsistent with the disassembled code.
As the value of `far` has been changed, a thunk to reach it is now
generated, and target addresses of branch instructions are different
from what was initially expected.

The patch fixes that and makes the test closer to what it was originally.

Differential Revision: https://reviews.llvm.org/D104286
The file was modifiedlld/test/ELF/arm-branch.s
The file was modifiedlld/test/ELF/Inputs/far-long-arm-abs.s
The file was modifiedlld/test/ELF/Inputs/far-arm-abs.s
Commit b18f30fb2dd157e5fef91d9327fd12b8965e7e0c by fmayer
[NFC] test commit, fix namespace ending comment.
The file was modifiedcompiler-rt/lib/hwasan/hwasan_thread_list.h
The file was modifiedcompiler-rt/lib/hwasan/hwasan_thread_list.cpp
Commit 1a4af2e45ee59cff3d577986b9b7f3f5bd5ab01f by jperier
[flang] preserve symbol in DescriptorInquiry

Do not use ultimate symbols in DescriptorInquiry. Using the ultimate
symbol may lead to issues later for at least two reasons:

- The original symbols may have volatile/asynchronous attributes that
  the ultimate may not have. Later phases working on the DescriptorInquiry
  would then not apply potential care required by these attributes.
- HostAssociatedDetails symbols are used by OpenMP for symbols with
  special OpenMP attributes inside OpenMP region (e.g variables with
  private attribute), so it is very important to preserve this
  aspect in the DescriptorInquiry, that would otherwise apply on the
  symbol outside of the region.

Differential Revision: https://reviews.llvm.org/D104385
The file was modifiedflang/lib/Evaluate/shape.cpp
The file was modifiedflang/lib/Evaluate/variable.cpp
Commit 69b0ed9a0a6aeab0b1c93d0a76c66a63c1d6f410 by aqjune
[InstCombine] Fix miscompile on GEP+load to icmp fold (PR45210)

As noted in PR45210: https://bugs.llvm.org/show_bug.cgi?id=45210
...the bug is triggered as Eli say when sext(idx) * ElementSize overflows.

```
   // assume that GV is an array of 4-byte elements
   GEP = gep GV, 0, Idx // this is accessing Idx * 4
   L = load GEP
   ICI = icmp eq L, value
 =>
   ICI = icmp eq Idx, NewIdx
```

The foldCmpLoadFromIndexedGlobal function simplifies GEP+load operation to icmp.
And there is a problem because Idx * ElementSize can overflow.

Let's assume that the wanted value is at offset 0.
Then, there are actually four possible values for Idx to match offset 0: 0x00..00, 0x40..00, 0x80..00, 0xC0..00.
We should return true for all these values, but currently, the new icmp only returns true for 0x00..00.

This problem can be solved by masking off (trailing zeros of ElementSize) bits from Idx.

```
   ...
 =>
   Idx' = and Idx, 0x3F..FF
   ICI = icmp eq Idx', NewIdx
```

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D99481
The file was modifiedllvm/test/Transforms/InstCombine/load-cmp.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
Commit 18070723ef5cfd7d58bc296fedb67b5e3a88908f by fmayer
[hwasan] Do not use short granule tags as poison tags.

Short granule tags as poison cause a UaF to read the referenced
memory to retrieve the tag, and means we do not detect the UaF
if the last granule's tag is still around.

This only increases the change of not catching a UaF from
0.39 % (1 / 256) to 0.42 % (1 / (256 - 17)).

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D104304
The file was modifiedcompiler-rt/lib/hwasan/hwasan_allocator.cpp
Commit ccc0f777f6967c557ba066070f40e5fac9e0127d by fmayer
[hwasan] Improve report for addresses within regions.

Before: ADDR is located -320 bytes to the right of 1072-byte region
After: ADDR is located 752 bytes inside 1072-byte region

Reviewed By: eugenis, walli99

Differential Revision: https://reviews.llvm.org/D104412
The file was modifiedcompiler-rt/lib/hwasan/hwasan_report.cpp
The file was addedcompiler-rt/test/hwasan/TestCases/heap-buffer-overflow-into.c
Commit d7e891213444e2990397c623fb0250a470421fce by zinenko
[mlir] Enable delayed registration of attribute/operation/type interfaces

This functionality is similar to delayed registration of dialect interfaces. It
allows external interface models to be registered before the dialect containing
the attribute/operation/type interface is loaded, or even before the context is
created.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D104397
The file was modifiedmlir/lib/IR/Dialect.cpp
The file was modifiedmlir/lib/IR/MLIRContext.cpp
The file was modifiedmlir/include/mlir/Support/InterfaceSupport.h
The file was modifiedmlir/unittests/IR/InterfaceAttachmentTest.cpp
The file was modifiedmlir/include/mlir/IR/TypeSupport.h
The file was modifiedmlir/include/mlir/IR/AttributeSupport.h
The file was modifiedmlir/include/mlir/IR/Dialect.h
Commit 983ed1b58ef9d0f97c9cec2876f631e47609d437 by david.spickett
[lldb] Set return object failed status even if error string is empty

The idea is now that AppendError<...> will set eReturnStatusFailed
for you so you don't have to call SetStatus again.

Previously if the error message was empty, the status wouldn't
be set.

I don't think there are any sitautions where the message is in
fact empty but it potentially could be depending on where
we get the string from.

So let's set the status up front then return early if the message is empty.

Reviewed By: teemperor

Differential Revision: https://reviews.llvm.org/D104380
The file was modifiedlldb/source/Interpreter/CommandReturnObject.cpp
Commit 7a580f3c28cf47a7e489faa1fc1ab7b88d9a5dbd by david.spickett
[lldb] Remove redundant calls to set eReturnStatusFailed

Since https://reviews.llvm.org/D103701 AppendError<...>
sets this for you.

This change includes all of the non-command uses.

Some uses remain where it's either tricky to reason about
the logic, or they aren't paired with AppendError calls.

Reviewed By: teemperor

Differential Revision: https://reviews.llvm.org/D104379
The file was modifiedlldb/source/Interpreter/CommandInterpreter.cpp
The file was modifiedlldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
The file was modifiedlldb/source/Breakpoint/BreakpointIDList.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
The file was modifiedlldb/source/API/SBCommandInterpreter.cpp
The file was modifiedlldb/source/Interpreter/CommandAlias.cpp
The file was modifiedlldb/source/Plugins/Process/minidump/ProcessMinidump.cpp
The file was modifiedlldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp
The file was modifiedlldb/source/Interpreter/Options.cpp
The file was modifiedlldb/source/Interpreter/ScriptInterpreter.cpp
The file was modifiedlldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
Commit 6b6338195c1b1a32a62adb37204022c1760eb899 by zinenko
[mlir] define a customized DEBUG_TYPE in InterfaceSupport.h
The file was modifiedmlir/include/mlir/Support/InterfaceSupport.h
Commit 0bd5bbb31e0345aed8d029d70a4197aed53a3cd5 by flo
[X86] Add test showing binary differences with -x86-pad-for-align.

This patch adds a test case showing how a single extra .loc can cause
binary differences when using -x86-pad-for-align=true.

The issue has been discussed in D94542, PR42138, PR48742.
The file was addedllvm/test/MC/X86/Inputs/pad-align-with-debug.s
The file was addedllvm/test/MC/X86/pad-for-align-debug.s
The file was addedllvm/test/MC/X86/Inputs/pad-align-without-debug.s
Commit 8d64ed854449467a3a5fc4450c71a4525a24c4be by gchatelet
[libc] Generate one benchmark per implementation

We now generate as many benchmarks as there are implementations.

Differential Revision: https://reviews.llvm.org/D102156
The file was modifiedlibc/benchmarks/CMakeLists.txt
The file was modifiedlibc/benchmarks/LibcMemoryBenchmarkMain.cpp
Commit aa6e8e9572d54d8fdcd6e8789ea7076640011066 by flo
[X86] Check using default in test added in 0bd5bbb31e0345ae.

Make sure llvm-mc is invariant with respect to debug locations in the
test (checks update to use the -x86-pad-for-align default value)
The file was modifiedllvm/test/MC/X86/pad-for-align-debug.s
Commit 5b3cb31edbcf99ef15c2de2d29ad0ff9927ba136 by pifon
[mlir][linalg] Purge linalg.indexed_generic.

Differential Revision: https://reviews.llvm.org/D104449
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Generalization.cpp
The file was modifiedmlir/test/Dialect/Linalg/roundtrip.mlir
The file was modifiedmlir/test/Dialect/Linalg/canonicalize-duplicate-inputs.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
The file was modifiedmlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp
The file was modifiedmlir/test/Dialect/Linalg/invalid.mlir
The file was modifiedmlir/test/Dialect/Linalg/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
Commit cdb4fcf9a19ca35b50754791f3986337046d9406 by llvm-dev
[X86] combineSelect - refactor MIN/MAX detection code to make it easier to add additional select(setcc,x,y) folds. NFCI.

I need to add some additional handling to address some of the regressions from D101074
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit c878d03d60fc91ecad661f4435ce70bf276f3bdb by benny.kra
[mlir] Split things dependent on LLVM_DEBUG into a .cpp file

LLVM_DEBUG in headers is awkward, better avoid it. DEBUG_TYPE in a
header results in a lot of macro redefinition warnings.
The file was modifiedmlir/include/mlir/Support/InterfaceSupport.h
The file was modifiedmlir/lib/Support/CMakeLists.txt
The file was addedmlir/lib/Support/InterfaceSupport.cpp
Commit 3f596842e3d25009c4d62c75e5b24b515bde8e93 by sjoerd.meijer
[FuncSpec] Precommit test: don't specialise funcs with NoDuplicate instrs. NFC.
The file was addedllvm/test/Transforms/FunctionSpecialization/function-specialization-nodup2.ll
Commit eaf60a4411f79a1addfa6c5d8ddf4b47e082881e by david.spickett
[lldb] Remove redundant calls to set eReturnStatusFailed

This is part 2, covering the commands source.

Some uses remain where it's tricky to see what the
logic is or they are not used with AppendError.

Reviewed By: teemperor

Differential Revision: https://reviews.llvm.org/D104448
The file was modifiedlldb/source/Commands/CommandObjectApropos.cpp
The file was modifiedlldb/source/Commands/CommandObjectReproducer.cpp
The file was modifiedlldb/source/Commands/CommandObjectPlatform.cpp
The file was modifiedlldb/source/Commands/CommandObjectExpression.cpp
The file was modifiedlldb/source/Commands/CommandObjectSettings.cpp
The file was modifiedlldb/source/Commands/CommandObjectType.cpp
The file was modifiedlldb/source/Commands/CommandObjectWatchpointCommand.cpp
The file was modifiedlldb/source/Commands/CommandObjectFrame.cpp
The file was modifiedlldb/source/Commands/CommandObjectThread.cpp
The file was modifiedlldb/source/Commands/CommandObjectMemory.cpp
The file was modifiedlldb/source/Commands/CommandObjectThreadUtil.cpp
The file was modifiedlldb/source/Commands/CommandObjectRegister.cpp
The file was modifiedlldb/source/Commands/CommandObjectWatchpoint.cpp
The file was modifiedlldb/source/Commands/CommandObjectMultiword.cpp
The file was modifiedlldb/source/Commands/CommandObjectHelp.cpp
The file was modifiedlldb/source/Commands/CommandObjectPlugin.cpp
The file was modifiedlldb/source/Commands/CommandObjectCommands.cpp
The file was modifiedlldb/source/Commands/CommandObjectDisassemble.cpp
The file was modifiedlldb/source/Commands/CommandObjectQuit.cpp
The file was modifiedlldb/source/Commands/CommandObjectBreakpointCommand.cpp
The file was modifiedlldb/source/Commands/CommandObjectBreakpoint.cpp
The file was modifiedlldb/source/Commands/CommandObjectTrace.cpp
The file was modifiedlldb/source/Commands/CommandObjectScript.cpp
The file was modifiedlldb/source/Commands/CommandObjectStats.cpp
The file was modifiedlldb/source/Commands/CommandObjectSource.cpp
The file was modifiedlldb/source/Commands/CommandObjectGUI.cpp
The file was modifiedlldb/source/Commands/CommandObjectLog.cpp
The file was modifiedlldb/source/Commands/CommandObjectTarget.cpp
The file was modifiedlldb/source/Commands/CommandObjectProcess.cpp
Commit 7cddf56d608f07b8e49f7e2eeb4a20082611adb6 by pifon
[mlir] Remove linalg.indexed_generic forward decl.
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h
Commit fa1de88f81e9c6db5255ca7c4d0fd25606c5a054 by stephen.tozer
[DebugInfo] Prevent non-determinism when updating DIArgList users of a value

This patch fixes an issue where builds of programs with multiple dbg.values
with DIArgList locations could have non-deterministic output. This issue
was caused by ReplaceableMetadataImpl::getAllArgListUsers, which
returned DIArgList pointers in a random order; the output of this
function would later be used to insert dbg.values, causing the order of
insertion to be non-deterministic. This patch changes getAllArgListUsers
to return pointers in a fixed order.

Differential Revision: https://reviews.llvm.org/D104105
The file was modifiedllvm/lib/IR/Metadata.cpp
Commit fc6ec9b98cf96bca8f68cc65395f861919c06c2f by Chris.Hamilton
[Sema] Fix for PR50741

Fixed crash when doing pointer math on a void pointer.

Also, reworked test to use -verify rather than FileCheck.

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D104424
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedclang/test/Sema/unbounded-array-bounds.c
Commit e8991caea8690ec2d17b0b7e1c29bf0da6609076 by stephen.tozer
Revert "[DebugInfo] Prevent non-determinism when updating DIArgList users of a value"

Commit caused build errors on buildbots with [-Werror,-Wreturn-std-move]
enabled.

This reverts commit fa1de88f81e9c6db5255ca7c4d0fd25606c5a054.
The file was modifiedllvm/lib/IR/Metadata.cpp
Commit 26f1f6d0deaff4d718e32b8e97ea21968c506b60 by gchatelet
[llvm] fix typo in comment
The file was modifiedllvm/include/llvm/CodeGen/MachineFrameInfo.h
Commit 60a8edf30d297c8c56988c083801ce1cfc41bb6b by kevin.neal
[FPEnv][InstSimplify] Precommit tests for D103169.

In D103169 I'm adding to InstSimplify support for NaN to constrained
intrinsics that have a regular FP IR instruction counterpart. Precommit
the tests for clarity when that ticket lands.
The file was addedllvm/test/Transforms/InstSimplify/fp-undef-poison-strictfp.ll
The file was addedllvm/test/Transforms/InstSimplify/X86/fp-nan-strictfp.ll
Commit 6765b9c3f1192bd63bdcafc92ee8ff5d7b97d90b by hokein.wu
[clangd] Explicitly fail if the file passed to --check is not valid.

Differential Revision: https://reviews.llvm.org/D104455
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp
Commit 24706cd73cd150543753a2e169c68a2c68da46a1 by jezng
[lld-macho] Avoid force-loading the same archive twice

We need to dedup archive loads (similar to what we do for dylib
loads).

I noticed this issue after building some Swift stuff that used
`-force_load_swift_libs`, as it caused some Swift archives to be loaded
many times.

Reviewed By: #lld-macho, thakis, MaskRay

Differential Revision: https://reviews.llvm.org/D104353
The file was modifiedlld/test/MachO/archive.s
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/test/MachO/force-load.s
Commit dee2c76b4c46e71903e3d86ab7555a80d51d1288 by stephen.tozer
Reapply "[DebugInfo] Prevent non-determinism when updating DIArgList users of a value"

Reapply the commit which previously caused build failures due to the
mismatched template arguments between the return type and the returned
SmallVector.

This reverts commit e8991caea8690ec2d17b0b7e1c29bf0da6609076.
The file was modifiedllvm/include/llvm/IR/Metadata.h
The file was modifiedllvm/lib/IR/Metadata.cpp
Commit bbea64250f65480d787e1c5ff45c4de3ec2dcda8 by Saleem Abdulrasool
RISCV: adjust handling of relocation emission for RISCV

This re-architects the RISCV relocation handling to bring the
implementation closer in line with the implementation in binutils.  We
would previously aggressively resolve the relocation.  With this
restructuring, we always will emit a paired relocation for any symbolic
difference of the type of S±T[±C] where S and T are labels and C is a
constant.

GAS has a special target hook controlled by `RELOC_EXPANSION_POSSIBLE`
which indicates that a fixup may be expanded into multiple relocations.
This is used by the RISCV backend to always emit a paired relocation -
either ADD[WIDTH] + SUB[WIDTH] for text relocations or SET[WIDTH] +
SUB[WIDTH] for a debug info relocation.  Irrespective of whether linker
relaxation support is enabled, symbolic difference is always emitted as
a paired relocation.

This change also sinks the target specific behaviour down into the
target specific area rather than exposing it to the shared relocation
handling.  In the process, we also sink the "special" handling for debug
information down into the RISCV target.  Although this improves the path
for the other targets, this is not necessarily entirely ideal either.
The changes in the debug info emission could be done through another
type of hook as this functionality would be required by any other target
which wishes to do linker relaxation.  However, as there are no other
targets in LLVM which currently do this, this is a reasonable thing to
do until such time as the code needs to be shared.

Improve the handling of the relocation (and add a reduced test case from
the Linux kernel) to ensure that we handle complex expressions for
symbolic difference.  This ensures that we correct relocate symbols with
the adddends normalized and associated with the addition portion of the
paired relocation.

This change also addresses some review comments from Alex Bradbury about
the relocations meant for use in the DWARF CFA being named incorrectly
(using ADD6 instead of SET6) in the original change which introduced the
relocation type.

This resolves the issues with the symbolic difference emission
sufficiently to enable building the Linux kernel with clang+IAS+lld
(without linker relaxation).

Resolves PR50153, PR50156!
Fixes: ClangBuiltLinux/linux#1023, ClangBuiltLinux/linux#1143

Reviewed By: nickdesaulniers, maskray

Differential Revision: https://reviews.llvm.org/D103539
The file was addedllvm/test/MC/RISCV/scoped-relaxation.s
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
The file was modifiedllvm/test/MC/RISCV/fde-reloc.s
The file was modifiedllvm/lib/MC/MCAssembler.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp
The file was modifiedllvm/include/llvm/MC/MCAsmBackend.h
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h
The file was addedllvm/test/MC/RISCV/reloc-addend.s
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp
The file was modifiedllvm/lib/MC/MCObjectStreamer.cpp
The file was modifiedllvm/test/MC/RISCV/hilo-constaddr-expr.s
The file was modifiedllvm/include/llvm/MC/MCDwarf.h
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
The file was modifiedllvm/include/llvm/MC/MCFixup.h
The file was modifiedllvm/test/CodeGen/RISCV/fixups-relax-diff.ll
The file was modifiedllvm/test/MC/RISCV/fixups-expr.s
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.h
The file was modifiedllvm/lib/MC/MCAsmBackend.cpp
The file was modifiedllvm/lib/MC/MCDwarf.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
The file was modifiedllvm/test/CodeGen/RISCV/fixups-diff.ll
The file was modifiedllvm/lib/MC/MCExpr.cpp
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h
Commit 249d9b051f92d1a323b3dd477f95133648df4774 by kda
Revert "Remove obsolete call to AsyncSignalSafeLazyInitiFakeStack."

This reverts commit 07481b37961f5b9a670c924367d2ead2e3c32b86.

Differential Revision: https://reviews.llvm.org/D104469
The file was modifiedcompiler-rt/lib/asan/asan_thread.cpp
Commit ac35ed5d34876e3b72442e61543233bd3ac6e632 by peter
[compiler-rt][hwasan]: undefine new/delete operators with alignment on Android.

This is to fix build on Android. And we don't want to intercept more new/delete operators on Android.

Differential Revision: https://reviews.llvm.org/D104313
The file was modifiedcompiler-rt/lib/hwasan/hwasan_new_delete.cpp
Commit 5b1079f6411b7d978550c6bf37e87674d137f1c4 by spatel
[InstCombine][x86] add tests for complex vector shift value tracking; NFC

https://llvm.org/PR50123
The file was modifiedllvm/test/Transforms/InstCombine/X86/x86-vector-shifts.ll
Commit 61196f855c395b14bffd7c9b1ba29194577e67f6 by spatel
[InstSimplify] add tests for computeKnownBits of shift-with-bitcast op; NFC
The file was modifiedllvm/test/Transforms/InstSimplify/shift-knownbits.ll
Commit 53f5f14136fbc75e42e18374f3ace05a262a18d3 by hokein.wu
fix an -Wunused-variable warning in release built, NFC
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
Commit e70d4994ea9eb44ba5a86c5073ac83cf500aabdd by Saleem Abdulrasool
test: clean up some of the RISCV tests (NFC)

This addresses some post-commit comments from jrtc27 to make the tests
easier to process.
The file was modifiedllvm/test/CodeGen/RISCV/fixups-diff.ll
The file was modifiedllvm/test/CodeGen/RISCV/fixups-relax-diff.ll
Commit a22c55c69bcdef193715fd6e1f92a329649bc153 by cjdb
[libcxx][iwyu] 🎨 adds more headers to IWYU

A few slipped through the cracks because D104175 and D104170 didn't
concern themselves with newer commits.

Differential Revision: https://reviews.llvm.org/D104414
The file was modifiedlibcxx/include/__ranges/ref_view.h
The file was modifiedlibcxx/include/__ranges/subrange.h
The file was modifiedlibcxx/include/__ranges/empty_view.h
Commit d827af03bc1d12e813ef207d2a897998ebf64ca1 by cjdb
[libcxx][module-map] 🎨 updates module map to account for ranges headers

Corresponding module map update for D104414, split out for rollback
reasons.

Differential Revision: https://reviews.llvm.org/D104415
The file was modifiedlibcxx/include/module.modulemap
Commit 22911585bb3811767a616c20946290b8e9a988d9 by gusss
[mlir][sparse] Add Matricized Tensor Times Khatri-Rao Product (MTTKRP) integration test

See this documentation from taco:
http://tensor-compiler.org/docs/data_analytics/index.html

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D104417
The file was addedmlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir
The file was modifiedmlir/test/CMakeLists.txt
The file was addedmlir/test/Integration/data/mttkrp_b.tns
Commit 734d688fbce8a453aa61764b9b5a43b26455dc0d by stilis
[clang] Fix a race condition in the build of clangInterpreter

The library depends on Attributes.inc, so it has to depend on the intrinsics_gen target

Reviewed By: v.g.vassilev

Differential Revision: https://reviews.llvm.org/D104311
The file was modifiedclang/lib/Interpreter/CMakeLists.txt
Commit f27e4548fc42876f66dac260ca3b6df0d5fd5fd6 by gkm
[lld-macho] Implement ICF

ICF = Identical C(ode|OMDAT) Folding

This is the LLD ELF/COFF algorithm, adapted for MachO. So far, only `-icf all` is supported. In order to support `-icf safe`, we will need to port address-significance tables (`.addrsig` directives) to MachO, which will come in later diffs.

`check-{llvm,clang,lld}` have 0 regressions for `lld -icf all` vs. baseline ld64.

We only run ICF on `__TEXT,__text` for reasons explained in the block comment in `ConcatOutputSection.cpp`.

Here is the perf impact for linking `chromium_framekwork` on a Mac Pro (16-core Xeon W) for the non-ICF case vs. pre-ICF:
```
    N           Min           Max        Median           Avg        Stddev
x  20          4.27          4.44          4.34         4.349   0.043029977
+  20          4.37          4.46         4.405        4.4115   0.025188761
Difference at 95.0% confidence
        0.0625 +/- 0.0225658
        1.43711% +/- 0.518873%
        (Student's t, pooled s = 0.0352566)
```

Reviewed By: #lld-macho, int3

Differential Revision: https://reviews.llvm.org/D103292
The file was modifiedlld/MachO/Symbols.cpp
The file was modifiedlld/MachO/SyntheticSections.cpp
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/MachO/UnwindInfoSection.cpp
The file was modifiedlld/MachO/UnwindInfoSection.h
The file was addedlld/test/MachO/icf-options.s
The file was modifiedlld/test/MachO/Inputs/MacOSX.sdk/usr/lib/libSystem.tbd
The file was modifiedlld/MachO/Config.h
The file was addedlld/test/MachO/icf.s
The file was modifiedlld/MachO/InputSection.h
The file was modifiedlld/MachO/Driver.cpp
The file was addedlld/MachO/ICF.cpp
The file was addedlld/MachO/ICF.h
The file was modifiedlld/MachO/InputSection.cpp
The file was addedlld/test/MachO/icf-scale.s
The file was modifiedlld/MachO/ConcatOutputSection.h
The file was modifiedlld/MachO/Options.td
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/MachO/CMakeLists.txt
The file was modifiedlld/MachO/ConcatOutputSection.cpp
Commit 00553a32330822fd936dcfd4830556468aaf918c by llvmgnsyncbot
[gn build] Port f27e4548fc42
The file was modifiedllvm/utils/gn/secondary/lld/MachO/BUILD.gn
Commit 4e2aee8d3bab6010420d9be96480f1d8ae0f35c1 by jasonliu
[AIX] Remove --as-needed passing into aix linker

Summary:
AIX does not support --as-needed linker options. Remove that option from
aix linker when -lunwind is needed.
For unwinder library, nothing special is needed because by default aix
linker has the as-needed effect for library that's an archive (which is
the case for libunwind on AIX).

Reviewed By: daltenty

Differential Revision: https://reviews.llvm.org/D104314
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp
The file was modifiedclang/test/Driver/aix-ld.c
Commit 37dfc467ac807bde4f221edbf304d9a46c9789b2 by lebedev.ri
[NFC] LoopVectorizationCostModel::getMaximizedVFForTarget(): clarify debug msg

This really isn't talking about vectors in general,
but only about either fixed or scalable vectors,
and it's pretty confusing to see it state
that there aren't any vectors :)
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit 69caacc626f7dbbb9223b370952fcf5660e242dc by lebedev.ri
[X86] AMD Zen 3: don't confuse shift and shuffle, NFC

These proc res groups occupy the exact same pipes,
so this doesn't affect the modelling,
but it's confusing nontheless.
The file was modifiedllvm/lib/Target/X86/X86ScheduleZnver3.td
Commit d02bf362dcf8d1488dfcf970c12c6047885a5f06 by andrew.ng
[llvm-symbolizer][docs] Update example for --verbose in the guide

Differential Revision: https://reviews.llvm.org/D104128
The file was modifiedllvm/docs/CommandGuide/llvm-symbolizer.rst
Commit 366df11a35392c946678f1af94038945c23f06c8 by vyng
[lld-macho] Rework mergeFlag to behave closer to what ld64 does.

Details:
I've been getting a few weird errors similar to the following from our internal tests:

```
ld64.lld.darwinnew: error: Cannot merge section __eh_frame (type=0x0) into __eh_frame (type=0xB): inconsistent types
ld64.lld.darwinnew: error: Cannot merge section __eh_frame (flags=0x0) into __eh_frame (flags=0x6800000B): strict flags differ
ld64.lld.darwinnew: error: Cannot merge section __eh_frame (type=0x0) into __eh_frame (type=0xB): inconsistent types
ld64.lld.darwinnew: error: Cannot merge section __eh_frame (flags=0x0) into __eh_frame (flags=0x6800000B): strict flags differ
```

Differential Revision: https://reviews.llvm.org/D103971
The file was modifiedlld/MachO/ConcatOutputSection.cpp
The file was modifiedlld/test/MachO/builtin-rename.s
The file was modifiedlld/MachO/ConcatOutputSection.h
Commit 758633f92226ad25c9007a8a05f01cb848b97ab8 by sbc
[lld][WebAssembly] Add new `--import-undefined` option

This change revisits https://reviews.llvm.org/D79248 which originally
added support for the --unresolved-symbols flag.

At the time I thought it would make sense to add a third option to this
flag called `import-functions` but it turns out (as was suspects by on
the reviewers IIRC) that this option can be authoganal.

Instead I've added a new option called `--import-undefined` that only
operates on symbols that can be imported (for example, function symbols
can always be imported as opposed to data symbols we can only be
imported when compiling with PIC).

This option gives us the full expresivitiy that emscripten needs to be
able allow reporting of undefined data symbols as well as the option to
disable that.

This change does remove the `--unresolved-symbols=import-functions`
option, which is been in the codebase now for about a year but I would
be extremely surprised if anyone was using it.

Differential Revision: https://reviews.llvm.org/D103290
The file was modifiedlld/docs/WebAssembly.rst
The file was modifiedlld/test/wasm/unresolved-symbols.s
The file was modifiedlld/wasm/Options.td
The file was modifiedlld/wasm/Config.h
The file was modifiedlld/wasm/Relocations.cpp
The file was modifiedlld/wasm/Driver.cpp
The file was modifiedlld/wasm/Writer.cpp
Commit dc11d4e6be2455e666319e01bc1c79a3ba750fbf by pholland2
[MCA] [RegisterFile] Allow for skipping Defs with RegID of 0 (rather than assert(RegID) like we do before this patch).

This patch will allow developers to remove unwanted instruction Defs (most likely from within a target specific InstrPostProcess) by setting that Def's RegisterID to 0.
Differential Revision: https://reviews.llvm.org/D104433
The file was modifiedllvm/lib/MCA/HardwareUnits/RegisterFile.cpp
Commit f7c54c4603a2df8c0833f5ddc04a5e109bca1c14 by nikita.ppv
[LoopUnroll] Fold all exits based on known trip count/multiple

Fold all exits based on known trip count/multiple information from
SCEV. Previously only the latch exit or the single exit were folded.

This doesn't yet eliminate ULO.TripCount and ULO.TripMultiple
entirely: They're still used to a) decide whether runtime unrolling
should be performed and b) for ORE remarks. However, the core
unrolling logic is independent of them now.

Differential Revision: https://reviews.llvm.org/D104203
The file was modifiedllvm/test/Transforms/LoopUnroll/nonlatchcondbr.ll
The file was modifiedllvm/lib/Transforms/Utils/LoopUnroll.cpp
The file was modifiedllvm/test/Transforms/LoopUnroll/multiple-exits.ll
Commit aa4685c0fb3aab5acb90be5fd3eb5ba8bf1e3211 by walter erquinigo
[lldb-vscode] only report long running progress events

When the number of shared libs is massive, there could be hundreds of
thousands of short lived progress events sent to the IDE, which makes it
irresponsive while it's processing all this data. As these small jobs
take less than a second to process, the user doesn't even see them,
because the IDE only display the progress of long operations. So it's
better not to send these events.

I'm fixing that by sending only the events that are taking longer than 5
seconds to process.
In a specific run, I got the number of events from ~500k to 100, because
there was only 1 big lib to parse.

I've tried this on several small and massive targets, and it seems to
work fine.

Differential Revision: https://reviews.llvm.org/D101128
The file was modifiedlldb/tools/lldb-vscode/ProgressEvent.cpp
The file was modifiedlldb/tools/lldb-vscode/ProgressEvent.h
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp
The file was modifiedlldb/tools/lldb-vscode/VSCode.cpp
The file was modifiedlldb/tools/lldb-vscode/VSCode.h
Commit 9ac7388e3dd578e9a27b6fe8ab4802da39d2999e by jgorbe
Revert "[NFC] Remove checking pointee type for byval/preallocated type"

This reverts commit 738abfdbea21acd2597d83ad3390daf5696b6d07.
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
Commit 7b0612088289e4f57e089a792c5e6d1123a2b6e3 by Jon Roelofs
[AArch64][GISel] and+or+shl => bfi

This fixes a GISEL vs SDAG regression that showed up at -Os in 256.bzip2

In `_getAndMoveToFrontDecode`:

gisel:
```
and w9, w0, #0xff
orr w9, w9, w8, lsl #8
```

sdag:
```
bfi w0, w8, #8, #24
```

Differential revision: https://reviews.llvm.org/D103291
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/select-bitfield-insert.ll
Commit a2ab765029dd76756e98851847e6675795a973b6 by Jon Roelofs
[GISel] Eliminate redundant bitmasking

This was a GISel vs SDAG regression that showed up at -Os on arm64 in:
SingleSource/Benchmarks/Adobe-C++/simple_types_constant_folding.test

https://llvm.godbolt.org/z/aecjodsjG

Differential revision: https://reviews.llvm.org/D103334
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/shl-ext-reduce.ll
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/opt-overlapping-and.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/cvt_f32_ubyte.ll
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
Commit 71e4d434dc83b02a853712a5cb026ee2fa9ba67f by Louis Dionne
[libc++] Make sure std::allocator<void> is always trivial

When we removed the allocator<void> specialization, the triviality of
std::allocator<void> changed because the primary template had a
non-trivial default constructor and the specialization didn't
(so std::allocator<void> went from trivial to non-trivial).

This commit fixes that oversight by giving a trivial constructor to
the primary template when instantiated on cv-void.

This was reported in https://llvm.org/PR50299.

Differential Revision: https://reviews.llvm.org/D104398
The file was modifiedlibcxx/include/__memory/allocator.h
The file was addedlibcxx/test/libcxx/memory/allocator_void.trivial.compile.pass.cpp
Commit 116841c623747972d0ae80239d3ea7b8409b868b by Saleem Abdulrasool
RISCV: clean up target expression handling

The target specific expression handling was slightly regressed by
bbea64250f65480d787e1c5ff45c4de3ec2dcda8.  This restores the proper
sub-expression evaluation to allow for constant folding within the
expression.  We explicitly discard the layout and assembler when
evaluating the expression to avoid any symbolic computation and instead
using the `evaluateAsRelocatable` to canonicalise and constant fold
only.

We can also simplify the expression handling - none of the target
variants support symbolic difference.  This simplifies the logic for
that and adds additional tests to ensure that we do not accidentally
regress here in the future.

Reviewed By: maskray

Differential Revision: https://reviews.llvm.org/D104473
The file was modifiedllvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp
The file was addedllvm/test/MC/RISCV/expressions.s
Commit 8a567e5f22a6d76ce076cf4305fe5c7cbff50fe0 by efriedma
[ScalarEvolution] Fix pointer/int type handling converting select/phi to min/max.

The old version of this code would blindly perform arithmetic without
paying attention to whether the types involved were pointers or
integers.  This could lead to weird expressions like negating a pointer.

Explicitly handle simple cases involving pointers, like "x < y ? x : y".
In all other cases, coerce the operands of the comparison to integer
types.  This avoids the weird cases, while handling most of the
interesting cases.

Differential Revision: https://reviews.llvm.org/D103660
The file was modifiedllvm/test/Transforms/IndVarSimplify/pr45835.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp
The file was modifiedllvm/test/Analysis/ScalarEvolution/pr46786.ll
Commit 8441b993bdba29437b296bad6a37464669eef35e by browneee
[DFSan] Cleanup code for platforms other than Linux x86_64.

These other platforms are unsupported and untested.
They could be re-added later based on MSan code.

Reviewed By: gbalats, stephan.yichao.zhao

Differential Revision: https://reviews.llvm.org/D104481
The file was modifiedcompiler-rt/lib/dfsan/dfsan_platform.h
The file was removedllvm/test/Instrumentation/DataFlowSanitizer/external_mask.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
The file was modifiedcompiler-rt/lib/dfsan/dfsan.cpp
Commit 99e95856fb785cb22d898e963a54e8d9a8459fc7 by craig.topper
[PartiallyInlineLibCalls] Disable sqrt expansion for strictfp.

This pass emits a floating point compare and a conditional branch,
but if strictfp is enabled we don't emit a constrained compare
intrinsic.

The backend also won't expand the readonly sqrt call this pass inserts
to a sqrt instruction under strictfp. So we end up with 2 libcalls as
seen here. https://godbolt.org/z/oax5zMEWd

Fix these things by disabling the pass.

Differential Revision: https://reviews.llvm.org/D104479
The file was addedllvm/test/Transforms/PartiallyInlineLibCalls/strictfp.ll
The file was modifiedllvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp
Commit 76d0747e0807307780ba84cbd7e5c80b20c26bd7 by i
[InstrProfiling] Make __profd_ unconditionally private for ELF

For ELF, since all counters/data are in a section group (either `comdat any` or
`comdat noduplicates`), and the signature for `comdat any` is `__profc_`, the
D1003372 optimization prerequisite (linker GC cannot discard data variables
while the text section is retained) is always satisified, we can make __profd_
unconditionally private.

Reviewed By: davidxl, rnk

Differential Revision: https://reviews.llvm.org/D103717
The file was modifiedllvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
The file was modifiedllvm/test/Transforms/PGOProfile/indirect_call_profile.ll
Commit 39295e92f7f991a745743dd2c888f0a774047f2a by browneee
Revert "[DFSan] Cleanup code for platforms other than Linux x86_64."

This reverts commit 8441b993bdba29437b296bad6a37464669eef35e.

Buildbot failures.
The file was modifiedcompiler-rt/lib/dfsan/dfsan_platform.h
The file was modifiedllvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
The file was addedllvm/test/Instrumentation/DataFlowSanitizer/external_mask.ll
The file was modifiedcompiler-rt/lib/dfsan/dfsan.cpp
Commit eaf1b6810ce0f40008b2b1d902750eafa3e198d3 by kuterdinel
[Attributor] Derive AACallEdges attribute

This attribute computes the optimistic live call edges using the attributor
liveness information. This attribute will be used for deriving a
inter-procedural function reachability attribute.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D104059
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was addedllvm/test/Transforms/Attributor/callgraph.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
Commit 84eeb82888a033bd02b53023f9408760fc86bd81 by lebedev.ri
[NFC][SimpleLoopUnswitch] unswitchTrivialBranch(): add debug output explaining unswitching failure

It's not prohibitively verbose, and allows easier understanding
why certain unswitching ultimately wasn't performed.
The file was modifiedllvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
Commit c1360fd5fced42ea45ce1eacbf1c5e1ed54fcac5 by walter erquinigo
[lldb-vscode] remove failed test

Found in http://green.lab.llvm.org/green/job/lldb-cmake/32891/testReport/lldb-api/tools_lldb-vscode_launch/TestVSCode_launch_py/

the lldb-vscode changed and that test makes no sense anymore
The file was modifiedlldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py
Commit bf9f21a28be171dc500cc68b4cb1fcd3fc33f229 by walter erquinigo
[trace][intel-pt] Create basic SB API

This adds a basic SB API for creating and stopping traces.
Note: This doesn't add any APIs for inspecting individual instructions. That'd be a more complicated change and it might be better to enhande the dump functionality to output the data in binary format. I'll leave that for a later diff.

This also enhances the existing tests so that they test the same flow using both the command interface and the SB API.

I also did some cleanup of legacy code.

Differential Revision: https://reviews.llvm.org/D103500
The file was modifiedlldb/docs/design/overview.rst
The file was removedlldb/include/lldb/Utility/TraceOptions.h
The file was modifiedlldb/bindings/headers.swig
The file was modifiedlldb/source/Commands/CommandObjectTrace.cpp
The file was modifiedlldb/test/API/commands/trace/TestTraceSchema.py
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPT.cpp
The file was modifiedlldb/bindings/interface/SBTrace.i
The file was modifiedlldb/bindings/interface/SBTarget.i
The file was modifiedlldb/source/Plugins/Trace/intel-pt/CommandObjectTraceStartIntelPT.h
The file was modifiedlldb/source/API/SBStructuredData.cpp
The file was removedlldb/source/API/SBTraceOptions.cpp
The file was addedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTConstants.h
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPT.h
The file was modifiedlldb/include/lldb/Target/Trace.h
The file was modifiedlldb/source/API/SBTarget.cpp
The file was modifiedlldb/include/lldb/API/SBDefines.h
The file was modifiedlldb/source/API/SBReproducer.cpp
The file was modifiedlldb/test/API/commands/trace/TestTraceLoad.py
The file was modifiedlldb/include/lldb/API/SBStructuredData.h
The file was modifiedlldb/include/lldb/Utility/TraceGDBRemotePackets.h
The file was modifiedlldb/bindings/interface/SBStructuredData.i
The file was modifiedlldb/test/API/commands/trace/TestTraceStartStop.py
The file was removedlldb/bindings/interface/SBTraceOptions.i
The file was modifiedlldb/source/Commands/CommandObjectProcess.cpp
The file was modifiedlldb/include/lldb/Target/Target.h
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py
The file was modifiedlldb/source/API/CMakeLists.txt
The file was modifiedlldb/source/API/SBProcess.cpp
The file was modifiedlldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py
The file was modifiedlldb/docs/.htaccess
The file was modifiedlldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
The file was modifiedlldb/source/Commands/CommandObjectThread.cpp
The file was modifiedlldb/include/lldb/API/SBTrace.h
The file was modifiedlldb/source/Plugins/Process/Linux/IntelPTManager.cpp
The file was modifiedlldb/source/Target/Trace.cpp
The file was modifiedlldb/include/lldb/lldb-forward.h
The file was modifiedlldb/docs/lldb-gdb-remote.txt
The file was addedlldb/packages/Python/lldbsuite/test/tools/intelpt/intelpt_testcase.py
The file was removedlldb/include/lldb/API/SBTraceOptions.h
The file was modifiedlldb/include/lldb/API/SBProcess.h
The file was modifiedlldb/source/Commands/CommandObjectThreadUtil.h
The file was modifiedlldb/bindings/interface/SBProcess.i
The file was modifiedlldb/include/lldb/API/SBThread.h
The file was modifiedlldb/source/API/SBTrace.cpp
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTOptions.td
The file was modifiedlldb/source/Target/Target.cpp
The file was modifiedlldb/bindings/interfaces.swig
The file was modifiedlldb/include/lldb/API/LLDB.h
The file was modifiedlldb/source/Plugins/Trace/intel-pt/TraceIntelPTSessionFileParser.cpp
The file was modifiedlldb/include/lldb/Target/Process.h
The file was modifiedlldb/source/Plugins/Trace/intel-pt/CommandObjectTraceStartIntelPT.cpp
The file was modifiedlldb/test/API/commands/trace/TestTraceDumpInstructions.py
The file was modifiedlldb/include/lldb/API/SBTarget.h
Commit d01e673a9f046913070bd950183480c9bd15956b by sbc
[lld][WebAssembly] Fix crash calling weakly undefined function in PIC code

Differential Revision: https://reviews.llvm.org/D104495
The file was modifiedlld/wasm/InputChunks.cpp
The file was modifiedlld/test/wasm/weak-undefined-pic.s
The file was modifiedlld/wasm/Writer.cpp
Commit 722c51473c7a3bfe13d929734615a3b46d44c09a by vsapsai
[clang][AST] Make `getLocalOrImportedSubmoduleID` work with const `Module*`. NFC.

Differential Revision: https://reviews.llvm.org/D104350
The file was modifiedclang/lib/Serialization/ASTWriter.cpp
The file was modifiedclang/include/clang/Serialization/ASTWriter.h
Commit a78671ef54e53196dc7b5ee9c91771c8e146d1d1 by kuterdinel
[FIX][Attributor] Fix broken build due to missing virtual deconstructors.

The lack some virtual deconstructors where causing some builds bots to fail.
This patch fixes that.

Problematic commit:
https://reviews.llvm.org/rGeaf1b6810ce0f40008b2b1d902750eafa3e198d3

Build bot:
https://lab.llvm.org/buildbot/#/builders/18/builds/1741
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
Commit 05d0f1a8ea012a6b7b8ea65893ec4121106444b5 by Duncan P. N. Exon Smith
Frontend: Respect -fno-temp-file when creating a PCH

When creating a PCH file the use of a temp file will be dictated by the
presence or absence of the -fno-temp-file flag. Creating a module file
will always use a temp file via the new ForceUseTemporary flag.

This fixes bug 50033.
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp
The file was modifiedclang/include/clang/Frontend/CompilerInstance.h
The file was modifiedclang/lib/Frontend/FrontendActions.cpp
Commit e7bf4510564a7f4eb924d2e79db0ab7926968583 by jim
[M68k][NFC] Fix indentation in M68kInstrArithmetic.td

Merely fix indentation

Reviewed By: myhsu

Differential Revision: https://reviews.llvm.org/D104434
The file was modifiedllvm/lib/Target/M68k/M68kInstrArithmetic.td
Commit 3522167efd80e2fef42a865cdf7481d60d062603 by lxfind
[Coroutine] Properly deal with byval and noalias parameters

This patch is to address https://bugs.llvm.org/show_bug.cgi?id=48857.
Previous attempts can be found in D104007 and D101980.
A lot of discussions can be found in those two patches.
To summarize the bug:
When Clang emits IR for coroutines, the first thing it does is to make a copy of every argument to the local stack, so that uses of the arguments in the function will all refer to the local copies instead of the arguments directly.
However, in some cases we find that arguments are still directly used:
When Clang emits IR for a function that has pass-by-value arguments, sometimes it emits an argument with byval attribute. A byval attribute is considered to be local to the function (just like alloca) and hence it can be easily determined that it does not alias other values. If in the IR there exists a memcpy from a byval argument to a local alloca, and then from that local alloca to another alloca, MemCpyOpt will optimize out the first memcpy because byval argument's content will not change. This causes issues because after a coroutine suspension, the byval argument may die outside of the function, and latter uses will lead to memory use-after-free.
This is only a problem for arguments with either byval attribute or noalias attribute, because only these two kinds are considered local. Arguments without these two attributes will be considered to alias coro_suspend and hence we won't have this problem. So we need to be able to deal with these two attributes in coroutines properly.
For noalias arguments, since coro_suspend may potentially change the value of any argument outside of the function, we simply shouldn't mark any argument in a coroutiune as noalias. This can be taken care of in CoroEarly pass.
For byval arguments, if such an argument needs to live across suspensions, we will have to copy their value content to the frame, not just the pointer.

Differential Revision: https://reviews.llvm.org/D104184
The file was addedllvm/test/Transforms/Coroutines/coro-byval-param.ll
The file was addedllvm/test/Transforms/Coroutines/coro-noalias-param.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroFrame.cpp
The file was modifiedllvm/lib/Transforms/Coroutines/CoroEarly.cpp
Commit 6aaf4fa2885600b0e31042071ad06f78218ab0f2 by richard
Bring our handling of -Wframe-larger-than more in line with GCC.

Support -Wno-frame-larger-than (with no =) and make it properly
interoperate with -Wframe-larger-than. Reject -Wframe-larger-than with
no argument.

We continue to support Clang's old spelling, -Wframe-larger-than=, for
compatibility with existing users of that facility.

In passing, stop the driver from accepting and ignoring
-fwarn-stack-size and make it a cc1-only flag as intended.
The file was modifiedclang/include/clang/Basic/DiagnosticFrontendKinds.td
The file was modifiedclang/test/Frontend/backend-diagnostic.c
The file was modifiedclang/test/Misc/backend-stack-frame-diagnostics.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/Driver/Wframe-larger-than.c
Commit 1d891d44f33f99c55e779acaeac4628e4ac9aaaf by aheejin
[WebAssembly] Rename event to tag

We recently decided to change 'event' to 'tag', and 'event section' to
'tag section', out of the rationale that the section contains a
generalized tag that references a type, which may be used for something
other than exceptions, and the name 'event' can be confusing in the web
context.

See
- https://github.com/WebAssembly/exception-handling/issues/159#issuecomment-857910130
- https://github.com/WebAssembly/exception-handling/pull/161

Reviewed By: tlively

Differential Revision: https://reviews.llvm.org/D104423
The file was modifiedllvm/include/llvm/CodeGen/WasmEHFuncInfo.h
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp
The file was modifiedlld/wasm/Symbols.h
The file was modifiedlld/wasm/InputChunks.cpp
The file was modifiedllvm/test/MC/WebAssembly/annotations.s
The file was modifiedlld/wasm/InputFiles.cpp
The file was modifiedlldb/source/Plugins/ObjectFile/wasm/ObjectFileWasm.cpp
The file was modifiedllvm/lib/ObjectYAML/WasmEmitter.cpp
The file was modifiedllvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
The file was removedlld/test/wasm/Inputs/event-section2.ll
The file was modifiedllvm/lib/BinaryFormat/Wasm.cpp
The file was modifiedlld/include/lld/Common/LLVM.h
The file was removedlld/test/wasm/event-section.ll
The file was modifiedllvm/test/CodeGen/WebAssembly/null-streamer.ll
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
The file was modifiedllvm/include/llvm/BinaryFormat/Wasm.h
The file was addedllvm/test/MC/WebAssembly/tag-section.ll
The file was removedlld/test/wasm/Inputs/event-section1.ll
The file was modifiedllvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
The file was modifiedlld/wasm/InputElement.h
The file was modifiedlld/wasm/WriterUtils.cpp
The file was modifiedlld/wasm/SymbolTable.cpp
The file was addedlld/test/wasm/tag-section.ll
The file was modifiedllvm/include/llvm/BinaryFormat/WasmRelocs.def
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp
The file was modifiedlld/wasm/SymbolTable.h
The file was removedllvm/test/MC/WebAssembly/event-section.ll
The file was modifiedllvm/test/MC/WebAssembly/basic-assembly.s
The file was modifiedllvm/tools/obj2yaml/wasm2yaml.cpp
The file was modifiedllvm/tools/llvm-readobj/WasmDumper.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
The file was addedlld/test/wasm/Inputs/tag-section1.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td
The file was modifiedlld/wasm/Writer.cpp
The file was modifiedlld/wasm/Symbols.cpp
The file was addedllvm/test/MC/WebAssembly/tag-section-decoding.ll
The file was modifiedllvm/test/CodeGen/WebAssembly/exception.ll
The file was modifiedlld/wasm/InputFiles.h
The file was modifiedllvm/lib/MC/WasmObjectWriter.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
The file was modifiedlld/wasm/OutputSections.cpp
The file was modifiedllvm/include/llvm/ObjectYAML/WasmYAML.h
The file was modifiedlld/wasm/SyntheticSections.h
The file was modifiedllvm/lib/Object/RelocationResolver.cpp
The file was modifiedllvm/lib/Object/WasmObjectFile.cpp
The file was modifiedllvm/lib/ObjectYAML/WasmYAML.cpp
The file was removedllvm/test/MC/WebAssembly/event-section-decoding.ll
The file was modifiedllvm/test/ObjectYAML/wasm/event_section.yaml
The file was modifiedllvm/include/llvm/MC/MCSymbolWasm.h
The file was modifiedlld/wasm/MarkLive.cpp
The file was modifiedlld/wasm/SyntheticSections.cpp
The file was modifiedlld/wasm/WriterUtils.h
The file was addedlld/test/wasm/Inputs/tag-section2.ll
The file was modifiedllvm/include/llvm/Object/Wasm.h
Commit a10aeb3b32b5f935528ba41d7b7ee18e8d79d9e2 by carl.ritson
[AMDGPU] Remove duplicate setOperationAction for v4i16/v4f16 (NFC)
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
Commit 85ec21075100049ea8b8e5f945628ae2adae628e by ikudrin
[objdump][ARM] Fix evaluating the target address of a Thumb BLX(i)

The instruction can be 16-bit aligned while targeting 32-bit aligned
code. To calculate the target address correctly, the address of the
instruction has to be adjusted.

Differential Revision: https://reviews.llvm.org/D104446
The file was modifiedllvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
The file was addedllvm/test/tools/llvm-objdump/ELF/ARM/tblxi-target.s
Commit aea67232b1ee6da9fb97e8d1750221cbf3cf5165 by vdsered
[InstCombine][NFC] Added tests for mul with zext/sext operands

Baseline tests for D104193
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
Commit c2e97ba85e46b4d99b13d651f58179251fce9007 by luke957
[RISCV] Don't enable Interleaved Access Vectorization

The patch https://reviews.llvm.org/D101469 is intended to enable loop unrolling,
not interleaved access vectorization. The method bool enableInterleavedAccessVectorization()
should not be implemented.
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
Commit c6b5a25eeb336bb1e6abcba8131b946552432ac0 by gbalats
[dfsan] Replace dfs$ prefix with .dfsan suffix

The current naming scheme adds the `dfs$` prefix to all
DFSan-instrumented functions.  This breaks mangling and prevents stack
trace printers and other tools from automatically demangling function
names.

This new naming scheme is mangling-compatible, with the `.dfsan`
suffix being a vendor-specific suffix:
https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling-structure

With this fix, demangling utils would work out-of-the-box.

Reviewed By: stephan.yichao.zhao

Differential Revision: https://reviews.llvm.org/D104494
The file was modifiedcompiler-rt/test/dfsan/origin_with_signals.cpp
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_other_ops.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/struct.ll
The file was modifiedcompiler-rt/test/dfsan/pthread.c
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_store.ll
The file was modifiedclang/docs/DataFlowSanitizerDesign.rst
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/atomics.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/debug-nonzero-labels.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/memset.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/custom_fun_callback_attributes.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_track_load.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/unordered_atomic_mem_intrins.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_load.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/basic.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/abilist_aggregate.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/musttailcall.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_store_threshold.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/select.ll
The file was modifiedcompiler-rt/test/dfsan/origin_memmove.c
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/union.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/args-unreachable-bb.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_phi.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/shadow-args-zext.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/store.ll
The file was modifiedcompiler-rt/test/dfsan/origin_stack_trace.c
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_cached_shadows.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/arith.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_mem_intrinsic.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/prefix-rename.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/dont_combine_offset_labels_on_gep.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/abilist.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/load.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/vector.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/array.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_abilist.ll
The file was modifiedcompiler-rt/test/dfsan/origin_memcpy.c
The file was modifiedcompiler-rt/test/dfsan/origin_with_sigactions.c
The file was modifiedcompiler-rt/test/dfsan/origin_unaligned_memtrans.c
The file was modifiedcompiler-rt/test/dfsan/stack_trace.c
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/call.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/custom_fun_varargs_attributes.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/external_mask.ll
The file was modifiedcompiler-rt/test/dfsan/origin_track_ld.c
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_select.ll
The file was modifiedllvm/test/Instrumentation/DataFlowSanitizer/origin_call.ll
Commit 8d7bace3b517e4f1ef43375e65f6c4da115ffef8 by johannes
[Attributor][NFC] AAReachability is currently stateless, don't invalidate it

We invalidated AAReachabilityImpl directly which is not helpful and
confusing as we still used it regardless. We now avoid invalidating it
(not needed anyway) and add checks for the state. This has by itself no
actual effect but prepares for later extensions.
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
Commit 39e1876b0649b35de2ca3bff1983be82dca0bbcc by johannes
[Attributor][NFC] Precommit a set of test cases for load simplification
The file was addedllvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
Commit ca7563bb02689a7145a7348d8b7a9676189df296 by johannes
[Attributor][NFC] Add test from PR49606

It is not clear to me how we fixed this, I reverted a few candidates but
I couldn't make the test fail. Still worth having it in our regression
suite.
The file was addedllvm/test/Transforms/Attributor/cgscc_bugs.ll
Commit 9a23e673caebdd54d8cc285fcad78f18fa2e919a by johannes
[OpenMP][NFC] Expose AAExecutionDomain and rename its getter

The initial use for AAExecutionDomain was to determine if a single
thread executes a block. While this is sometimes informative most
of the time, and for other reasons, we actually want to know if it
is the "initial thread". Thus, the thread that started execution on
the current device. The deduction needs to be adjusted in a follow
up as the methods we use right not are looking for the OpenMP thread
id which is resets whenever a thread enters a parallel region. What
we basically want is to look for `llvm.nvvm.read.ptx.sreg.ntid.x` and
equivalent functions.
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
Commit 9959eee0015a97f3eb6bdb1b7b1f500190d66f53 by johannes
[Attributor] Make sure Heap2Stack works properly on a GPU target

If the target stack is not accessible between different running
"threads" we have to make sure not to create allocas for mallocs
that might be used by multiple "threads". The "use check" is
sufficient to prevent this but if we apply the "free check" we have
to make sure the pointer is not communicated to others before
the free is reached.

Differential Revision: https://reviews.llvm.org/D98608
The file was modifiedllvm/test/Transforms/Attributor/depgraph.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was addedllvm/test/Transforms/Attributor/heap_to_stack_gpu.ll
Commit d9194b6efb4d287d2a9f2ad216a6fb5b7b260353 by johannes
[Attributor] Introduce a helper do deal with constant type mismatches

If we simplify values we sometimes end up with type mismatches. If the
value is a constant we can often cast it though to still allow
propagation. The logic is now put into a helper and it replaces some
ad hoc things we did before.

This also introduces the AA namespace for abstract attribute related
functions and types.

Differential Revision: https://reviews.llvm.org/D103856
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
Commit 666dc6f1267dfedcd0502a1f8fbd9aafe463e06a by johannes
[Attributor] Use a centralized value simplification interface

To allow outside AAs that simplify values we need to ensure all value
simplification goes through the Attributor, not AAValueSimplify (or any
of the other AAs we have already like AAPotentialValues). This patch
also introduces an interface for the outside AAs to register
simplification callbacks for an IRPosition. To make this work as
expected we have to pass IRPositions instead of Values in
AAValueSimplify, which makes sense by itself.
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/test/Transforms/Attributor/internalize.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/return-constant.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/return-constants.ll
Commit 3d6df0108b48358b8cdc6cf3267300c217fe823c by johannes
[Attributor] Allow to skip the initial update for a new AA

Users might want to run initialize for a set of AAs without an
intermediate update step. Running update eagerly is not a requirement
anyway so we make it optional.
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
Commit 30c9d68ad93af7f420f6d01f91adf12ff36254a0 by johannes
[Attributor][FIX] Arguments of unknown functions can be undef

This should fix PR50683. The wrong assumption was that we
could always know what the callee is when we replace a call site
argument with undef. We wanted to know that to remove the `noundef`
that might be attached to the argument. Since no callee means we
did the propagation on the caller site, there is no need to remove
an attribute. It is only needed if we replace all uses and therefore
pass `undef` instead of the value that was passed in otherwise.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll

Summary

  1. Update compiler on hexagon-build-0x machines (details)
  2. Add flang-x86_64-windows builder. (details)
Commit e7f9b7230c9a17d5ffb64ac3f7b46846ce334c4b by kparzysz
Update compiler on hexagon-build-0x machines
The file was modifiedbuildbot/osuosl/master/config/builders.py
Commit c406b636839cf07367241c224da3c0207c1396a3 by llvm-zorg
Add flang-x86_64-windows builder.

Add a buildbot to compile flang using msvc. Due to msvc doing some things differently than other compilers, the msvc flang build breaks regularly. This builder will notify committers if their change causes the build to break.

However, the tests never completed successfully on Windows, partially because many tests require a UNIX shell (see D89368). To not constantly fail, tests failures only trigger a warning, until all tests are fixed as well.

Currently running here: http://meinersbur.de:8011/#/builders/146

Reviewed By: gkistanova

Differential Revision: https://reviews.llvm.org/D103199
The file was modifiedbuildbot/osuosl/master/config/workers.py
The file was modifiedbuildbot/osuosl/master/config/builders.py