13 months ago[clang-tools-extra] Prevent linking to duplicate .a libs and dylib
Michał Górny [Tue, 16 Jun 2020 18:43:55 +0000 (20:43 +0200)]
[clang-tools-extra] Prevent linking to duplicate .a libs and dylib

Fix various tool libraries not to link to clang's .a libraries and dylib
simultaneously.  This may cause breakage, in particular through
duplicate command-line option declarations.

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

13 months ago[llvm] Disable linking llvm-exegesis to dylib
Michał Górny [Tue, 16 Jun 2020 10:31:36 +0000 (12:31 +0200)]
[llvm] Disable linking llvm-exegesis to dylib

Force linking llvm-exegesis to static LLVM libraries instead of dylib
to prevent duplicate symbols due to linking both.  Ideally, we'd want
to link to the dylib only here but the target sub-libraries use hidden
symbols from LLVM target libraries and therefore linking the dylib

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

13 months ago[llvm] Avoid linking llvm-cfi-verify to duplicate libs
Michał Górny [Tue, 16 Jun 2020 10:16:52 +0000 (12:16 +0200)]
[llvm] Avoid linking llvm-cfi-verify to duplicate libs

Fix the CMake rules for LLVMCFIVerify library not to pull duplicate
LLVM .a libraries when linking to the dylib.  This prevents problems
due to duplicate symbols and apparently fixes mingw32.

This is an alternative approach to D44650 that just forces .a libraries
instead.  However, there doesn't seem to be any reason to do that.

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

13 months ago[llvm] [CommandLine] Do not suggest really hidden opts in nearest lookup
Michał Górny [Wed, 17 Jun 2020 10:22:48 +0000 (12:22 +0200)]
[llvm] [CommandLine] Do not suggest really hidden opts in nearest lookup

Skip 'really hidden' options when performing lookup of the nearest
option when invalid option was passed.  Since these options aren't even
documented in --help-hidden, it seems inconsistent to suggest them
to users.

This fixes clang-tools-extra test failures due to unexpected suggestions
when linking the tools to LLVM dylib (that provides more options than
the subset of LLVM libraries linked directly).

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

13 months ago[Clang][Driver] Remove gold linker support for PS4 toolchain
Yuanfang Chen [Tue, 16 Jun 2020 20:50:41 +0000 (13:50 -0700)]
[Clang][Driver] Remove gold linker support for PS4 toolchain

Reviewers: probinson

Subscribers: cfe-commits

Tags: #clang

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

13 months ago[AMDGPU] Skip CFIInstructions in SIInsertWaitcnts
Scott Linder [Wed, 17 Jun 2020 16:38:34 +0000 (12:38 -0400)]
[AMDGPU] Skip CFIInstructions in SIInsertWaitcnts

CFI emitted during PEI at the beginning of the prologue needs to apply
to any inserted waitcnts on function entry.

Reviewers: arsenm, t-tye, RamNalamothu

Reviewed By: arsenm

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

Tags: #llvm, #debug-info

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

13 months ago[clangd] Make use of preamble bounds from the patch inside ReplayPreamble
Kadir Cetinkaya [Tue, 16 Jun 2020 19:21:45 +0000 (21:21 +0200)]
[clangd] Make use of preamble bounds from the patch inside ReplayPreamble

Clangd was using bounds from the stale preamble, which might result in
crashes. For example:
 #include "a.h"
 #include "b.h" // this line is newly inserted
 #include "c.h"

PreambleBounds for the baseline only contains first two lines, but
ReplayPreamble logic contains an include from the third line. This would
result in a crash as we only lex preamble part of the current file
during ReplayPreamble.

This patch adds a `preambleBounds` method to PreamblePatch, which can be
used to figure out preamble bounds for the current version of the file.
Then uses it when attaching ReplayPreamble, so that it can lex the
up-to-date preamble region.

Reviewers: sammccall

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

Tags: #clang

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

13 months ago[NFC] Move getAll{S,V}GPR{32,128} methods to SIFrameLowering
vnalamot [Wed, 17 Jun 2020 16:08:09 +0000 (12:08 -0400)]
[NFC] Move getAll{S,V}GPR{32,128} methods to SIFrameLowering

Future patch needs some of these in multiple places.

The definitions of these can't be in the header and be eligible for
inlining without making the full declaration of GCNSubtarget visible.
I'm not sure what the right trade-off is, but I opted to not bloat

Reviewers: arsenm, cdevadas

Reviewed By: arsenm

Subscribers: RamNalamothu, qcolombet, jvesely, wdng, nhaehnle, hiraditya, kerbowa, llvm-commits

Tags: #llvm

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

13 months ago[OpenMPOPT][NFC] Introducing OMPInformationCache.
sstefan1 [Sat, 13 Jun 2020 21:57:48 +0000 (23:57 +0200)]
[OpenMPOPT][NFC] Introducing OMPInformationCache.

Introduction of OpenMP-specific information cache based on Attributor's `InformationCache`. This should make it easier to share information between them.

Reviewers: jdoerfert, JonChesterfield, hamax97, jhuber6, uenoku

Subscribers: yaxunl, hiraditya, guansong, uenoku, llvm-commits

Tags: #llvm

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

13 months ago[AMDGPU] Simplify GCNPassConfig::addOptimizedRegAlloc. NFC.
Jay Foad [Wed, 17 Jun 2020 14:55:58 +0000 (15:55 +0100)]
[AMDGPU] Simplify GCNPassConfig::addOptimizedRegAlloc. NFC.

13 months ago[X86] Regenerate mixed-ptr tests checks
Simon Pilgrim [Wed, 17 Jun 2020 14:48:07 +0000 (15:48 +0100)]
[X86] Regenerate mixed-ptr tests checks

Help reduce the diffs in D81517

13 months agoScalarEvolution.h - reduce LoopInfo.h include to forward declarations. NFC.
Simon Pilgrim [Wed, 17 Jun 2020 14:24:59 +0000 (15:24 +0100)]
ScalarEvolution.h - reduce LoopInfo.h include to forward declarations. NFC.

Move ScalarEvolution::forgetLoopDispositions implementation to ScalarEvolution.cpp to remove the dependency.

Add implicit header dependency to source files where necessary.

13 months ago[ARM] Reimplement MVE Tail-Predication pass using @llvm.get.active.lane.mask
Sjoerd Meijer [Wed, 17 Jun 2020 13:32:55 +0000 (14:32 +0100)]
[ARM] Reimplement MVE Tail-Predication pass using @llvm.get.active.lane.mask

To set up a tail-predicated loop, we need to to calculate the number of
elements processed by the loop. We can now use intrinsic
@llvm.get.active.lane.mask() to do this, which is emitted by the vectoriser in
D79100. This intrinsic generates a predicate for the masked loads/stores, and
consumes the Backedge Taken Count (BTC) as its second argument. We can now use
that to reconstruct the loop tripcount, instead of the IR pattern match
approach we were using before.

Many thanks to Eli Friedman and Sam Parker for all their help with this work.

This also adds overflow checks for the different, new expressions that we
create: the loop tripcount, and the sub expression that calculates the
remaining elements to be processed. For the latter, SCEV is not able to
calculate precise enough bounds, so we work around that at the moment, but is
not entirely correct yet, it's conservative. The overflow checks can be
overruled with a force flag, which is thus potentially unsafe (but not really
because the vectoriser is the only place where this intrinsic is emitted at the
moment). It's also good to mention that the tail-predication pass is not yet
enabled by default.  We will follow up to see if we can implement these
overflow checks better, either by a change in SCEV or we may want revise the
definition of llvm.get.active.lane.mask.

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

13 months agoRevert "[InlineCost] InlineCostAnnotationWriterPass introduced"
Kirill Naumov [Wed, 17 Jun 2020 14:02:34 +0000 (14:02 +0000)]
Revert "[InlineCost] InlineCostAnnotationWriterPass introduced"

This reverts commit 37e06e8f5c6ee39a1d7cbaf7d5f5a3ebfa1b4e15.

13 months agoRevert "[InlineCost] PrinterPass prints constants to which instructions are simplified"
Kirill Naumov [Wed, 17 Jun 2020 14:02:29 +0000 (14:02 +0000)]
Revert "[InlineCost] PrinterPass prints constants to which instructions are simplified"

This reverts commit 52b0db22f8cfb594c32389224570681d2d2c2f21.

13 months agoRevert "[InlineCost] GetElementPtr with constant operands"
Kirill Naumov [Wed, 17 Jun 2020 14:02:18 +0000 (14:02 +0000)]
Revert "[InlineCost] GetElementPtr with constant operands"

This reverts commit 34fba68d80051e3c53e7843157c036f6d511ae03.

13 months ago[InlineCost] GetElementPtr with constant operands
Kirill Naumov [Tue, 2 Jun 2020 19:22:41 +0000 (19:22 +0000)]
[InlineCost] GetElementPtr with constant operands

If the GEP instruction contanins only constants as its arguments,
then it should be recognized as a constant. For now, there was
also added a flag to turn off this simplification if it causes
any regressions ("disable-gep-const-evaluation") which is off
by default. Once I gather needed data of the effectiveness of
this simplification, the flag will be deleted.

Reviewers: apilipenko, davidxl, mtrofin

Reviewed By: mtrofin

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

13 months ago[InlineCost] PrinterPass prints constants to which instructions are simplified
Kirill Naumov [Tue, 2 Jun 2020 18:57:30 +0000 (18:57 +0000)]
[InlineCost] PrinterPass prints constants to which instructions are simplified

This patch enables printing of constants to see which instructions were
constant-folded. Needed for tests and better visiual analysis of
inliner's work.

Reviewers: apilipenko, mtrofin, davidxl, fedor.sergeev

Reviewed By: mtrofin

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

13 months ago[InlineCost] InlineCostAnnotationWriterPass introduced
Kirill Naumov [Thu, 11 Jun 2020 22:24:10 +0000 (22:24 +0000)]
[InlineCost] InlineCostAnnotationWriterPass introduced

This class allows to see the inliner's decisions for better
optimization verifications and tests. To use, use flag

Reviewers: apilipenko, mtrofin, davidxl, fedor.sergeev

Reviewed By: mtrofin

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

13 months ago[clang-tidy] warnings-as-error no longer exits with ErrorCount
Nathan James [Wed, 17 Jun 2020 13:35:32 +0000 (14:35 +0100)]
[clang-tidy] warnings-as-error no longer exits with ErrorCount

When using `-warnings-as-errors`, If there are any warnings promoted to errors, clang-tidy exits with the number of warnings. This really isn't needed and can cause issues when the number of warnings doesn't fit into 8 bits as POSIX terminals aren't designed to handle more than that.
This addresses https://bugs.llvm.org/show_bug.cgi?id=46305.

Bug originally added in D15528

Reviewed By: aaron.ballman

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

13 months agoRevert "GlobalISel: Make LLT constructors constexpr"
Hans Wennborg [Wed, 17 Jun 2020 13:31:12 +0000 (15:31 +0200)]
Revert "GlobalISel: Make LLT constructors constexpr"

This reverts commit 5a95be22d248be654b992dfb25e3850dbb182a14.

It causes GCC 5.3 to segfault:

In file included from /work/llvm.monorepo/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp:357:0:                                               lib/Target/AArch64/AArch64GenGlobalISel.inc:189:17:   in constexpr expansion of ‘llvm::LLT::scalar(16u)’
lib/Target/AArch64/AArch64GenGlobalISel.inc:205:1: internal compiler error: Segmentation fault

13 months ago[OPENMP]Fix overflow during counting the number of iterations.
Alexey Bataev [Thu, 4 Jun 2020 16:07:13 +0000 (12:07 -0400)]
[OPENMP]Fix overflow during counting the number of iterations.

The OpenMP loops are normalized and transformed into the loops from 0 to
max number of iterations. In some cases, original scheme may lead to
overflow during calculation of number of iterations. If it is unknown,
if we can end up with overflow or not (the bounds are not constant and
  we cannot define if there is an overflow), cast original type to the

Reviewers: jdoerfert

Subscribers: yaxunl, guansong, sstefan1, openmp-commits, cfe-commits, caomhin

Tags: #clang, #openmp

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

13 months ago[OPENMP50]Codegen for scan directive in for simd regions.
Alexey Bataev [Tue, 16 Jun 2020 21:06:49 +0000 (17:06 -0400)]
[OPENMP50]Codegen for scan directive in for simd regions.

Added codegen for scan directives in parallel for regions.

Emits the code for the directive with inscan reductions.
Original code:
 #pragma omp for simd reduction(inscan, op : ...)
for(...) {
  <input phase>;
  #pragma omp scan (in)exclusive(...)
  <scan phase>
is transformed to something:
size num_iters = <num_iters>;
<type> buffer[num_iters];
 #pragma omp for simd
for (i: 0..<num_iters>) {
  <input phase>;
  buffer[i] = red;
 #pragma omp barrier
for (int k = 0; k != ceil(log2(num_iters)); ++k)
for (size cnt = last_iter; cnt >= pow(2, k); --k)
  buffer[i] op= buffer[i-pow(2,k)];
 #pragma omp for simd
for (0..<num_iters>) {
  red = InclusiveScan ? buffer[i] : buffer[i-1];
  <scan phase>;

Reviewers: jdoerfert

Reviewed By: jdoerfert

Subscribers: yaxunl, guansong, sstefan1, cfe-commits, caomhin

Tags: #clang

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

13 months ago[SCCP] Add a few more additional sext tests (NFC).
Florian Hahn [Wed, 17 Jun 2020 12:39:36 +0000 (13:39 +0100)]
[SCCP] Add a few more additional sext tests (NFC).

13 months agoRemove global std::strings. NFCI.
Benjamin Kramer [Wed, 17 Jun 2020 12:27:36 +0000 (14:27 +0200)]
Remove global std::strings. NFCI.

13 months agoFollow up of rGe345d547a0d5, and attempt to pacify buildbot:
Sjoerd Meijer [Wed, 17 Jun 2020 12:24:09 +0000 (13:24 +0100)]
Follow up of rGe345d547a0d5, and attempt to pacify buildbot:

"error: 'get' is deprecated: The base class version of get with the scalable
argument defaulted to false is deprecated."

Changed VectorType::get() -> FixedVectorType::get().

13 months agoRecommit "[LV] Emit @llvm.get.active.lane.mask for tail-folded loops"
Sjoerd Meijer [Wed, 17 Jun 2020 09:48:20 +0000 (10:48 +0100)]
Recommit "[LV] Emit @llvm.get.active.lane.mask for tail-folded loops"

Fixed ARM regression test.

Please see the original commit message rG47650451738c for details.

13 months ago[SYCL][OpenMP] Implement thread-local storage restriction
Mariya Podchishchaeva [Wed, 17 Jun 2020 11:31:38 +0000 (14:31 +0300)]
[SYCL][OpenMP] Implement thread-local storage restriction

SYCL and OpenMP prohibits thread local storage in device code,
so this commit ensures that error is emitted for device code and not
emitted for host code when host target supports it.

Reviewers: jdoerfert, erichkeane, bader

Reviewed By: jdoerfert, erichkeane

Subscribers: guansong, riccibruno, ABataev, yaxunl, ebevhan, Anastasia, sstefan1, cfe-commits

Tags: #clang

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

13 months ago[LSR] Filter for postinc formulae
David Green [Fri, 29 May 2020 09:53:30 +0000 (10:53 +0100)]
[LSR] Filter for postinc formulae

In more complicated loops we can easily hit the complexity limits of
loop strength reduction. If we do and filtering occurs, it's all too
easy to remove the wrong formulae for post-inc preferring accesses due
to it attempting to maximise register re-use. The patch adds an
alternative filtering step when the target is preferring postinc to pick
postinc formulae instead, hopefully lowering the complexity to below the
limit so that aggressive filtering is not needed.

There is also a change in here to stop considering existing addrecs as
free under postinc. We should already be modelling them as a reg so
don't want it to cause us to get the cost wrong. (I'm not sure that code
makes sense in general, but there are X86 tests specifically for it
where it seems to be helping so have left it around for the standard
non-post-inc case).

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

13 months ago[llvm-readobj] - Do not crash when GnuHashTable->symndx is greater than the dynamic...
Georgii Rymar [Tue, 16 Jun 2020 14:05:51 +0000 (17:05 +0300)]
[llvm-readobj] - Do not crash when GnuHashTable->symndx is greater than the dynamic symbols count.

`Elf_GnuHash_Impl` has the following method:

ArrayRef<Elf_Word> values(unsigned DynamicSymCount) const {
  return ArrayRef<Elf_Word>(buckets().end(), DynamicSymCount - symndx);

When DynamicSymCount is less than symndx we return an array with the huge broken size.
This patch fixes the issue and adds an assert. This assert helped to fix an issue
in one of the test cases.

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

13 months ago[llvm-readobj] - Split the printGnuHashTable(). NFCI.
Georgii Rymar [Tue, 16 Jun 2020 11:35:05 +0000 (14:35 +0300)]
[llvm-readobj] - Split the printGnuHashTable(). NFCI.

`printGnuHashTable` contains the code to check the GNU hash table.
This patch splits it to `getGnuHashTableChains` helper
(and reorders slightly to reduce).

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

13 months ago[AMDGPU] Fix failure in VCC spilling
Carl Ritson [Wed, 17 Jun 2020 10:38:25 +0000 (19:38 +0900)]
[AMDGPU] Fix failure in VCC spilling

Spills of VCC (SGPR64) will fail with new SGPR spill code,
because super register is not correctly resolved.

Reviewed By: arsenm

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

13 months ago[CallPrinter] Remove static constructor.
Benjamin Kramer [Wed, 17 Jun 2020 11:00:32 +0000 (13:00 +0200)]
[CallPrinter] Remove static constructor.

No need to have std::string here. NFC.

13 months ago[SCCP] Precommit some sext tests (NFC).
Florian Hahn [Fri, 12 Jun 2020 18:52:32 +0000 (19:52 +0100)]
[SCCP] Precommit some sext tests (NFC).

13 months ago[lldb] Remove xfail aarch64/linux from TestBuiltinTrap.py
Muhammad Omair Javaid [Wed, 17 Jun 2020 10:39:52 +0000 (15:39 +0500)]
[lldb] Remove xfail aarch64/linux from TestBuiltinTrap.py

The underlying clang bug seems to have been fixed in and test is
consistently passing on aarch64-linux buildbot.

13 months agoReturn "[InstCombine] Simplify compare of Phi with constant inputs against a constant"
Sam Parker [Wed, 17 Jun 2020 10:29:45 +0000 (11:29 +0100)]
Return "[InstCombine] Simplify compare of Phi with constant inputs against a constant"

I originally reverted the patch because it was causing performance
issues, but now I think it's just enabling simplify-cfg to do
something that I don't want instead :)

Sorry for the noise.

This reverts commit 3e39760f8eaad4770efa05824768e67237915cf5.

13 months ago[NFC] Run clang-format on clang/test/OpenMP/nvptx_target_codegen.cpp
Alexey Bader [Wed, 17 Jun 2020 10:02:35 +0000 (13:02 +0300)]
[NFC] Run clang-format on clang/test/OpenMP/nvptx_target_codegen.cpp

13 months ago[FileCheck] Implement * and / operators for ExpressionValue.
Paul Walker [Mon, 1 Jun 2020 10:09:58 +0000 (10:09 +0000)]
[FileCheck] Implement * and / operators for ExpressionValue.

Subscribers: arichardson, hiraditya, thopre, llvm-commits

Tags: #llvm

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

13 months ago[IR] Don't copy profile metadata in createCallMatchingInvoke()
Hans Wennborg [Wed, 17 Jun 2020 08:26:30 +0000 (10:26 +0200)]
[IR] Don't copy profile metadata in createCallMatchingInvoke()

The invoke instruction can have profile metadata with branch_weights,
which does not make sense for a call instruction and will be
rejected by the verifier.

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

13 months agoFix LoopIdiomRecognize pass return status
serge-sans-paille [Thu, 4 Jun 2020 20:25:14 +0000 (22:25 +0200)]
Fix LoopIdiomRecognize pass return status

Introduce an helper class to aggregate the cleanup in case of rollback.

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

13 months agoRevert "[LV] Emit @llvm.get.active.mask for tail-folded loops"
Sjoerd Meijer [Wed, 17 Jun 2020 09:09:17 +0000 (10:09 +0100)]
Revert "[LV] Emit @llvm.get.active.mask for tail-folded loops"

This reverts commit 47650451738c821993c763356854b560a0f9f550
while I investigate the build bot failures.

13 months ago[NFC] Add API for edge domination check in dom tree
Max Kazantsev [Wed, 17 Jun 2020 09:02:57 +0000 (16:02 +0700)]
[NFC] Add API for edge domination check in dom tree

13 months ago[SCCP] Move common code to simplify basic block to helper (NFC).
Florian Hahn [Wed, 17 Jun 2020 08:40:47 +0000 (09:40 +0100)]
[SCCP] Move common code to simplify basic block to helper (NFC).

Reviewers: efriedma, davide

Reviewed By: efriedma

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

13 months ago[LV] Emit @llvm.get.active.mask for tail-folded loops
Sjoerd Meijer [Wed, 10 Jun 2020 07:37:47 +0000 (08:37 +0100)]
[LV] Emit @llvm.get.active.mask for tail-folded loops

This emits new IR intrinsic @llvm.get.active.mask for tail-folded vectorised
loops if the intrinsic is supported by the backend, which is checked by
querying TargetTransform hook emitGetActiveLaneMask.

This intrinsic creates a mask representing active and inactive vector lanes,
which is used by the masked load/store instructions that are created for
tail-folded loops. The semantics of @llvm.get.active.mask are described here in


This intrinsic is also used to provide a hint to the backend. That is, the
second argument of the intrinsic represents the back-edge taken count of the
loop. For MVE, for example, we use that to set up tail-predication, which is a
new form of predication in MVE for vector loops that implicitely predicates the
last vector loop iteration by implicitely setting active/inactive lanes, i.e.
the tail loop is predicated. In order to set up a tail-predicated vector loop,
we need to know the number of data elements processed by the vector loop, which
corresponds the the tripcount of the scalar loop, which we can now reconstruct
using @llvm.get.active.mask.

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

13 months ago[TTI] Refactor emitGetActiveLaneMask
Sjoerd Meijer [Tue, 9 Jun 2020 16:19:57 +0000 (17:19 +0100)]
[TTI] Refactor emitGetActiveLaneMask

Refactor TTI hook emitGetActiveLaneMask and remove the unused arguments
as suggested in D79100.

13 months ago[CallPrinter] Handle freq = 0 case
Kirill Bobyrev [Wed, 17 Jun 2020 08:52:18 +0000 (10:52 +0200)]
[CallPrinter] Handle freq = 0 case

Improvement of the following revision:

This might still be problematic if freq = 0, so it's better to check for

13 months ago[CallPrinter] Fix maxFreq = 0 case
Kirill Bobyrev [Wed, 17 Jun 2020 08:44:28 +0000 (10:44 +0200)]
[CallPrinter] Fix maxFreq = 0 case

llvm::getHeatColor becomes a problem when maxFreq = 0 -> freq = 0 =>
log2(double(freq)) / log2(maxFreq) -> log2(0.) / log2(0.) which
results in illegal instruction on some architectures.

Problematic revision: https://reviews.llvm.org/D77172

13 months ago[SveEmitter] Add builtins for svtbl2
Sander de Smalen [Tue, 16 Jun 2020 15:48:08 +0000 (16:48 +0100)]
[SveEmitter] Add builtins for svtbl2

Reviewers: david-arm, efriedma, c-rhodes

Reviewed By: c-rhodes

Tags: #clang

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

13 months ago[clangd] Depend on llvm-config for lit tests
Kadir Cetinkaya [Wed, 17 Jun 2020 08:39:49 +0000 (10:39 +0200)]
[clangd] Depend on llvm-config for lit tests

13 months ago[MemDep] Also remove load instructions from NonLocalDesCache.
Florian Hahn [Wed, 17 Jun 2020 08:24:56 +0000 (09:24 +0100)]
[MemDep] Also remove load instructions from NonLocalDesCache.

Currently load instructions are added to the cache for invariant pointer
group dependencies, but only pointer values are removed currently. That
leads to dangling AssertingVHs in the test case below, where we delete a
load from an invariant pointer group. We should also remove the entries
from the cache.

Fixes PR46054.

Reviewers: efriedma, hfinkel, asbirlea

Reviewed By: efriedma

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

13 months agoUse explicitly unsigned zero to prevent from a warning
Serge Pavlov [Wed, 17 Jun 2020 08:34:00 +0000 (15:34 +0700)]
Use explicitly unsigned zero to prevent from a warning

13 months ago[Test] Add missing opportunity for replacement of select with Phi
Max Kazantsev [Wed, 17 Jun 2020 08:12:58 +0000 (15:12 +0700)]
[Test] Add missing opportunity for replacement of select with Phi

13 months ago[DebugInfo] Unify Cursor usage for all debug line opcodes
James Henderson [Wed, 10 Jun 2020 13:00:36 +0000 (14:00 +0100)]
[DebugInfo] Unify Cursor usage for all debug line opcodes

This is a natural extension of the previous changes to use the Cursor
class independently in the standard and extended opcode paths, and in
turn allows delaying error handling until the entire line has been
printed in verbose mode, removing interleaved output in some cases.

Reviewed by: MaskRay, JDevlieghere

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

13 months ago[gn build] Port 6754a0e2edd
LLVM GN Syncbot [Wed, 17 Jun 2020 08:12:14 +0000 (08:12 +0000)]
[gn build] Port 6754a0e2edd

13 months ago[SafeStack,NFC] Fix names after files move
Vitaly Buka [Mon, 15 Jun 2020 09:37:19 +0000 (02:37 -0700)]
[SafeStack,NFC] Fix names after files move

Summary: Depends on D81831.

Reviewers: eugenis, pcc

Reviewed By: eugenis

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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

13 months ago[SafeStack,NFC] Move SafeStackColoring code
Vitaly Buka [Mon, 15 Jun 2020 09:26:28 +0000 (02:26 -0700)]
[SafeStack,NFC] Move SafeStackColoring code

This code is going to be used in StackSafety.
This patch is file move with minimal changes. Identifiers
will be fixed in the followup patch.

Reviewers: eugenis, pcc

Reviewed By: eugenis

Subscribers: mgorny, hiraditya, llvm-commits

Tags: #llvm

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

13 months ago[SystemZ] Bugfix in storeLoadCanUseBlockBinary().
Jonas Paulsson [Thu, 11 Jun 2020 16:49:54 +0000 (18:49 +0200)]
[SystemZ] Bugfix in storeLoadCanUseBlockBinary().

Check that the MemoryVT of LoadA matches that of LoadB.

This fixes https://bugs.llvm.org/show_bug.cgi?id=46239.

Review: Ulrich Weigand

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

13 months agosubdirectories should not use cmake project command
Joachim Protze [Wed, 17 Jun 2020 07:38:56 +0000 (09:38 +0200)]
subdirectories should not use cmake project command

13 months ago[OpenMP][Tool] Header-only multiplexing of OMPT tools
Joachim Protze [Tue, 10 Mar 2020 18:47:45 +0000 (19:47 +0100)]
[OpenMP][Tool] Header-only multiplexing of OMPT tools

Reviewed By: jdoerfert

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

13 months ago[NFC]][PowerPC] Remove unused intrinsic for old CTR loop pass
Kang Zhang [Wed, 17 Jun 2020 07:06:46 +0000 (07:06 +0000)]
[NFC]][PowerPC] Remove unused intrinsic for old CTR loop pass


In the patch D62907 the PPC CTRLoops pass has been replaced by Generic
Hardware Loop pass, and it has imported some new intrinsic for Generic
Hardware Loop.

The old intrinsic used in PPC CTRLoops int_ppc_mtctr and
int_ppc_is_decremented_ctr_nonzero is been replaced by
int_set_loop_iterations and loop_decrement.

This patch is to remove above unused two instrinsic.

Reviewed By: shchenz

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

13 months ago[www] Update cxx_dr_status page for recent fixes.
Richard Smith [Wed, 17 Jun 2020 06:56:45 +0000 (23:56 -0700)]
[www] Update cxx_dr_status page for recent fixes.

13 months agoRevert "DR458: Search template parameter scopes in the right order."
Richard Smith [Wed, 17 Jun 2020 06:53:44 +0000 (23:53 -0700)]
Revert "DR458: Search template parameter scopes in the right order."

We weren't re-entering template scopes in the right order, causing this
to break self-host with -fdelayed-template-parsing.

This reverts commit 237c2a23b6d4fa953f5ae910dccf492db61bb959.

13 months ago[Support] Get process statistics in ExecuteAndWait and Wait
Serge Pavlov [Thu, 23 Apr 2020 06:04:52 +0000 (13:04 +0700)]
[Support] Get process statistics in ExecuteAndWait and Wait

The functions sys::ExcecuteAndWait and sys::Wait now have additional
argument of type pointer to structure, which is filled with process
execution statistics upon process termination. These are total and user
execution times and peak memory consumption. By default this argument is
nullptr so existing users of these function must not change behavior.

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

13 months ago[clang] Enable -mms-bitfields by default for mingw targets
Martin Storsjö [Sat, 13 Jun 2020 20:04:40 +0000 (23:04 +0300)]
[clang] Enable -mms-bitfields by default for mingw targets

This matches GCC, which enabled -mms-bitfields by default for
mingw targets in 4.7 [1].

[1] https://www.gnu.org/software/gcc/gcc-4.7/changes.html

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

13 months ago[clang] Don't emit warn_cxx_ms_struct when MSBitfields is enabled globally
Martin Storsjö [Sat, 13 Jun 2020 19:29:52 +0000 (22:29 +0300)]
[clang] Don't emit warn_cxx_ms_struct when MSBitfields is enabled globally

This diagnostic (which defaults to an error, added in
95833f33bda6c92e746e0b0007b69c2c30bfc693) was intended to clearly
point out cases where the C++ ABI won't match the Microsoft C++ ABI,
for cases when this is enabled via a pragma over a region of code.

The MSVC compatible struct layout feature can also be enabled via a
compiler option (-mms-bitfields). If enabled that way, one essentially
can't compile any C++ code unless also building with
-Wno-incompatible-ms-struct (which GCC doesn't support, and projects
developed with GCC aren't setting).

For the MinGW target, it's expected that the C++ ABI won't match
the MSVC one, if this option is used for getting the struct
layout to match MSVC.

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

13 months ago[clang] [MinGW] Link kernel32 once after the last instance of msvcrt
Martin Storsjö [Sat, 30 May 2020 21:05:13 +0000 (00:05 +0300)]
[clang] [MinGW] Link kernel32 once after the last instance of msvcrt

The msvcrt library isn't a pure import library; it does contain
regular object files with wrappers/fallbacks, and these can require
linking against kernel32.

This only makes a difference when linking with ld.bfd, as lld
always searches all static libraries.

This matches a similar change made recently in gcc in
although clang adds --start-group --end-group around these libraries
if -static is specified, which gcc doesn't. But try to match gcc's
linking order in any case, for consistency.

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

13 months ago[DebugInfo] Support parsing and dumping of DWARF64 macro units.
Igor Kudrin [Wed, 17 Jun 2020 05:57:54 +0000 (12:57 +0700)]
[DebugInfo] Support parsing and dumping of DWARF64 macro units.

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

13 months ago[DA] propagate loop live-out values that get used in a branch
Sameer Sahasrabuddhe [Wed, 17 Jun 2020 02:44:50 +0000 (08:14 +0530)]
[DA] propagate loop live-out values that get used in a branch

Values that are uniform within a loop but appear divergent to uses
outside the loop are "tainted" so that such uses are marked
divergent. But if such a use is a branch, then it's divergence needs
to be propagated. The simplest way to do that is to put the branch
back in the main worklist so that it is processed appropriately.

Reviewed By: simoll

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

13 months ago[IR] Add missing GlobalAlias copying of ThreadLocalMode attribute
Itay Bookstein [Tue, 16 Jun 2020 23:17:27 +0000 (16:17 -0700)]
[IR] Add missing GlobalAlias copying of ThreadLocalMode attribute

Previously, GlobalAlias::copyAttributesFrom did not preserve ThreadLocalMode,
causing incorrect IR generation in IR linking flows. This patch pushes the code
responsible for copying this attribute from GlobalVariable::copyAttributesFrom
down to GlobalValue::copyAttributesFrom so that it is shared by GlobalAlias.
Fixes PR46297.

Reviewers: tejohnson, pcc, hans

Reviewed By: tejohnson, hans

Subscribers: hiraditya, ibookstein, dexonsmith, llvm-commits

Tags: #llvm

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

13 months agoAMDGPU/GlobalISel: Fix obvious bug in ported 32-bit udiv/urem
Matt Arsenault [Wed, 17 Jun 2020 02:38:33 +0000 (22:38 -0400)]
AMDGPU/GlobalISel: Fix obvious bug in ported 32-bit udiv/urem

This was hidden by the IR expansion in AMDGPUCodeGenPrepare, which I
forgot to turn off.

13 months agoDR458: Search template parameter scopes in the right order.
Richard Smith [Tue, 16 Jun 2020 23:55:56 +0000 (16:55 -0700)]
DR458: Search template parameter scopes in the right order.

C++ unqualified name lookup searches template parameter scopes
immediately after finishing searching the entity the parameters belong
to. (Eg, for a class template, you search the template parameter scope
after looking in that class template and its base classes and before
looking in the scope containing the class template.) This is complicated
by the fact that scope lookup within a template parameter scope looks in
a different sequence of places prior to reaching the end of the
declarator-id in the template declaration.

We used to approximate the proper lookup rule with a hack in the scope /
decl context walk inside name lookup. Now we instead compute the lookup
parent for each template parameter scope. This gets the right answer and
as a bonus is substantially simpler and more uniform.

In order to get this right, we now make sure to enter a distinct Scope
for each template parameter scope. (The fact that we didn't before was
already a bug, but not really observable most of the time, since
template parameters can't shadow each other.)

13 months agoDon't assert if we find a dependently-typed variable in the
Richard Smith [Wed, 17 Jun 2020 02:27:54 +0000 (19:27 -0700)]
Don't assert if we find a dependently-typed variable in the
redeclaration chain for an array.

A prior attempt to fix this in r280330 didn't handle the case where the
old variable is dependent and the new one is not.

It is notable and worrying that the test case in this example forms a
redeclaration chain for a non-dependent variable that includes a
declaration with a dependent type. We should probably fix that too.

13 months ago[PowerPC] remove wrong added FIXME in testcases, NFC
Chen Zheng [Mon, 15 Jun 2020 08:03:32 +0000 (04:03 -0400)]
[PowerPC] remove wrong added FIXME in testcases, NFC

remove the wrong added comments as xsmaddasp is introduced in PWR8

13 months ago[lld-macho] Use uint64_t for getSize() instead of size_t
Jez Ng [Wed, 17 Jun 2020 00:27:28 +0000 (17:27 -0700)]
[lld-macho] Use uint64_t for getSize() instead of size_t

So things work on 32-bit machines. (@vzakhari reported the
breakage starting from D80177).

Reviewers: #lld-macho, vzakhari

Subscribers: llvm-commits, vzakhari

Tags: #llvm

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

13 months ago[ObjectYAML][DWARF] Let writeVariableSizedInteger() return Error.
Xing GUO [Wed, 17 Jun 2020 01:29:04 +0000 (09:29 +0800)]
[ObjectYAML][DWARF] Let writeVariableSizedInteger() return Error.

This patch helps change the return type of `writeVariableSizedInteger()` from `void` to `Error`.

Reviewed By: jhenderson

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

13 months agoAMDGPU: Remove intermediate DAG node for trig_preop intrinsic
Matt Arsenault [Wed, 17 Jun 2020 00:45:15 +0000 (20:45 -0400)]
AMDGPU: Remove intermediate DAG node for trig_preop intrinsic

We weren't doing anything with this, and keeping it would just add
more boilerplate for GlobalISel.

13 months ago[lld-macho][test] Fix dylink-lazy.s after 0a5228a02c32cb5b10d43cb154d6d0abaf360ba7
Fangrui Song [Wed, 17 Jun 2020 00:57:59 +0000 (17:57 -0700)]
[lld-macho][test] Fix dylink-lazy.s after 0a5228a02c32cb5b10d43cb154d6d0abaf360ba7

13 months ago[builtins][test] Delete unneeded file headers
Fangrui Song [Wed, 17 Jun 2020 00:46:22 +0000 (17:46 -0700)]
[builtins][test] Delete unneeded file headers

We don't add file headers to tests. The comments are useless as well -
their purpose can be easily inferred from the filenames.

13 months ago[CodeGen][TLS] Set TLS Model for __tls_guard as well.
Jun Ma [Tue, 16 Jun 2020 06:30:36 +0000 (14:30 +0800)]
[CodeGen][TLS] Set TLS Model for __tls_guard as well.

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

13 months agotest: add library search path to repair the test
Saleem Abdulrasool [Wed, 17 Jun 2020 00:05:29 +0000 (17:05 -0700)]
test: add library search path to repair the test

Update the test to no longer rely on the testing workaround in the
linker and use the external libSystem stub.

13 months ago[gicombiner] Allow disable-rule option to disable all-except-...
Daniel Sanders [Tue, 16 Jun 2020 21:52:50 +0000 (14:52 -0700)]
[gicombiner] Allow disable-rule option to disable all-except-...

Adds two features to the generated rule disable option:
- '*' - Disable all rules
- '!<foo>' - Re-enable rule(s)
  - '!foo' - Enable rule named 'foo'
  - '!5' - Enable rule five
  - '!4-9' - Enable rule four to nine
  - '!foo-bar' - Enable rules from 'foo' to (and including) 'bar'
(the '!' is available to the generated disable option but is not part of the underlying and determines whether to call setRuleDisabled() or setRuleEnabled())

This is intended to support unit testing of combine rules so
that you can do:
to ensure only a specific rule is in effect. The rule is still
required to be included in a combiner though

Also added --...-only-enable-rule=X,Y which is effectively an
alias for --...-disable-rule=*,!X,!Y and as such interacts
properly with disable-rule.

Reviewers: aditya_nandakumar, bogner, volkan, aemerson, paquette, arsenm

Subscribers: wdng, llvm-commits

Tags: #llvm

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

13 months ago[MLIR] Add an Op util which returns its name with the dialect stripped.
Lucy Fox [Tue, 16 Jun 2020 22:23:10 +0000 (15:23 -0700)]
[MLIR] Add an Op util which returns its name with the dialect stripped.

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

13 months ago[SVE] Generalize size checks in Verifier to use getElementCount
Christopher Tetreault [Tue, 16 Jun 2020 22:49:32 +0000 (15:49 -0700)]
[SVE] Generalize size checks in Verifier to use getElementCount

Attempts to call getNumElements on scalable vectors identified by test
LLVM.Other::scalable-vectors-core-ir.ll. Since these checks are all
attempting to find if two vectors are the same size, calling
getElementCount will only increase safety.

Reviewers: efriedma, aprantl, reames, kmclaughlin, sdesmalen

Reviewed By: efriedma

Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits

Tags: #llvm

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

13 months agolld: remove old test support path
Saleem Abdulrasool [Mon, 8 Jun 2020 19:07:34 +0000 (12:07 -0700)]
lld: remove old test support path

This removes the stub library that lld injected to satisfy the
dependency on the libSystem.  Now with TBD support, we can provide the
stub library to permit the tests to function properly as they would on a
real system.

Reviewed By: smeenai
Differential Revision: https://reviews.llvm.org/D81418

13 months ago[NFC] Use EXPECT_FALSE(...) in test rather than EXPECT_EQ(false, ...)
Christopher Tetreault [Tue, 16 Jun 2020 22:29:22 +0000 (15:29 -0700)]
[NFC] Use EXPECT_FALSE(...) in test rather than EXPECT_EQ(false, ...)

Summary: Silence GCC -Wconversion-null warning from GTest

Subscribers: llvm-commits

Tags: #llvm

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

13 months ago[lldb/Test] Cleanup TestJITLoaderGDB and make it compatible with reproducers
Jonas Devlieghere [Tue, 16 Jun 2020 22:45:46 +0000 (15:45 -0700)]
[lldb/Test] Cleanup TestJITLoaderGDB and make it compatible with reproducers

13 months ago[flang] Upstream the Mangler module from lowering.
Eric Schweitz [Fri, 12 Jun 2020 20:54:04 +0000 (13:54 -0700)]
[flang] Upstream the Mangler module from lowering.

This upstreams the internal name mangling used in the bridge to generate
unique names from symbols.

Replace InternalNamesTest with the actual, functional unittest.

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

13 months ago[SVE] Deprecate default false variant of VectorType::get
Christopher Tetreault [Tue, 16 Jun 2020 21:55:32 +0000 (14:55 -0700)]
[SVE] Deprecate default false variant of VectorType::get

Reviewers: efriedma, fpetrogalli, kmclaughlin, huntergr

Reviewed By: fpetrogalli

Subscribers: cfe-commits, tschuett, rkruppe, psnobl, llvm-commits

Tags: #llvm, #clang

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

13 months ago[mlir] Fix case in MLIRGPUtoSPIRVTransforms
Geoffrey Martin-Noble [Tue, 16 Jun 2020 22:06:32 +0000 (18:06 -0400)]
[mlir] Fix case in MLIRGPUtoSPIRVTransforms

This patch changes the casing of MLIRGPUtoSPIRVTransforms
to be consistent with other transforms libraries.

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

13 months ago[SelectionDAG] Add MVT::bf16 to getConstantFP()
Aaron Smith [Tue, 16 Jun 2020 22:10:05 +0000 (15:10 -0700)]
[SelectionDAG] Add MVT::bf16 to getConstantFP()

This was probably overlooked in recent bfloat patches.
Needed to handle bf16 constants in SelectionDAG.


Reviewers: stuij

Reviewed By: stuij

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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

13 months ago[llvm-cov gcov] Don't suppress .gcov output if .gcda is corrupted
Fangrui Song [Tue, 16 Jun 2020 21:55:02 +0000 (14:55 -0700)]
[llvm-cov gcov] Don't suppress .gcov output if .gcda is corrupted

If .gcda is corrupted, gcov continues to produce a .gcov and just
assumes execution counts are zeros. This is reasonable, because the
program can corrupt its .gcda output. The code path should be similar to
the code path without .gcda.

13 months agoRemove the try/catch codepath if `swap` is `noexcept`.
Michael Park [Tue, 16 Jun 2020 20:29:23 +0000 (13:29 -0700)]
Remove the try/catch codepath if `swap` is `noexcept`.

In the case where `swap` is `noexcept`, we should avoid the extension to provide strong-exception guarantee.

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

Reviewers: #libc, ldionne

Reviewed By: #libc, ldionne

Subscribers: dexonsmith, mclow.lists, miscco, ldionne, zoecarver, libcxx-commits

Tags: #libc

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

13 months ago[gicombiner] Allow generated combiners to store additional members
Daniel Sanders [Tue, 16 Jun 2020 21:15:36 +0000 (14:15 -0700)]
[gicombiner] Allow generated combiners to store additional members

Adds the ability to add members to a generated combiner via
a State base class. In the current AArch64PreLegalizerCombiner
this is used to make Helper available without having to
provide it to every call.

As part of this, split the command line processing into a
separate object so that it still only runs once even though
the generated combiner is constructed more frequently.

Depends on D81862

Reviewers: aditya_nandakumar, bogner, volkan, aemerson, paquette, arsenm

Reviewed By: arsenm

Subscribers: jvesely, wdng, nhaehnle, kristof.beyls, hiraditya, kerbowa, llvm-commits

Tags: #llvm

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

13 months ago[SVE] Remove invalid calls to VectorType::getNumElements from BasicTTIImpl
Christopher Tetreault [Tue, 16 Jun 2020 21:05:21 +0000 (14:05 -0700)]
[SVE] Remove invalid calls to VectorType::getNumElements from BasicTTIImpl

Most of these operations are reasonable for scalable vectors. Due to
this, we have decided not to change the interface to specifically take
FixedVectorType despite the fact that the current implementations make
fixed width assumptions. Instead, we cast to FixedVectorType and assert
in the body. If a developer makes some change in the future that causes
one of these asserts to fire, they should either change their code or
make the function they are trying to call handle scalable vectors.

Reviewers: efriedma, samparker, RKSimon, craig.topper, sdesmalen, c-rhodes

Reviewed By: efriedma

Subscribers: tschuett, rkruppe, psnobl, llvm-commits

Tags: #llvm

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

13 months ago[CallPrinter] Adding heat coloring to CallPrinter
Kirill Naumov [Tue, 16 Jun 2020 18:39:54 +0000 (18:39 +0000)]
[CallPrinter] Adding heat coloring to CallPrinter

This patch introduces the heat coloring of the Call Printer which is based
on the relative "hotness" of each function. The patch is a part of sequence of
three patches, related to graphs Heat Coloring.
Another feature added is the flag similar to "-cfg-dot-filename-prefix",
which allows to write the graph into a named .pdf

Reviewers: rcorcs, apilipenko, davidxl, sfertile, fedor.sergeev, eraman, bollu

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

13 months ago[gcov] Add -i --intermediate-format
Fangrui Song [Tue, 16 Jun 2020 21:13:51 +0000 (14:13 -0700)]
[gcov] Add -i --intermediate-format

Between gcov 4.9~8, `gcov -i $file` prints coverage information to
$file.gcov in an intermediate text format (single file, instead of
$source.gcov for each source file).

lcov newer than 2019-05-24 detects -i support and uses it to increase
processing speed.  gcov 9 (GCC r265587) removed --intermediate-format
and -i was changed to mean --json-format. However, we consider this
format still useful and support it. geninfo (part of lcov) supports this
format even if we announce that we are compatible with gcov 9.0.0

13 months ago[gcov] Refactor llvm-cov gcov and add SourceInfo
Fangrui Song [Tue, 16 Jun 2020 20:53:16 +0000 (13:53 -0700)]
[gcov] Refactor llvm-cov gcov and add SourceInfo

13 months ago[gicombiner] Allow generated CombinerHelpers to have additional arguments
Daniel Sanders [Tue, 16 Jun 2020 20:41:38 +0000 (13:41 -0700)]
[gicombiner] Allow generated CombinerHelpers to have additional arguments

This allows combiners to delegate to other helpers or depend
on additional information. It's not great as an overall
solution though as callers must provide the argument on every call, even for
static data like an additional helper. Another patch will follow to
support additional members of the generated combiner.

Reviewers: aditya_nandakumar, bogner, aemerson, paquette, volkan, arsenm

Reviewed By: aditya_nandakumar

Subscribers: wdng, llvm-commits

Tags: #llvm

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

13 months ago[MLIR][Standard] Fix use of `dyn_cast_or_null`
Frederik Gossen [Tue, 16 Jun 2020 21:04:57 +0000 (21:04 +0000)]
[MLIR][Standard] Fix use of `dyn_cast_or_null`

The value may be a function argument in which case `getDefiningOp` will return a

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

13 months ago[CGP] Add `--match-full-lines` to make sure we don't have a dbg attachment.
Davide Italiano [Tue, 16 Jun 2020 21:04:40 +0000 (14:04 -0700)]
[CGP] Add `--match-full-lines` to make sure we don't have a dbg attachment.