SuccessChanges

Summary

  1. [HIP] Return non-zero value for invalid target ID (details)
  2. BPF: explicitly specify bpfel triple for certain tests (details)
  3. [MLIR][OpenMP] Removed the ambiguity in flush op assembly syntax (details)
  4. [OpenMP][FIX] Verify compatible types for declare variant calls (details)
  5. [IndVars] Remove exiting conditions that are trivially true/false (details)
  6. [NFC] Use assert instead of checking the guaranteed condition (details)
  7. [Docs][NewPM] Add note about required passes (details)
  8. Revert "[OpenMP][FIX] Verify compatible types for declare variant calls" (details)
  9. [X86] Add known bits test for PEXT. NFC (details)
  10. [X86] Add computeKnownBits support for PEXT. (details)
  11. [Driver] Filter out <libdir>/gcc and <libdir>/gcc-cross if they do not exists (details)
  12. This reduces code duplication between CGObjCMac.cpp and Mangle.cpp (details)
  13. [NFC][ARM] Comments and lambdas (details)
  14. Recommit "[SCCP] Do not replace deref'able ptr with un-deref'able one." (details)
  15. Revert "Recommit "[SCCP] Do not replace deref'able ptr with un-deref'able one."" (details)
  16. [IsKnownNonZero] Handle the case with non-constant phi nodes (details)
  17. Revert "OpaquePtr: Add type to sret attribute" (details)
  18. [SCEV][NFC] Introduce isBasicBlockEntryGuardedByCond (details)
Commit 5a3023a91c0ec82e7272569c5ca7a6eb372b129f by Yaxun.Liu
[HIP] Return non-zero value for invalid target ID

This is part of https://reviews.llvm.org/D60620
The file was modifiedclang/lib/Driver/Driver.cpp (diff)
The file was modifiedclang/test/Driver/hip-invalid-target-id.hip (diff)
Commit ca1ce397acc39f348f4018e446c84a5746fd5e1e by yhs
BPF: explicitly specify bpfel triple for certain tests

Commit 54d9f743c8b0 ("BPF: move AbstractMemberAccess and
PreserveDIType passes to EP_EarlyAsPossible") changed most
of CORE tests with opt run followed by llc and opt requires
the target triple specified in the IR.

There are few tests where little endian and big endian will
report different result and for little endian versions of
tests, "target triple = "bpf"" will produce wrong results
if the test executed in a big endian machine, e.g.
PowerPC big endian machine, since target "bpf" represents
host endian and will resolve to "bpfeb".
The builtbot reported such failures when build-and-run
on a PowerPC big endian machine.

To fix the issue, using "target triple = "bpfel"" instead.
The file was modifiedllvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-1.ll (diff)
The file was modifiedllvm/test/CodeGen/BPF/CORE/offset-reloc-fieldinfo-2.ll (diff)
The file was modifiedllvm/test/CodeGen/BPF/CORE/intrinsic-fieldinfo-lshift-1.ll (diff)
The file was modifiedllvm/test/CodeGen/BPF/CORE/offset-reloc-fieldinfo-1.ll (diff)
The file was modifiedllvm/test/CodeGen/BPF/CORE/field-reloc-bitfield-2.ll (diff)
Commit f3ead88e9c6c352edb10cba43e62696fc852c7d6 by kirankumar.tp
[MLIR][OpenMP] Removed the ambiguity in flush op assembly syntax

Summary:
========
Bugzilla Ticket No: Bug 46884 [https://bugs.llvm.org/show_bug.cgi?id=46884]

Flush op assembly syntax was ambiguous:

Consider the below test case:
flush operation is not having any arguments.
But the next statement token i.e "%2" is read as the argument for flush operation and then translator issues an error.
***************************************************************
$ cat -n flush.mlir
     1  llvm.func @_QQmain(%arg0: !llvm.i32) {
     2    %0 = llvm.mlir.constant(1 : i64) : !llvm.i64
     3    %1 = llvm.alloca %0 x !llvm.i32 {in_type = i32, name = "a"} : (!llvm.i64) -> !llvm.ptr<i32>
     4    omp.flush
     5    %2 = llvm.load %1 : !llvm.ptr<i32>
     6    llvm.return
     7  }

$ mlir-translate -mlir-to-llvmir flush.mlir
flush.mlir:5:6: error: expected ':'
  %2 = llvm.load %1 : !llvm.ptr<i32>
     ^
***************************************************************

Solution:
=========
Introduced begin ( `(` ) and end token ( `)` ) to determince the begin and end of variadic arguments.

The patch includes code changes and testcase modifications.

Reviewed By: Valentin Clement, Mehdi AMINI

Differential Revision: https://reviews.llvm.org/D88376
The file was modifiedmlir/test/Target/openmp-llvm.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/OpenMP/OpenMPOps.td (diff)
The file was modifiedmlir/test/Dialect/OpenMP/ops.mlir (diff)
Commit c942095790decf525a445f3bd68fb9bcc9aa43c6 by johannes
[OpenMP][FIX] Verify compatible types for declare variant calls

Especially for templates we need to check at some point if the base
function matches the specialization we might call instead. Before this
lead to the replacement of `std::sqrt(int(2))` calls with one that
converts the argument to a `std::complex<int>`, clearly not the desired
behavior.

Reported as PR47655

Reviewed By: JonChesterfield

Differential Revision: https://reviews.llvm.org/D88384
The file was addedclang/test/AST/ast-dump-openmp-begin-declare-variant_template_3.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp (diff)
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp (diff)
Commit d266fd960e73e2ebdcc194564fc2554ff629d12a by mkazantsev
[IndVars] Remove exiting conditions that are trivially true/false

When removing exiting loop conditions, we only consider checks for
which we know the exact exit count. We could also eliminate checks for
which the condition is always true/false.

Differential Revision: https://reviews.llvm.org/D87344
Reviewed By: lebedev.ri, reames
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp (diff)
The file was modifiedllvm/test/Transforms/IndVarSimplify/eliminate-comparison.ll (diff)
Commit e862e78b63f918c000ce65f9c475730e673a4966 by mkazantsev
[NFC] Use assert instead of checking the guaranteed condition

From preconditions it is known that either A dominates B or
B dominates A. If A does not dominate B, we do not really need
to check it. Assert should be enough. Should save some compile
time.
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp (diff)
Commit da036b4514702f3a7c1d2981ff11b3067bad4329 by aeubanks
[Docs][NewPM] Add note about required passes

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D88342
The file was modifiedllvm/docs/WritingAnLLVMNewPMPass.rst (diff)
Commit 4fc69ab002382675d84f611f22599cb3cb4a0787 by johannes
Revert "[OpenMP][FIX] Verify compatible types for declare variant calls"

This reverts commit c942095790decf525a445f3bd68fb9bcc9aa43c6.

One of the tests broke, revert to investigate.
The file was removedclang/test/AST/ast-dump-openmp-begin-declare-variant_template_3.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp (diff)
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp (diff)
Commit a4b1fdec9172cdb40b583884efb2971ee3b7e991 by craig.topper
[X86] Add known bits test for PEXT. NFC
The file was modifiedllvm/test/CodeGen/X86/bmi2-x86_64.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/bmi2.ll (diff)
Commit 82da0cabb918a13c1e5ae283d8bc9556131f922e by craig.topper
[X86] Add computeKnownBits support for PEXT.

The number of zeros in the mask provides a lower bound on the number
of leading zeros in the result.
The file was modifiedllvm/test/CodeGen/X86/bmi2.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/bmi2-x86_64.ll (diff)
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp (diff)
Commit bc868da0e77a4f03b41654e0e9bbac28d95a5501 by dmantipov
[Driver] Filter out <libdir>/gcc and <libdir>/gcc-cross if they do not exists

Differential Revision: https://reviews.llvm.org/D87901
The file was modifiedclang/lib/Driver/ToolChains/Gnu.h (diff)
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp (diff)
Commit 98ef7e29b0fe03da77fa6ef5c86bea9e31c178d0 by rjmccall
This reduces code duplication between CGObjCMac.cpp and Mangle.cpp
for generating the mangled name of an Objective-C method.

This has no intended functionality change.

https://reviews.llvm.org/D88329
The file was modifiedclang/lib/AST/Mangle.cpp (diff)
The file was modifiedclang/include/clang/AST/Mangle.h (diff)
The file was modifiedclang/lib/CodeGen/CGObjCMac.cpp (diff)
The file was modifiedclang/lib/AST/MicrosoftMangle.cpp (diff)
The file was modifiedclang/lib/AST/ItaniumMangle.cpp (diff)
Commit 4c19b89b2587f321e1014a9855973c08a822b908 by sam.parker
[NFC][ARM] Comments and lambdas

Add some comments in LowOverheadLoops and make some lambda variables
explicit arguments instead of capturing.
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp (diff)
Commit 86a20d9e34f5a9989da72097f23f3b0a44157e73 by flo
Recommit "[SCCP] Do not replace deref'able ptr with un-deref'able one."

This version includes an small fix allowing function pointers to be
unconditionally replaced for now.

This reverts commit 4c5e4aa89b11ec3253258b8df5125833773d1b1e.
The file was modifiedllvm/lib/Analysis/Loads.cpp (diff)
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp (diff)
The file was modifiedllvm/test/Transforms/SCCP/apint-bigint2.ll (diff)
The file was modifiedllvm/test/Transforms/SCCP/indirectbr.ll (diff)
The file was modifiedllvm/test/Transforms/SCCP/replace-dereferenceable-ptr-with-undereferenceable.ll (diff)
Commit b76df593eb660d1e4c9f1384a75b404ee5bcd06f by flo
Revert "Recommit "[SCCP] Do not replace deref'able ptr with un-deref'able one.""

Looks like there is still another remaining issue:

http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap-msan/builds/22273/steps/build%20libcxx%2Fmsan/logs/stdio

This reverts commit 86a20d9e34f5a9989da72097f23f3b0a44157e73.
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp (diff)
The file was modifiedllvm/test/Transforms/SCCP/indirectbr.ll (diff)
The file was modifiedllvm/test/Transforms/SCCP/replace-dereferenceable-ptr-with-undereferenceable.ll (diff)
The file was modifiedllvm/lib/Analysis/Loads.cpp (diff)
The file was modifiedllvm/test/Transforms/SCCP/apint-bigint2.ll (diff)
Commit 297ec611304663931be52e6118d9f135ceb8a027 by serguei.katkov
[IsKnownNonZero] Handle the case with non-constant phi nodes

Handle the case when all inputs of phi are proven to be non zero.

Constants are checked in beginning of this method before check for depth of recursion,
so it is a partial case of non-constant phi.

Recursion depth is already handled by the function.

Reviewers: aqjune, nikic, efriedma
Reviewed By: nikic
Subscribers: dantrushin, hiraditya, jdoerfert, llvm-commits
Differential Revision: https://reviews.llvm.org/D88276
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/phi.ll (diff)
Commit eb9f7c28e5fe6d75fed3587023e17f2997c8024b by tpopp
Revert "OpaquePtr: Add type to sret attribute"

This reverts commit 55c4ff91bd820d72014f63dcf7f3d5a0d3397986.

Issues were introduced as discussed in https://reviews.llvm.org/D88241
where this change made previous bugs in the linker and BitCodeWriter
visible.
The file was modifiedclang/test/CodeGen/X86/x86_64-arguments-win32.c (diff)
The file was modifiedclang/test/CodeGen/ppc64-vector.c (diff)
The file was modifiedclang/test/CodeGen/renderscript.c (diff)
The file was modifiedllvm/test/Bitcode/attributes-3.3.ll (diff)
The file was modifiedllvm/test/Bitcode/attributes.ll (diff)
The file was modifiedclang/test/CodeGenObjC/stret_lookup.m (diff)
The file was modifiedclang/test/CodeGenCXX/conditional-gnu-ext.cpp (diff)
The file was modifiedclang/test/CodeGen/ppc64-qpx-vector.c (diff)
The file was modifiedclang/test/CodeGen/systemz-inline-asm.c (diff)
The file was modifiedclang/test/CodeGen/riscv32-ilp32-ilp32f-ilp32d-abi.c (diff)
The file was modifiedclang/test/CodeGen/arm_neon_intrinsics.c (diff)
The file was modifiedclang/test/CodeGenCXX/thunk-returning-memptr.cpp (diff)
The file was modifiedclang/test/CodeGen/aggregate-assign-call.c (diff)
The file was modifiedclang/test/CodeGenCXX/matrix-type.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/builtin-source-location.cpp (diff)
The file was modifiedclang/test/CodeGen/X86/x86_64-arguments-nacl.c (diff)
The file was modifiedllvm/test/Bitcode/compatibility-3.7.ll (diff)
The file was modifiedclang/test/CodeGen/riscv32-ilp32f-ilp32d-abi.c (diff)
The file was modifiedclang/test/CodeGenCXX/stack-reuse.cpp (diff)
The file was modifiedclang/test/CodeGen/riscv32-ilp32-ilp32f-abi.c (diff)
The file was modifiedclang/test/CodeGen/riscv32-ilp32f-abi.c (diff)
The file was modifiedclang/test/CodeGen/mcu-struct-return.c (diff)
The file was modifiedllvm/lib/IR/AsmWriter.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-unknown-arch.cpp (diff)
The file was modifiedclang/test/CodeGen/systemz-abi.c (diff)
The file was modifiedclang/test/CodeGenOpenCLCXX/addrspace-of-this.cl (diff)
The file was modifiedclang/test/CodeGen/regparm-struct.c (diff)
The file was modifiedclang/test/CodeGenCXX/exceptions.cpp (diff)
The file was modifiedllvm/test/Bitcode/compatibility-6.0.ll (diff)
The file was modifiedclang/test/CodeGen/2006-05-19-SingleEltReturn.c (diff)
The file was modifiedclang/test/CodeGen/arm-varargs.c (diff)
The file was modifiedclang/test/CodeGenCXX/x86_64-arguments.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/wasm-args-returns.cpp (diff)
The file was modifiedllvm/test/Bitcode/compatibility-3.8.ll (diff)
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp (diff)
The file was modifiedclang/test/CodeGen/arm64_32.c (diff)
The file was modifiedclang/test/CodeGen/c11atomics-ios.c (diff)
The file was modifiedclang/test/CodeGenCXX/regcall.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/homogeneous-aggregates.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/matrix-type-builtins.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/thunks.cpp (diff)
The file was modifiedclang/test/CodeGen/mingw-long-double.c (diff)
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-byval-thunks.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/stack-reuse-miscompile.cpp (diff)
The file was modifiedllvm/lib/IR/AttributeImpl.h (diff)
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-vmemptr-conflicts.cpp (diff)
The file was modifiedllvm/include/llvm/IR/Function.h (diff)
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp (diff)
The file was modifiedclang/test/CodeGen/ppc64-align-struct.c (diff)
The file was modifiedclang/test/CodeGen/systemz-abi.cpp (diff)
The file was modifiedllvm/docs/LangRef.rst (diff)
The file was modifiedllvm/test/Bitcode/compatibility-4.0.ll (diff)
The file was modifiedclang/test/CodeGen/lanai-arguments.c (diff)
The file was modifiedllvm/test/Bitcode/highLevelStructure.3.2.ll (diff)
The file was modifiedclang/test/CodeGenObjCXX/objc-struct-cxx-abi.mm (diff)
The file was modifiedllvm/lib/AsmParser/LLParser.h (diff)
The file was modifiedclang/test/CodeGenCXX/thiscall-struct-return.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/lambda-expressions.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/trivial_abi.cpp (diff)
The file was modifiedclang/test/CodeGen/ppc64le-aggregates.c (diff)
The file was modifiedclang/test/CodeGenCoroutines/coro-await.cpp (diff)
The file was modifiedclang/test/CodeGen/wasm-varargs.c (diff)
The file was modifiedclang/test/CodeGenOpenCL/addr-space-struct-arg.cl (diff)
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll (diff)
The file was modifiedclang/test/CodeGen/arm-vector-arguments.c (diff)
The file was modifiedclang/test/CodeGen/struct-passing.c (diff)
The file was modifiedclang/test/CodeGen/riscv64-lp64-abi.c (diff)
The file was modifiedclang/test/CodeGen/arc/arguments.c (diff)
The file was modifiedclang/test/CodeGen/X86/x86_32-arguments-iamcu.c (diff)
The file was modifiedllvm/lib/Bitcode/Reader/BitcodeReader.cpp (diff)
The file was modifiedclang/test/CodeGen/X86/x86_64-arguments.c (diff)
The file was modifiedclang/test/CodeGenCoroutines/coro-gro-nrvo.cpp (diff)
The file was modifiedllvm/test/Bitcode/compatibility.ll (diff)
The file was modifiedclang/test/CodeGen/aligned-sret.c (diff)
The file was modifiedclang/test/CodeGen/arm-swiftcall.c (diff)
The file was modifiedllvm/test/Bitcode/compatibility-5.0.ll (diff)
The file was modifiedclang/test/CodeGen/riscv32-ilp32d-abi.c (diff)
The file was modifiedclang/test/CodeGen/arm-homogenous.c (diff)
The file was modifiedclang/test/Modules/templates.mm (diff)
The file was modifiedclang/test/CodeGen/arm-neon-vld.c (diff)
The file was modifiedclang/test/CodeGen/ms_abi.c (diff)
The file was modifiedclang/test/CodeGenCXX/arm-cc.cpp (diff)
The file was modifiedllvm/docs/ReleaseNotes.rst (diff)
The file was modifiedclang/test/CodeGenCXX/pass-by-value-noalias.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/x86_32-arguments.cpp (diff)
The file was modifiedllvm/lib/IR/Attributes.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-cdecl-method-sret.cpp (diff)
The file was modifiedclang/test/CodeGen/arm-aapcs-vfp.c (diff)
The file was modifiedclang/test/CodeGen/ppc64le-f128Aggregates.c (diff)
The file was modifiedclang/test/CodeGen/ppc64-elf-abi.c (diff)
The file was modifiedclang/test/CodeGen/riscv64-lp64-lp64f-abi.c (diff)
The file was modifiedclang/test/CodeGenCXX/temporaries.cpp (diff)
The file was modifiedclang/test/CodeGen/windows-struct-abi.c (diff)
The file was modifiedclang/test/CodeGen/powerpc-c99complex.c (diff)
The file was modifiedllvm/test/Bitcode/compatibility-3.6.ll (diff)
The file was modifiedclang/test/CodeGen/X86/x86_32-arguments-darwin.c (diff)
The file was modifiedclang/test/CodeGen/blocks.c (diff)
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-byval-sret.cpp (diff)
The file was modifiedclang/test/CodeGen/vectorcall.c (diff)
The file was modifiedclang/test/CodeGenCXX/unknown-anytype.cpp (diff)
The file was modifiedclang/test/CodeGen/mips64-padding-arg.c (diff)
The file was modifiedclang/test/CodeGen/sparcv9-abi.c (diff)
The file was modifiedclang/test/CodeGen/riscv64-lp64d-abi.c (diff)
The file was modifiedllvm/test/Verifier/byref.ll (diff)
The file was modifiedclang/test/CodeGenObjC/stret-1.m (diff)
The file was modifiedclang/test/CodeGen/windows-swiftcall.c (diff)
The file was modifiedllvm/include/llvm/IR/Attributes.h (diff)
The file was modifiedclang/test/CodeGenObjC/weak-in-c-struct.m (diff)
The file was modifiedclang/test/CodeGenOpenCL/amdgpu-abi-struct-coerce.cl (diff)
The file was modifiedclang/test/CodeGen/arm-vfp16-arguments2.cpp (diff)
The file was modifiedclang/test/CodeGen/arm-vfp16-arguments.c (diff)
The file was removedllvm/test/Assembler/sret-type-attr.ll
The file was modifiedclang/test/CodeGenCXX/call-with-static-chain.cpp (diff)
The file was modifiedclang/test/CodeGen/ppc-aggregate-abi.cpp (diff)
The file was modifiedclang/test/CodeGenObjC/direct-method.m (diff)
The file was modifiedllvm/test/Bitcode/compatibility-3.9.ll (diff)
The file was modifiedclang/test/CodeGenObjC/nontrivial-c-struct-exception.m (diff)
The file was modifiedclang/test/CodeGen/64bit-swiftcall.c (diff)
The file was modifiedclang/test/CodeGen/aarch64-varargs.c (diff)
The file was modifiedclang/test/CodeGen/arm64-arguments.c (diff)
The file was modifiedclang/lib/CodeGen/CGCall.cpp (diff)
The file was modifiedclang/test/CodeGenCXX/cxx1z-copy-omission.cpp (diff)
The file was modifiedclang/test/CodeGenObjC/objc-non-trivial-struct-nrvo.m (diff)
The file was modifiedclang/test/CodeGen/riscv64-lp64-lp64f-lp64d-abi.c (diff)
The file was modifiedclang/test/CodeGen/systemz-abi-vector.c (diff)
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/sret.ll (diff)
The file was modifiedclang/test/CodeGenObjC/arc.m (diff)
The file was modifiedclang/test/CodeGen/wasm-arguments.c (diff)
The file was modifiedclang/test/CodeGenCXX/cxx1z-lambda-star-this.cpp (diff)
The file was modifiedclang/test/CodeGen/ppc64-soft-float.c (diff)
The file was modifiedclang/test/CodeGen/c11atomics.c (diff)
The file was modifiedclang/test/CodeGen/ppc32-and-aix-struct-return.c (diff)
The file was modifiedclang/test/CodeGen/arm64-microsoft-arguments.cpp (diff)
The file was modifiedllvm/lib/AsmParser/LLParser.cpp (diff)
The file was modifiedclang/test/CodeGen/riscv32-ilp32-abi.c (diff)
The file was modifiedclang/test/CodeGen/mips-zero-sized-struct.c (diff)
The file was modifiedllvm/include/llvm/IR/Attributes.td (diff)
The file was modifiedclang/test/CodeGen/le32-arguments.c (diff)
Commit 9100bd772d4ff153fd2d5cb13034f4ed8ea2d477 by mkazantsev
[SCEV][NFC] Introduce isBasicBlockEntryGuardedByCond

Currently, we have `isLoopEntryGuardedByCond` method in SCEV, which
checks that some fact is true if we enter the loop. In fact, this is just a
particular case of more general concept `isBasicBlockEntryGuardedByCond`
applied to given loop's header. In fact, the logic if this code is largely
independent on the given loop and only cares code above it.

This patch makes this generalization. Now we can query it for any block,
and `isBasicBlockEntryGuardedByCond` is just a particular case.

Differential Revision: https://reviews.llvm.org/D87828
Reviewed By: fhahn
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp (diff)
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h (diff)