FailedChanges

Summary

  1. [flang][msvc] Avoid range-based for over initializer_list. NFC. (details)
  2. [Attributor] Provide a command line option that limits recursion depth (details)
  3. [Attributor] Re-enable a run line in noalias.ll (details)
  4. [Attributor] Selectively look at the callee even when there are operand bundles (details)
  5. [Attributor] Cleanup `IRPosition::getArgNo` usages (details)
  6. [Attributor] Associate the callback callee with a call site argument (if any) (details)
  7. [llvm-cov gcov] Simply computation of line counts and exit block counter (details)
  8. [Attributor] Cleanup `::initialize` of various AAs (details)
  9. [Attributor][NFC] Improve check lines in depgraph.ll (details)
  10. [ARM] Try to rematerialize VCTP instructions (details)
Commit c58dfbdc818275dd0e8f34939a95da546c49cdf6 by llvm-project
[flang][msvc] Avoid range-based for over initializer_list. NFC.

Msvc crashes with "INTERNAL COMPILER ERROR" when iterating over an `std::initializer_list` in a constexpr constructor. Explicitly use the iterator instead.

This patch is part of the series to [[ http://lists.llvm.org/pipermail/flang-dev/2020-July/000448.html | make flang compilable with MS Visual Studio ]].

Reviewed By: isuruf

Differential Revision: https://reviews.llvm.org/D86425
The file was modifiedflang/include/flang/Common/enum-set.h
Commit d5d75f61e5fbeb290944ee5d28d6cd13fd40f223 by johannes
[Attributor] Provide a command line option that limits recursion depth

In `MultiSource/Benchmarks/tramp3d-v4/tramp3d-v4.cpp` we initialized
attributes until stack frame ~35k caused space to run out. The initial
size 1024 is pretty much random.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was addedllvm/test/Transforms/Attributor/chain.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
Commit 2600c9e2efce1dc4c64870b00a45ae0082c685fc by johannes
[Attributor] Re-enable a run line in noalias.ll

This was disabled as we were looking for a weird CGSCC problem. I
think/hope we fixed it as there were a lot of updates recently. I could
never reproduce this locally so I'll use the pre-commit phab builds to
confirm this suspicion and if they seem to be happy I'll assume this is
fixed.

Reviewed By: sstefan1

Differential Revision: https://reviews.llvm.org/D87266
The file was modifiedllvm/test/Transforms/Attributor/noalias.ll
Commit c0ab901bddd5cb80c71848a426b7eaa2882b2ef5 by johannes
[Attributor] Selectively look at the callee even when there are operand bundles

While operand bundles carry unpredictable semantics, we know some of
them and can therefore "ignore" them. In this case we allow to look at
the declaration of `llvm.assume` when asked for the attributes at a call
site. The assume operand bundles we have do not invalidate the
declaration attributes.

We cannot test this in isolation because the llvm.assume attributes are
determined by the parser. However, a follow up patch will provide test
coverage.
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit cefd2a2c705877feebd909a8537b89a8d1d575cc by johannes
[Attributor] Cleanup `IRPosition::getArgNo` usages

As we handle callback calls we need to disambiguate the call site
argument number from the callee argument number. While always equal in
non-callback calls, a callback comes with a partial parameter-argument
mapping so there is no implicit correspondence. Here we split
`IRPosition::getArgNo()` into two public functions, `getCallSiteArgNo()`
and `getCalleeArgNo()`. Usages are adjusted to pick the right one for
their purpose. This fixed some problems that would have been exposed as
we more aggressively optimize callbacks.
The file was modifiedllvm/test/Transforms/Attributor/callbacks.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
Commit 849146ba93fe14989ea0b727b055854b23e5c5e5 by johannes
[Attributor] Associate the callback callee with a call site argument (if any)

If we have a callback, call site arguments were already associated with
the callback callee. Now we also associate the function with the
callback callee, thus we know ensure that the following holds true (if
all return nonnull):
   `getAssociatedArgument()->getParent() == getAssociatedFunction()`

To test this an early exit from
  `AAMemoryBehaviorCallSiteArgument::initialize``
is included as well. Without the change to getAssociatedFunction() this
kind of early exit for declarations would cause callback call site
arguments to miss out.
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
Commit 6a9a0bfc3350efc0fc7fabec9a1fef94f4e9cc86 by i
[llvm-cov gcov] Simply computation of line counts and exit block counter
The file was modifiedllvm/lib/ProfileData/GCOV.cpp
Commit d445b6dfec13cdf9b9cb01582ec93548ea30ed0e by johannes
[Attributor] Cleanup `::initialize` of various AAs

This commit cleans up the ::initialize method of various AAs in the
following ways:
  - If an associated function is required, give up on declarations.
    This was discovered as a real problem when lots of llvm.dbg.XXX
    call sites were assumed `noreturn` until proven otherwise. That
    does not make any sense and caused huge regressions and missed
    deductions.
  - Require more associated declarations for function interface AAs.
  - Use the IRAttribute::initialize to determine if function interface
    AAs can be used in IPO, don't replicate the checks (especially
    isFunctionIPOAmendable) all over the place. Arguably the function
    declaration check should be moved to some central place to.
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll
The file was modifiedllvm/test/Transforms/Attributor/heap_to_stack.ll
The file was modifiedllvm/test/Transforms/Attributor/noundef.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/dbg.ll
The file was modifiedllvm/test/Transforms/Attributor/misc.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/thiscall.ll
The file was modifiedllvm/test/Transforms/Attributor/callbacks.ll
The file was modifiedllvm/test/Transforms/Attributor/noalias.ll
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/profile.ll
The file was modifiedllvm/test/Transforms/Attributor/nofree.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll
The file was modifiedllvm/test/Transforms/Attributor/dereferenceable-2.ll
The file was modifiedllvm/test/Transforms/Attributor/liveness.ll
Commit f9ea4501b861ecc987afb4a71266dcc83ae640ca by johannes
[Attributor][NFC] Improve check lines in depgraph.ll

This adds the check lines with -NEXT so we see any change in the future.
The file was modifiedllvm/test/Transforms/Attributor/depgraph.ll
Commit 3ebc7552270e632d16e7900dd6933ed467159289 by sam.parker
[ARM] Try to rematerialize VCTP instructions

We really want to try and avoid spilling P0, which can be difficult
since there's only one register, so try to rematerialize any VCTP
instructions.

Differential Revision: https://reviews.llvm.org/D87280
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.h
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/remat-vctp.ll