[all-commits] [llvm/llvm-project] fef62b: [InstCombine] Canonicalize `extractvalue + select`...

Slava Zakharin via All-commits all-commits at lists.llvm.org
Fri Mar 15 12:17:28 PDT 2024


  Branch: refs/heads/users/vzakhari/spr/main.flangruntime-added-custom-visitor-for-iostatementstate-variants
  Home:   https://github.com/llvm/llvm-project
  Commit: fef62be09c0d0aaa7f37144e260a4c03ad97f447
      https://github.com/llvm/llvm-project/commit/fef62be09c0d0aaa7f37144e260a4c03ad97f447
  Author: Yingwei Zheng <dtcxzyw2333 at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    A llvm/test/Transforms/InstCombine/extract-select-agg.ll

  Log Message:
  -----------
  [InstCombine] Canonicalize `extractvalue + select` (#84686)

This patch canonicalizes `extractvalue (select Cond, TV, FV)` into
`select Cond, (extractvalue TV), (extractvalue FV)`. The latter form may
enable more optimizations.


  Commit: 3b5e7c83a6e226d5bd7ed2e9b67449b64812074c
      https://github.com/llvm/llvm-project/commit/3b5e7c83a6e226d5bd7ed2e9b67449b64812074c
  Author: Qizhi Hu <836744285 at qq.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    A clang/test/Sema/PR84368.cpp

  Log Message:
  -----------
  [Clang][Sema] Fix a bug on type constraint checking (#84671)

Try to fix https://github.com/llvm/llvm-project/issues/84368
When visiting class members in
`TemplateDeclInstantiator::VisitClassTemplateDecl` during
`Sema::InstantiateClass`, we miss to set attribute of friend declaration
if it is(`isFriend` is true). This will lead to
`Sema::AreConstraintExpressionsEqual` return false when invoked in
`MatchTemplateParameterKind`. Because it makes
`Sema::getTemplateInstantiationArgs` returns incorrect template
argument(`MultiLevelTemplateArgumentList`). When we handle
`CXXRecordDecl` In `Sema::getTemplateInstantiationArgs`, friend
declaration(its parent context is `FileContext`) makes us to choose
`LexicalDeclContext` not `DeclContext` and this is what we want.

Co-authored-by: huqizhi <836744285 at qq.com>


  Commit: 071f72a8ecfbcb77c0f95969431b0f5dbc8ed2b2
      https://github.com/llvm/llvm-project/commit/071f72a8ecfbcb77c0f95969431b0f5dbc8ed2b2
  Author: Marius Brehler <marius.brehler at iml.fraunhofer.de>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/lib/Target/Cpp/CMakeLists.txt
    M mlir/lib/Target/Cpp/TranslateRegistration.cpp
    M mlir/test/Target/Cpp/invalid.mlir
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  [mlir][Target][Cpp] Remove unused dialects (#85102)

Removes linking and registering dialects that are not support any more.


  Commit: e6048b728d3170651828ad2dd7ed5ad0bc5e4f06
      https://github.com/llvm/llvm-project/commit/e6048b728d3170651828ad2dd7ed5ad0bc5e4f06
  Author: Matthias Gehre <matthias.gehre at amd.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h
    M mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.td
    M mlir/lib/Dialect/Bufferization/Transforms/BufferResultsToOutParams.cpp
    A mlir/test/Transforms/buffer-results-to-out-params-add-result-attr.mlir

  Log Message:
  -----------
  [MLIR][Bufferization] BufferResultsToOutParams: Add option to add attribute to output arguments (#84320)

Adds a new pass option `add-result-attr` that will make the pass add the
attribute `{bufferize.result}` to each argument that was converted from
a result.
This is important e.g. when later using the python bindings / execution
engine to understand which arguments are actually results.

To be able to test this, the pass option was added to the tablegen. To
avoid collisions with the existing, manually defined option struct
`BufferResultsToOutParamsOptions`, that one was renamed to
`BufferResultsToOutParamsOpts`.


  Commit: 34ba90745fa55777436a2429a51a3799c83c6d4c
      https://github.com/llvm/llvm-project/commit/34ba90745fa55777436a2429a51a3799c83c6d4c
  Author: Kai Sasaki <lewuathe at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
    M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir

  Log Message:
  -----------
  [mlir][complex] Support Fastmath flag in conversion of complex.sqrt to standard (#85019)

When converting complex.sqrt op to standard, we need to keep the fast
math flag given to the op.

See:
https://discourse.llvm.org/t/rfc-fastmath-flags-support-in-complex-dialect/71981


  Commit: 2582965c160486f9e3b0680f1cebc5ffdef9620c
      https://github.com/llvm/llvm-project/commit/2582965c160486f9e3b0680f1cebc5ffdef9620c
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/Serialization/ASTWriterDecl.cpp
    A clang/test/Modules/reduced-bmi-generating-codes.cppm

  Log Message:
  -----------
  [C++20] [Modules] [Reduced BMI] Generate the function body from implicitly instantiated class and constant variables

After this patch, we will generate the function body from implicitly
instantiated class. This is important for consumers with same
template arguments. Otherwise the consumers won't see the function body.
Since the consumers won't instantiate the templates again if they find an
instantiation.

Also we will generate the variable definition if the variable is
non-inline but known as constant. Such variables may not affect the
ABI, but they may get involved into the compile time constant computation
in the consumer's code. So we have to generate such definitions.


  Commit: 8f68022f8e6e54d1aeae4ed301f5a015963089b7
      https://github.com/llvm/llvm-project/commit/8f68022f8e6e54d1aeae4ed301f5a015963089b7
  Author: huang-me <56251429+huang-me at users.noreply.github.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
    M clang/test/Analysis/loop-unrolling.cpp

  Log Message:
  -----------
  [clang][analyzer] Fix crash in loop unrolling (#82089)

StaticAnalyzer didn't check if the variable is declared in
`CompoundStmt` under `SwitchStmt`, which make static analyzer reach root
without finding the declaration.

Fixes #68819

---------

Co-authored-by: Balazs Benics <benicsbalazs at gmail.com>


  Commit: ece2c25ab9f572f719fd18f1ced4fa80f3e5ed1c
      https://github.com/llvm/llvm-project/commit/ece2c25ab9f572f719fd18f1ced4fa80f3e5ed1c
  Author: bvlgah <octopus.busts_0w at icloud.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M lldb/test/API/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py

  Log Message:
  -----------
  [LLDB][Test] Fix the test case of listing verbose break info on Windows (#85200)

I noticed a failure of [running LLDB test suites on Windows
AArch64](https://lab.llvm.org/buildbot/#/builders/219/builds/9849). The
failed test case is about
checking output of command `breakpoint list -v -L c++`, and an mismatch
on the demangled
name of a function occurred. The test case expects `ns::func(void)`, but
on Windows it is `int ns::func(void)`.
It results from the different mangling scheme used by MSVC, and the
comparison is as follows:

| Scheme | Mangled | Demangled (fully) | Note |
| --- | --- | --- | --- |
| MSVC | `?func at ns@@YAHXZ` | `int __cdecl ns::func(void)` |
[Godbolt](https://godbolt.org/z/5ns8c7xW3) (I have no available Windows
device) |
| Itanium | `_ZN2ns4funcEv` | `ns::func()` | |

According to the current use of MSVC demangling,


https://github.com/llvm/llvm-project/blob/8f68022f8e6e54d1aeae4ed301f5a015963089b7/lldb/source/Core/Mangled.cpp#L128-L143

the `__cdecl` specifier is not part of the name. However, the function's
parameter types should be present
as ` llvm::MSDF_NoVariableType` [does not affect a symbol for
functions](https://github.com/llvm/llvm-project/blob/8f68022f8e6e54d1aeae4ed301f5a015963089b7/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp#L417-L453).

Therefore, it is inappropriate to assume the demangled name are the same
on all platforms. Instead of tweaking the
existing code of demangling to get the same (demangled) name, I think it
is more reasonable to modify the test case.


  Commit: 65f5e2c4070f22ab7a1617c798b4c61baa9b39a8
      https://github.com/llvm/llvm-project/commit/65f5e2c4070f22ab7a1617c798b4c61baa9b39a8
  Author: Nemanja Ivanovic <nemanja.i.ibm at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td

  Log Message:
  -----------
  [RISC-V] Add another missing cast in .td file (#85055)

Another instance where we produce an instruction that defines a vreg
with an i32 value.


  Commit: 2cf2ca37029435e90829e2e38a27ef7a7d520368
      https://github.com/llvm/llvm-project/commit/2cf2ca37029435e90829e2e38a27ef7a7d520368
  Author: Marius Brehler <marius.brehler at iml.fraunhofer.de>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/include/mlir/Target/Cpp/CppEmitter.h
    M mlir/lib/Target/Cpp/TranslateToCpp.cpp

  Log Message:
  -----------
  [mlir][Target][Cpp] Cleanup includes (#85105)


  Commit: afec257d369a13893b39d02bc630f9f3cec80162
      https://github.com/llvm/llvm-project/commit/afec257d369a13893b39d02bc630f9f3cec80162
  Author: Vyacheslav Levytskyy <vyacheslav.levytskyy at intel.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h
    M llvm/test/CodeGen/SPIRV/pointers/bitcast-fix-load.ll
    M llvm/test/CodeGen/SPIRV/pointers/bitcast-fix-store.ll
    A llvm/test/CodeGen/SPIRV/pointers/type-deduce-args-rev.ll
    A llvm/test/CodeGen/SPIRV/pointers/type-deduce-args.ll

  Log Message:
  -----------
  [SPIRV] Add type inference of function parameters by call instances (#85077)

This PR adds type inference of function parameters by call instances.
Two use cases that demonstrate the problem are added.


  Commit: aff05708916107eec73ea5db363f625926f60730
      https://github.com/llvm/llvm-project/commit/aff05708916107eec73ea5db363f625926f60730
  Author: Atousa Duprat <atousa.p at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/ADT/APInt.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/Support/APInt.cpp
    M llvm/unittests/ADT/APIntTest.cpp

  Log Message:
  -----------
  [ADT] Add implementations for avgFloor and avgCeil to APInt (#84431)

Supports both signed and unsigned expansions.

SelectionDAG now calls the APInt implementation of these functions.

Fixes #84211.


  Commit: b19cfb9175223d3e1bb3ef6d49ccd26d0104906c
      https://github.com/llvm/llvm-project/commit/b19cfb9175223d3e1bb3ef6d49ccd26d0104906c
  Author: Carlos Alberto Enciso <47597242+CarlosAlbertoEnciso at users.noreply.github.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst
    M llvm/include/llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h
    M llvm/lib/DebugInfo/LogicalView/LVReaderHandler.cpp
    M llvm/lib/DebugInfo/LogicalView/Readers/LVBinaryReader.cpp
    M llvm/lib/DebugInfo/LogicalView/Readers/LVELFReader.cpp
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/01-wasm-compare-logical-elements.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/01-wasm-print-basic-details.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/01-wasm-select-logical-elements.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/02-wasm-logical-lines.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/03-wasm-incorrect-lexical-scope-typedef.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/04-wasm-missing-nested-enumerators.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/05-wasm-incorrect-lexical-scope-variable.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/06-wasm-full-logical-view.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/definitions.h
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/hello-world-clang.s
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/hello-world.cpp
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/pr-43860-clang.s
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/pr-43860.cpp
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/pr-44884-clang.s
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/pr-44884.cpp
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/pr-46466-clang.s
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/pr-46466.cpp
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/test-clang.s
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/test.cpp
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/README.txt

  Log Message:
  -----------
  [llvm-debuginfo-analyzer] Add support for WebAssembly binary format. (#82588)

Add support for the WebAssembly binary format and be able to generate
logical views.

https://github.com/llvm/llvm-project/issues/69181

The README.txt includes information about how to build the test cases.


  Commit: 117537d97ea12bc39501b91d395e1d4705b23850
      https://github.com/llvm/llvm-project/commit/117537d97ea12bc39501b91d395e1d4705b23850
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp

  Log Message:
  -----------
  [DAG] ExpandIntRes_Shift - pull out repeated getOpcode() calls. NFC.


  Commit: 4fef8c75abb080e6471395492819171fee8261fa
      https://github.com/llvm/llvm-project/commit/4fef8c75abb080e6471395492819171fee8261fa
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] splitVectorOp - share the same SDLoc argument instead of recreating it over and over again.


  Commit: 4528c44d0a82f2b5fe25757b28b185c3c880cfb2
      https://github.com/llvm/llvm-project/commit/4528c44d0a82f2b5fe25757b28b185c3c880cfb2
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M libcxx/include/__format/concepts.h
    M libcxx/include/__tuple/tuple_size.h
    M libcxx/include/chrono
    M libcxx/include/tuple
    M libcxx/include/vector
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_v.verify.cpp

  Log Message:
  -----------
  [libc++] Remove <tuple> include from <__format/concepts.h> (#80214)

This also moves `tuple_size_v` into `tuple_size` as a drive-by.


  Commit: a82ca398ce30c499adf73fdd200352714d9867d0
      https://github.com/llvm/llvm-project/commit/a82ca398ce30c499adf73fdd200352714d9867d0
  Author: Marius Brehler <marius.brehler at iml.fraunhofer.de>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/EmitC/IR/EmitCTypes.td

  Log Message:
  -----------
  [mlir][EmitC] Fix type in example (#85205)


  Commit: 95fef1dfefd5467206e74c089d29806fcd82889b
      https://github.com/llvm/llvm-project/commit/95fef1dfefd5467206e74c089d29806fcd82889b
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-select-cmp.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/select-cmp-reduction.ll
    M llvm/test/Transforms/LoopVectorize/select-cmp-predicated.ll
    M llvm/test/Transforms/LoopVectorize/select-cmp.ll
    M llvm/test/Transforms/LoopVectorize/select-reduction-start-value-may-be-undef-or-poison.ll

  Log Message:
  -----------
  [LV] Improve AnyOf reduction codegen. (#78304)

Update AnyOf reduction code generation to only keep track of the AnyOf
property in a boolean vector in the loop, only selecting either the new
or start value in the middle block.

The patch incorporates feedback from https://reviews.llvm.org/D153697.

This fixes the #62565, as now there aren't multiple uses of the
start/new values.

Fixes https://github.com/llvm/llvm-project/issues/62565

PR: https://github.com/llvm/llvm-project/pull/78304


  Commit: 763be018c57171730f80367e75d994a80f34d2ea
      https://github.com/llvm/llvm-project/commit/763be018c57171730f80367e75d994a80f34d2ea
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/docs/RemoveDIsDebugInfo.md
    M llvm/docs/UserGuides.rst

  Log Message:
  -----------
  [RemoveDIs][NFC] Update docs to reflect new class structure (#85109)

This patch adds some small updates to the LLVM documentation regarding
DbgRecords to accurately describe the current class structure. There are
some more refactorings to come, so this isn't intended to be the final
document update, but it covers the immediate task of updating references
to DPValue that really refer to DbgRecord.


  Commit: 4299c727e4806aa55398ad23da48a401554cd432
      https://github.com/llvm/llvm-project/commit/4299c727e4806aa55398ad23da48a401554cd432
  Author: Tim Northover <tnorthover at apple.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/docs/LanguageExtensions.rst
    M clang/include/clang/Basic/BuiltinsAArch64.def
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGen/builtins-arm64.c
    M clang/test/Sema/builtins-arm64.c

  Log Message:
  -----------
  AArch64: add __builtin_arm_trap

It's useful to provide an indicator code with the trap, which the generic
__builtin_trap can't do. asm("brk #N") is an option, but following that with a
__builtin_unreachable() leads to two traps when the compiler doesn't know the
block can't return. So compiler support like this is useful.


  Commit: 5f774619eac5db73398225a4c924a9c1d437fb40
      https://github.com/llvm/llvm-project/commit/5f774619eac5db73398225a4c924a9c1d437fb40
  Author: Thorsten Schütt <schuett at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
    M llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
    M llvm/include/llvm/Target/GlobalISel/Combine.td
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/combine-overflow.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-addo-zero.mir
    M llvm/test/CodeGen/AArch64/overflow.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/srem.i64.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i64.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/urem.i64.ll

  Log Message:
  -----------
  [GlobalIsel] Combine ADDO (#82927)

Perform the requested arithmetic and produce a carry output in addition
to the normal result.

Clang has them as builtins (__builtin_add_overflow_p). The middle end
has intrinsics for them (sadd_with_overflow).

AArch64: ADDS Add and set flags

On Neoverse V2, they run at half the throughput of basic arithmetic and
have a limited set of pipelines.


  Commit: 2e865353ed6baa35609e94bf5de9f2061df6eacf
      https://github.com/llvm/llvm-project/commit/2e865353ed6baa35609e94bf5de9f2061df6eacf
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
    M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
    M llvm/lib/Transforms/IPO/MergeFunctions.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/lib/Transforms/Scalar/JumpThreading.cpp
    M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
    M llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
    M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
    M llvm/lib/Transforms/Utils/InlineFunction.cpp
    M llvm/lib/Transforms/Utils/Local.cpp
    M llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/lib/Transforms/Utils/MemoryTaggingSupport.cpp
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/lib/Transforms/Utils/ValueMapper.cpp
    M llvm/unittests/IR/DebugInfoTest.cpp

  Log Message:
  -----------
  [RemoveDIs][NFC] Move DPValue::filter -> filterDbgVars (#85208)

This patch changes DPValue::filter to be a non-member method
filterDbgVars. There are two reasons for this: firstly, the name of
DPValue is about to change to DbgVariableRecord, which will result in
every `for` loop that uses DPValue::filter to require a line break. This
is a small thing, but it makes the rename patch more difficult to
review, and is just generally more awkward for what is a fairly common
loop. Secondly, the intent is to later break up the DPValue class into
subclasses, at which point it would be better to have a non-member
function that allows template arguments for the cases we want to filter
with greater specificity.


  Commit: 91e68a415cfa0cb2eb47c8ebe741ed26cf97d24c
      https://github.com/llvm/llvm-project/commit/91e68a415cfa0cb2eb47c8ebe741ed26cf97d24c
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/unittests/Support/KnownBitsTest.cpp

  Log Message:
  -----------
  [Support] KnownBitsTest - don't bother creating lambdas in testBinaryOpExhaustive callbacks if we can just use the raw KnownBits/APIntOps function reference. NFCI.


  Commit: c7cf1350b4c182f7ba54ae42eb77eef94bbf4f35
      https://github.com/llvm/llvm-project/commit/c7cf1350b4c182f7ba54ae42eb77eef94bbf4f35
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

  Log Message:
  -----------
  [DAG] foldAndToUsubsat - convert to use sd_match pattern. NFC.


  Commit: ef8062e35b3aae0e9d8bdee6534511a7b9eb49d0
      https://github.com/llvm/llvm-project/commit/ef8062e35b3aae0e9d8bdee6534511a7b9eb49d0
  Author: Oleg Shyshkov <shyshkov at google.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/include/mlir/Target/Cpp/CppEmitter.h

  Log Message:
  -----------
  [mlir][Target][Cpp] Fix include.

mlir/include/mlir/Target/Cpp/CppEmitter.h:27:45: error: unknown type name 'raw_ostream'; did you mean 'llvm::raw_ostream'?
   27 | LogicalResult translateToCpp(Operation *op, raw_ostream &os,
      |                                             ^~~~~~~~~~~
      |                                             llvm::raw_ostream


  Commit: c9c23261abb7fb8d51ea6110b7cd6418f078ef8b
      https://github.com/llvm/llvm-project/commit/c9c23261abb7fb8d51ea6110b7cd6418f078ef8b
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/SDPatternMatch.h
    M llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp

  Log Message:
  -----------
  [DAG] Add SDPatternMatch m_SMin/m_SMax/m_UMin/m_UMax matchers


  Commit: 6f3f659ce9ab91002b4a490b0ce4b085981383cd
      https://github.com/llvm/llvm-project/commit/6f3f659ce9ab91002b4a490b0ce4b085981383cd
  Author: serge-sans-paille <sguelton at mozilla.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp

  Log Message:
  -----------
  [compiler-rt] Also consider SIGPROF as a synchronous signal (#85188)

Blocking that signal causes inter-blocking for profilers that monitor
threads through that signal.
Fix #83844 and #83561


  Commit: 9e00405419c7a8bb6b8f00454b8fd47a2a400674
      https://github.com/llvm/llvm-project/commit/9e00405419c7a8bb6b8f00454b8fd47a2a400674
  Author: mahesh-attarde <145317060+mahesh-attarde at users.noreply.github.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachinePassManager.h
    M llvm/include/llvm/Target/TargetMachine.h
    M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
    M llvm/lib/Target/X86/X86TargetMachine.h

  Log Message:
  -----------
  [CodeGen][X86] Remove Expensive option copy and delete copy assignment (#85187)

Remove Expensive option copy and delete copy assignment


  Commit: 72d300adad4022b150c24e4a44488d3b9334e999
      https://github.com/llvm/llvm-project/commit/72d300adad4022b150c24e4a44488d3b9334e999
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/Pointer.cpp

  Log Message:
  -----------
  [clang][Interp][NFC] Move a varible declaration in the closest scope


  Commit: 7252d22803c32bf6421e45dcefe6ea1fa51ac774
      https://github.com/llvm/llvm-project/commit/7252d22803c32bf6421e45dcefe6ea1fa51ac774
  Author: Sergio Afonso <safonsof at amd.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOpsInterfaces.td

  Log Message:
  -----------
  [OpenMP][MLIR] NFC: Remove trailing whitespace (#85213)


  Commit: 2e271ceff668dc905dd15e6ca3b52f37602533a9
      https://github.com/llvm/llvm-project/commit/2e271ceff668dc905dd15e6ca3b52f37602533a9
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  Revert 4fef8c75abb080e6471395492819171fee8261fa "[X86] splitVectorOp - share the same SDLoc argument instead of recreating it over and over again."

This appears to have broken the clang-with-thin-lto-ubuntu buildbot somehow (unconfirmed but its a likely candidate)


  Commit: 516ccce7fa2659bf788a817eae73fa369559cc45
      https://github.com/llvm/llvm-project/commit/516ccce7fa2659bf788a817eae73fa369559cc45
  Author: Ingo Müller <ingomueller at google.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/include/mlir/Support/ToolUtilities.h
    M mlir/include/mlir/Tools/mlir-opt/MlirOptMain.h
    M mlir/lib/Support/ToolUtilities.cpp
    M mlir/lib/Tools/lsp-server-support/Transport.cpp
    M mlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp
    M mlir/lib/Tools/mlir-opt/MlirOptMain.cpp
    M mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp
    M mlir/lib/Tools/mlir-translate/MlirTranslateMain.cpp
    R mlir/test/mlir-opt/nearmiss.mlir
    A mlir/test/mlir-opt/split-markers.mlir
    A mlir/test/mlir-pdll/split-markers.pdll
    A mlir/test/mlir-translate/split-markers.mlir
    M mlir/tools/mlir-pdll/mlir-pdll.cpp

  Log Message:
  -----------
  [mlir] Make the split markers of splitAndProcessBuffer configurable. (#84765)

This allows to define custom splitters, which is interesting for
non-MLIR inputs and outputs to `mlir-translate`. For example, one may
use `; -----` as a splitter of `.ll` files. The splitters are now passed
as arguments into `splitAndProcessBuffer`, the input splitter defaulting
to the previous default (`// -----`) and the output splitter defaulting
to the empty string, which also corresponds to the previous default. The
behavior of the input split marker should not change at all; however,
outputs now have one new line *more* than before if there is no splitter
(old: `insertMarkerInOutput = false`, new: `outputSplitMarker = ""`) and
one new line *less* if there is one. The value of the input splitter is
exposed as a command line options of `mlir-translate` and other tools as
an optional value to the previously existing flag `-split-input-file`,
which defaults to the default splitter if not specified; the value of
the output splitter is exposed with the new `-output-split-marker`,
which default to the empty string in `mlir-translate` and the default
splitter in the other tools. In short, the previous usage or omission of
the flags should result in previous behavior (modulo the new lines
mentioned before).


  Commit: b97c12936dd8d520a5565ace3d51a460939a5c61
      https://github.com/llvm/llvm-project/commit/b97c12936dd8d520a5565ace3d51a460939a5c61
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/Descriptor.cpp
    M clang/lib/AST/Interp/Descriptor.h
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/InterpBuiltin.cpp
    M clang/lib/AST/Interp/Opcodes.td
    M clang/test/AST/Interp/c.c

  Log Message:
  -----------
  [clang][Interp] Fix non-primitive ltor casts

This doesn't happen in C++ since it will instead call the
struct's copy constructor. However, in C, this needs to work.


  Commit: 620544192477cb8f4f1a1342e9593f7f15b5ecaf
      https://github.com/llvm/llvm-project/commit/620544192477cb8f4f1a1342e9593f7f15b5ecaf
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoZb.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP400.td
    M llvm/lib/Target/RISCV/RISCVSchedXiangShanNanHu.td
    M llvm/lib/Target/RISCV/RISCVScheduleZb.td

  Log Message:
  -----------
  [RISCV] Add sched classes for Zbb integer min max instructions


  Commit: 818e0272f5142986e8d82d1267fb6aa21cd168a0
      https://github.com/llvm/llvm-project/commit/818e0272f5142986e8d82d1267fb6aa21cd168a0
  Author: Michael Maitland <michaeltmaitland at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/test/CodeGen/RISCV/machine-combiner.ll
    M llvm/test/tools/llvm-mca/RISCV/SiFive7/gpr-bypass.s

  Log Message:
  -----------
  [RISCV] Model integer min max instructions from Zbb execute in late-B ALU

We don't model the early vs late ALU so we just need to remove usage of
SiFivePipeA for these instructions.


  Commit: a551ccee66fc70b5ecd03a2c8b9db5a7330820f0
      https://github.com/llvm/llvm-project/commit/a551ccee66fc70b5ecd03a2c8b9db5a7330820f0
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/Disasm.cpp

  Log Message:
  -----------
  [clang][Interp][NFC] Print primitive global values in dump()


  Commit: 2421e76159536ec4d2224e17fd10dfc4df6a2bc5
      https://github.com/llvm/llvm-project/commit/2421e76159536ec4d2224e17fd10dfc4df6a2bc5
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/test/AST/Interp/complex.cpp

  Log Message:
  -----------
  [clang][Interp][NFC] Add more _Complex tests


  Commit: 21d80859df3fb416efac13ce8178fdf6d6489292
      https://github.com/llvm/llvm-project/commit/21d80859df3fb416efac13ce8178fdf6d6489292
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/Program.cpp
    M clang/lib/AST/Interp/Program.h

  Log Message:
  -----------
  [clang][Interp][NFC] Rename DummyParams to DummyVariables

We create dummy descriptors for variables other than parameters
these days.


  Commit: 7f2167868d8c1cedd3915883412b9c787a2f01db
      https://github.com/llvm/llvm-project/commit/7f2167868d8c1cedd3915883412b9c787a2f01db
  Author: Alexey Bataev <5361294+alexey-bataev at users.noreply.github.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/ext-trunc.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/gather-buildvector-with-minbitwidth-user.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/gather-with-minbith-user.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/getelementptr2.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/reduce-add-i64.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR35777.ll
    M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-multiuse-with-insertelement.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minimum-sizes.ll
    M llvm/test/Transforms/SLPVectorizer/X86/phi-undef-input.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reused-reductions-with-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/same-scalar-in-same-phi-extract.ll
    M llvm/test/Transforms/SLPVectorizer/X86/store-insertelement-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/alt-cmp-vectorize.ll

  Log Message:
  -----------
  [SLP]Improve minbitwidth analysis.

This improves overall analysis for minbitwidth in SLP. It allows to
analyze the trees with store/insertelement root nodes. Also, instead of
using single minbitwidth, detected from the very first analysis stage,
it tries to detect the best one for each trunc/ext subtree in the graph
and use it for the subtree.
Results in better code and less vector register pressure.

Metric: size..text

Program                                                                                                                                                size..text
                                                                                                                                                       results     results0    diff
                                                                      test-suite :: SingleSource/Benchmarks/Adobe-C++/simple_types_loop_invariant.test    92549.00    92609.00  0.1%
                                                                                  test-suite :: External/SPEC/CINT2017speed/625.x264_s/625.x264_s.test   663381.00   663493.00  0.0%
                                                                                   test-suite :: External/SPEC/CINT2017rate/525.x264_r/525.x264_r.test   663381.00   663493.00  0.0%
                                                                                               test-suite :: MultiSource/Benchmarks/Bullet/bullet.test   307182.00   307214.00  0.0%
                                                                             test-suite :: External/SPEC/CFP2017speed/638.imagick_s/638.imagick_s.test  1394420.00  1394484.00  0.0%
                                                                              test-suite :: External/SPEC/CFP2017rate/538.imagick_r/538.imagick_r.test  1394420.00  1394484.00  0.0%
                                                                                test-suite :: External/SPEC/CFP2017rate/510.parest_r/510.parest_r.test  2040257.00  2040273.00  0.0%

                                                                              test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 12396098.00 12395858.00 -0.0%
                                                                                         test-suite :: External/SPEC/CINT2006/445.gobmk/445.gobmk.test   909944.00   909768.00 -0.0%

SingleSource/Benchmarks/Adobe-C++/simple_types_loop_invariant - 4 scalar
instructions remain scalar (good).
Spec2017/x264 - the whole function idct4x4dc is vectorized using <16
x i16> instead of <16 x i32>, also zext/trunc are removed. In other
places last vector zext/sext removed and replaced by
extractelement + scalar zext/sext pair.
MultiSource/Benchmarks/Bullet/bullet - reduce or <4 x i32> replaced by
reduce or <4 x i8>
Spec2017/imagick - Removed extra zext from 2 packs of the operations.
Spec2017/parest - Removed extra zext, replaced by extractelement+scalar
zext
Spec2017/blender - the whole bunch of vector zext/sext replaced by
extractelement+scalar zext/sext, some extra code vectorized in smaller
types.
Spec2006/gobmk - fixed cost estimation, some small code remains scalar.

Original Pull Request: https://github.com/llvm/llvm-project/pull/84334

The patch has the same functionality (no test changes, no changes in
benchmarks) as the original patch, just has some compile time
improvements + fixes for xxhash unittest, discovered earlier in the
previous version of the patch.

Reviewers:

Pull Request: https://github.com/llvm/llvm-project/pull/84536


  Commit: a99b912c9b74f6ef91786b4dfbc25160c27d3b41
      https://github.com/llvm/llvm-project/commit/a99b912c9b74f6ef91786b4dfbc25160c27d3b41
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/Descriptor.cpp
    M clang/lib/AST/Interp/Descriptor.h
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/Pointer.h
    M clang/lib/AST/Interp/Program.cpp
    M clang/test/AST/Interp/arrays.cpp
    M clang/test/AST/Interp/literals.cpp

  Log Message:
  -----------
  [clang][Interp] Create dummy pointers for external variables

This way we can use their address, which is necessary in some
scenarios. This requires us to create different descriptors
for dummy arrays so we can get the diagnostics right.


  Commit: 611d5aec1de59fe567162158347c6c2ea29ff4d8
      https://github.com/llvm/llvm-project/commit/611d5aec1de59fe567162158347c6c2ea29ff4d8
  Author: Jie Fu <jiefu at tencent.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/InterpBuiltin.cpp

  Log Message:
  -----------
  [clang] Fix -Wunused-variable in InterpBuiltin.cpp (NFC)

llvm-project/clang/lib/AST/Interp/InterpBuiltin.cpp:1332:21:
error: unused variable 'SrcDesc' [-Werror,-Wunused-variable]
  const Descriptor *SrcDesc = Src.getFieldDesc();
                    ^
1 error generated.


  Commit: 160693dbde2837af4237954edd38b08b2bb17a29
      https://github.com/llvm/llvm-project/commit/160693dbde2837af4237954edd38b08b2bb17a29
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp

  Log Message:
  -----------
  [clang][Interp][NFC] allocateLocalPrimitive never fails

It returns the local offset, not an std::optional.


  Commit: 098520244f90e9330d3ae78bd1061aee2e3688c0
      https://github.com/llvm/llvm-project/commit/098520244f90e9330d3ae78bd1061aee2e3688c0
  Author: zhongyunde 00443407 <zhongyunde at huawei.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
    M llvm/test/Transforms/InstCombine/powi.ll

  Log Message:
  -----------
  [InstCombine] optimize powi(X,Y) * X with Ofast

Try to transform the powi(X, Y) * X into powi(X, Y+1) with Ofast

For this case, when the Y is 3, then powi(X, 4) is replaced by
X2 = X * X; X2 * X2 in the further step.
Similar to D109954, who requires reassoc.

Fixes https://github.com/llvm/llvm-project/issues/69862.


  Commit: 1752b9e4c74bda8bb312dadec0dae007c877e28c
      https://github.com/llvm/llvm-project/commit/1752b9e4c74bda8bb312dadec0dae007c877e28c
  Author: zhongyunde 00443407 <zhongyunde at huawei.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
    M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp

  Log Message:
  -----------
  [InstCombine] create a helper function foldPowiReassoc, NFC


  Commit: 2d6988a45e29aec9242f96b3ab02a3c3699bc3ec
      https://github.com/llvm/llvm-project/commit/2d6988a45e29aec9242f96b3ab02a3c3699bc3ec
  Author: zhongyunde 00443407 <zhongyunde at huawei.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/IR/PatternMatch.h
    M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
    M llvm/test/Transforms/InstCombine/powi.ll

  Log Message:
  -----------
  [InstCombine] Add restrict reassoc for the operands of fmul

According the discussion, except the fmul itself, all its operands
should also have reassoc flag.
Add new API m_AllowReassoc to check reassoc flag


  Commit: f7bebc191484f889272a727584b23697f369e952
      https://github.com/llvm/llvm-project/commit/f7bebc191484f889272a727584b23697f369e952
  Author: Janek van Oirschot <5994977+JanekvO at users.noreply.github.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/docs/AMDGPUUsage.rst
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    A llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCExpr.cpp
    A llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCExpr.h
    M llvm/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt
    A llvm/test/MC/AMDGPU/mcexpr_amd.s
    A llvm/test/MC/AMDGPU/mcexpr_amd_err.s

  Log Message:
  -----------
  Reland [AMDGPU] Add AMDGPU specific variadic operation MCExprs (#84562)

Adds AMDGPU specific variadic MCExpr operations 'max' and 'or'. 

Relands #82022 with fixes


  Commit: 486332af6bd3df32423c107ced2653908a1f0fb4
      https://github.com/llvm/llvm-project/commit/486332af6bd3df32423c107ced2653908a1f0fb4
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/MCTargetDesc/BUILD.gn

  Log Message:
  -----------
  [gn build] Port f7bebc191484


  Commit: 2cd19df792056bbac38ed64c028e335d0c7ef05d
      https://github.com/llvm/llvm-project/commit/2cd19df792056bbac38ed64c028e335d0c7ef05d
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/test/AST/Interp/literals.cpp

  Log Message:
  -----------
  [clang][Interp] Allow visiting extern variables

If the variable is additionally const(expr), visit them like normal
but omit the initializer.


  Commit: 589c7abb03448cf00c94add3380b5e019ed5f504
      https://github.com/llvm/llvm-project/commit/589c7abb03448cf00c94add3380b5e019ed5f504
  Author: Kirill Stoimenov <kstoimenov at google.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-select-cmp.ll
    M llvm/test/Transforms/LoopVectorize/RISCV/select-cmp-reduction.ll
    M llvm/test/Transforms/LoopVectorize/select-cmp-predicated.ll
    M llvm/test/Transforms/LoopVectorize/select-cmp.ll
    M llvm/test/Transforms/LoopVectorize/select-reduction-start-value-may-be-undef-or-poison.ll

  Log Message:
  -----------
  Revert "[LV] Improve AnyOf reduction codegen. (#78304)"

Broke sanitizer bots: https://lab.llvm.org/buildbot/#/builders/74/builds/26697

This reverts commit 95fef1dfefd5467206e74c089d29806fcd82889b.


  Commit: 6ae4fcfd4c90f4ac7093d9bd901e75b2d5152eb9
      https://github.com/llvm/llvm-project/commit/6ae4fcfd4c90f4ac7093d9bd901e75b2d5152eb9
  Author: Antonio Frighetto <me at antoniofrighetto.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp
    M llvm/test/Transforms/SCCP/add-nuw-nsw-flags.ll

  Log Message:
  -----------
  [SCCP] Extend `visitBinaryOperator` to overflowing binary ops

Leverage more refined ranges results when handling overflowing
binary operators.


  Commit: a75d0a3dbab6215db228cedf5f2458e251c30637
      https://github.com/llvm/llvm-project/commit/a75d0a3dbab6215db228cedf5f2458e251c30637
  Author: Alastair Houghton <ahoughton at apple.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M lldb/cmake/caches/Apple-lldb-Linux.cmake

  Log Message:
  -----------
  [LLDB] Add lldb-python-scripts to the things installed on Linux. (#85080)


  Commit: d83660827f0cb0054dafef6568ea2fa5b788a39c
      https://github.com/llvm/llvm-project/commit/d83660827f0cb0054dafef6568ea2fa5b788a39c
  Author: Andrew Brown <andrew.brown at intel.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M openmp/runtime/src/z_Linux_util.cpp

  Log Message:
  -----------
  [openmp][wasm] Fix microtask type mismatch (#84355)

When OpenMP is compiled for WebAssembly (see #71297), it invokes a
microtask via a `switch` statement that dispatches to the `void *`
microtask pointer with spelled-out arguments (not varargs). As #83329
points out, however, this can result in a type mismatch when the
indirect call is executed by WebAssembly; WebAssembly expects the called
pointer to have the precise type of the call site. This change fixes the
issue by bringing back the approach in [D142593] of type-casting all the
`switch` arms to the precise type. This fixes #83329.

[D142593]: https://reviews.llvm.org/D142593


  Commit: 68360dc85507350c9d38bcc6916debe29fd58fee
      https://github.com/llvm/llvm-project/commit/68360dc85507350c9d38bcc6916debe29fd58fee
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/Interp.h
    A clang/test/AST/Interp/c23.c

  Log Message:
  -----------
  [clang][Interp] Don't abort on float div-by-zero

The result in that case can still be computed, and it's inf.


  Commit: ea2cfcc15b4a0c5e823ed173ac8701d1ba6081eb
      https://github.com/llvm/llvm-project/commit/ea2cfcc15b4a0c5e823ed173ac8701d1ba6081eb
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/lib/Lower/CMakeLists.txt
    A flang/lib/Lower/OpenMP/ClauseT.h
    A flang/lib/Lower/OpenMP/Clauses.cpp
    A flang/lib/Lower/OpenMP/Clauses.h

  Log Message:
  -----------
  [flang][OpenMP] Implement flexible OpenMP clause representation (#81621)

The new set of classes representing OpenMP classes mimics the contents
of parser::OmpClause, but differs in a few aspects:
- it can be easily created, copied, etc.
- is based on semantics::SomeExpr instead of parser objects.

This set of classes is geared towards a language-agnostic representation
of OpenMP clauses. While the class members are still based on flang's
`parser::OmpClause`, the classes themselves are actually C++ templates
parameterized with types essential to represent necessary information.
The two parameters are
- `IdType`: the type that can represent object's identity (for flang it
will be `semantics::Symbol *`),
- `ExprType`: the type that can represent expressions, arithmetic and
object references (`semantics::MaybeExpr` in flang).

The templates are defined in a namespace `tomp` (to distinguish it from
`omp`).

This patch introduces file "Clauses.cpp", which contains instantiations
of all of the templates for flang. The instantiations are members of
namespace `omp`, and include an all-encompassing variant class
`omp::Clause`, which is the analog of `parser::OmpClause`.
The class `OmpObject` is represented by `omp::Object`, which contains
the symbol associated with the object, and `semantics::MaybeExpr`
representing the designator for the symbol reference. For each specific
clause in the variant `parser::OmpClause`, there exists a `make`
function that will generate the corresponding `omp::Clause` from it. The
intent was to use the make functions as variant visitors. The creation
of a clause instance would then follow the pattern:
```
omp::Clause clause = std::visit([](auto &&s) { return make(s, semaCtx); }, parserClause.u);
```

If a new clause `foo` is added in the future, then:
- a new template `tomp::FooT` representing the clause needs to be added
to ClauseT.h,
- a new instance needs to be created in flang, this can be as simple as
`using Foo = tomp::FooT<...>`,
- a new make function needs to be implemented to create object of class
Foo from `parser::OmpClause::Foo`.

This patch only introduces the new classes, they are not yet used
anywhere.

[Clause representation 1/6]


  Commit: 65c0143296e3d8aafe819cbae4a48a3d53f8e7b3
      https://github.com/llvm/llvm-project/commit/65c0143296e3d8aafe819cbae4a48a3d53f8e7b3
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/InterpBuiltin.cpp
    A clang/test/AST/Interp/ms.cpp

  Log Message:
  -----------
  [clang][Interp] Fix rotate builtins with differently-typed arguments

We were assuming (and asserting) that both arguments have the same
type, but at least for the ms versions, that's not always the case.


  Commit: 23323e2837d3282c194df6239a7f1a5494c17907
      https://github.com/llvm/llvm-project/commit/23323e2837d3282c194df6239a7f1a5494c17907
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll

  Log Message:
  -----------
  [TargetLowering][RISCV] Propagate fastmath flags for the vector operations emitted in expandVecReduce. (#85164)

We used the fastmath flags for any scalar ops created, but not vector.


  Commit: 8481fb1698a4a54b3965a1654046df736a57e144
      https://github.com/llvm/llvm-project/commit/8481fb1698a4a54b3965a1654046df736a57e144
  Author: Zahi Moudallal <zahi at openai.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
    M mlir/test/Target/LLVMIR/rocdl.mlir

  Log Message:
  -----------
  [MLIR][ROCDL] Fix BallotOp LLVM translation and add doc (#85116)

This modifies the return type of the intrinsic call to handle 32 and 64
bits
properly and document the MLIR operation.


  Commit: 92a09c0165b87032e1bd05020a78ed845cf35661
      https://github.com/llvm/llvm-project/commit/92a09c0165b87032e1bd05020a78ed845cf35661
  Author: Sam McCall <sam.mccall at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/Features.def
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/Type.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/lib/Sema/SemaAttr.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/Sema/nullability.c
    M clang/test/SemaCXX/nullability.cpp

  Log Message:
  -----------
  [clang][nullability] allow _Nonnull etc on nullable class types (#82705)

This enables clang and external nullability checkers to make use of
these annotations on nullable C++ class types like unique_ptr.

These types are recognized by the presence of the _Nullable attribute.
Nullable standard library types implicitly receive this attribute.

Existing static warnings for raw pointers are extended to smart
pointers:

- nullptr used as return value or argument for non-null functions
  (`-Wnonnull`)
- assigning or initializing nonnull variables with nullable values
  (`-Wnullable-to-nonnull-conversion`)

It doesn't implicitly add these attributes based on the assume_nonnull
pragma, nor warn on missing attributes where the pragma would apply
them.
I'm not confident that the pragma's current behavior will work well for
C++ (where type-based metaprogramming is much more common than C/ObjC).
We'd like to revisit this once we have more implementation experience.

Support can be detected as `__has_feature(nullability_on_classes)`.
This is needed for back-compatibility, as previously clang would issue a
hard error when _Nullable appears on a smart pointer.

UBSan's `-fsanitize=nullability` will not check smart-pointer types.
It can be made to do so by synthesizing calls to `operator bool`, but
that's left for future work.

Discussion:
https://discourse.llvm.org/t/rfc-allowing-nonnull-etc-on-smart-pointers/77201/26


  Commit: 6588ac3017df0095b160510f56dcb3e4c32a09f0
      https://github.com/llvm/llvm-project/commit/6588ac3017df0095b160510f56dcb3e4c32a09f0
  Author: Jonas Paulsson <paulson1 at linux.ibm.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/CodeGen/MachineCombiner.cpp
    M llvm/test/CodeGen/RISCV/umulo-128-legalisation-lowering.ll
    M llvm/test/CodeGen/X86/bitcast-and-setcc-256.ll

  Log Message:
  -----------
  [MachineCombiner] Don't ignore PHI depths (#82025)

The depths of the Root and the NewRoot are to be compared in
MachineCombiner::improvesCriticalPathLen(), and while the call to
BlockTrace.getInstrCycles(*Root) includes the Depth of a PHI, for some
reason PHI nodes have been ignored in getOperandDef(). 

This patch removes the special handling of PHIs in getOperandDef() so that
Root and NewRoot get a fair comparison. This does not affect loop headers
as MachineTraceMetrics handles that case by ignoring incoming PHI edges.


  Commit: 0b0798b7024843db462ac2fa903c94308d6654eb
      https://github.com/llvm/llvm-project/commit/0b0798b7024843db462ac2fa903c94308d6654eb
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M .github/CODEOWNERS

  Log Message:
  -----------
  [NFC] Subscribe myself to changes to {lib,test}/AST/Interp/


  Commit: 797994da3c3b0ff40201ac0045740370d2c39cbb
      https://github.com/llvm/llvm-project/commit/797994da3c3b0ff40201ac0045740370d2c39cbb
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/test/AST/Interp/complex.c

  Log Message:
  -----------
  [clang][Interp] Strip _Atomic from _Complex types

... when doing binary operations on them.


  Commit: 52557bce73f64df5da13d42dd97b57fbd4ab1b12
      https://github.com/llvm/llvm-project/commit/52557bce73f64df5da13d42dd97b57fbd4ab1b12
  Author: Jason Molenda <jmolenda at apple.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
    A lldb/test/API/macosx/tbi-honored/Makefile
    A lldb/test/API/macosx/tbi-honored/TestTBIHonored.py
    A lldb/test/API/macosx/tbi-honored/main.c

  Log Message:
  -----------
  [lldb] [Mach-O] ProcessMachCore needs to strip TBI data from addrs (#84998)

Darwin AArch64 application processors are run with Top Byte Ignore mode
enabled so metadata may be stored in the top byte, it needs to be
ignored when reading/writing memory. David Spickett handled this already
in the base class Process::ReadMemory but ProcessMachCore overrides that
method (to avoid the memory cache) and did not pick up the same change.
I add a test case that creates a pointer with metadata in the top byte
and dereferences it with a live process and with a corefile.

rdar://123784501


  Commit: 6479218932117ab36cba578bb458ee7c0fb4bf0a
      https://github.com/llvm/llvm-project/commit/6479218932117ab36cba578bb458ee7c0fb4bf0a
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/Clauses.h

  Log Message:
  -----------
  Fix -Werror build

In file included from ../llvm-project/flang/lib/Lower/OpenMP/Clauses.cpp:9:
../llvm-project/flang/lib/Lower/OpenMP/Clauses.h:195:17: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]
  195 |   return Clause{id, specific, source};
      |                 ^~~~~~~~~~~~
      |                 {           }


  Commit: 58a20a0b96a29686d78d3431c85ee378bf51e98d
      https://github.com/llvm/llvm-project/commit/58a20a0b96a29686d78d3431c85ee378bf51e98d
  Author: Florian Mayer <fmayer at google.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/MemoryTaggingSupport.h
    M llvm/lib/Target/AArch64/AArch64StackTagging.cpp
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Utils/MemoryTaggingSupport.cpp
    M llvm/test/CodeGen/AArch64/stack-tagging-initializer-merge.ll
    M llvm/test/CodeGen/AArch64/stack-tagging-stack-coloring.ll
    M llvm/test/CodeGen/AArch64/stack-tagging-untag-placement.ll

  Log Message:
  -----------
  [MTE] fix bug that prevented stack coloring with MTE (#84422)


  Commit: d7f71a330d42ae8ac9048a03bb4816d07038dca6
      https://github.com/llvm/llvm-project/commit/d7f71a330d42ae8ac9048a03bb4816d07038dca6
  Author: Ingo Müller <ingomueller at google.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/test/mlir-opt/split-markers.mlir

  Log Message:
  -----------
  [mlir] Fix RUN command introduced in 516ccce7fa (#84765) (NFC)

There were two problems:
* The `%s` argument to `FileCheck` was repeated.
* A single dash for `-check-prefix` was used but we need two dashes.


  Commit: 22eb8000d22efe1bf06518e84af84d34ff6375de
      https://github.com/llvm/llvm-project/commit/22eb8000d22efe1bf06518e84af84d34ff6375de
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/include/flang/Optimizer/CodeGen/CodeGen.h
    M flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp

  Log Message:
  -----------
  [flang][NFC] Expose patterns from PreCGRewrite pass (#85156)

Expose patterns so they can be reused in other passes.


  Commit: 0adccd1a7fd8e30650f76bd33471de28b7939455
      https://github.com/llvm/llvm-project/commit/0adccd1a7fd8e30650f76bd33471de28b7939455
  Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M lldb/include/lldb/Target/Language.h
    M lldb/source/Breakpoint/BreakpointResolver.cpp
    M lldb/source/Core/Debugger.cpp
    M lldb/source/Target/Language.cpp
    M lldb/source/Target/TargetProperties.td

  Log Message:
  -----------
  [lldb] Allow languages to filter breakpoints set by line (#83908)

Some languages may create artificial functions that have no real user
code, even though there is line table information for them. One such
case is with coroutine code that receives the CoroSplitter
transformation in LLVM IR. That code transformation creates many
different Functions, cloning one Instruction into many Instructions in
many different Functions and copying the associated debug locations.

It would be difficult to make that pass delete debug locations of cloned
instructions in a language agnostic way (is it even possible?), but LLDB
can ignore certain locations by querying its Language APIs and having it
decide based on, for example, mangling information.


  Commit: 0f252e7bd838d201bad89cda5b0e40a1fdeb96ca
      https://github.com/llvm/llvm-project/commit/0f252e7bd838d201bad89cda5b0e40a1fdeb96ca
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
    M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp

  Log Message:
  -----------
  [ORC][MachO] Allow multiple LC_BUILD_VERSION commands.

No testcase: I'm still thinking about the best way to test this.


  Commit: 400518526849b8e03400449502a2da67db40157c
      https://github.com/llvm/llvm-project/commit/400518526849b8e03400449502a2da67db40157c
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M libcxx/utils/ci/docker-compose.yml

  Log Message:
  -----------
  [libc++][CI] Updates the version number of the latest release.


  Commit: 5a77bdc3e7d60c1724054d09a7dc7c67fb58ea9a
      https://github.com/llvm/llvm-project/commit/5a77bdc3e7d60c1724054d09a7dc7c67fb58ea9a
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/Clauses.cpp

  Log Message:
  -----------
  Fix NDEBUG build: guard call to `dump` with #if/#endif


  Commit: 8fe3e70e810b409dce36f6d415e86f0f9b1cf22d
      https://github.com/llvm/llvm-project/commit/8fe3e70e810b409dce36f6d415e86f0f9b1cf22d
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M lld/ELF/Writer.cpp
    M lld/test/ELF/linkerscript/discard-section.s

  Log Message:
  -----------
  [ELF] Eliminate symbols demoted due to /DISCARD/ discarded sections (#85167)

#69295 demoted Defined symbols relative to discarded sections.
If such a symbol is unreferenced, the desired behavior is to
eliminate it from .symtab just like --gc-sections discarded
definitions.
Linux kernel's CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y configuration expects
that the unreferenced `unused` is not emitted to .symtab
(https://github.com/ClangBuiltLinux/linux/issues/2006).

For relocations referencing demoted symbols, the symbol index restores
to 0 like older lld (`R_X86_64_64 0` in `discard-section.s`).

Fix #85048


  Commit: 63d53ee3b07e3b13e176eb60d8c02dea365c5ddb
      https://github.com/llvm/llvm-project/commit/63d53ee3b07e3b13e176eb60d8c02dea365c5ddb
  Author: Fangrui Song <i at maskray.me>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/include/clang/Driver/ToolChain.h
    M clang/lib/Driver/ToolChain.cpp
    M clang/test/Driver/clang-g-opts.c

  Log Message:
  -----------
  Revert "[Driver] Default riscv*- triples to -fdebug-default-version=4" (#84119)

This reverts commit bbc0f99f3bc96f1db16f649fc21dd18e5b0918f6
(https://reviews.llvm.org/D157663).

With this change, `-g` for the next major release 19.1 will generate
R_RISCV_SET_ULEB128/R_RISCV_SUB_ULEB128 relocations, which require
lld>=18 or binutils>=2.41.
binutils 2.41 is relatively new, but GCC has been producing
R_RISCV_SET_ULEB128/R_RISCV_SUB_ULEB128 for some time now.


  Commit: 5afb937d8a30445642ccaf33866ee4cdd0713222
      https://github.com/llvm/llvm-project/commit/5afb937d8a30445642ccaf33866ee4cdd0713222
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M libcxx/include/fstream
    A libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/setbuf.pass.cpp

  Log Message:
  -----------
  [libc++] Implements filebuf unbuffered. (#76629)

When calling setbuf(nullptr, 0) before performing file operations it
should set the file to unbuffered mode. Currently the code avoids
buffering internally, but the underlying stream still can buffer.

This is addressed by disabling the buffering of the underlying stream.

Fixes: https://github.com/llvm/llvm-project/issues/60509


  Commit: f2d02ce04fe679c7cc806722a3c4a303f970f95f
      https://github.com/llvm/llvm-project/commit/f2d02ce04fe679c7cc806722a3c4a303f970f95f
  Author: Hans Wennborg <hans at chromium.org>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/test/Instrumentation/InstrProfiling/Coro/coro-split-musttail6.ll
    M llvm/test/Instrumentation/InstrProfiling/Coro/coro-split-musttail7.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail6.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail7.ll

  Log Message:
  -----------
  [Coroutines] Remove some stale FIXMEs (NFC)

The calls are already musttail.


  Commit: 76400d2979c92cc0393628dea50e26374d559775
      https://github.com/llvm/llvm-project/commit/76400d2979c92cc0393628dea50e26374d559775
  Author: Heejin Ahn <aheejin at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h

  Log Message:
  -----------
  [WebAssembly] Move getLibcallSignature into WebAssembly namespace (NFC) (#85171)

These are Wasm only functions so they are better be within `WebAssembly`
namespace rather than the `llvm` namespace which includes the whole
LLVM.

Also this removes `extern` keywords which are not strictly necessary.


  Commit: 611c62b30d160375b46b7afedc04965ee6f67d1a
      https://github.com/llvm/llvm-project/commit/611c62b30d160375b46b7afedc04965ee6f67d1a
  Author: Ulrich Weigand <ulrich.weigand at de.ibm.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M openmp/libomptarget/plugins-nextgen/common/include/GlobalHandler.h
    M openmp/libomptarget/plugins-nextgen/common/include/Utils/ELF.h
    M openmp/libomptarget/plugins-nextgen/common/src/GlobalHandler.cpp
    M openmp/libomptarget/plugins-nextgen/common/src/Utils/ELF.cpp
    M openmp/libomptarget/plugins-nextgen/cuda/src/rtl.cpp

  Log Message:
  -----------
  [libomptarget] Support BE ELF files in plugins-nextgen (#85246)

Code in plugins-nextgen reading ELF files is currently hard-coded to
assume a 64-bit little-endian ELF format. Unfortunately, this assumption
is even embedded in the interface between GlobalHandler and Utils/ELF
routines, which use ELF64LE types.

To fix this, I've refactored the interface to use generic types, in
particular by using (a unique_ptr to) ObjectFile instead of
ELF64LEObjectFile, and ELFSymbolRef instead of ELF64LE::Sym.

This allows properly templating over multiple ELF format variants inside
Utils/ELF; specifically, this patch adds support for 64-bit big-endian
ELF files in addition to 64-bit little-endian files.


  Commit: f795d1a8b1d1e51d2bc815d5bbed8099b37da0b7
      https://github.com/llvm/llvm-project/commit/f795d1a8b1d1e51d2bc815d5bbed8099b37da0b7
  Author: Paschalis Mpeis <paschalis.mpeis at arm.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/AArch64/slp-frem.ll

  Log Message:
  -----------
  [AArch64][LV][SLP] Vectorizers use call cost for vectorized frem  (#82488)

getArithmeticInstrCost is used by both LoopVectorizer and SLPVectorizer
to compute the cost of frem, which becomes a call cost on AArch64 when
TLI has a vector library function.

Add tests that do SLP vectorization for code that contains 2x double and
4x float frem instructions.


  Commit: 5cf8cf3ac80e1edce72bc4120b75a31ca609a82c
      https://github.com/llvm/llvm-project/commit/5cf8cf3ac80e1edce72bc4120b75a31ca609a82c
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/lib/Sema/SemaOpenMP.cpp

  Log Message:
  -----------
  [clang][OpenMP] Fix directive in ActOnOpenMPTargetParallelForSimdDire… (#85217)

…ctive

The function `ActOnOpenMPTargetParallelForSimdDirective` gets the number
of capture levels for OMPD_target_parallel_for, whereas the intended
directive is OMPD_target_parallel_for_simd.


  Commit: d92d2e2b66ab14ad8f41c7af617a18166b2d54ae
      https://github.com/llvm/llvm-project/commit/d92d2e2b66ab14ad8f41c7af617a18166b2d54ae
  Author: Stanislav Mekhanoshin <rampitec at users.noreply.github.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp

  Log Message:
  -----------
  [AMDGPU] Remove trailing whitespaces in SIRegisterInfo.cpp. NFC. (#85269)


  Commit: 15788e8dd38ffaa4336eda4c03079b6ea4d7df6d
      https://github.com/llvm/llvm-project/commit/15788e8dd38ffaa4336eda4c03079b6ea4d7df6d
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/module/__fortran_builtins.f90
    A flang/test/Lower/Intrinsics/c_ptr_eq_ne.f90

  Log Message:
  -----------
  [flang] Lower c_ptr_eq/ne for iso_c_binding (#85135)

Comparing c_ptr type for equality or inequality is raising an error. 

```
not yet implemented: intrinsic module procedure: c_ptr_eq
```
or this one for inequality
```
not yet implemented: intrinsic module procedure: c_ptr_ne
```

This patch adds a lowering for them and fix the `__fortran_builtins.f90`
module for inequality.


  Commit: 4e232cab0debff5dbb1906ae6b73c3d9b6cea7cd
      https://github.com/llvm/llvm-project/commit/4e232cab0debff5dbb1906ae6b73c3d9b6cea7cd
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Support/APInt.cpp

  Log Message:
  -----------
  [APInt] Implement average functions without sign/zero-extension. NFC. (#85212)

Removing the extension to FullWidth should make them much more efficient
in the 64-bit case, because 65-bit APInts use a separate allocation for
their bits.


  Commit: 4c8714efc50eaefc59a0003f6aa44f666feb0140
      https://github.com/llvm/llvm-project/commit/4c8714efc50eaefc59a0003f6aa44f666feb0140
  Author: Ulrich Weigand <ulrich.weigand at de.ibm.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M openmp/libomptarget/plugins-nextgen/common/include/GlobalHandler.h
    M openmp/libomptarget/plugins-nextgen/common/include/Utils/ELF.h
    M openmp/libomptarget/plugins-nextgen/common/src/GlobalHandler.cpp
    M openmp/libomptarget/plugins-nextgen/common/src/Utils/ELF.cpp
    M openmp/libomptarget/plugins-nextgen/cuda/src/rtl.cpp

  Log Message:
  -----------
  Revert "[libomptarget] Support BE ELF files in plugins-nextgen (#85246)"

This reverts commit 611c62b30d160375b46b7afedc04965ee6f67d1a.


  Commit: 2c80a9accb18f3eeb1e0c1bd09a980fb2f2dc2d5
      https://github.com/llvm/llvm-project/commit/2c80a9accb18f3eeb1e0c1bd09a980fb2f2dc2d5
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
    M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp

  Log Message:
  -----------
  [ORC][MachO] Pluralize member name.

This member switched from an optional to a vector in 0f252e7bd83.


  Commit: 59ab86bb2f135c42ab100416f1a7ada7c12c1d50
      https://github.com/llvm/llvm-project/commit/59ab86bb2f135c42ab100416f1a7ada7c12c1d50
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
    M bolt/lib/Target/X86/X86MCPlusBuilder.cpp

  Log Message:
  -----------
  [BOLT] Clear operands when creating new instructions. NFCI (#85191)

Reset operand list whenever we create a new instruction via a parameter
passed by reference. Most functions were already doing this, but there
are several places missing the reset. Potentially, if we don not clear
the list it could lead to invalid instruction operands. But the existing
code is unaffected.


  Commit: 4b5b7eca0e5e4e10acb42a70cb0af8300a3b2dfc
      https://github.com/llvm/llvm-project/commit/4b5b7eca0e5e4e10acb42a70cb0af8300a3b2dfc
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M cross-project-tests/debuginfo-tests/dexter/dex/debugger/Debuggers.py
    A cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio2022.py
    M cross-project-tests/debuginfo-tests/dexter/feature_tests/subtools/list-debuggers/list-debuggers.test

  Log Message:
  -----------
  [Dexter] Add VisualStudio2022 support to Dexter (#85248)

Dexter currently supports Visual Studio 2015/2017/2019, but not 2022;
this patch adds support for 2022.


  Commit: 4f873730d6ac1a8496cdef939cc451f178a864ee
      https://github.com/llvm/llvm-project/commit/4f873730d6ac1a8496cdef939cc451f178a864ee
  Author: Thorsten Schütt <schuett at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    A llvm/test/CodeGen/AArch64/extract-vector-elt.ll

  Log Message:
  -----------
  precommit test


  Commit: b058b7e6280a732f6fcbc582f8b6511a36fb96e8
      https://github.com/llvm/llvm-project/commit/b058b7e6280a732f6fcbc582f8b6511a36fb96e8
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/test/InstallAPI/basic.test
    M clang/tools/clang-installapi/Options.cpp
    M clang/tools/clang-installapi/Options.h

  Log Message:
  -----------
  [InstallAPI] capture compatibility versions (#85261)


  Commit: 8e3c0a299f7eb8019f70420bb9d5362731ba13fe
      https://github.com/llvm/llvm-project/commit/8e3c0a299f7eb8019f70420bb9d5362731ba13fe
  Author: Valentin Clement (バレンタイン クレメン) <clementval at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/module/__fortran_builtins.f90
    R flang/test/Lower/Intrinsics/c_ptr_eq_ne.f90

  Log Message:
  -----------
  Revert "[flang] Lower c_ptr_eq/ne for iso_c_binding" (#85293)

Reverts llvm/llvm-project#85135

There is an issue with module file generation in flang build.


  Commit: 95c1313f253cd343ee0b20cb7af7c71d904d96be
      https://github.com/llvm/llvm-project/commit/95c1313f253cd343ee0b20cb7af7c71d904d96be
  Author: Nikolas Klauser <nikolasklauser at berlin.de>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M libcxx/include/__functional/hash.h
    M libcxx/include/__tuple/sfinae_helpers.h
    M libcxx/include/__type_traits/conjunction.h
    M libcxx/include/array
    M libcxx/include/coroutine
    M libcxx/include/experimental/memory
    M libcxx/include/optional
    M libcxx/include/variant
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv

  Log Message:
  -----------
  [libc++] Remove a few includes from <__functional/hash.h> (#83254)

This also moves `__all` from `sfinae_helpers.h` to `conjunction.h`.


  Commit: 8c4546f350fbce938d8fbc85d9e353d011f3f673
      https://github.com/llvm/llvm-project/commit/8c4546f350fbce938d8fbc85d9e353d011f3f673
  Author: dyung <douglas.yung at sony.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp

  Log Message:
  -----------
  Revert "[compiler-rt] Also consider SIGPROF as a synchronous signal (#85188)" (#85296)

This reverts commit 6f3f659ce9ab91002b4a490b0ce4b085981383cd.

This change is causing TSAN failures on a bot as reported in #85188:
https://lab.llvm.org/buildbot/#/builders/247/builds/15279


  Commit: ffa2810f7baffaa747b1782ca44207c12d0dd222
      https://github.com/llvm/llvm-project/commit/ffa2810f7baffaa747b1782ca44207c12d0dd222
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll

  Log Message:
  -----------
  [RISCV] Optimize lowering of VECREDUCE_FMINIMUM/VECREDUCE_FMAXIMUM. (#85165)

Use a normal min/max reduction that doesn't propagate nans and force
the result to nan at the end if any elements were nan.


  Commit: 25959310a50240c320283d1e4b23046fed152313
      https://github.com/llvm/llvm-project/commit/25959310a50240c320283d1e4b23046fed152313
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
    M llvm/test/Transforms/IndVarSimplify/iv-widen-elim-ext.ll

  Log Message:
  -----------
  [IndVars] Support shl by constant and or disjoint in getExtendedOperandRecurrence. (#84282)

We can treat a shift by constant as a multiply by a power of 2
and we can treat an or disjoint as a 'add nsw nuw'.

I've added a helper struct similar to a struct used in
ScalarEvolution.cpp
to represent the opcode, operands, and NSW/NUW flags for normal
add/sub/mul
and shl/or that are being treated as mul/add.

I don't think we need to teach cloneIVUser about this. It will continue
to clone them using cloneBitwiseIVUser. After the cloning we will ask
for the SCEV expression for the cloned IV user and verify that it
matches
the AddRec returned by getExtendedOperandRecurrence. Since SCEV also
knows how to convert shl to mul and or disjoint to add nsw nuw, this
should
usually match. If it doesn't match, the cloned IV user will be deleted.


  Commit: b6193a2dc2c7e1fb278161873e8f01f728412f4b
      https://github.com/llvm/llvm-project/commit/b6193a2dc2c7e1fb278161873e8f01f728412f4b
  Author: Romaric Jodin <89833130+rjodinchr at users.noreply.github.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M libclc/CMakeLists.txt
    M libclc/generic/lib/gen_convert.py

  Log Message:
  -----------
  libclc: clspv: update gen_convert.cl for clspv (#66902)

Add a clspv switch in gen_convert.cl
This is needed as Vulkan SPIR-V does not respect the assumptions
needed to have the generic convert.cl compliant on many platforms.

It is needed because of the conversion of TYPE_MAX and
TYPE_MIN. Depending on the platform the behaviour can vary, but most
of them just do not convert correctly those 2 values.

Because of that, we also need to avoid having explicit function for
simple conversions because it allows llvm to optimise the code, thus
removing some of the added checks that are in fact needed.


  Commit: c08d70a5cbc61efc5c8636c8788f39270f59dec5
      https://github.com/llvm/llvm-project/commit/c08d70a5cbc61efc5c8636c8788f39270f59dec5
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/runtime/pointer.cpp

  Log Message:
  -----------
  [flang][runtime] Temporary fix for unresolved reference in CUDA F18 runtime. (#85294)

Avoid referencing executionEnvironment in the device code, since
environment.cpp is not part of the CUDA build yet.
This is a temporary fix before #85182 is merged.


  Commit: 33960c90258ed78b9b877b1a43e219d1cbc2efce
      https://github.com/llvm/llvm-project/commit/33960c90258ed78b9b877b1a43e219d1cbc2efce
  Author: Philip Reames <preames at rivosinc.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_netbsd_decompress.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder_phi.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vect_copyable_in_binops.ll

  Log Message:
  -----------
  Regen some tests to reflect naming changes

Cutting down on diff in an upcoming change.


  Commit: 4b0276d1c9cb558f3c20736dce802ceb26c0b958
      https://github.com/llvm/llvm-project/commit/4b0276d1c9cb558f3c20736dce802ceb26c0b958
  Author: Daniel Kiss <daniel.kiss at arm.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/IR/AutoUpgrade.h
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/Linker/IRMover.cpp
    M llvm/test/LTO/AArch64/link-branch-target-enforcement.ll
    R llvm/test/LTO/AArch64/link-sign-return-address.ll
    M llvm/test/Linker/link-arm-and-thumb.ll

  Log Message:
  -----------
  Revert "[llvm][AArch64] Autoupgrade function attributes from Module attributes." (#85291)

Reverts llvm/llvm-project#82763 because caused a regressions with
inlining.
See
https://github.com/llvm/llvm-project/pull/84494#issuecomment-1996047458


  Commit: ea429e19f56005bf89e717c14efdf49ec055b183
      https://github.com/llvm/llvm-project/commit/ea429e19f56005bf89e717c14efdf49ec055b183
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/horizontal.ll

  Log Message:
  -----------
  [SLP]Do extra analysis int minbitwidth if some checks return false.

The instruction itself can be considered good for minbitwidth casting,
even if one of the operand checks returns false.

Reviewers: RKSimon

Reviewed By: RKSimon

Pull Request: https://github.com/llvm/llvm-project/pull/84363


  Commit: bba790db477b5b076e587b6c679ac68eb8316ac3
      https://github.com/llvm/llvm-project/commit/bba790db477b5b076e587b6c679ac68eb8316ac3
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M bolt/include/bolt/Core/MCPlusBuilder.h
    M bolt/lib/Passes/BinaryPasses.cpp
    M bolt/lib/Passes/ShrinkWrapping.cpp
    M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
    M bolt/lib/Target/RISCV/RISCVMCPlusBuilder.cpp
    M bolt/lib/Target/X86/X86MCPlusBuilder.cpp
    M bolt/unittests/Core/MCPlusBuilder.cpp

  Log Message:
  -----------
  [BOLT] Refactor instruction creation interface. NFCI (#85292)

Refactor MCPlusBuilder's create{Instruction}() functions that used to
return bool. We almost never check the return value as we rely on
llvm_unreachable() to detect unimplemented functionality. There were a
couple of cases that checked the return value, but they would hit the
unreachable condition first (at least in debug builds) before the return
value gets checked.


  Commit: c56bd7ab7934355ed19d4d3ec299b5784bf02379
      https://github.com/llvm/llvm-project/commit/c56bd7ab7934355ed19d4d3ec299b5784bf02379
  Author: Andrzej Warzyński <andrzej.warzynski at arm.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/include/mlir/Dialect/Vector/Utils/VectorUtils.h
    M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
    M mlir/lib/Dialect/Vector/Utils/VectorUtils.cpp
    M mlir/test/Dialect/Linalg/vectorization-unsupported.mlir
    A mlir/test/Dialect/Linalg/vectorize-conv-masked-and-scalable.mlir

  Log Message:
  -----------
  [mlir][linalg] Enable masked vectorisation for depthwise convolutions (#81625)

This patch adds support for masked vectorisation of depthwise 1D WC
convolutions,`linalg.depthwise_conv_1d_nwc_wc`. This is implemented by
adding support for masking.

Two major assumptions are made:
  * only the channel dimension can be dynamic/scalable (i.e. the
    trailing dim),
  * when specifying vector sizes to use in the vectoriser, only the size
    corresponding to the channel dim is effectively used (other dims are
    inferred from the context).

In terms of scalable vectorisation, this should be sufficient to cover
all practical cases (i.e. making arbitrary dim scalable wouldn't make
much sense). As for more generic cases with dynamic shapes (e.g. W or N
dims being dynamic), more work would be needed. In particular, one would
have to consider the filter and input/output tensors separately.


  Commit: 00ba2a6f1e7bbb6fa6f3d50ad87a4a528af87ef5
      https://github.com/llvm/llvm-project/commit/00ba2a6f1e7bbb6fa6f3d50ad87a4a528af87ef5
  Author: Zaara Syeda <syzaara at ca.ibm.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
    M llvm/lib/Target/PowerPC/PPCSubtarget.cpp
    M llvm/lib/Target/PowerPC/PPCSubtarget.h

  Log Message:
  -----------
  [AIX][TOC] Fix buildbot failures from commit b4ae8df (#85303)

The following tests fail when built with Address
and Undefined sanitizers:
CodeGen/PowerPC/basic-toc-data-def.ll
CodeGen/PowerPC/toc-data-large-array2.ll

Subtarget may be null in emitGlobalVariable, for example in the testcase
where we have no functions in the IR. The fix moves this function from
PPCSubtarget to a static helper function. This only fails with
sanitizers because the Subtarget is not used in the member function.


  Commit: 8f0012d3dc2ae6d40e9f812cae111ca7a6eb2a2d
      https://github.com/llvm/llvm-project/commit/8f0012d3dc2ae6d40e9f812cae111ca7a6eb2a2d
  Author: Alex MacLean <amaclean at nvidia.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
    A llvm/test/CodeGen/NVPTX/common-linkage.ll
    M llvm/test/CodeGen/NVPTX/weak-global.ll

  Log Message:
  -----------
  [NVPTX] Use .common linkage for common globals (#84416)

Switch from `.weak` to `.common` linkage for common global variables
where possible. The `.common` linkage is described in [PTX ISA 11.6.4.
Linking Directives:
.common](https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#linking-directives-common)
> Declares identifier to be globally visible but “common”.
>
>Common symbols are similar to globally visible symbols. However
multiple object files may declare the same common symbol and they may
have different types and sizes and references to a symbol get resolved
against a common symbol with the largest size.
>
>Only one object file can initialize a common symbol and that must have
the largest size among all other definitions of that common symbol from
different object files.
>
>.common linking directive can be used only on variables with .global
storage. It cannot be used on function symbols or on symbols with opaque
type.


  Commit: aa6100643c2c8f9a1b06ba557b68b0fba477e3c7
      https://github.com/llvm/llvm-project/commit/aa6100643c2c8f9a1b06ba557b68b0fba477e3c7
  Author: alx32 <103613512+alx32 at users.noreply.github.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    A llvm/test/tools/llvm-objdump/MachO/AArch64/Inputs/rel-method-lists-arm64.dylib
    A llvm/test/tools/llvm-objdump/MachO/AArch64/Inputs/rel-method-lists-arm64_32.dylib
    A llvm/test/tools/llvm-objdump/MachO/AArch64/macho-relative-method-lists.test
    M llvm/tools/llvm-objdump/MachODump.cpp

  Log Message:
  -----------
  [llvm-objdump][macho] Add support for ObjC relative method lists (#84250)

For Mach-O, ld64 supports the `-fobjc-relative-method-lists` flag which
changes the format in which method lists are generated. The format uses
delta encoding vs the original direct-pointer encoding.
This change adds support to `llvm-objdump` and `llvm-otool` for
decoding/dumping of method lists in the delta format. Previously, if a
binary with this information format was passed to the tooling, it would
output invalid information, trying to parse the delta lists as pointer
lists.
After this change, the tooling will output correct information if a
binary in this format is encountered.
The output format is closest feasible match to XCode 15.1's otool
output. Tests are included for both 32bit and 64bit binaries.

The code style was matched as close as possible to existing
implementation of parsing non-delta method lists.

Diff between llvm-objdump and XCode 15.1 otool:


![objdump_vs_otool](https://github.com/llvm/llvm-project/assets/103613512/4fc04228-ed35-473d-b633-364402411b91)

---------

Co-authored-by: Alex B <alexborcan at meta.com>


  Commit: 8f9ee39c58064d3a3291a89509501ebe55d2e788
      https://github.com/llvm/llvm-project/commit/8f9ee39c58064d3a3291a89509501ebe55d2e788
  Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/include/clang/Basic/Builtins.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/Sema/SemaChecking.cpp
    A clang/test/CodeGenHLSL/builtins/rsqrt.hlsl
    M clang/test/SemaHLSL/BuiltIns/frac-errors.hlsl
    M clang/test/SemaHLSL/BuiltIns/rcp-errors.hlsl
    A clang/test/SemaHLSL/BuiltIns/rsqrt-errors.hlsl
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    M llvm/lib/Target/DirectX/DXIL.td
    A llvm/test/CodeGen/DirectX/rsqrt.ll
    A llvm/test/CodeGen/DirectX/rsqrt_error.ll

  Log Message:
  -----------
  [HLSL] Implement `rsqrt` intrinsic (#84820)

This change implements #70074
- `hlsl_intrinsics.h` - add the `rsqrt` api
- `DXIL.td` add the llvm intrinsic to DXIL op lowering map.
- `Builtins.td` - add an hlsl builtin for rsqrt.
- `CGBuiltin.cpp` add the ir generation for the rsqrt intrinsic.
- `SemaChecking.cpp` - reuse the one arg float only  checks.
- `IntrinsicsDirectX.td` -add an `rsqrt` intrinsic.


  Commit: caba6d13c8c883757508d34d98c0a1af4adde48a
      https://github.com/llvm/llvm-project/commit/caba6d13c8c883757508d34d98c0a1af4adde48a
  Author: Michael Jones <michaelrj at google.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M libc/src/__support/FPUtil/FEnvImpl.h
    M libc/src/__support/FPUtil/ManipulationFunctions.h
    M libc/src/__support/FPUtil/NearestIntegerOperations.h
    M libc/src/math/generic/math_utils.h
    M libc/test/src/math/ILogbTest.h
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel

  Log Message:
  -----------
  [libc] Remove direct math.h includes from src (#84991)

A downstream overlay mode user ran into issues with the isnan macro not
working in our sources with a specific libc configuration. This patch
replaces the last direct includes of math.h with our internal
math_macros.h, along with the necessary build system changes.


  Commit: 0646bbc42c59f9dd67db3c073389fdd9e395be3c
      https://github.com/llvm/llvm-project/commit/0646bbc42c59f9dd67db3c073389fdd9e395be3c
  Author: Michael Jones <michaelrj at google.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M libc/src/__support/FPUtil/FEnvImpl.h
    M libc/src/__support/FPUtil/ManipulationFunctions.h
    M libc/src/__support/FPUtil/NearestIntegerOperations.h
    M libc/src/math/generic/math_utils.h
    M libc/test/src/math/ILogbTest.h
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/__support/BUILD.bazel
    M utils/bazel/llvm-project-overlay/libc/test/src/math/BUILD.bazel

  Log Message:
  -----------
  Revert "[libc] Remove direct math.h includes from src" (#85314)

Reverts llvm/llvm-project#84991

Caused build failures


  Commit: 229640343e400394b315c6798c7c19e8a9bd188c
      https://github.com/llvm/llvm-project/commit/229640343e400394b315c6798c7c19e8a9bd188c
  Author: ManuelJBrito <59119670+ManuelJBrito at users.noreply.github.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/test/Transforms/NewGVN/2007-07-25-DominatedLoop.ll
    M llvm/test/Transforms/NewGVN/2007-07-25-InfiniteLoop.ll
    M llvm/test/Transforms/NewGVN/2007-07-25-Loop.ll
    M llvm/test/Transforms/NewGVN/2007-07-25-NestedLoop.ll
    M llvm/test/Transforms/NewGVN/2007-07-25-SinglePredecessor.ll
    M llvm/test/Transforms/NewGVN/2007-07-26-NonRedundant.ll
    M llvm/test/Transforms/NewGVN/2007-07-26-PhiErasure.ll
    M llvm/test/Transforms/NewGVN/2007-07-30-PredIDom.ll
    M llvm/test/Transforms/NewGVN/2007-07-31-RedundantPhi.ll
    M llvm/test/Transforms/NewGVN/2008-02-13-NewPHI.ll
    M llvm/test/Transforms/NewGVN/2008-07-02-Unreachable.ll
    M llvm/test/Transforms/NewGVN/2008-12-09-SelfRemove.ll
    M llvm/test/Transforms/NewGVN/2008-12-12-RLE-Crash.ll
    M llvm/test/Transforms/NewGVN/2008-12-14-rle-reanalyze.ll
    M llvm/test/Transforms/NewGVN/2008-12-15-CacheVisited.ll
    M llvm/test/Transforms/NewGVN/2009-01-21-SortInvalidation.ll
    M llvm/test/Transforms/NewGVN/2009-01-22-SortInvalidation.ll
    M llvm/test/Transforms/NewGVN/2009-03-10-PREOnVoid.ll
    M llvm/test/Transforms/NewGVN/2009-07-13-MemDepSortFail.ll
    M llvm/test/Transforms/NewGVN/2009-11-12-MemDepMallocBitCast.ll
    M llvm/test/Transforms/NewGVN/2010-03-31-RedundantPHIs.ll
    M llvm/test/Transforms/NewGVN/2010-05-08-OneBit.ll
    M llvm/test/Transforms/NewGVN/2010-11-13-Simplify.ll
    M llvm/test/Transforms/NewGVN/2011-04-27-phioperands.ll
    M llvm/test/Transforms/NewGVN/2011-07-07-MatchIntrinsicExtract.ll
    M llvm/test/Transforms/NewGVN/2011-09-07-TypeIdFor.ll
    M llvm/test/Transforms/NewGVN/2012-05-22-PreCrash.ll
    M llvm/test/Transforms/NewGVN/2016-08-30-MaskedScatterGather-xfail-inseltpoison.ll
    M llvm/test/Transforms/NewGVN/MemdepMiscompile.ll
    M llvm/test/Transforms/NewGVN/addrspacecast.ll
    M llvm/test/Transforms/NewGVN/basic-cyclic-opt.ll
    M llvm/test/Transforms/NewGVN/basic-undef-test.ll
    M llvm/test/Transforms/NewGVN/br-identical.ll
    M llvm/test/Transforms/NewGVN/calloc-load-removal.ll
    M llvm/test/Transforms/NewGVN/calls-readonly.ll
    M llvm/test/Transforms/NewGVN/completeness.ll
    M llvm/test/Transforms/NewGVN/cond_br.ll
    M llvm/test/Transforms/NewGVN/condprop.ll
    M llvm/test/Transforms/NewGVN/crash-no-aa.ll
    M llvm/test/Transforms/NewGVN/crash-usecounts.ll
    M llvm/test/Transforms/NewGVN/crash.ll
    M llvm/test/Transforms/NewGVN/cyclic-phi-handling.ll
    M llvm/test/Transforms/NewGVN/dbg-redundant-load.ll
    M llvm/test/Transforms/NewGVN/edge.ll
    M llvm/test/Transforms/NewGVN/eliminate-callsite-inline.ll
    M llvm/test/Transforms/NewGVN/equivalent-phi.ll
    M llvm/test/Transforms/NewGVN/fold-const-expr.ll
    M llvm/test/Transforms/NewGVN/fpmath.ll
    M llvm/test/Transforms/NewGVN/funclet.ll
    M llvm/test/Transforms/NewGVN/int_sideeffect.ll
    M llvm/test/Transforms/NewGVN/invariant.group.ll
    M llvm/test/Transforms/NewGVN/invariant.start.ll
    M llvm/test/Transforms/NewGVN/lifetime-simple.ll
    M llvm/test/Transforms/NewGVN/load-constant-mem.ll
    M llvm/test/Transforms/NewGVN/load-from-unreachable-predecessor.ll
    M llvm/test/Transforms/NewGVN/loadforward.ll
    M llvm/test/Transforms/NewGVN/malloc-load-removal.ll
    M llvm/test/Transforms/NewGVN/memory-handling.ll
    M llvm/test/Transforms/NewGVN/metadata-nonnull.ll
    M llvm/test/Transforms/NewGVN/metadata-simplify.ll
    M llvm/test/Transforms/NewGVN/noalias.ll
    M llvm/test/Transforms/NewGVN/nomemlocation.ll
    M llvm/test/Transforms/NewGVN/non-integral-pointers.ll
    M llvm/test/Transforms/NewGVN/null-aliases-nothing.ll
    M llvm/test/Transforms/NewGVN/phi-edge-handling.ll
    M llvm/test/Transforms/NewGVN/phi-of-ops-simplified-to-existing-value-then-changes-again.ll
    M llvm/test/Transforms/NewGVN/phi-translate-partial-alias.ll
    M llvm/test/Transforms/NewGVN/pr17732.ll
    M llvm/test/Transforms/NewGVN/pr17852.ll
    M llvm/test/Transforms/NewGVN/pr24397.ll
    M llvm/test/Transforms/NewGVN/pr24426.ll
    M llvm/test/Transforms/NewGVN/pr25440.ll
    M llvm/test/Transforms/NewGVN/pr28562.ll
    M llvm/test/Transforms/NewGVN/pr31472.ll
    M llvm/test/Transforms/NewGVN/pr31483.ll
    M llvm/test/Transforms/NewGVN/pr31491.ll
    M llvm/test/Transforms/NewGVN/pr31501.ll
    M llvm/test/Transforms/NewGVN/pr31573.ll
    M llvm/test/Transforms/NewGVN/pr31594.ll
    M llvm/test/Transforms/NewGVN/pr31613.ll
    M llvm/test/Transforms/NewGVN/pr31682.ll
    M llvm/test/Transforms/NewGVN/pr31758.ll
    M llvm/test/Transforms/NewGVN/pr32607.ll
    M llvm/test/Transforms/NewGVN/pr32836.ll
    M llvm/test/Transforms/NewGVN/pr32838.ll
    M llvm/test/Transforms/NewGVN/pr32845.ll
    M llvm/test/Transforms/NewGVN/pr32852.ll
    M llvm/test/Transforms/NewGVN/pr32897.ll
    M llvm/test/Transforms/NewGVN/pr32934.ll
    M llvm/test/Transforms/NewGVN/pr32945.ll
    M llvm/test/Transforms/NewGVN/pr32952.ll
    M llvm/test/Transforms/NewGVN/pr33014.ll
    M llvm/test/Transforms/NewGVN/pr33086.ll
    M llvm/test/Transforms/NewGVN/pr33116.ll
    M llvm/test/Transforms/NewGVN/pr33187.ll
    M llvm/test/Transforms/NewGVN/pr33196.ll
    M llvm/test/Transforms/NewGVN/pr33204.ll
    M llvm/test/Transforms/NewGVN/pr33305.ll
    M llvm/test/Transforms/NewGVN/pr33367.ll
    M llvm/test/Transforms/NewGVN/pr34452.ll
    M llvm/test/Transforms/NewGVN/pr42422-phi-of-ops.ll
    M llvm/test/Transforms/NewGVN/pr43441.ll
    M llvm/test/Transforms/NewGVN/pre-compare.ll
    M llvm/test/Transforms/NewGVN/preserve-metadata-for-predicate-replacements.ll
    M llvm/test/Transforms/NewGVN/readattrs.ll
    M llvm/test/Transforms/NewGVN/rle-nonlocal.ll
    M llvm/test/Transforms/NewGVN/rle.ll
    M llvm/test/Transforms/NewGVN/simp-to-self.ll
    M llvm/test/Transforms/NewGVN/stale-loop-info.ll
    M llvm/test/Transforms/NewGVN/tbaa.ll
    M llvm/test/Transforms/NewGVN/unreachable_block_infinite_loop.ll
    M llvm/test/Transforms/NewGVN/verify-memoryphi.ll
    M llvm/test/Transforms/NewGVN/volatile-nonvolatile.ll

  Log Message:
  -----------
  [NewGVN][NFC]Regenerate test checks (#85280)

Regenerate test checks for NewGVN.


  Commit: d192b643701062064408dd7be0301f7a5d070c03
      https://github.com/llvm/llvm-project/commit/d192b643701062064408dd7be0301f7a5d070c03
  Author: Farzon Lotfi <1802579+farzonl at users.noreply.github.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M clang/include/clang/Basic/Builtins.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/Sema/SemaChecking.cpp
    A clang/test/CodeGenHLSL/builtins/isinf.hlsl
    A clang/test/SemaHLSL/BuiltIns/isinf-errors.hlsl
    M llvm/include/llvm/IR/IntrinsicsDirectX.td

  Log Message:
  -----------
  [HLSL] implement the `isinf` intrinsic (#84927)

This change implements part 1 of 2 for #70095
- `hlsl_intrinsics.h` - add the `isinf` api
- `Builtins.td` - add an hlsl builtin for `isinf`.
- `CGBuiltin.cpp` add the ir generation for `isinf` intrinsic.
- `SemaChecking.cpp` - add a non-math elementwise checks because this is
a bool return.
- `IntrinsicsDirectX.td` - add an `isinf` intrinsic.

`DXIL.td` lowering is left, but changes need to be made there before we
can support this case.


  Commit: e40bc8e509cdad67926fcd208c320cb4d50f6aec
      https://github.com/llvm/llvm-project/commit/e40bc8e509cdad67926fcd208c320cb4d50f6aec
  Author: Lang Hames <lhames at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
    M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
    M llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
    A llvm/unittests/ExecutionEngine/Orc/MachOPlatformTest.cpp

  Log Message:
  -----------
  [ORC][MachO] Make BuildVersionOpts::fromTriple result optional, add test.

Only platform specific darwin OS values (e.g. macosx, ios, watchos, ...) can be
mapped to an LC_BUILD_VERSION platform. For all other values return an empty
optional to indicate that the load command can't be constructed.

Also fixes the simulator conditions to return the correct platform, and adds a
testcase.


  Commit: 41ccebdda0f6885d97657c6558e924580e3d1a11
      https://github.com/llvm/llvm-project/commit/41ccebdda0f6885d97657c6558e924580e3d1a11
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn

  Log Message:
  -----------
  [gn build] Port e40bc8e509cd


  Commit: f9e557961e993d9b9b4e4782d345cbb2c87e9361
      https://github.com/llvm/llvm-project/commit/f9e557961e993d9b9b4e4782d345cbb2c87e9361
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
    M flang/lib/Lower/OpenMP/ClauseProcessor.h
    M flang/lib/Lower/OpenMP/Clauses.cpp
    M flang/lib/Lower/OpenMP/Clauses.h

  Log Message:
  -----------
  [flang][OpenMP] Convert unique clauses in ClauseProcessor (#81622)

Temporarily rename old clause list to `clauses2`, old clause iterator to
`ClauseIterator2`.
Change `findUniqueClause` to iterate over `omp::Clause` objects, modify
all handlers to operate on 'omp::clause::xyz` equivalents.

[Clause representation 2/6]


  Commit: 49b8a99a0f7abdb34a671dd99bb9aba593129bf9
      https://github.com/llvm/llvm-project/commit/49b8a99a0f7abdb34a671dd99bb9aba593129bf9
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M bolt/include/bolt/Core/MCPlusBuilder.h
    M bolt/lib/Target/X86/X86MCPlusBuilder.cpp

  Log Message:
  -----------
  [BOLT] Add createCondBranch() and createLongUncondBranch() (#85315)

Add MCPlusBuilder interface for creating two new branch types.


  Commit: dc55c4435d796f6ec316de0698df9b8649816068
      https://github.com/llvm/llvm-project/commit/dc55c4435d796f6ec316de0698df9b8649816068
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/lib/Semantics/runtime-type-info.cpp

  Log Message:
  -----------
  [flang] Clip circular dependence between implementation modules (#85309)

flang/module/__fortran_type_info.mod uses __fortran_builtins.mod, but it
is also implicitly used when compiling __fortran_builtins.f90 (or
anything else). If __fortran_type_info.mod finds an old
__fortran_builtins.mod file, compilation can fail while building the new
one.

Break the dependence by *not* generating runtime derived type
information for __fortran_builtins.f90.


  Commit: 1510473908e09b0dba574e74b862243c6fddb35f
      https://github.com/llvm/llvm-project/commit/1510473908e09b0dba574e74b862243c6fddb35f
  Author: Stephen Tozer <stephen.tozer at sony.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/CodeGen/HardwareLoops.cpp
    A llvm/test/DebugInfo/ARM/hardware-loop-phi-insertion.ll

  Log Message:
  -----------
  [RemoveDIs] Insert PHIs before debug records in hardware loops (#85288)

Fixes: https://github.com/llvm/llvm-project/issues/85254

Hardware loops inserts PHIs at the position `getFirstNonPhi()`, which is
incorrect - instead, `getFirstNonPhiIt()` is required to not insert the
PHI after any debug records that immediately follow the last existing
PHI.


  Commit: 3236d974992580d8a346b22720d9d290fbd5439f
      https://github.com/llvm/llvm-project/commit/3236d974992580d8a346b22720d9d290fbd5439f
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/test/Transforms/InstCombine/binop-itofp.ll

  Log Message:
  -----------
  [InstCombine] Add test for `(fmul (sitfp x), 0)`; NFC


  Commit: 70d0ebb279e42902f06ab621777935b09e82cc49
      https://github.com/llvm/llvm-project/commit/70d0ebb279e42902f06ab621777935b09e82cc49
  Author: Noah Goldstein <goldstein.w.n at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Transforms/InstCombine/binop-itofp.ll

  Log Message:
  -----------
  [InstCombine] Fix behavior for `(fmul (sitfp x), 0)`

Bug was introduced in #82555

We where missing check that the constant was non-zero for signed + mul
transform.

Closes #85298


  Commit: 5b303a98a8a88ee74aab8f4936af735f72182169
      https://github.com/llvm/llvm-project/commit/5b303a98a8a88ee74aab8f4936af735f72182169
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/horizontal.ll

  Log Message:
  -----------
  Revert "[SLP]Do extra analysis int minbitwidth if some checks return false."

This reverts commit ea429e19f56005bf89e717c14efdf49ec055b183 to fix
issues revealed in
https://lab.llvm.org/buildbot/#/builders/186/builds/15299 and https://lab.llvm.org/buildbot/#/builders/238/builds/8426.


  Commit: c75009ef7c5044cd1d2a54ffc572d609da19cb5a
      https://github.com/llvm/llvm-project/commit/c75009ef7c5044cd1d2a54ffc572d609da19cb5a
  Author: Valentin Clement <clementval at gmail.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/module/__fortran_builtins.f90
    A flang/test/Lower/Intrinsics/c_ptr_eq_ne.f90

  Log Message:
  -----------
  [flang] Lower c_ptr_eq/ne for iso_c_binding (#85293)

Comparing c_ptr type for equality or inequality is raising an error.

```
not yet implemented: intrinsic module procedure: c_ptr_eq
```
or this one for inequality
```
not yet implemented: intrinsic module procedure: c_ptr_ne
```

This patch adds a lowering for them and fix the `__fortran_builtins.f90` module for inequality.

Reland after fix has landed for circular modules #85309


  Commit: 331b04c9437389f02d2bfd838af1433b1a4ee1a8
      https://github.com/llvm/llvm-project/commit/331b04c9437389f02d2bfd838af1433b1a4ee1a8
  Author: Slava Zakharin <szakharin at nvidia.com>
  Date:   2024-03-15 (Fri, 15 Mar 2024)

  Changed paths:
    M .github/CODEOWNERS
    M bolt/include/bolt/Core/MCPlusBuilder.h
    M bolt/lib/Passes/BinaryPasses.cpp
    M bolt/lib/Passes/ShrinkWrapping.cpp
    M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
    M bolt/lib/Target/RISCV/RISCVMCPlusBuilder.cpp
    M bolt/lib/Target/X86/X86MCPlusBuilder.cpp
    M bolt/unittests/Core/MCPlusBuilder.cpp
    M clang/docs/LanguageExtensions.rst
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Basic/AttrDocs.td
    M clang/include/clang/Basic/Builtins.td
    M clang/include/clang/Basic/BuiltinsAArch64.def
    M clang/include/clang/Basic/Features.def
    M clang/include/clang/Driver/ToolChain.h
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/Interp/ByteCodeExprGen.cpp
    M clang/lib/AST/Interp/Descriptor.cpp
    M clang/lib/AST/Interp/Descriptor.h
    M clang/lib/AST/Interp/Disasm.cpp
    M clang/lib/AST/Interp/Interp.h
    M clang/lib/AST/Interp/InterpBuiltin.cpp
    M clang/lib/AST/Interp/Opcodes.td
    M clang/lib/AST/Interp/Pointer.cpp
    M clang/lib/AST/Interp/Pointer.h
    M clang/lib/AST/Interp/Program.cpp
    M clang/lib/AST/Interp/Program.h
    M clang/lib/AST/Type.cpp
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGCall.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/Driver/ToolChain.cpp
    M clang/lib/Headers/hlsl/hlsl_intrinsics.h
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/lib/Sema/SemaAttr.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaInit.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaTemplate.cpp
    M clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp
    M clang/test/AST/Interp/arrays.cpp
    M clang/test/AST/Interp/c.c
    A clang/test/AST/Interp/c23.c
    M clang/test/AST/Interp/complex.c
    M clang/test/AST/Interp/complex.cpp
    M clang/test/AST/Interp/literals.cpp
    A clang/test/AST/Interp/ms.cpp
    M clang/test/Analysis/loop-unrolling.cpp
    M clang/test/CodeGen/builtins-arm64.c
    A clang/test/CodeGenHLSL/builtins/isinf.hlsl
    A clang/test/CodeGenHLSL/builtins/rsqrt.hlsl
    M clang/test/Driver/clang-g-opts.c
    M clang/test/InstallAPI/basic.test
    A clang/test/Modules/reduced-bmi-generating-codes.cppm
    A clang/test/Sema/PR84368.cpp
    M clang/test/Sema/builtins-arm64.c
    M clang/test/Sema/nullability.c
    M clang/test/SemaCXX/nullability.cpp
    M clang/test/SemaHLSL/BuiltIns/frac-errors.hlsl
    A clang/test/SemaHLSL/BuiltIns/isinf-errors.hlsl
    M clang/test/SemaHLSL/BuiltIns/rcp-errors.hlsl
    A clang/test/SemaHLSL/BuiltIns/rsqrt-errors.hlsl
    M clang/tools/clang-installapi/Options.cpp
    M clang/tools/clang-installapi/Options.h
    M cross-project-tests/debuginfo-tests/dexter/dex/debugger/Debuggers.py
    A cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio2022.py
    M cross-project-tests/debuginfo-tests/dexter/feature_tests/subtools/list-debuggers/list-debuggers.test
    M flang/include/flang/Common/optional.h
    M flang/include/flang/Optimizer/Builder/IntrinsicCall.h
    M flang/include/flang/Optimizer/CodeGen/CodeGen.h
    M flang/lib/Lower/CMakeLists.txt
    M flang/lib/Lower/OpenMP/ClauseProcessor.cpp
    M flang/lib/Lower/OpenMP/ClauseProcessor.h
    A flang/lib/Lower/OpenMP/ClauseT.h
    A flang/lib/Lower/OpenMP/Clauses.cpp
    A flang/lib/Lower/OpenMP/Clauses.h
    M flang/lib/Optimizer/Builder/IntrinsicCall.cpp
    M flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp
    M flang/lib/Semantics/runtime-type-info.cpp
    M flang/module/__fortran_builtins.f90
    M flang/runtime/pointer.cpp
    A flang/test/Lower/Intrinsics/c_ptr_eq_ne.f90
    M libclc/CMakeLists.txt
    M libclc/generic/lib/gen_convert.py
    M libcxx/include/__format/concepts.h
    M libcxx/include/__functional/hash.h
    M libcxx/include/__tuple/sfinae_helpers.h
    M libcxx/include/__tuple/tuple_size.h
    M libcxx/include/__type_traits/conjunction.h
    M libcxx/include/array
    M libcxx/include/chrono
    M libcxx/include/coroutine
    M libcxx/include/experimental/memory
    M libcxx/include/fstream
    M libcxx/include/optional
    M libcxx/include/tuple
    M libcxx/include/variant
    M libcxx/include/vector
    M libcxx/test/libcxx/transitive_includes/cxx23.csv
    M libcxx/test/libcxx/transitive_includes/cxx26.csv
    A libcxx/test/std/input.output/file.streams/fstreams/filebuf.virtuals/setbuf.pass.cpp
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.helper/tuple_size_v.verify.cpp
    M libcxx/utils/ci/docker-compose.yml
    M lld/ELF/Writer.cpp
    M lld/test/ELF/linkerscript/discard-section.s
    M lldb/cmake/caches/Apple-lldb-Linux.cmake
    M lldb/include/lldb/Target/Language.h
    M lldb/source/Breakpoint/BreakpointResolver.cpp
    M lldb/source/Core/Debugger.cpp
    M lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
    M lldb/source/Target/Language.cpp
    M lldb/source/Target/TargetProperties.td
    M lldb/test/API/functionalities/breakpoint/breakpoint_options/TestBreakpointOptions.py
    A lldb/test/API/macosx/tbi-honored/Makefile
    A lldb/test/API/macosx/tbi-honored/TestTBIHonored.py
    A lldb/test/API/macosx/tbi-honored/main.c
    M llvm/docs/AMDGPUUsage.rst
    M llvm/docs/CommandGuide/llvm-debuginfo-analyzer.rst
    M llvm/docs/RemoveDIsDebugInfo.md
    M llvm/docs/UserGuides.rst
    M llvm/include/llvm/ADT/APInt.h
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
    M llvm/include/llvm/CodeGen/GlobalISel/GenericMachineInstrs.h
    M llvm/include/llvm/CodeGen/MachinePassManager.h
    M llvm/include/llvm/CodeGen/SDPatternMatch.h
    M llvm/include/llvm/DebugInfo/LogicalView/Readers/LVBinaryReader.h
    M llvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
    M llvm/include/llvm/IR/AutoUpgrade.h
    M llvm/include/llvm/IR/DebugProgramInstruction.h
    M llvm/include/llvm/IR/IntrinsicsDirectX.td
    M llvm/include/llvm/IR/PatternMatch.h
    M llvm/include/llvm/Target/GlobalISel/Combine.td
    M llvm/include/llvm/Target/TargetMachine.h
    M llvm/include/llvm/Transforms/Utils/MemoryTaggingSupport.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/lib/CodeGen/HardwareLoops.cpp
    M llvm/lib/CodeGen/MachineCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/lib/DebugInfo/LogicalView/LVReaderHandler.cpp
    M llvm/lib/DebugInfo/LogicalView/Readers/LVBinaryReader.cpp
    M llvm/lib/DebugInfo/LogicalView/Readers/LVELFReader.cpp
    M llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/lib/Linker/IRMover.cpp
    M llvm/lib/Support/APInt.cpp
    M llvm/lib/Target/AArch64/AArch64StackTagging.cpp
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    A llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCExpr.cpp
    A llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCExpr.h
    M llvm/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
    M llvm/lib/Target/DirectX/DXIL.td
    M llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
    M llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
    M llvm/lib/Target/PowerPC/PPCSubtarget.cpp
    M llvm/lib/Target/PowerPC/PPCSubtarget.h
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoZb.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFiveP400.td
    M llvm/lib/Target/RISCV/RISCVSchedXiangShanNanHu.td
    M llvm/lib/Target/RISCV/RISCVScheduleZb.td
    M llvm/lib/Target/SPIRV/SPIRVCallLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.cpp
    M llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
    M llvm/lib/Target/SPIRV/SPIRVUtils.h
    M llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.h
    M llvm/lib/Target/X86/X86CodeGenPassBuilder.cpp
    M llvm/lib/Target/X86/X86TargetMachine.h
    M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
    M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
    M llvm/lib/Transforms/IPO/MergeFunctions.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineInternal.h
    M llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Scalar/JumpThreading.cpp
    M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
    M llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
    M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
    M llvm/lib/Transforms/Utils/InlineFunction.cpp
    M llvm/lib/Transforms/Utils/Local.cpp
    M llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/lib/Transforms/Utils/MemoryTaggingSupport.cpp
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
    M llvm/lib/Transforms/Utils/ValueMapper.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/combine-overflow.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/prelegalizer-combiner-addo-zero.mir
    A llvm/test/CodeGen/AArch64/extract-vector-elt.ll
    M llvm/test/CodeGen/AArch64/overflow.ll
    M llvm/test/CodeGen/AArch64/stack-tagging-initializer-merge.ll
    M llvm/test/CodeGen/AArch64/stack-tagging-stack-coloring.ll
    M llvm/test/CodeGen/AArch64/stack-tagging-untag-placement.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i64.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/srem.i64.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i64.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/urem.i64.ll
    A llvm/test/CodeGen/DirectX/rsqrt.ll
    A llvm/test/CodeGen/DirectX/rsqrt_error.ll
    A llvm/test/CodeGen/NVPTX/common-linkage.ll
    M llvm/test/CodeGen/NVPTX/weak-global.ll
    M llvm/test/CodeGen/RISCV/machine-combiner.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll
    M llvm/test/CodeGen/RISCV/umulo-128-legalisation-lowering.ll
    M llvm/test/CodeGen/SPIRV/pointers/bitcast-fix-load.ll
    M llvm/test/CodeGen/SPIRV/pointers/bitcast-fix-store.ll
    A llvm/test/CodeGen/SPIRV/pointers/type-deduce-args-rev.ll
    A llvm/test/CodeGen/SPIRV/pointers/type-deduce-args.ll
    M llvm/test/CodeGen/X86/bitcast-and-setcc-256.ll
    A llvm/test/DebugInfo/ARM/hardware-loop-phi-insertion.ll
    M llvm/test/Instrumentation/InstrProfiling/Coro/coro-split-musttail6.ll
    M llvm/test/Instrumentation/InstrProfiling/Coro/coro-split-musttail7.ll
    M llvm/test/LTO/AArch64/link-branch-target-enforcement.ll
    R llvm/test/LTO/AArch64/link-sign-return-address.ll
    M llvm/test/Linker/link-arm-and-thumb.ll
    A llvm/test/MC/AMDGPU/mcexpr_amd.s
    A llvm/test/MC/AMDGPU/mcexpr_amd_err.s
    M llvm/test/Transforms/Coroutines/coro-split-musttail6.ll
    M llvm/test/Transforms/Coroutines/coro-split-musttail7.ll
    M llvm/test/Transforms/IndVarSimplify/iv-widen-elim-ext.ll
    M llvm/test/Transforms/InstCombine/binop-itofp.ll
    A llvm/test/Transforms/InstCombine/extract-select-agg.ll
    M llvm/test/Transforms/InstCombine/powi.ll
    M llvm/test/Transforms/NewGVN/2007-07-25-DominatedLoop.ll
    M llvm/test/Transforms/NewGVN/2007-07-25-InfiniteLoop.ll
    M llvm/test/Transforms/NewGVN/2007-07-25-Loop.ll
    M llvm/test/Transforms/NewGVN/2007-07-25-NestedLoop.ll
    M llvm/test/Transforms/NewGVN/2007-07-25-SinglePredecessor.ll
    M llvm/test/Transforms/NewGVN/2007-07-26-NonRedundant.ll
    M llvm/test/Transforms/NewGVN/2007-07-26-PhiErasure.ll
    M llvm/test/Transforms/NewGVN/2007-07-30-PredIDom.ll
    M llvm/test/Transforms/NewGVN/2007-07-31-RedundantPhi.ll
    M llvm/test/Transforms/NewGVN/2008-02-13-NewPHI.ll
    M llvm/test/Transforms/NewGVN/2008-07-02-Unreachable.ll
    M llvm/test/Transforms/NewGVN/2008-12-09-SelfRemove.ll
    M llvm/test/Transforms/NewGVN/2008-12-12-RLE-Crash.ll
    M llvm/test/Transforms/NewGVN/2008-12-14-rle-reanalyze.ll
    M llvm/test/Transforms/NewGVN/2008-12-15-CacheVisited.ll
    M llvm/test/Transforms/NewGVN/2009-01-21-SortInvalidation.ll
    M llvm/test/Transforms/NewGVN/2009-01-22-SortInvalidation.ll
    M llvm/test/Transforms/NewGVN/2009-03-10-PREOnVoid.ll
    M llvm/test/Transforms/NewGVN/2009-07-13-MemDepSortFail.ll
    M llvm/test/Transforms/NewGVN/2009-11-12-MemDepMallocBitCast.ll
    M llvm/test/Transforms/NewGVN/2010-03-31-RedundantPHIs.ll
    M llvm/test/Transforms/NewGVN/2010-05-08-OneBit.ll
    M llvm/test/Transforms/NewGVN/2010-11-13-Simplify.ll
    M llvm/test/Transforms/NewGVN/2011-04-27-phioperands.ll
    M llvm/test/Transforms/NewGVN/2011-07-07-MatchIntrinsicExtract.ll
    M llvm/test/Transforms/NewGVN/2011-09-07-TypeIdFor.ll
    M llvm/test/Transforms/NewGVN/2012-05-22-PreCrash.ll
    M llvm/test/Transforms/NewGVN/2016-08-30-MaskedScatterGather-xfail-inseltpoison.ll
    M llvm/test/Transforms/NewGVN/MemdepMiscompile.ll
    M llvm/test/Transforms/NewGVN/addrspacecast.ll
    M llvm/test/Transforms/NewGVN/basic-cyclic-opt.ll
    M llvm/test/Transforms/NewGVN/basic-undef-test.ll
    M llvm/test/Transforms/NewGVN/br-identical.ll
    M llvm/test/Transforms/NewGVN/calloc-load-removal.ll
    M llvm/test/Transforms/NewGVN/calls-readonly.ll
    M llvm/test/Transforms/NewGVN/completeness.ll
    M llvm/test/Transforms/NewGVN/cond_br.ll
    M llvm/test/Transforms/NewGVN/condprop.ll
    M llvm/test/Transforms/NewGVN/crash-no-aa.ll
    M llvm/test/Transforms/NewGVN/crash-usecounts.ll
    M llvm/test/Transforms/NewGVN/crash.ll
    M llvm/test/Transforms/NewGVN/cyclic-phi-handling.ll
    M llvm/test/Transforms/NewGVN/dbg-redundant-load.ll
    M llvm/test/Transforms/NewGVN/edge.ll
    M llvm/test/Transforms/NewGVN/eliminate-callsite-inline.ll
    M llvm/test/Transforms/NewGVN/equivalent-phi.ll
    M llvm/test/Transforms/NewGVN/fold-const-expr.ll
    M llvm/test/Transforms/NewGVN/fpmath.ll
    M llvm/test/Transforms/NewGVN/funclet.ll
    M llvm/test/Transforms/NewGVN/int_sideeffect.ll
    M llvm/test/Transforms/NewGVN/invariant.group.ll
    M llvm/test/Transforms/NewGVN/invariant.start.ll
    M llvm/test/Transforms/NewGVN/lifetime-simple.ll
    M llvm/test/Transforms/NewGVN/load-constant-mem.ll
    M llvm/test/Transforms/NewGVN/load-from-unreachable-predecessor.ll
    M llvm/test/Transforms/NewGVN/loadforward.ll
    M llvm/test/Transforms/NewGVN/malloc-load-removal.ll
    M llvm/test/Transforms/NewGVN/memory-handling.ll
    M llvm/test/Transforms/NewGVN/metadata-nonnull.ll
    M llvm/test/Transforms/NewGVN/metadata-simplify.ll
    M llvm/test/Transforms/NewGVN/noalias.ll
    M llvm/test/Transforms/NewGVN/nomemlocation.ll
    M llvm/test/Transforms/NewGVN/non-integral-pointers.ll
    M llvm/test/Transforms/NewGVN/null-aliases-nothing.ll
    M llvm/test/Transforms/NewGVN/phi-edge-handling.ll
    M llvm/test/Transforms/NewGVN/phi-of-ops-simplified-to-existing-value-then-changes-again.ll
    M llvm/test/Transforms/NewGVN/phi-translate-partial-alias.ll
    M llvm/test/Transforms/NewGVN/pr17732.ll
    M llvm/test/Transforms/NewGVN/pr17852.ll
    M llvm/test/Transforms/NewGVN/pr24397.ll
    M llvm/test/Transforms/NewGVN/pr24426.ll
    M llvm/test/Transforms/NewGVN/pr25440.ll
    M llvm/test/Transforms/NewGVN/pr28562.ll
    M llvm/test/Transforms/NewGVN/pr31472.ll
    M llvm/test/Transforms/NewGVN/pr31483.ll
    M llvm/test/Transforms/NewGVN/pr31491.ll
    M llvm/test/Transforms/NewGVN/pr31501.ll
    M llvm/test/Transforms/NewGVN/pr31573.ll
    M llvm/test/Transforms/NewGVN/pr31594.ll
    M llvm/test/Transforms/NewGVN/pr31613.ll
    M llvm/test/Transforms/NewGVN/pr31682.ll
    M llvm/test/Transforms/NewGVN/pr31758.ll
    M llvm/test/Transforms/NewGVN/pr32607.ll
    M llvm/test/Transforms/NewGVN/pr32836.ll
    M llvm/test/Transforms/NewGVN/pr32838.ll
    M llvm/test/Transforms/NewGVN/pr32845.ll
    M llvm/test/Transforms/NewGVN/pr32852.ll
    M llvm/test/Transforms/NewGVN/pr32897.ll
    M llvm/test/Transforms/NewGVN/pr32934.ll
    M llvm/test/Transforms/NewGVN/pr32945.ll
    M llvm/test/Transforms/NewGVN/pr32952.ll
    M llvm/test/Transforms/NewGVN/pr33014.ll
    M llvm/test/Transforms/NewGVN/pr33086.ll
    M llvm/test/Transforms/NewGVN/pr33116.ll
    M llvm/test/Transforms/NewGVN/pr33187.ll
    M llvm/test/Transforms/NewGVN/pr33196.ll
    M llvm/test/Transforms/NewGVN/pr33204.ll
    M llvm/test/Transforms/NewGVN/pr33305.ll
    M llvm/test/Transforms/NewGVN/pr33367.ll
    M llvm/test/Transforms/NewGVN/pr34452.ll
    M llvm/test/Transforms/NewGVN/pr42422-phi-of-ops.ll
    M llvm/test/Transforms/NewGVN/pr43441.ll
    M llvm/test/Transforms/NewGVN/pre-compare.ll
    M llvm/test/Transforms/NewGVN/preserve-metadata-for-predicate-replacements.ll
    M llvm/test/Transforms/NewGVN/readattrs.ll
    M llvm/test/Transforms/NewGVN/rle-nonlocal.ll
    M llvm/test/Transforms/NewGVN/rle.ll
    M llvm/test/Transforms/NewGVN/simp-to-self.ll
    M llvm/test/Transforms/NewGVN/stale-loop-info.ll
    M llvm/test/Transforms/NewGVN/tbaa.ll
    M llvm/test/Transforms/NewGVN/unreachable_block_infinite_loop.ll
    M llvm/test/Transforms/NewGVN/verify-memoryphi.ll
    M llvm/test/Transforms/NewGVN/volatile-nonvolatile.ll
    M llvm/test/Transforms/SCCP/add-nuw-nsw-flags.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/ext-trunc.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/gather-buildvector-with-minbitwidth-user.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/gather-with-minbith-user.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/getelementptr2.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/reduce-add-i64.ll
    A llvm/test/Transforms/SLPVectorizer/AArch64/slp-frem.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/complex-loads.ll
    M llvm/test/Transforms/SLPVectorizer/RISCV/reductions.ll
    M llvm/test/Transforms/SLPVectorizer/X86/PR35777.ll
    M llvm/test/Transforms/SLPVectorizer/X86/crash_netbsd_decompress.ll
    M llvm/test/Transforms/SLPVectorizer/X86/int-bitcast-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-multiuse-with-insertelement.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minbitwidth-transformed-operand.ll
    M llvm/test/Transforms/SLPVectorizer/X86/minimum-sizes.ll
    M llvm/test/Transforms/SLPVectorizer/X86/phi-undef-input.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reorder_phi.ll
    M llvm/test/Transforms/SLPVectorizer/X86/resched.ll
    M llvm/test/Transforms/SLPVectorizer/X86/reused-reductions-with-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/same-scalar-in-same-phi-extract.ll
    M llvm/test/Transforms/SLPVectorizer/X86/store-insertelement-minbitwidth.ll
    M llvm/test/Transforms/SLPVectorizer/X86/vect_copyable_in_binops.ll
    M llvm/test/Transforms/SLPVectorizer/alt-cmp-vectorize.ll
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/01-wasm-compare-logical-elements.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/01-wasm-print-basic-details.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/01-wasm-select-logical-elements.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/02-wasm-logical-lines.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/03-wasm-incorrect-lexical-scope-typedef.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/04-wasm-missing-nested-enumerators.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/05-wasm-incorrect-lexical-scope-variable.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/06-wasm-full-logical-view.test
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/definitions.h
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/hello-world-clang.s
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/hello-world.cpp
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/pr-43860-clang.s
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/pr-43860.cpp
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/pr-44884-clang.s
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/pr-44884.cpp
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/pr-46466-clang.s
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/pr-46466.cpp
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/test-clang.s
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/Inputs/test.cpp
    A llvm/test/tools/llvm-debuginfo-analyzer/WebAssembly/README.txt
    M llvm/test/tools/llvm-mca/RISCV/SiFive7/gpr-bypass.s
    A llvm/test/tools/llvm-objdump/MachO/AArch64/Inputs/rel-method-lists-arm64.dylib
    A llvm/test/tools/llvm-objdump/MachO/AArch64/Inputs/rel-method-lists-arm64_32.dylib
    A llvm/test/tools/llvm-objdump/MachO/AArch64/macho-relative-method-lists.test
    M llvm/tools/llvm-objdump/MachODump.cpp
    M llvm/unittests/ADT/APIntTest.cpp
    M llvm/unittests/CodeGen/SelectionDAGPatternMatchTest.cpp
    M llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
    A llvm/unittests/ExecutionEngine/Orc/MachOPlatformTest.cpp
    M llvm/unittests/IR/DebugInfoTest.cpp
    M llvm/unittests/Support/KnownBitsTest.cpp
    M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/MCTargetDesc/BUILD.gn
    M llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn
    M mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.h
    M mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.td
    M mlir/include/mlir/Dialect/EmitC/IR/EmitCTypes.td
    M mlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOpsInterfaces.td
    M mlir/include/mlir/Dialect/Vector/Utils/VectorUtils.h
    M mlir/include/mlir/Support/ToolUtilities.h
    M mlir/include/mlir/Target/Cpp/CppEmitter.h
    M mlir/include/mlir/Tools/mlir-opt/MlirOptMain.h
    M mlir/lib/Conversion/ComplexToStandard/ComplexToStandard.cpp
    M mlir/lib/Dialect/Bufferization/Transforms/BufferResultsToOutParams.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
    M mlir/lib/Dialect/Vector/Utils/VectorUtils.cpp
    M mlir/lib/Support/ToolUtilities.cpp
    M mlir/lib/Target/Cpp/CMakeLists.txt
    M mlir/lib/Target/Cpp/TranslateRegistration.cpp
    M mlir/lib/Target/Cpp/TranslateToCpp.cpp
    M mlir/lib/Tools/lsp-server-support/Transport.cpp
    M mlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp
    M mlir/lib/Tools/mlir-opt/MlirOptMain.cpp
    M mlir/lib/Tools/mlir-pdll-lsp-server/PDLLServer.cpp
    M mlir/lib/Tools/mlir-translate/MlirTranslateMain.cpp
    M mlir/test/Conversion/ComplexToStandard/convert-to-standard.mlir
    M mlir/test/Dialect/Linalg/vectorization-unsupported.mlir
    A mlir/test/Dialect/Linalg/vectorize-conv-masked-and-scalable.mlir
    M mlir/test/Target/Cpp/invalid.mlir
    M mlir/test/Target/LLVMIR/rocdl.mlir
    A mlir/test/Transforms/buffer-results-to-out-params-add-result-attr.mlir
    R mlir/test/mlir-opt/nearmiss.mlir
    A mlir/test/mlir-opt/split-markers.mlir
    A mlir/test/mlir-pdll/split-markers.pdll
    A mlir/test/mlir-translate/split-markers.mlir
    M mlir/tools/mlir-pdll/mlir-pdll.cpp
    M openmp/runtime/src/z_Linux_util.cpp
    M utils/bazel/llvm-project-overlay/mlir/BUILD.bazel

  Log Message:
  -----------
  [𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.4

[skip ci]


Compare: https://github.com/llvm/llvm-project/compare/1727165ae5ab...331b04c94373

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list