platform/upstream/llvm.git
4 years ago[NFC, StackSafety] Move FunctionInfo into :: namespace
Vitaly Buka [Sun, 24 May 2020 05:47:21 +0000 (22:47 -0700)]
[NFC, StackSafety] Move FunctionInfo into :: namespace

4 years ago[AMDGPU] Bail alloca vectorization if GEP not found
Stanislav Mekhanoshin [Tue, 26 May 2020 20:30:19 +0000 (13:30 -0700)]
[AMDGPU] Bail alloca vectorization if GEP not found

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

4 years ago[LoopUnroll] Simplify latch/header block handling (NFC).
Florian Hahn [Tue, 26 May 2020 20:50:15 +0000 (21:50 +0100)]
[LoopUnroll] Simplify latch/header block handling (NFC).

I think the current code dealing with connecting the unrolled iterations
is a bit more complicated than necessary currently. To connect the
unrolled iterations, we have to update the unrolled latch blocks to
branch to the header of the next unrolled iteration.

We need to do this regardless whether the latch is exiting or not.

Additionally, we try to turn the conditional branch in the exiting block
to an unconditional one. This is an optimization only; alternatively we
could leave the conditional branches in place and rely on other passes
to simplify the conditions.

Logically, this is a separate step from connecting the latches to the
headers, but it is convenient to fold them into the same loop, if the
latch is also exiting. For headers (or other non-latch exiting blocks,
this is done separately).

Hopefully the patch with additional comments makes things a bit clearer.

Reviewers: efriedma, dmgreen, hfinkel, Whitney

Reviewed By: efriedma

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

4 years ago[MLICM] Remove unneeded option so the test doesn't fail.
Davide Italiano [Tue, 26 May 2020 20:53:16 +0000 (13:53 -0700)]
[MLICM] Remove unneeded option so the test doesn't fail.

4 years agoLet @skipUnlessAddressSanitizer imply @skipIfAsan
Adrian Prantl [Tue, 26 May 2020 20:49:23 +0000 (13:49 -0700)]
Let @skipUnlessAddressSanitizer imply @skipIfAsan

Don't run tests that use address sanitizer inside an address-sanitized
LLDB. The tests don't support that configuration. Incidentally they
were skipped on green dragon for a different reason, so this hasn't
come up there before.

4 years ago[Clang][Driver] Add Bounds and Thread to SupportsCoverage list
Marco Elver [Tue, 26 May 2020 19:51:46 +0000 (12:51 -0700)]
[Clang][Driver] Add Bounds and Thread to SupportsCoverage list

Summary:
This permits combining -fsanitize-coverage with -fsanitize=bounds or
-fsanitize=thread. Note that, GCC already supports combining these.

Tested:
- Add Clang end-to-end test checking IR is generated for both combinations
of sanitizers.
- Several previously failing TSAN tests now pass.

Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=45831

Reviewers: vitalybuka

Reviewed By: vitalybuka

Subscribers: #sanitizers, dvyukov, nickdesaulniers, cfe-commits

Tags: #clang, #sanitizers

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

4 years agoAMDGPU: Fix wrong null value for private address space
Matt Arsenault [Sun, 24 May 2020 16:28:59 +0000 (12:28 -0400)]
AMDGPU: Fix wrong null value for private address space

I'm guessing this was a holdover from when 0 was an invalid stack
pointer, but surprised nobody has discovered this before.

Also don't allow offset folding for -1 pointers, since it looks weird
to partially fold this.

4 years ago[mlir] Hotfix - Add inline to avoid multiple symbols on trivial functions
Nicolas Vasilache [Tue, 26 May 2020 20:24:56 +0000 (16:24 -0400)]
[mlir] Hotfix - Add inline to avoid multiple symbols on trivial functions

4 years ago[mlir] Hotfix - Drop spurious constexpr that breaks build
Nicolas Vasilache [Tue, 26 May 2020 20:21:15 +0000 (16:21 -0400)]
[mlir] Hotfix - Drop spurious constexpr that breaks build

4 years ago[lldb/Test] Cleanup TestSymbolTable.py (NFC)
Jonas Devlieghere [Tue, 26 May 2020 20:15:43 +0000 (13:15 -0700)]
[lldb/Test] Cleanup TestSymbolTable.py (NFC)

4 years ago[DebugInfo] Correct debuginfo for post-ra hoist and sink in Machine LICM
Chris Jackson [Tue, 26 May 2020 18:28:34 +0000 (19:28 +0100)]
[DebugInfo] Correct debuginfo for post-ra hoist and sink in Machine LICM

Reviewers: vsk, aprantl

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

4 years agoProcess gep (select ptr1, ptr2) in SROA
Stanislav Mekhanoshin [Thu, 30 Apr 2020 23:42:27 +0000 (16:42 -0700)]
Process gep (select ptr1, ptr2) in SROA

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

4 years ago[mlir][Vector] Add more vector.contract -> outerproduct lowerings and fix vector...
Nicolas Vasilache [Tue, 26 May 2020 19:34:57 +0000 (15:34 -0400)]
[mlir][Vector] Add more vector.contract -> outerproduct lowerings and fix vector.contract type inference.

This revision expands the types of vector contractions that can be lowered to vector.outerproduct.
All 8 permutation cases are support.
The idiomatic manipulation of AffineMap written declaratively makes this straightforward.

In the process a bug with the vector.contract verifier was uncovered.
The vector shape verification part of the contract op is rewritten to use AffineMap composition.
One bug in the vector `ops.mlir` test is fixed and a new case not yet captured is added
to the vector`invalid.mlir` test.

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

4 years ago[Support] Remove stale comment
Shoaib Meenai [Tue, 26 May 2020 19:22:03 +0000 (12:22 -0700)]
[Support] Remove stale comment

Clang has supported __builtin_assume_aligned since r217349 back in 2014,
so the comment is very out of date.

4 years agoAMDGPU: Update store node checks for atomics
Matt Arsenault [Sun, 24 May 2020 22:06:56 +0000 (18:06 -0400)]
AMDGPU: Update store node checks for atomics

Prepare to switch to using StoreSDNode for atomic stores.

4 years ago[flang] Fixes for problems with declaring procedure entities
Pete Steinfeld [Fri, 22 May 2020 19:08:56 +0000 (12:08 -0700)]
[flang] Fixes for problems with declaring procedure entities

Summary:
We were not detecting declaring multiple interfaces to the same procedure.
Also, we were not handling the initialization of entitiies where the associated
Symbol had previously had errors.

I added the function `IsInterfaceSet()` to ProcEntityDetails to see if
the value of `interface_` had been previously set.  I then checked  this
function before calling set_interface() and emitted an error message if
the interface was already set.

Also, in situations where we were emitting error messages for symbols, I
set the Error flag on the Symbol.  Then when performing initialization
on the Symbol, I first check to see if the Symbol had an error.

Reviewers: tskeith, klausler, DavidTruby

Subscribers: llvm-commits

Tags: #llvm

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

4 years ago[MSSA][Doc] Fix typo
Stefanos Baziotis [Tue, 26 May 2020 19:16:13 +0000 (22:16 +0300)]
[MSSA][Doc] Fix typo

4 years ago[lldb/Test] Reinstate FoundationSymtabTestCase
Jonas Devlieghere [Tue, 26 May 2020 19:14:32 +0000 (12:14 -0700)]
[lldb/Test] Reinstate FoundationSymtabTestCase

4 years agoRoll variables into an LLVM_DEBUG block to address -Wunused-but-set-variable
David Blaikie [Tue, 26 May 2020 19:04:14 +0000 (12:04 -0700)]
Roll variables into an LLVM_DEBUG block to address -Wunused-but-set-variable

4 years agoBe more specific about auto * vs auto for po alias.
Eric Christopher [Tue, 26 May 2020 18:58:31 +0000 (11:58 -0700)]
Be more specific about auto * vs auto for po alias.

4 years ago[InstCombine] reassociate sub+add to increase adds and throughput
Sanjay Patel [Tue, 26 May 2020 18:32:57 +0000 (14:32 -0400)]
[InstCombine] reassociate sub+add to increase adds and throughput

The -reassociate pass tends to transform this kind of pattern into
something that is worse for vectorization and codegen. See PR43953:
https://bugs.llvm.org/show_bug.cgi?id=43953

Follows-up the FP version of the same transform:
rGa0ce2338a083

4 years ago[LoopVectorize] regenerate full test checks; NFC
Sanjay Patel [Tue, 26 May 2020 18:30:48 +0000 (14:30 -0400)]
[LoopVectorize] regenerate full test checks; NFC

4 years ago[InstCombine] add tests for reassociative sub/add expressions; NFC
Sanjay Patel [Tue, 26 May 2020 17:27:16 +0000 (13:27 -0400)]
[InstCombine] add tests for reassociative sub/add expressions; NFC

4 years ago[PowerPC] Add support for -mcpu=pwr10 in both clang and llvm
Lei Huang [Fri, 15 May 2020 17:30:07 +0000 (12:30 -0500)]
[PowerPC] Add support for -mcpu=pwr10 in both clang and llvm

Summary:
This patch simply adds support for the new CPU in anticipation of
Power10. There isn't really any functionality added so there are no
associated test cases at this time.

Reviewers: stefanp, nemanjai, amyk, hfinkel, power-llvm-team, #powerpc

Reviewed By: stefanp, nemanjai, amyk, #powerpc

Subscribers: NeHuang, steven.zhang, hiraditya, llvm-commits, wuzish, shchenz, cfe-commits, kbarton, echristo

Tags: #clang, #powerpc, #llvm

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

4 years ago[Analyzer] Fix buildbot failure of commit rGd70ec366c91b
Adam Balogh [Tue, 26 May 2020 18:43:37 +0000 (20:43 +0200)]
[Analyzer] Fix buildbot failure of commit rGd70ec366c91b

4 years ago[PowerPC][NFC] Update test to prevent DCE from causing failures
Nemanja Ivanovic [Tue, 26 May 2020 18:34:52 +0000 (13:34 -0500)]
[PowerPC][NFC] Update test to prevent DCE from causing failures

The test case provided in PR45709 can be simplified by DCE to an
empty function. To prevent this from happening if DCE is run prior
to ISEL in the back end, just add optnone to the function. The
behaviour it is testing for is in the SDAG legalization and is
not sensitive to optnone so the test case still achieves its desired
objective.

4 years ago[fuzzer][afl] Fix build with GCC
Kostya Serebryany [Tue, 26 May 2020 18:31:24 +0000 (11:31 -0700)]
[fuzzer][afl] Fix build with GCC

Summary:
Fixes this build error with GCC 9.3.0:

```
../lib/fuzzer/afl/afl_driver.cpp:114:30: error: expected unqualified-id before string constant
  114 | __attribute__((weak)) extern "C" void __sanitizer_set_report_fd(void *);
      |                              ^~~
```

Reviewers: metzman, kcc

Reviewed By: kcc

Subscribers: #sanitizers

Tags: #sanitizers

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

4 years ago[StaticAnalyzer] Fix non-virtual destructor warning
Jonas Devlieghere [Tue, 26 May 2020 18:32:02 +0000 (11:32 -0700)]
[StaticAnalyzer] Fix non-virtual destructor warning

Ficed warning: 'clang::ento::ExprEngine' has virtual functions but non-virtual destructor [-
Wnon-virtual-dtor]
  ~ExprEngine() = default;

4 years ago[lldb/Reproducers] Skip remaining failing test in python_api subdir
Jonas Devlieghere [Tue, 26 May 2020 18:22:48 +0000 (11:22 -0700)]
[lldb/Reproducers] Skip remaining failing test in python_api subdir

Skip the remaining two failing test in the python_api subdirectory. See
inline comments for the reason why.

4 years agoObjCARCAnalysisUtils.h - remove unused includes. NFC.
Simon Pilgrim [Tue, 26 May 2020 18:09:36 +0000 (19:09 +0100)]
ObjCARCAnalysisUtils.h - remove unused includes. NFC.

We just need to include Passes.h in ObjCARCAliasAnalysis.cpp to compensate

4 years agoResourcePriorityQueue.h - reduce unnecessary includes to forward declarations. NFC.
Simon Pilgrim [Tue, 26 May 2020 17:46:37 +0000 (18:46 +0100)]
ResourcePriorityQueue.h - reduce unnecessary includes to forward declarations. NFC.

Move includes to ResourcePriorityQueue.cpp

4 years ago[ELF] Allow misaligned SHT_GNU_verneed
Fangrui Song [Tue, 26 May 2020 18:06:07 +0000 (11:06 -0700)]
[ELF] Allow misaligned SHT_GNU_verneed

Bazel created interface shared objects (.ifso) may be misaligned.  We use
llvm::support::detail::packed_endian_specific_integral under the hood
which allows reading of misaligned values, so there is not a need to
diagnose (in LLD we don't intend to support sophisticated parsing for
SHT_GNU_*).

4 years ago[YAMLTraits] Remove char trait and serialize as uint8_t in lldb.
Jonas Devlieghere [Tue, 26 May 2020 17:54:12 +0000 (10:54 -0700)]
[YAMLTraits] Remove char trait and serialize as uint8_t in lldb.

As discussed in https://reviews.llvm.org/D79745

4 years ago[gn build] Port d70ec366c91
LLVM GN Syncbot [Tue, 26 May 2020 17:56:17 +0000 (17:56 +0000)]
[gn build] Port d70ec366c91

4 years ago[Analyzer][NFC] Remove the SubEngine interface
Adam Balogh [Tue, 26 May 2020 11:48:20 +0000 (13:48 +0200)]
[Analyzer][NFC] Remove the SubEngine interface

The `SubEngine` interface is an interface with only one implementation
`EpxrEngine`. Adding other implementations are difficult and very
unlikely in the near future. Currently, if anything from `ExprEngine` is
to be exposed to other classes it is moved to `SubEngine` which
restricts the alternative implementations. The virtual methods are have
a slight perofrmance impact. Furthermore, instead of the `LLVM`-style
inheritance a native inheritance is used here, which renders `LLVM`
functions like e.g. `cast<T>()` unusable here. This patch removes this
interface and allows usage of `ExprEngine` directly.

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

4 years ago[clang-format] Fix an ObjC regression introduced with new [[likely]][[unlikely]]...
mydeveloperday [Tue, 26 May 2020 17:47:56 +0000 (18:47 +0100)]
[clang-format] Fix an ObjC regression introduced with new [[likely]][[unlikely]] support in if/else clauses

Summary:
{D80144} introduce an ObjC regression

Only parse the `[]` if what follows is really an attribute

Reviewers: krasimir, JakeMerdichAMD

Reviewed By: krasimir

Subscribers: rdwampler, aaron.ballman, curdeius, cfe-commits

Tags: #clang, #clang-format

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

4 years ago[MSSA][Doc] Clobbers, more info on Defs / Def chain
Stefanos Baziotis [Tue, 26 May 2020 17:40:45 +0000 (20:40 +0300)]
[MSSA][Doc] Clobbers, more info on Defs / Def chain

- Added more info about what we refer as a clobber in MSSA.
- Added more info about MemoryDefs and how there is a single Def chain.
- The doc portrayed MSSA as modeling the heap whileit is modeling
  the whole memory, so I changed the wording to not be heap-specific.

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

4 years ago[PowerPC][NFC] Add colon to TODO's and fix indentation.
Sean Fertile [Tue, 26 May 2020 17:06:50 +0000 (13:06 -0400)]
[PowerPC][NFC] Add colon to TODO's and fix indentation.

4 years ago[PGO] Add memcmp/bcmp size value profiling.
Hiroshi Yamauchi [Tue, 4 Feb 2020 23:19:33 +0000 (15:19 -0800)]
[PGO] Add memcmp/bcmp size value profiling.

Summary: This adds support for memcmp/bcmp to the existing memcpy/memset value profiling.

Reviewers: davidxl

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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

4 years ago[InstCombine] reassociate fsub+fadd with FMF to increase adds and throughput
Sanjay Patel [Tue, 26 May 2020 16:48:22 +0000 (12:48 -0400)]
[InstCombine] reassociate fsub+fadd with FMF to increase adds and throughput

The -reassociate pass tends to transform this kind of pattern into
something that is worse for vectorization and codegen. See PR43953:
https://bugs.llvm.org/show_bug.cgi?id=43953

4 years agoRevert "[AMDGPU] NFC target dependent requiresUniformRegister refactored out"
Matt Arsenault [Tue, 26 May 2020 16:58:18 +0000 (12:58 -0400)]
Revert "[AMDGPU] NFC target dependent requiresUniformRegister refactored out"

This reverts commit fb38b98338cc87442e3451665e82bf1c8ef9388f.

This will regress compile time.

4 years ago[AMDGPU] NFC target dependent requiresUniformRegister refactored out
alex-t [Tue, 26 May 2020 16:47:29 +0000 (19:47 +0300)]
[AMDGPU] NFC target dependent requiresUniformRegister refactored out

Summary: Target specific method encapsulated into the Target Lowering Info.

Reviewers: rampitec, vpykhtin

Reviewed By: rampitec

Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits

Tags: #llvm

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

4 years ago[dsymutil] Escape CFBundleIdentifier in plist.
Jonas Devlieghere [Tue, 26 May 2020 16:37:14 +0000 (09:37 -0700)]
[dsymutil] Escape CFBundleIdentifier in plist.

Revision 333565 started escaping HTML special characters in the plist
written by dsymutil, but didn't include the updated CFBundleIdentifier.

4 years ago[ELF][PPC64] Synthesize _savegpr[01]_{14..31} and _restgpr[01]_{14..31}
Fangrui Song [Thu, 14 May 2020 20:55:20 +0000 (13:55 -0700)]
[ELF][PPC64] Synthesize _savegpr[01]_{14..31} and _restgpr[01]_{14..31}

In the 64-bit ELF V2 API Specification: Power Architecture, 2.3.3.1. GPR
Save and Restore Functions defines some special functions which may be
referenced by GCC produced assembly (LLVM does not reference them).

With GCC -Os, when the number of call-saved registers exceeds a certain
threshold, GCC generates `_savegpr0_* _restgpr0_*` calls and expects the
linker to define them. See
https://sourceware.org/pipermail/binutils/2002-February/017444.html and
https://sourceware.org/pipermail/binutils/2004-August/036765.html . This
is weird because libgcc.a would be the natural place. However, the linker
generation approach has the advantage that the linker can generate
multiple copies to avoid long branch thunks. We don't consider the
advantage significant enough to complicate our trunk implementation, so
we take a simple approach.

* Check whether `_savegpr0_{14..31}` are used
* If yes, define needed symbols and add an InputSection with the code sequence.

`_savegpr1_*` `_restgpr0_*` and `_restgpr1_*` are similar.

Reviewed By: sfertile

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

4 years ago[PowerPC][AIX] Spill CSRs to the ABI specified stack offsets.
Sean Fertile [Tue, 26 May 2020 14:37:51 +0000 (10:37 -0400)]
[PowerPC][AIX] Spill CSRs to the ABI specified stack offsets.

Extend the CSR save/restore insertion code to support both 32-bit and
64-bit AIX.

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

4 years agoFix MemoryLocation.h use without Instructions.h
Sanne Wouda [Tue, 26 May 2020 16:11:32 +0000 (17:11 +0100)]
Fix MemoryLocation.h use without Instructions.h

MemoryLocation.h was changed to only include Instruction.h.  However,
cast<> still needs the full definiton, so move MemoryLocation::getOrNone
to the cpp file.

4 years agoAMDGPU/GlobalISel: Fix assert on 16-bit G_EXTRACT results
Matt Arsenault [Wed, 20 May 2020 17:26:10 +0000 (13:26 -0400)]
AMDGPU/GlobalISel: Fix assert on 16-bit G_EXTRACT results

I consider this to be a hack, since we probably should not mark any
16-bit extract as legal, and require all extracts to be done on
multiples of 32. There are quite a few more battles to fight in the
legalizer for sub-dword vectors, so just select this for now so we can
pass OpenCL conformance without crashing.

Also fix the same assert for G_INSERTs. Unlike G_EXTRACT there's not a
trivial way to select this so just fail on it.

4 years agoAdd missing forward decl to unbreak the modular build
Adrian Prantl [Tue, 26 May 2020 15:53:02 +0000 (08:53 -0700)]
Add missing forward decl to unbreak the modular build

4 years agoDebug Info: Mark os_log helper functions as artificial
Adrian Prantl [Sat, 23 May 2020 00:33:03 +0000 (17:33 -0700)]
Debug Info: Mark os_log helper functions as artificial

The os_log helper functions are linkonce_odr and supposed to be
uniqued across TUs, so attachine a DW_AT_decl_line on it is highly
misleading. By setting the function decl to implicit, CGDebugInfo
properly marks the functions as artificial and uses a default file /
line 0 location for the function.

rdar://problem/63450824

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

4 years agoGlobalISel: Merge G_PTR_MASK with llvm.ptrmask intrinsic
Matt Arsenault [Fri, 15 May 2020 22:33:01 +0000 (18:33 -0400)]
GlobalISel: Merge G_PTR_MASK with llvm.ptrmask intrinsic

Confusingly, these were unrelated and had different semantics. The
G_PTR_MASK instruction predates the llvm.ptrmask intrinsic, but has a
different format. G_PTR_MASK only allows clearing the low bits of a
pointer, and only a constant number of bits. The ptrmask intrinsic
allows an arbitrary mask. Replace G_PTR_MASK to match the intrinsic.

Only selects the cases that look like the old instruction. More work
is needed to select the general case. Also new legalization code is
still needed to deal with the case where the incoming mask size does
not match the pointer size, which has a specified behavior in the
langref.

4 years agoUse configure depends to trigger reconfiguration when LLVMBuild files change
Daniel Frampton [Thu, 21 May 2020 10:03:24 +0000 (11:03 +0100)]
Use configure depends to trigger reconfiguration when LLVMBuild files change

Summary:
The existing logic has a workaround where configure_file is used to write a single dummy file output many times.

CMake has a feature to more directly add the dependency and avoid the dummy file (it is available in the minimum version specified).

Reviewers: theraven

Reviewed By: theraven

Subscribers: theraven, llvm-commits

Tags: #llvm

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

4 years ago[PowerPC] Unaligned FP default should apply to scalars only
Nemanja Ivanovic [Tue, 26 May 2020 14:58:25 +0000 (09:58 -0500)]
[PowerPC] Unaligned FP default should apply to scalars only

As reported in PR45186, we could be in a situation where we don't
want to handle unaligned memory accesses for FP scalars but still
have VSX (which allows unaligned access for vectors). Change the
default to only apply to scalars.

Fixes: https://bugs.llvm.org/show_bug.cgi?id=45186

4 years agoAMDGPU/GlobalISel: Don't select boolean phi by default
Matt Arsenault [Wed, 20 May 2020 03:03:39 +0000 (23:03 -0400)]
AMDGPU/GlobalISel: Don't select boolean phi by default

This is currently missing most of the hard parts to lower correctly,
so disable it for now. This fixes at least one OpenCL conformance test
and allows it to pass with fallback. Hide this behind an option for
now.

4 years ago[MLIR] Helper class referencing MemRefType to unify runner implementations.
Christian Sigg [Mon, 25 May 2020 10:05:57 +0000 (12:05 +0200)]
[MLIR] Helper class referencing MemRefType to unify runner implementations.

Summary:
Add DynamicMemRefType which can reference one of the statically ranked StridedMemRefType or a UnrankedMemRefType so that runner utils only need to be implemented once.

There is definitely room for more clean up and unification, but I will keep that for follow-ups.

Reviewers: nicolasvasilache

Reviewed By: nicolasvasilache

Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, stephenneuendorffer, Joonsoo, grosul1, frgossen, Kayjukh, jurahul, llvm-commits

Tags: #llvm

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

4 years ago[NFC][ARM][AArch64] More code size tests
Sam Parker [Tue, 26 May 2020 13:47:02 +0000 (14:47 +0100)]
[NFC][ARM][AArch64] More code size tests

Add analysis runs for icmp, fcmp and select instructions.

4 years ago[mlir][Vector] Add vector contraction to outerproduct lowering
Nicolas Vasilache [Tue, 26 May 2020 13:16:54 +0000 (09:16 -0400)]
[mlir][Vector] Add vector contraction to outerproduct lowering

This revision adds the additional lowering and exposes the patterns at a finer granularity for better programmatic reuse. The unit test makes use of the finer grained pattern for simpler checks.

As the ContractionOpLowering is exposed programmatically, cleanup opportunities appear and static class methods are turned into free functions with static visibility.

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

4 years agoUpdate DialectConversion.md
Tharindu Rusira [Tue, 26 May 2020 06:48:06 +0000 (00:48 -0600)]
Update DialectConversion.md

line 164: typo? baz.add should be bar.add.
`bar.add` -> `foo.add`

4 years ago[libTooling] In Transformer, allow atomic changes to span multiple files.
Yitzhak Mandelbaum [Tue, 19 May 2020 18:26:46 +0000 (14:26 -0400)]
[libTooling] In Transformer, allow atomic changes to span multiple files.

Summary:
Currently, all changes returned by a single application of a rule must fit in
one atomic change and therefore must apply to one file. However, there are
patterns in which a single rule will want to modify multiple files; for example,
a header and implementation to change a declaration and its definition. This
patch relaxes Transformer, libTooling's interpreter of RewriteRules, to support
multiple changes.

Reviewers: gribozavr

Subscribers: mgrang, jfb, cfe-commits

Tags: #clang

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

4 years ago[ARM] MVE VMINV/VMAXV test additions. NFC
David Green [Tue, 26 May 2020 12:23:23 +0000 (13:23 +0100)]
[ARM] MVE VMINV/VMAXV test additions. NFC

4 years ago[Sema] Diagnose more cases of static data members in local or unnamed classes
John Brawn [Tue, 26 May 2020 10:30:27 +0000 (11:30 +0100)]
[Sema] Diagnose more cases of static data members in local or unnamed classes

We currently diagnose static data members directly contained in unnamed classes,
but we should also diagnose when they're in a class that is nested (directly or
indirectly) in an unnamed class. Do this by iterating up the list of parent
DeclContexts and checking if any is an unnamed class.

Similarly also check for function or method DeclContexts (which includes things
like blocks and openmp captured statements) as then the class is considered to
be a local class, which means static data members aren't allowed.

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

4 years ago[FPEnv] Intrinsic llvm.roundeven
Serge Pavlov [Tue, 26 May 2020 12:24:05 +0000 (19:24 +0700)]
[FPEnv] Intrinsic llvm.roundeven

This intrinsic implements IEEE-754 operation roundToIntegralTiesToEven,
and performs rounding to the nearest integer value, rounding halfway
cases to even. The intrinsic represents the missed case of IEEE-754
rounding operations and now llvm provides full support of the rounding
operations defined by the standard.

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

4 years ago[DAGCombiner] try to move splat after binop with splat constant
Sanjay Patel [Tue, 26 May 2020 11:56:50 +0000 (07:56 -0400)]
[DAGCombiner] try to move splat after binop with splat constant

binop (splat X), (splat C) --> splat (binop X, C)
binop (splat C), (splat X) --> splat (binop C, X)

We do this in IR, and there's a similar fold for the case with 2
non-constant operands just above the code diff in this patch.

This was discussed in D79718, and the extra shuffle in the test
(llvm/test/CodeGen/X86/vector-fshl-128.ll::sink_splatvar) where it
was noticed disappears because demanded elements analysis is no
longer blocked. The large majority of the test diffs seem to be
benign code scheduling changes, but I do see another type of win:
moving the splat later allows binop narrowing in some cases.

Regressions were avoided on x86 and ARM with the INSERT_VECTOR_ELT
restriction.

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

4 years ago[Transforms] Check validity of profile reader before invoking it
Yi Kong [Tue, 26 May 2020 11:13:10 +0000 (19:13 +0800)]
[Transforms] Check validity of profile reader before invoking it

Although an invalid sampling profile would fail the compilation anyway,
this avoids crashing the compiler.

4 years ago[libc][NFC] Simplify memcpy implementation
Guillaume Chatelet [Wed, 20 May 2020 11:55:28 +0000 (11:55 +0000)]
[libc][NFC] Simplify memcpy implementation

Summary: This is a NFC, it aims at simplifying both the code and build files.

Reviewers: abrachet, sivachandra

Subscribers: mgorny, tschuett, ecnelises, libc-commits, courbet

Tags: #libc-project

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

4 years agoMachineInstr.h - remove unnecessary MachineMemOperand forward declaration. NFC.
Simon Pilgrim [Tue, 26 May 2020 11:32:29 +0000 (12:32 +0100)]
MachineInstr.h - remove unnecessary MachineMemOperand forward declaration. NFC.

We already have to include MachineMemOperand.h

4 years ago[CostModel] getUserCost for intrinsic throughput
Sam Parker [Tue, 26 May 2020 11:17:26 +0000 (12:17 +0100)]
[CostModel] getUserCost for intrinsic throughput

Last part of recommitting 'Unify Intrinsic Costs'
259eb619ff6dcd5b6111d1686e18559b9ca004d4. This patch now uses
getUserCost from getInstructionThroughput.

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

4 years ago[analyzer][RetainCount] Remove the CheckOSObject option
Kirstóf Umann [Mon, 13 Apr 2020 13:57:18 +0000 (15:57 +0200)]
[analyzer][RetainCount] Remove the CheckOSObject option

As per http://lists.llvm.org/pipermail/cfe-dev/2019-August/063215.html, lets get rid of this option.

It presents 2 issues that have bugged me for years now:

* OSObject is NOT a boolean option. It in fact has 3 states:
  * osx.OSObjectRetainCount is enabled but OSObject it set to false: RetainCount
    regards the option as disabled.
  * sx.OSObjectRetainCount is enabled and OSObject it set to true: RetainCount
    regards the option as enabled.
  * osx.OSObjectRetainCount is disabled: RetainCount regards the option as
    disabled.
* The hack involves directly modifying AnalyzerOptions::ConfigTable, which
  shouldn't even be public in the first place.

This still isn't really ideal, because it would be better to preserve the option
and remove the checker (we want visible checkers to be associated with
diagnostics, and hidden options like this one to be associated with changing how
the modeling is done), but backwards compatibility is an issue.

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

4 years ago[CostModel] Unify getCastInstrCost
Sam Parker [Tue, 26 May 2020 10:27:57 +0000 (11:27 +0100)]
[CostModel] Unify getCastInstrCost

Add the remaining cast instruction opcodes to the base implementation
of getUserCost and directly return the result. This allows
getInstructionThroughput to return getUserCost for the casts. This
has required changes to PPC and SystemZ because they implement
getUserCost and/or getCastInstrCost with adjustments for vector
operations. Adjusts have also been made in the remaining backends
that implement the method so that they still produce a cost of zero
or one for cost kinds other than throughput.

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

4 years agoAdd support for binary operators in Syntax Trees
Eduardo Caldas [Tue, 26 May 2020 10:19:07 +0000 (12:19 +0200)]
Add support for binary operators in Syntax Trees

Reviewers: gribozavr2

Reviewed By: gribozavr2

Subscribers: cfe-commits

Tags: #clang

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

4 years ago[build] Add LLVM_LOCAL_RPATH which can set an rpath on just unit test binaries
Nico Weber [Tue, 26 May 2020 10:23:57 +0000 (06:23 -0400)]
[build] Add LLVM_LOCAL_RPATH which can set an rpath on just unit test binaries

After D80096, bots that build clang for distribution and that can't use
system gcc / libstdc++ need to pass a working rpath so that unit test
binaries can run. The method suggested in GettingStarted.rst works fine
for local development, but it results in an absolute local rpath ending
up even in distributed binaries like clang, which is both ugly and
unnecessary.

Add an explicit toggle that can be used to add an rpath only for the
non-distributed binaries that need it.

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

4 years ago[AMDGPU/MemOpsCluster] Code clean-up around mem ops clustering logic
hsmahesha [Tue, 26 May 2020 10:17:03 +0000 (15:47 +0530)]
[AMDGPU/MemOpsCluster] Code clean-up around mem ops clustering logic

Summary:
Clean-up code around mem ops clustering logic. This patch cleans up code within
the function clusterNeighboringMemOps(). It is WIP, and this patch is a first cut.

Reviewers: foad, rampitec, arsenm, vpykhtin, javedabsar

Reviewed By: foad

Subscribers: MatzeB, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, javed.absar, kerbowa, llvm-commits

Tags: #llvm

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

4 years ago[X86] Fix fshr comment copy+paste typo. NFC.
Simon Pilgrim [Tue, 26 May 2020 09:55:43 +0000 (10:55 +0100)]
[X86] Fix fshr comment copy+paste typo. NFC.

Noticed by @foad on D80466.

4 years ago[X86][AVX] Add some initial movmsk combine tests
Simon Pilgrim [Tue, 26 May 2020 09:12:04 +0000 (10:12 +0100)]
[X86][AVX] Add some initial movmsk combine tests

Show failure to reduce the signbit extraction for 256-bit integer vectors on AVX1 targets where the pcmpgt/ashr has to be done with split 128-bit vectors.

4 years ago[DebugInfo/llvm-objdump] - Print "ZERO terminator" for terminator entries when dumpin...
Georgii Rymar [Sat, 23 May 2020 15:34:08 +0000 (18:34 +0300)]
[DebugInfo/llvm-objdump] - Print "ZERO terminator" for terminator entries when dumping .eh_frame.

A CIE with the Length == 0 is a terminator:
https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html

And GNU objdump recognizes them and prints the following for such entries:

"00000000 ZERO terminator"

This patch teaches llvm-objdump to do the same. I had to update tests to use
"CHECK-NEXT" too.

(Note: it looks perhaps not right that printing is done inside the DebugInfo library,
I'd expect to see the change in the llvm-objdump's code somewhere instead,
but that is how it done atm).

Differential revision: https://reviews.llvm.org/D80476

4 years ago[NFC][ARM] Fix for previous commit
Sam Parker [Tue, 26 May 2020 09:43:58 +0000 (10:43 +0100)]
[NFC][ARM] Fix for previous commit

Actually analyse code-size for the size runs...

4 years ago[ObjectYAML][DWARF] Make variable names consistent.
Xing GUO [Tue, 26 May 2020 09:22:23 +0000 (17:22 +0800)]
[ObjectYAML][DWARF] Make variable names consistent.

4 years ago[ObjectYAML][DWARF] Use .empty() to indicate if the DWARF sections are empty.
Xing GUO [Tue, 26 May 2020 09:14:23 +0000 (17:14 +0800)]
[ObjectYAML][DWARF] Use .empty() to indicate if the DWARF sections are empty.

4 years ago[yaml2obj] - Map section names to chunks for each ELFYAML::ProgramHeader early. NFCI.
Georgii Rymar [Mon, 25 May 2020 14:30:41 +0000 (17:30 +0300)]
[yaml2obj] - Map section names to chunks for each ELFYAML::ProgramHeader early. NFCI.

Each `ELFYAML::ProgramHeader` currently contains a list of section names
included. We are trying to map them to Fill/Sections very late,
though we can create such mapping early, in `initProgramHeaders`.

The benefit is that with such change it is possible to access mapped
chunks earlier (for example during writing section content) and have
simpler code.

Differential revision: https://reviews.llvm.org/D80520

4 years ago[NFC][ARM] Add code size analysis tests
Sam Parker [Tue, 26 May 2020 09:29:42 +0000 (10:29 +0100)]
[NFC][ARM] Add code size analysis tests

Add code size runs for the cast costs.

4 years ago[AMDGPU] Fix wait counts in the presence of 16bit subregisters
vpykhtin [Tue, 26 May 2020 09:09:46 +0000 (12:09 +0300)]
[AMDGPU] Fix wait counts in the presence of 16bit subregisters

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

4 years ago[DebugInfo] - Fix multiple issues in DWARFDebugFrame::parse().
Georgii Rymar [Wed, 20 May 2020 14:01:35 +0000 (17:01 +0300)]
[DebugInfo] - Fix multiple issues in DWARFDebugFrame::parse().

I've noticed an issue with "Data.getRelocatedValue(...)" call.

it might silently ignore an error when a content is truncated.
That leads to an infinite loop in the code (e.g. llvm-readobj hangs).

After fixing the issue I've found that actually we always tried
to read past the end of a section, even when a content was valid.
It happened because the terminator CIE (a CIE with the length == 0)
was never handled. At first I've tried just to stop adding the terminator
entry (and return), but it does not seem to be correct, because tools like
llvm-objdump might want to print something for such entries
(see comments in the code and test cases).

This patch fixes issues mentioned, provides new test cases for
both llvm-readobj and lib/DebugInfo and adds FIXMEs to existent
test cases related.

Differential revision: https://reviews.llvm.org/D80299

4 years ago[Clang][AArch64] Capturing proper pointer alignment for Neon vld1 intrinsicts
Lucas Prates [Tue, 5 May 2020 10:52:09 +0000 (11:52 +0100)]
[Clang][AArch64] Capturing proper pointer alignment for Neon vld1 intrinsicts

Summary:
During CodeGen for AArch64 Neon intrinsics, Clang was incorrectly
assuming all the pointers from which loads were being generated for vld1
intrinsics were aligned according to the intrinsics result type, causing
alignment faults on the code generated by the backend.

This patch updates vld1 intrinsics' CodeGen to properly capture the
correct load alignment based on the type of the pointer provided as
input for the intrinsic.

Reviewers: t.p.northover, ostannard, pcc

Reviewed By: ostannard

Subscribers: kristof.beyls, danielkiss, cfe-commits

Tags: #clang

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

4 years ago[CostModel] Unify Intrinsic Costs.
Sam Parker [Tue, 26 May 2020 08:23:18 +0000 (09:23 +0100)]
[CostModel] Unify Intrinsic Costs.

Recommitting most of the remaining changes from
259eb619ff6dcd5b6111d1686e18559b9ca004d4, but excluding the call to
getUserCost from getInstructionThroughput. Though there's still no
test changes, I doubt that this is an NFC...

With the two getIntrinsicInstrCosts folded into one, now fold in the
scalar/code-size orientated getIntrinsicCost. The remaining scalar
intrinsics were memcpy, cttz and ctlz which now have special handling
in the BasicTTI implementation.

This had required a change in the AMDGPU backend for fabs as it
should always be 'free'. I've also changed the X86 backend to return
the BaseT implementation when the CostKind isn't RecipThroughput.

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

4 years ago[NFC][ARM] Add intrinsic code size runs
Sam Parker [Tue, 26 May 2020 08:41:04 +0000 (09:41 +0100)]
[NFC][ARM] Add intrinsic code size runs

Add code size analysis of arithmetic intrinsics.

4 years ago[clangd] Don't traverse the AST within uninteresting files during indexing
Sam McCall [Wed, 20 May 2020 14:03:42 +0000 (16:03 +0200)]
[clangd] Don't traverse the AST within uninteresting files during indexing

Summary:
We already skip function bodies from these files while parsing, and drop symbols
found in them. However, traversing their ASTs still takes a substantial amount
of time.

Non-scientific benchmark on my machine:
  background-indexing llvm-project (llvm+clang+clang-tools-extra), wall time
  before: 7:46
  after: 5:13
  change: -33%

Indexer.cpp libclang should be updated too, I'm less familiar with that code,
and it's doing tricky things with the ShouldSkipFunctionBody callback, so it
needs to be done separately.

Reviewers: kadircet

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

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

4 years ago[AArch64] Set i32 ISD::MULHU/S to Expand instead of Legal.
Craig Topper [Tue, 26 May 2020 06:59:00 +0000 (23:59 -0700)]
[AArch64] Set i32 ISD::MULHU/S to Expand instead of Legal.

Looks like there are no isel patterns for these. A DAG combine
turns it into i64 multiply and a shift which hides this.

Extracted from D80485

4 years ago[CostModel] Check for free intrinsics in BasicTTI
Sam Parker [Tue, 26 May 2020 07:31:38 +0000 (08:31 +0100)]
[CostModel] Check for free intrinsics in BasicTTI

Recommitting part of "[CostModel] Unify Intrinsic Costs."
de71def3f59dc9f12f67141b5040d8e15c84d08a

Now that the 'free' intrinsic information has been sunk to the lowest
level, query the base implementation in BasicTTI before doing
anything else. I suspect this is the change that was causing the main
changes, particularly the large effects on debug builds.

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

4 years ago[lldb] s/dyn_cast/isa
Pavel Labath [Tue, 26 May 2020 07:21:54 +0000 (09:21 +0200)]
[lldb] s/dyn_cast/isa

The cast result is unused and produces a warning with gcc.

4 years ago[AsmPrinter] Don't generate .Lfoo$local for -fno-PIC and -fPIE
Fangrui Song [Tue, 26 May 2020 06:00:50 +0000 (23:00 -0700)]
[AsmPrinter] Don't generate .Lfoo$local for -fno-PIC and -fPIE

-fno-PIC and -fPIE code generally cannot be linked in -shared mode and there is no benefit accessing via local aliases.

Actually, a .Lfoo$local reference will be converted to a STT_SECTION (if no section relaxation) reference which will cause the section symbol (sizeof(Elf64_Sym)=24) to be generated.

4 years ago[FPEnv] Small fixes to implementation of flt.rounds
Serge Pavlov [Tue, 26 May 2020 06:19:01 +0000 (13:19 +0700)]
[FPEnv] Small fixes to implementation of flt.rounds

This change makes minor correction to the implementation of intrinsic
`llvm.flt.rounds`:
- Added documentation entry in LangRef,
- Attributes of the intrinsic changed to be in line with other functions
  dependent of floating-point environment.

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

4 years ago[NFC][PowerPC] Add a new case to test two-address verification
Kang Zhang [Tue, 26 May 2020 06:14:08 +0000 (06:14 +0000)]
[NFC][PowerPC] Add a new case to test two-address verification

4 years ago[clangd] Change PreambleOnlyAction with content truncation
Kadir Cetinkaya [Tue, 5 May 2020 15:55:11 +0000 (17:55 +0200)]
[clangd] Change PreambleOnlyAction with content truncation

Summary:
Lexing until the token location is past preamble bound could be wrong
in some cases as preprocessor lexer can lex multiple tokens in a single call.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

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

4 years ago[clangd] Make use of SourceOrder to find first initializer in DefineOutline
Kadir Cetinkaya [Mon, 25 May 2020 15:25:55 +0000 (17:25 +0200)]
[clangd] Make use of SourceOrder to find first initializer in DefineOutline

Summary:
Constructors can have implicit initializers, this was crashing define
outline. Make sure we find the first "written" ctor initializer to figure out
`:` location.

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

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits

Tags: #clang

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

4 years ago[clang][test] fix tests for external assemblers
Yuanfang Chen [Tue, 26 May 2020 05:14:05 +0000 (22:14 -0700)]
[clang][test] fix tests for external assemblers

The test depends on using the integrated assembler. Make it
explicit by specifying -fintegrated-as.

4 years agoMake explicit -fno-semantic-interposition (in -fpic mode) infer dso_local
Fangrui Song [Mon, 25 May 2020 22:05:35 +0000 (15:05 -0700)]
Make explicit -fno-semantic-interposition (in -fpic mode) infer dso_local

-fno-semantic-interposition is currently the CC1 default. (The opposite
disables some interprocedural optimizations.) However, it does not infer
dso_local: on most targets accesses to ExternalLinkage functions/variables
defined in the current module still need PLT/GOT.

This patch makes explicit -fno-semantic-interposition infer dso_local,
so that PLT/GOT can be eliminated if targets implement local aliases
for AsmPrinter::getSymbolPreferLocal (currently only x86).

Currently we check whether the module flag "SemanticInterposition" is 0.
If yes, infer dso_local. In the future, we can infer dso_local unless
"SemanticInterposition" is 1: frontends other than clang will also
benefit from the optimization if they don't bother setting the flag.
(There will be risks if they do want ELF interposition: they need to set
"SemanticInterposition" to 1.)

4 years ago[PowerPC] Prevent legalization loop from promoting SELECT_CC from v4i32 to v4i32
Nemanja Ivanovic [Tue, 26 May 2020 01:07:22 +0000 (20:07 -0500)]
[PowerPC] Prevent legalization loop from promoting SELECT_CC from v4i32 to v4i32

As reported in https://bugs.llvm.org/show_bug.cgi?id=45709 we can hit an
infinite loop in legalization since we set the legalization action for
ISD::SELECT_CC for all fixed length vector types to Promote. Without some
different legalization action for the type being promoted to, the legalizer
simply loops. Since we don't have patterns to match the node, the right
legalization action should be Expand.

Differential revision: https://reviews.llvm.org/D79854

4 years ago[clang][test] fix tests for external assemblers
Yuanfang Chen [Tue, 26 May 2020 00:36:28 +0000 (17:36 -0700)]
[clang][test] fix tests for external assemblers

These three tests depend on using the integrated assembler. Make it
explicit by specifying -fintegrated-as.

4 years ago[Clang][test] fix tests when using external assembler.
Yuanfang Chen [Fri, 22 May 2020 19:33:33 +0000 (12:33 -0700)]
[Clang][test] fix tests when using external assembler.

Summary:
The test assume using integraed-as, so make it explicit.

Reviewered by: aganea

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

4 years ago[Inlining] Set inline-deferral-scale to 2.
Kazu Hirata [Mon, 25 May 2020 22:43:28 +0000 (15:43 -0700)]
[Inlining] Set inline-deferral-scale to 2.

Summary:
This patch sets inline-deferral-scale to 2.

Both internal and SPEC benchmarking show that 2 is the best number
among -1, 2, 3, and 4.

inline-deferral-scale  SPECint2006
------------------------------------------------------------
                   -1  38.0 (the default without this patch)
                    2  38.5
                    3  38.1
                    4  38.1

With the new default number, shouldBeDeferred returns true if:

  TotalCost < IC.getCost() * 2

where

  TotalCost is TotalSecondaryCost + IC.getCost() * NumCallerUsers.

If TotalCost >= 0 and NumCallerUsers >= 2, then
TotalCost >= IC.getCost() * 2, so shouldBeDeferred returns true only
when NumCallerUsers is 1.

Now, if TotalSecondaryCost < 0, which can happen if
InlineConstants::LastCallToStaticBonus, a huge number, has been
subtracted from TotalSecondaryCost, then TotalCost may be negative.
In this case, shouldBeDeferred may return true even when
NumCallerUsers >= 2.

Reviewers: davidxl, nikic

Reviewed By: davidxl

Subscribers: xbolva00, hiraditya, dexonsmith, llvm-commits

Tags: #llvm

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

4 years ago[LoopUnroll] Remove dead NextBlocks argument (NFC).
Florian Hahn [Mon, 25 May 2020 19:44:38 +0000 (20:44 +0100)]
[LoopUnroll] Remove dead NextBlocks argument (NFC).