SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [NewPM] Invalidate AAManager after populating GlobalsAA (details)
  2. Recommit "Generalize getInvertibleOperand recurrence handling slightly" (details)
  3. [lld][WebAssembly] Do not merge comdat data segments (details)
  4. [demangler] Initial support for the new Rust mangling scheme (details)
  5. [gn build] Port 7310403e3cdf (details)
  6. [libc] Introduce asctime, asctime_r to LLVM libc (details)
  7. [lld][WebAssembly] Convert more tests to asm format. NFC (details)
  8. [NewPM] Only invalidate modified functions' analyses in CGSCC passes (details)
  9. Clarify the help for "breakpoint command add" and "watchpoint command add". (details)
  10. Precommit tests for D101720 (NFC) (details)
  11. [InstCombine] generalize select + select/and/or folding using implied conditions (details)
  12. [lld][WebAssembly] Fix crash with `-pie` without `--allow-undefined` (details)
  13. [IndVarSimplify][NFC] Removed mayThrow from if-condition in predicateLoopExits of IndVarSimplify (details)
  14. [mlir][tosa] Add lowerings for tosa.equal and tosa.arithmetic_right_shift (details)
  15. [mlir] Fix bug in TransferOpReduceRank when all dims are broadcasts (details)
  16. [clang][CodeGen] Use llvm::stable_sort for multi version resolver options (details)
  17. [NFC] Give better diagnose on clang-format not found error (details)
  18. [lld-macho] Implement builtin section renaming (details)
  19. [ModuleUtils] NFC: Add unit tests for appendToUsedList (details)
  20. [gn build] Port ed51156084dd (details)
  21. [TTI] Replace ceil lambdas with divideCeil. NFCI (details)
  22. [RISCV] Lower splats of non-constant i1s as SETCCs (details)
  23. Introduce -Wreserved-identifier (details)
  24. [clangd] Fix hover crash on broken code (details)
  25. Recommit "[VP,Integer,#2] ExpandVectorPredication pass" (details)
  26. Make dependency between certain analysis passes transitive (details)
  27. [gn build] Port 1db4dbba24dd (details)
  28. [llvm] Unbreak no-assertion testing (details)
  29. [RISCV] Pre-commit tests for D101342 (details)
  30. [clang-format] Prevent extraneous space insertion in bitshift operators (details)
Commit 2df3426fd15e41880c2da1484b560cd9c5f1f842 by aeubanks
[NewPM] Invalidate AAManager after populating GlobalsAA

GlobalsAA is only created at the beginning of the inliner pipeline.  If
an AAManager is cached from previous passes, it won't get rebuilt to
include the newly created GlobalsAA.

Reviewed By: mtrofin

Differential Revision: https://reviews.llvm.org/D101379
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
The file was modifiedclang/test/Driver/debug-pass-structure.c
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/Inliner.h
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
Commit e38ccb729b205b076356684e055efb7dfc673963 by listmail
Recommit "Generalize getInvertibleOperand recurrence handling slightly"

This was reverted because of a reported problem.  It turned out this patch didn't introduce said problem, it just exposed it more widely.  15a4233 fixes the root issue, so this simple a) rebases over that, and b) adds a much more extensive comment explaining why that weakened assert is correct.

Original commit message follows:

Follow up to D99912, specifically the revert, fix, and reapply thereof.

This generalizes the invertible recurrence logic in two ways:
* By allowing mismatching operand numbers of the phi, we can recurse through a pair of phi recurrences whose operand orders have not been canonicalized.
* By allowing recurrences through operand 1, we can invert these odd (but legal) recurrence.

Differential Revision: https://reviews.llvm.org/D100884
The file was modifiedllvm/test/Analysis/ValueTracking/known-non-equal.ll
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
Commit 73332d73e15f4fdf8e4240c585d0a334f23926f3 by sbc
[lld][WebAssembly] Do not merge comdat data segments

When running in relocatable mode any input data segments that are part
of a comdat group should not be merged with other segments of the same
name.  This is because the final linker needs to keep the separate so
they can be included/excluded individually.

Often this is not a problem since normally only one section with a given
name `foo` ends up in the output object file.  However, the problem
occurs when one input contains `foo` which part of a comdat and another
object contains a local symbol `foo` we were attempting to merge them.

This behaviour matches (I believe) that of the ELF linker.  See
`LinkerScript.cpp:addInputSec`.

Fixes: https://github.com/emscripten-core/emscripten/issues/9726

Differential Revision: https://reviews.llvm.org/D101703
The file was addedlld/test/wasm/relocatable-comdat.s
The file was addedlld/test/wasm/Inputs/comdat-data.s
The file was modifiedlld/wasm/Writer.cpp
The file was modifiedllvm/lib/Object/WasmObjectFile.cpp
Commit 7310403e3cdf8a436f94770e1a1498db05d2d091 by dblaikie
[demangler] Initial support for the new Rust mangling scheme

Add a demangling support for a small subset of a new Rust mangling
scheme, with complete support planned as a follow up work.

Intergate Rust demangling into llvm-cxxfilt and use llvm-cxxfilt for
end-to-end testing. The new Rust mangling scheme uses "_R" as a prefix,
which makes it easy to disambiguate it from other mangling schemes.

The public API is modeled after __cxa_demangle / llvm::itaniumDemangle,
since potential candidates for further integration use those.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D101444
The file was modifiedllvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp
The file was addedllvm/include/llvm/Demangle/RustDemangle.h
The file was addedllvm/lib/Demangle/RustDemangle.cpp
The file was addedllvm/test/Demangle/rust.test
The file was modifiedllvm/include/llvm/Demangle/Demangle.h
The file was modifiedllvm/lib/Demangle/CMakeLists.txt
The file was addedllvm/unittests/Demangle/RustDemangleTest.cpp
The file was modifiedllvm/unittests/Demangle/CMakeLists.txt
Commit 47ee47e1e8916a58c9c2e4b639700ddb0d534e93 by llvmgnsyncbot
[gn build] Port 7310403e3cdf
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Demangle/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Demangle/BUILD.gn
Commit a72499e47537c02a33d7c1c2e512d0b4a0ecbb89 by rtenneti
[libc] Introduce asctime, asctime_r to LLVM libc

[libc] Introduce asctime, asctime_r to LLVM libc

asctime and asctime_r share the same common code. They call asctime_internal
a static inline function.

asctime uses snprintf to return the string representation in a buffer.
It uses the following format (26 characters is the buffer size) as per
7.27.3.1 section in http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2478.pdf.
The buf parameter for asctime_r shall point to a buffer of at least 26 bytes.

snprintf(buf, 26, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n",...)

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D99686
The file was addedlibc/src/time/asctime_r.cpp
The file was modifiedlibc/spec/stdc.td
The file was addedlibc/src/time/asctime_r.h
The file was addedlibc/src/time/asctime.cpp
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
The file was modifiedlibc/test/src/time/CMakeLists.txt
The file was addedlibc/test/src/time/asctime_r_test.cpp
The file was modifiedlibc/test/src/time/mktime_test.cpp
The file was modifiedlibc/config/linux/api.td
The file was addedlibc/test/src/time/asctime_test.cpp
The file was modifiedlibc/src/time/CMakeLists.txt
The file was addedlibc/test/src/time/TmHelper.h
The file was addedlibc/src/time/asctime.h
The file was modifiedlibc/src/time/time_utils.h
Commit 4ef1f90e4d564b872e3598ccef45adb740eb0f0d by sbc
[lld][WebAssembly] Convert more tests to asm format. NFC

Two of these are trivial.  The third (shared.s) did have some
expectations changes but only due to two data symbols being re-ordered.

Differential Revision: https://reviews.llvm.org/D101711
The file was addedlld/test/wasm/shared-needed.s
The file was removedlld/test/wasm/shared-export-dynamic.ll
The file was addedlld/test/wasm/shared-export-dynamic.s
The file was removedlld/test/wasm/shared-needed.ll
The file was removedlld/test/wasm/shared.ll
The file was addedlld/test/wasm/shared.s
Commit d14d84af2f5ebb8ae2188ce6884a29a586dc0a40 by aeubanks
[NewPM] Only invalidate modified functions' analyses in CGSCC passes

Previously, any change in any function in an SCC would cause all
analyses for all functions in the SCC to be invalidated. With this
change, we now manually invalidate analyses for functions we modify,
then let the pass manager know that all function analyses should be
preserved.

So far this only touches the inliner, argpromotion, funcattrs, and
updateCGAndAnalysisManager(), since they are the most used.

Slight compile time improvements:
http://llvm-compile-time-tracker.com/compare.php?from=326da4adcb8def2abdd530299d87ce951c0edec9&to=8942c7669f330082ef159f3c6c57c3c28484f4be&stat=instructions

Reviewed By: mtrofin

Differential Revision: https://reviews.llvm.org/D100917
The file was modifiedclang/test/CodeGen/thinlto-distributed-newpm.ll
The file was modifiedllvm/lib/Transforms/IPO/Inliner.cpp
The file was modifiedllvm/lib/Transforms/IPO/ArgumentPromotion.cpp
The file was modifiedllvm/lib/Transforms/IPO/FunctionAttrs.cpp
The file was addedllvm/test/Transforms/Inline/analysis-invalidation.ll
The file was modifiedllvm/lib/Analysis/CGSCCPassManager.cpp
The file was modifiedllvm/test/Transforms/Inline/cgscc-incremental-invalidate.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
Commit 60ad0fd3c8bf18dc1a307b97e9e3eb21dd5e4cfb by jingham
Clarify the help for "breakpoint command add" and "watchpoint command add".

These two commands add a list of commands to the breakpoint/watchpoint. The current
implementation only supports replacing the current command list.  I started with
that as overwrite seems to be the most common operation.  But using "add" will
allow us to later offer other add-modes: "prepend", "append" and "insert".
That and "overwrite" then make up a useful set of options for this operation.
The file was modifiedlldb/source/Commands/CommandObjectBreakpointCommand.cpp
The file was modifiedlldb/source/Commands/CommandObjectWatchpointCommand.cpp
Commit 012f01e227eeb071dbce270aa36745fd6ca95af5 by aqjune
Precommit tests for D101720 (NFC)
The file was addedllvm/test/Transforms/InstCombine/select-safe-impliedcond-transforms.ll
Commit 24ce194cfe493bb743c288ed049fcd86c37aace2 by aqjune
[InstCombine] generalize select + select/and/or folding using implied conditions

This patch optimizes the remaining possible cases in D101191 by generalizing isImpliedCondition()-based
foldings.

Assume that there is `op a, (select b, _, _)` where op is one of `and i1`, `or i1` or their select forms.

We can do the following optimization based on the result of `isImpliedCondition(a, b)`:

If a = true implies…
- b = true:
    - select a, (select b, A, B), false => select a, A, false : https://alive2.llvm.org/ce/z/WCnZYh
    - and a, (select b, A, B) => select a, A, false : https://alive2.llvm.org/ce/z/uZhcMG
- b = false:
    - select a, (select b, A, B), false => select a, B, false : https://alive2.llvm.org/ce/z/c2hJpV
    - and a, (select b, A, B) => select a, B, false : https://alive2.llvm.org/ce/z/5ggwMM

If a = false implies…
- b = true:
    - select a, true, (select b, A, B) => select a, true, A : https://alive2.llvm.org/ce/z/tidKvH
    - or a, (select b, A, B) =>  select a, true, A : https://alive2.llvm.org/ce/z/cC-uyb
- b = false:
    - select a, true, (select b, A, B) => select a, true, B : https://alive2.llvm.org/ce/z/ZXpJq9
    - or a, (select b, A, B) => select a, true, B : https://alive2.llvm.org/ce/z/hnDrJj

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D101720
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
The file was modifiedllvm/test/Transforms/InstCombine/select-safe-bool-transforms.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineInternal.h
The file was modifiedllvm/test/Transforms/InstCombine/select-safe-impliedcond-transforms.ll
Commit 808fcddae406181cfc396df3dd065e821147c4c4 by sbc
[lld][WebAssembly] Fix crash with `-pie` without `--allow-undefined`

`shouldImport` was not returning true in PIC mode even though out
assumption elsewhere (in Relocations.cpp:scanRelocations) is that we
don't report undefined symbols in PIC mode today.  This was resulting
functions that were undefined and but also not imported which hits an
assert later on that all functions have valid indexes.

Differential Revision: https://reviews.llvm.org/D101716
The file was modifiedlld/wasm/Relocations.cpp
The file was modifiedlld/test/wasm/pie.ll
The file was modifiedlld/wasm/Writer.cpp
Commit 11326cbcdb9710311832774ccb08e69a607813ef by listmail
[IndVarSimplify][NFC] Removed mayThrow from if-condition in predicateLoopExits of IndVarSimplify

Instruction has mayHaveSideEffects method that returns true if mayThrow return true because this is called internally in the first method.  As such, the call being removed is redundant.

Patch By: vdsered (Daniil Seredkin)
Differential Revision: https://reviews.llvm.org/D101685
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit 07ce5c99d791a43efeefbbae30f951703e84bc46 by rob.suderman
[mlir][tosa] Add lowerings for tosa.equal and tosa.arithmetic_right_shift

Lowerings equal and arithmetic_right_shift for elementwise ops to linalg dialect using linalg.generic

Reviewed By: rsuderman

Differential Revision: https://reviews.llvm.org/D101804
The file was modifiedmlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
The file was modifiedmlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
Commit aa58281979710a1cee6f1635dc1074c4dfc44650 by springerm
[mlir] Fix bug in TransferOpReduceRank when all dims are broadcasts

TransferReadOps that are a scalar read + broadcast are handled by TransferReadToVectorLoadLowering.

Differential Revision: https://reviews.llvm.org/D101808
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
Commit 2669abaecfc47d4d2436559ab8c1fb49ad6e35c3 by Alex Lorenz
[clang][CodeGen] Use llvm::stable_sort for multi version resolver options

The use of llvm::sort causes periodic failures on the bot with EXPENSIVE_CHECKS enabled,
as the regular sort pre-shuffles the array in the expensive checks mode, leading to a
non-deterministic test result which causes the CodeGenCXX/attr-cpuspecific-outoflinedefs.cpp
testcase to fail on the bot (http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-expensive/).
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
Commit 959eec1fddc83c90c208789f20cb6573b2a20642 by noreply
[NFC] Give better diagnose on clang-format not found error

Contributors often confused by whether this is a server or local issue.
The file was modifiedutils/arcanist/clang-format.sh
Commit 27b426b0c8ab388fa7729c0ca2fe1d97141bcb72 by gkm
[lld-macho] Implement builtin section renaming

ld64 automatically renames many sections depending on output type and assorted flags. Here, we implement the most common configs. We can add more obscure flags and behaviors as needed.

Depends on D101393

Differential Revision: https://reviews.llvm.org/D101395
The file was modifiedlld/MachO/Config.h
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/MachO/MergedOutputSection.cpp
The file was modifiedlld/MachO/MergedOutputSection.h
The file was modifiedlld/test/MachO/x86-64-stubs.s
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/MachO/Options.td
The file was modifiedlld/test/MachO/load-command-sequence.s
The file was addedlld/test/MachO/builtin-rename.s
The file was modifiedlld/test/MachO/local-got.s
The file was modifiedlld/test/MachO/x86-64-relocs.s
Commit ed51156084dd84aa10d78eac14a66b36663069bc by Reshabhkumar.Sharma
[ModuleUtils] NFC: Add unit tests for appendToUsedList

This patch adds initial unit tests for appendToUsedList
in the ModuleUtils. It specifically tests changes from
https://reviews.llvm.org/D101363 which intent to allow
insertion of globals in non-zero address spaces into the
llvm used lists.

Reviewed by: dblaikie

Differential Revision: https://reviews.llvm.org/D101746
The file was addedllvm/unittests/Transforms/Utils/ModuleUtilsTest.cpp
The file was modifiedllvm/unittests/Transforms/Utils/CMakeLists.txt
Commit 97f4789c38f6cab60c10c5132816bc4822503a79 by llvmgnsyncbot
[gn build] Port ed51156084dd
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/Transforms/Utils/BUILD.gn
Commit 18883a3fec5a153ab64fb756f6c7f92bce9f9283 by david.green
[TTI] Replace ceil lambdas with divideCeil. NFCI

As pointed out in D101726, this function already exists in MathExtras.
It uses different types, but with the values used here I believe that
should not make a functional difference.
The file was modifiedllvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h
Commit 46fa214a6f24549d83a69793b7e14585c2eefa2b by fraser
[RISCV] Lower splats of non-constant i1s as SETCCs

This patch adds support for splatting i1 types to fixed-length or
scalable vector types. It does so by lowering the operation to a SETCC
of the equivalent i8 type.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D101465
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-mask-splat.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vsplats-i1.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h
Commit b83b23275b745287bf9d3d72a93b593119f53f75 by sguelton
Introduce -Wreserved-identifier

Warn when a declaration uses an identifier that doesn't obey the reserved
identifier rule from C and/or C++.

Differential Revision: https://reviews.llvm.org/D93095
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
The file was modifiedclang/include/clang/Basic/IdentifierTable.h
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/test/Preprocessor/macro-reserved.c
The file was modifiedclang/include/clang/Basic/DiagnosticGroups.td
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was addedclang/test/Sema/reserved-identifier.cpp
The file was modifiedclang/include/clang/AST/Decl.h
The file was modifiedclang/lib/Sema/SemaCodeComplete.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/test/Preprocessor/macro-reserved.cpp
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/lib/Basic/IdentifierTable.cpp
The file was addedclang/test/Sema/reserved-identifier.c
The file was modifiedclang/lib/AST/Decl.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
Commit f800ac8309417b78c084f2eabfd54d43a66b64a2 by kadircet
[clangd] Fix hover crash on broken code

Differential Revision: https://reviews.llvm.org/D101743
The file was modifiedclang-tools-extra/clangd/unittests/HoverTests.cpp
The file was modifiedclang-tools-extra/clangd/Hover.cpp
Commit 1db4dbba24dd36bd5a91ed58bd9d92dce2060c9f by simon.moll
Recommit "[VP,Integer,#2] ExpandVectorPredication pass"

This reverts the revert 02c5ba8679873e878ae7a76fb26808a47940275b

Fix:

Pass was registered as DUMMY_FUNCTION_PASS causing the newpm-pass
functions to be doubly defined. Triggered in -DLLVM_ENABLE_MODULE=1
builds.

Original commit:

This patch implements expansion of llvm.vp.* intrinsics
(https://llvm.org/docs/LangRef.html#vector-predication-intrinsics).

VP expansion is required for targets that do not implement VP code
generation. Since expansion is controllable with TTI, targets can switch
on the VP intrinsics they do support in their backend offering a smooth
transition strategy for VP code generation (VE, RISC-V V, ARM SVE,
AVX512, ..).

Reviewed By: rogfer01

Differential Revision: https://reviews.llvm.org/D78203
The file was modifiedllvm/test/CodeGen/X86/opt-pipeline.ll
The file was modifiedllvm/include/llvm/CodeGen/Passes.h
The file was modifiedllvm/include/llvm/IR/IntrinsicInst.h
The file was modifiedllvm/include/llvm/LinkAllPasses.h
The file was modifiedllvm/test/CodeGen/X86/O0-pipeline.ll
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp
The file was addedllvm/lib/CodeGen/ExpandVectorPredication.cpp
The file was modifiedllvm/lib/CodeGen/TargetPassConfig.cpp
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt
The file was modifiedllvm/lib/IR/IntrinsicInst.cpp
The file was modifiedllvm/test/CodeGen/AArch64/O0-pipeline.ll
The file was addedllvm/test/CodeGen/Generic/expand-vp.ll
The file was modifiedllvm/tools/llc/llc.cpp
The file was addedllvm/include/llvm/CodeGen/ExpandVectorPredication.h
The file was modifiedllvm/tools/opt/opt.cpp
The file was modifiedllvm/test/CodeGen/ARM/O3-pipeline.ll
The file was modifiedllvm/include/llvm/CodeGen/MachinePassRegistry.def
The file was modifiedllvm/test/CodeGen/AArch64/O3-pipeline.ll
Commit 3655f0757f2b4b61419446b326410118658826ba by bjorn.a.pettersson
Make dependency between certain analysis passes transitive

LazyBlockFrequenceInfoPass, LazyBranchProbabilityInfoPass and
LoopAccessLegacyAnalysis all cache pointers to their nestled required
analysis passes. One need to use addRequiredTransitive to describe
that the nestled passes can't be freed until those analysis passes
no longer are used themselves.

There is still a bit of a mess considering the getLazyBPIAnalysisUsage
and getLazyBFIAnalysisUsage functions. Those functions are used from
both Transform, CodeGen and Analysis passes. I figure it is OK to
use addRequiredTransitive also when being used from Transform and
CodeGen passes. On the other hand, I figure we must do it when
used from other Analysis passes. So using addRequiredTransitive should
be more correct here. An alternative solution would be to add a
bool option in those functions to let the user tell if it is a
analysis pass or not. Since those lazy passes will be obsolete when
new PM has conquered the world I figure we can leave it like this
right now.

Intention with the patch is to fix PR49950. It at least solves the
problem for the reproducer in PR49950. However, that reproducer
need five passes in a specific order, so there are lots of various
"solutions" that could avoid the crash without actually fixing the
root cause.

Differential Revision: https://reviews.llvm.org/D100958
The file was modifiedllvm/lib/Analysis/LazyBranchProbabilityInfo.cpp
The file was modifiedllvm/lib/Analysis/LoopAccessAnalysis.cpp
The file was modifiedllvm/lib/Analysis/LazyBlockFrequencyInfo.cpp
The file was addedllvm/test/Other/pr49950.ll
Commit caa84314049f27bfd4609d988f13ee95c16eb5ba by llvmgnsyncbot
[gn build] Port 1db4dbba24dd
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn
Commit 05146fe5171076eaec3ef6a9eeeab4c8a33acf15 by dave
[llvm] Unbreak no-assertion testing
The file was modifiedllvm/test/Transforms/OpenMP/single_threaded_execution.ll
Commit fb92cf92080d34f0bb0b2b0120086ee520f624b8 by jrtc27
[RISCV] Pre-commit tests for D101342

These tests show inefficient sign extension for AMOs on RISC-V. The
normal CodeGen tests use anyext return values, but if marked signext
then we end up generating unnecessary sign extension instructions. This
can be seen when compiling C that returns an i32 (signed or unsigned),
where the calling convention results in a signext return value.
The file was addedllvm/test/CodeGen/RISCV/atomic-signext.ll
Commit 8fa56f7ededcbe28cbbb810b5d261b72ab0d8035 by krasimir
[clang-format] Prevent extraneous space insertion in bitshift operators

This serves to augment the improvements made in https://reviews.llvm.org/D86581. It prevents clang-format from interpreting bitshift operators as template arguments in certain circumstances. This is an attempt at fixing https://bugs.llvm.org/show_bug.cgi?id=49868

Reviewed By: MyDeveloperDay, krasimir

Differential Revision: https://reviews.llvm.org/D100778
The file was modifiedclang/lib/Format/TokenAnnotator.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp