OSDN Git Service

android-x86/external-llvm-project.git
4 years ago[AMDGPU] Bundle loads before post-RA scheduler
Stanislav Mekhanoshin [Mon, 13 Jan 2020 22:54:17 +0000 (14:54 -0800)]
[AMDGPU] Bundle loads before post-RA scheduler

We are relying on atrificial DAG edges inserted by the
MemOpClusterMutation to keep loads and stores together in the
post-RA scheduler. This does not work all the time since it
allows to schedule a completely independent instruction in the
middle of the cluster.

Removed the DAG mutation and added pass to bundle already
clustered instructions. These bundles are unpacked before the
memory legalizer because it does not work with bundles but also
because it allows to insert waitcounts in the middle of a store
cluster.

Removing artificial edges also allows a more relaxed scheduling.

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

4 years ago[PGO] Attach appropriate funclet operand bundles to value profiling instrumentation...
Andy Kaylor [Fri, 24 Jan 2020 19:19:08 +0000 (11:19 -0800)]
[PGO] Attach appropriate funclet operand bundles to value profiling instrumentation calls

Patch by Chris Chrulski

When generating value profiling instrumentation, ensure the call gets the
correct funclet token, otherwise WinEHPrepare will turn the call (and all
subsequent instructions) into unreachable.

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

4 years ago[AMDGPU] Allow narrowing muti-dword loads
Stanislav Mekhanoshin [Tue, 21 Jan 2020 20:49:25 +0000 (12:49 -0800)]
[AMDGPU] Allow narrowing muti-dword loads

Currently BE allows only a little load narrowing because
of the fear it will produce sub-dword ext loads. However,
we can always allow narrowing if we are shrinking one
multi-dword load to another multi-dword load.

In particular we were unable to reduce s_load_dwordx8 into
s_load_dwordx4 if identity shuffle was used to extract
low 4 dwords.

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

4 years agoAllow combining of extract_subvector to extract element
Stanislav Mekhanoshin [Tue, 21 Jan 2020 20:27:13 +0000 (12:27 -0800)]
Allow combining of extract_subvector to extract element

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

4 years agoResubmit: [DA][TTI][AMDGPU] Add option to select GPUDA with TTI
Austin Kerbow [Mon, 20 Jan 2020 15:25:20 +0000 (07:25 -0800)]
Resubmit: [DA][TTI][AMDGPU] Add option to select GPUDA with TTI

Summary:
Enable the new diveregence analysis by default for AMDGPU.

Resubmit with test updates since GPUDA was causing failures on Windows.

Reviewers: rampitec, nhaehnle, arsenm, thakis

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

Tags: #llvm

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

4 years agoSupport Swift calling convention for WebAssembly targets
Yuta Saito [Fri, 24 Jan 2020 18:20:07 +0000 (10:20 -0800)]
Support Swift calling convention for WebAssembly targets

This adds basic support for the Swift calling convention with WebAssembly
targets.

Reviewed By: dschuff

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

4 years ago[DA] Don't propagate from unreachable blocks
Austin Kerbow [Fri, 24 Jan 2020 03:49:20 +0000 (19:49 -0800)]
[DA] Don't propagate from unreachable blocks

Summary: Fixes crash that could occur when a divergent terminator has an unreachable parent.

Reviewers: rampitec, nhaehnle, arsenm

Subscribers: jvesely, wdng, hiraditya, jfb, llvm-commits

Tags: #llvm

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

4 years agoAdd test for spaceship operator to __config
David Zarzycki [Fri, 24 Jan 2020 18:26:53 +0000 (13:26 -0500)]
Add test for spaceship operator to __config

Summary:
The libcxx test suite auto-detects spaceship operator, but __config does not. This means that the libcxx test suite has been broken for over a month when using top-of-tree clang. This also really ought to be fixed before 10.0.

See: bc633a42dd409dbeb456263e3388b8caa4680aa0

Reviewers: chandlerc, mclow.lists, EricWF, ldionne, CaseyCarter

Reviewed By: EricWF

Subscribers: broadwaylamb, hans, dexonsmith, tstellar, llvm-commits, libcxx-commits

Tags: #libc, #llvm

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

4 years agoFix some comment typos. NFC.
Simon Pilgrim [Fri, 24 Jan 2020 18:16:28 +0000 (18:16 +0000)]
Fix some comment typos. NFC.

4 years ago[LoopStrengthReduce] Teach LoopStrengthReduce to preserve MemorySSA is available.
Alina Sbirlea [Fri, 24 Jan 2020 01:00:48 +0000 (17:00 -0800)]
[LoopStrengthReduce] Teach LoopStrengthReduce to preserve MemorySSA is available.

4 years ago[PGO] Early detection regarding whether pgo counter promotion is possible
Andy Kaylor [Fri, 24 Jan 2020 17:05:10 +0000 (09:05 -0800)]
[PGO] Early detection regarding whether pgo counter promotion is possible

Patch by Chris Chrulski

This fixes a problem with the current behavior when assertions are enabled.
A loop that exits to a catchswitch instruction is skipped for the counter
promotion, however this check was being done after the PGOCounterPromoter
tried to collect an insertion point for the exit block. A call to
getFirstInsertionPt() on a block that begins with a catchswitch instruction
triggers an assertion. This change performs a check whether the counter
promotion is possible prior to collecting the ExitBlocks and InsertPts.

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

4 years ago[PatchableFunction] Allow empty entry MachineBasicBlock
Fangrui Song [Thu, 23 Jan 2020 22:46:28 +0000 (14:46 -0800)]
[PatchableFunction] Allow empty entry MachineBasicBlock

Reviewed By: nickdesaulniers

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

4 years agoVerify that clang's max alignment is <= LLVM's max alignment
David Zarzycki [Fri, 24 Jan 2020 17:37:05 +0000 (12:37 -0500)]
Verify that clang's max alignment is <= LLVM's max alignment

Reviewers: lebedev.ri

Reviewed By: lebedev.ri

Subscribers: cfe-commits

Tags: #llvm, #clang

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

4 years ago[ARM] Use reduction intrinsics for larger than legal reductions
David Green [Fri, 24 Jan 2020 14:21:45 +0000 (14:21 +0000)]
[ARM] Use reduction intrinsics for larger than legal reductions

The codegen for splitting a llvm.vector.reduction intrinsic into parts
will be better than the codegen for the generic reductions. This will
only directly effect when vectorization factors are specified by the
user.

Also added tests to make sure the codegen for larger reductions is OK.

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

4 years ago[ELF][PowerPC] Support R_PPC_COPY and R_PPC64_COPY
Fangrui Song [Thu, 23 Jan 2020 07:26:49 +0000 (23:26 -0800)]
[ELF][PowerPC] Support R_PPC_COPY and R_PPC64_COPY

Reviewed By: Bdragon28, jhenderson, grimar, sfertile

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

4 years ago[VE] global variable isel patterns
Kazushi (Jam) Marukawa [Fri, 24 Jan 2020 16:33:57 +0000 (17:33 +0100)]
[VE] global variable isel patterns

Summary: Asm expr fixups, isel patterns and tests for global variables addresses.

Reviewed By: arsenm

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

4 years ago[DebugInfo][LiveDebugValues] Teach Live Debug Values About Meta Instructions
Tom Weaver [Fri, 24 Jan 2020 16:29:05 +0000 (16:29 +0000)]
[DebugInfo][LiveDebugValues] Teach Live Debug Values About Meta Instructions

Previously LiveDebugValues pass would consider meta instructions that 'fiddle' with liveness of registers as register definitions when transfering register defs. This would mean that, for example, a KILL instruction would cause LiveDebugValues to terminate the range of an earlier DBG_VALUE instruction resulting in the none propogation of said DBG_VALUE instructions into later blocks.

This patch adds the check and a helpful comment, fixes a test that previously tested for the broken behaviour by coincidence and adds a test specifically for this.

reviewers: vsk, dstenb, djtodoro

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

4 years ago[analyzer] PthreadLock: Implement dead region cleanup.
Artem Dergachev [Fri, 24 Jan 2020 15:38:57 +0000 (18:38 +0300)]
[analyzer] PthreadLock: Implement dead region cleanup.

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

4 years ago[analyzer] PthreadLock: Implement mutex escaping.
Artem Dergachev [Fri, 24 Jan 2020 15:34:04 +0000 (18:34 +0300)]
[analyzer] PthreadLock: Implement mutex escaping.

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

4 years ago[analyzer] NFC: PthreadLock: Use CallDescriptionMap, modernize.
Artem Dergachev [Fri, 24 Jan 2020 15:23:15 +0000 (18:23 +0300)]
[analyzer] NFC: PthreadLock: Use CallDescriptionMap, modernize.

https://reviews.llvm.org/D37809

4 years ago[analyzer] PthreadLock: Add more XNU rwlock unlock functions.
Artem Dergachev [Fri, 24 Jan 2020 14:53:52 +0000 (17:53 +0300)]
[analyzer] PthreadLock: Add more XNU rwlock unlock functions.

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

4 years ago[analyzer] PthreadLock: Fix return value modeling for XNU lock functions.
Artem Dergachev [Fri, 24 Jan 2020 14:52:41 +0000 (17:52 +0300)]
[analyzer] PthreadLock: Fix return value modeling for XNU lock functions.

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

4 years ago[X86][SSE] combineTargetShuffle - permilps(shufps(load(),x)) --> permilps(shufps...
Simon Pilgrim [Fri, 24 Jan 2020 15:22:56 +0000 (15:22 +0000)]
[X86][SSE] combineTargetShuffle - permilps(shufps(load(),x)) --> permilps(shufps(x,load()))

Moves lowerShuffleWithSHUFPS commutation code from rG30fcd29fe479 to catch cases during combine

4 years ago[Sema] Provide declarations for MaximumAlignment, MaxAlignmentExponent variables
Roman Lebedev [Fri, 24 Jan 2020 15:17:34 +0000 (18:17 +0300)]
[Sema] Provide declarations for MaximumAlignment, MaxAlignmentExponent variables

clang-armv7-linux-build-cache bot is complaining about undefined
references to these variables during linking, so by explicitly
placing them in some TU we should be able to fix that.

4 years ago[llvm-objcopy][COFF] Add support for --set-section-flags
Sergey Dmitriev [Fri, 24 Jan 2020 14:36:09 +0000 (06:36 -0800)]
[llvm-objcopy][COFF] Add support for --set-section-flags

Reviewers: jhenderson, MaskRay, alexshap, rupprecht, mstorsjo

Reviewed By: jhenderson

Subscribers: abrachet, llvm-commits

Tags: #llvm

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

4 years ago[clangd] Remove pesky ;. NFC
Sam McCall [Fri, 24 Jan 2020 15:12:00 +0000 (16:12 +0100)]
[clangd] Remove pesky ;. NFC

4 years ago[clangd] Rename DiagnosticsConsumer -> ClangdServer::Callbacks, and make it optional
Sam McCall [Fri, 24 Jan 2020 13:08:56 +0000 (14:08 +0100)]
[clangd] Rename DiagnosticsConsumer -> ClangdServer::Callbacks, and make it optional

Summary:
This reflects its current function better and avoids confusion with clang::DiagnosticConsumer.

The old name/constructor is left around temporarily for compatibility.
(Metagame: merging with out-of-tree changes is harder than usual this month)

Reviewers: hokein

Subscribers: ilya-biryukov, javed.absar, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits

Tags: #clang

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

4 years ago[Sema] Introduce MaximumAlignment value, to be used instead of magical constants
Roman Lebedev [Fri, 24 Jan 2020 14:01:27 +0000 (17:01 +0300)]
[Sema] Introduce MaximumAlignment value, to be used instead of magical constants

There is llvm::Value::MaximumAlignment, which is numerically
equivalent to these constants, but we can't use it directly
because we can't include llvm IR headers in clang Sema.
So instead, copy-paste the constant, and fixup the places to use it.

This was initially reviewed in https://reviews.llvm.org/D72998

4 years ago[VE] aligned load/store isel patterns
Kazushi (Jam) Marukawa [Fri, 24 Jan 2020 14:09:08 +0000 (15:09 +0100)]
[VE] aligned load/store isel patterns

Summary:
Aligned load/store isel patterns and tests for
i1/i8/16/32/64 (including extension and truncation) and fp32/64.

Reviewed By: arsenm

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

4 years agoFileCheck [9/12]: Add support for matching formats
Thomas Preud'homme [Tue, 5 Mar 2019 23:20:29 +0000 (23:20 +0000)]
FileCheck [9/12]: Add support for matching formats

Summary:
This patch is part of a patch series to add support for FileCheck
numeric expressions. This specific patch adds support for selecting a
matching format to match a numeric value against (ie. decimal, hex lower
case letters or hex upper case letters).

This commit allows to select what format a numeric value should be
matched against. The following formats are supported: decimal value,
lower case hex value and upper case hex value. Matching formats impact
both the format of numeric value to be matched as well as the format of
accepted numbers in a definition with empty numeric expression
constraint.

Default for absence of format is decimal value unless the numeric
expression constraint is non null and use a variable in which case the
format is the one used to define that variable. Conclict of format in
case of several variable being used is diagnosed and forces the user to
select a matching format explicitely.

This commit also enables immediates in numeric expressions to be in any
radix known to StringRef's GetAsInteger method, except for legacy
numeric expressions (ie [[@LINE+<offset>]] which only support decimal
immediates.

Copyright:
    - Linaro (changes up to diff 183612 of revision D55940)
    - GraphCore (changes in later versions of revision D55940 and
                 in new revision created off D55940)

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson

Reviewed By: jhenderson, arichardson

Subscribers: daltenty, MaskRay, hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, kristina, hfinkel, rogfer01, JonChesterfield

Tags: #llvm

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

4 years ago[Sema] Try 2: Sanity-check alignment requested via `__attribute__((assume_aligned...
Roman Lebedev [Thu, 23 Jan 2020 19:48:57 +0000 (22:48 +0300)]
[Sema] Try 2: Sanity-check alignment requested via `__attribute__((assume_aligned(imm)))`

Summary:
For `__builtin_assume_aligned()`, we do validate that the alignment
is not greater than `536870912` (D68824), but we don't do that for
`__attribute__((assume_aligned(N)))` attribute.
I suspect we should.

This was initially committed in a4cfb15d15a8a353fe316f2a9fe1c8c6a6740ef1
but reverted in 210f0882c9e5d6f504b8f29e8a5eae884f812e5c due to
suspicious bot failures.

Reviewers: erichkeane, aaron.ballman, hfinkel, rsmith, jdoerfert

Reviewed By: erichkeane

Subscribers: cfe-commits, llvm-commits

Tags: #llvm, #clang

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

4 years ago[PowerPC][Future] Add prefixed instruction paddi to future CPU
Victor Huang [Thu, 23 Jan 2020 20:01:02 +0000 (14:01 -0600)]
[PowerPC][Future] Add prefixed instruction paddi to future CPU

Future CPU will include support for prefixed instructions.
These prefixed instructions are formed by a 4 byte prefix
immediately followed by a 4 byte instruction effectively
making an 8 byte instruction. The new instruction paddi
is a prefixed form of addi.

This patch adds paddi and all of the support required
for that instruction. The majority of the patch deals with
supporting the new prefixed instructions. The addition of
paddi is mainly to allow for testing.

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

4 years ago[lldb][NFC] Cleanup some if conditions in ASTImporterDelegate::Imported
Raphael Isemann [Fri, 24 Jan 2020 11:54:06 +0000 (12:54 +0100)]
[lldb][NFC] Cleanup some if conditions in ASTImporterDelegate::Imported

4 years ago[clangd][Hover] Change arrow in return type back to →
Kadir Cetinkaya [Fri, 24 Jan 2020 10:35:24 +0000 (11:35 +0100)]
[clangd][Hover] Change arrow in return type back to →

Summary:
Currently 🡺 is used in hover response to represent return types, but it
is not widely available. Changing this back to original to support more clients.

Reviewers: sammccall

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

Tags: #clang

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

4 years ago[X86][SSE] Add another shufps+shufps test for fold through commutation
Simon Pilgrim [Fri, 24 Jan 2020 12:03:56 +0000 (12:03 +0000)]
[X86][SSE] Add another shufps+shufps test for fold through commutation

4 years ago[X86][SSE] lowerShuffleWithSHUFPS - commute '2*V1+2*V2 elements' mask if it allows...
Simon Pilgrim [Fri, 24 Jan 2020 11:52:47 +0000 (11:52 +0000)]
[X86][SSE] lowerShuffleWithSHUFPS - commute '2*V1+2*V2 elements' mask if it allows a loaded fold

As mentioned on D73023.

4 years ago[Alignment][NFC] Deprecate Align::None()
Guillaume Chatelet [Tue, 21 Jan 2020 14:00:04 +0000 (15:00 +0100)]
[Alignment][NFC] Deprecate Align::None()

Summary:
This is a follow up on https://reviews.llvm.org/D71473#inline-647262.
There's a caveat here that `Align(1)` relies on the compiler understanding of `Log2_64` implementation to produce good code. One could use `Align()` as a replacement but I believe it is less clear that the alignment is one in that case.

Reviewers: xbolva00, courbet, bollu

Subscribers: arsenm, dylanmckay, sdardis, nemanjai, jvesely, nhaehnle, hiraditya, kbarton, jrtc27, atanasyan, jsji, Jim, kerbowa, cfe-commits, llvm-commits

Tags: #clang, #llvm

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

4 years ago[llvm-exegesis][NFC] Simplify code.
Clement Courbet [Fri, 24 Jan 2020 10:42:27 +0000 (11:42 +0100)]
[llvm-exegesis][NFC] Simplify code.

Summary:
What we're redoing already exists in the X86 backend, it's called
`X86II::getOperandBias`.

Reviewers: gchatelet

Subscribers: tschuett, mstojanovic, llvm-commits

Tags: #llvm

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

4 years ago[Sema] Try 2: Attempt to perform call-size-specific `__attribute__((alloc_align(param...
Roman Lebedev [Thu, 23 Jan 2020 19:49:50 +0000 (22:49 +0300)]
[Sema] Try 2: Attempt to perform call-size-specific `__attribute__((alloc_align(param_idx)))` validation

Summary:
`alloc_align` attribute takes parameter number, not the alignment itself,
so given **just** the attribute/function declaration we can't do any
sanity checking for said alignment.

However, at call site, given the actual `Expr` that is passed
into that parameter, we //might// be able to evaluate said `Expr`
as Integer Constant Expression, and perform the sanity checks.
But since there is no requirement for that argument to be an immediate,
we may fail, and that's okay.

However if we did evaluate, we should enforce the same constraints
as with `__builtin_assume_aligned()`/`__attribute__((assume_aligned(imm)))`:
said alignment is a power of two, and is not greater than our magic threshold

This was initially committed in c2a9061ac5166e48fe85ea2b6dbce9457c964958
but reverted in 00756b182398b92abe16559287467079087aa631 because of
suspicious bot failures.

Reviewers: erichkeane, aaron.ballman, hfinkel, rsmith, jdoerfert

Reviewed By: erichkeane

Subscribers: cfe-commits

Tags: #clang

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

4 years ago[llvm-readelf] - Improve dumping of objects without a section header string table.
Georgii Rymar [Wed, 22 Jan 2020 14:20:07 +0000 (17:20 +0300)]
[llvm-readelf] - Improve dumping of objects without a section header string table.

We have a test/Object/no-section-header-string-table.test which checks
what happens when an object does not have a section header string table.
It does not check the full output though.
Currently our output is different from GNU readelf, because the latter prints
"<no-strings>" instead of a section name, while we print nothing.

This patch fixes this, adds a proper test case and removes the one from test/Object,
as it is not a right folder for llvm-readelf tests.

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

4 years ago[clangd] Show background index status using LSP 3.15 work-done progress notifications
Sam McCall [Wed, 22 Jan 2020 18:41:45 +0000 (19:41 +0100)]
[clangd] Show background index status using LSP 3.15 work-done progress notifications

Summary:
It simply shows the completed/total items on the background queue, e.g.
 indexing: 233/1000
The denominator is reset to zero every time the queue goes idle.

The protocol is fairly complicated here (requires creating a remote "progress"
resource before sending updates). We implement the full protocol, but I've added
an extension allowing it to be skipped to reduce the burden on clients - in
particular the lit test takes this shortcut.

The addition of background index progress to DiagnosticConsumer seems ridiculous
at first glance, but I believe that interface is trending in the direction of
"ClangdServer callbacks" anyway. It's due for a rename, but otherwise actually
fits.

Reviewers: kadircet, usaxena95

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, jfb, cfe-commits, llvm-commits

Tags: #clang, #llvm

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

4 years ago[X86][SSE] Add shufps+shufps test for fold through commutation
Simon Pilgrim [Fri, 24 Jan 2020 11:16:16 +0000 (11:16 +0000)]
[X86][SSE] Add shufps+shufps test for fold through commutation

As mentioned on D73023, lowerShuffleWithSHUFPS should be able to commute the shufps inputs to fold the second arg as it will then permute the shufps result anyway.

4 years ago[lldb/DWARF] Remove a workaround from DebugNamesDWARFIndex
Pavel Labath [Fri, 24 Jan 2020 11:07:00 +0000 (12:07 +0100)]
[lldb/DWARF] Remove a workaround from DebugNamesDWARFIndex

This was needed when asking a compile unit for its dwo component
triggered a infinite recursion if the dwo unit has not been already
parsed.

This has since been fixed.

4 years ago[lldb] Fix nondeterminism in TestCppBitfields
Pavel Labath [Fri, 24 Jan 2020 11:02:43 +0000 (12:02 +0100)]
[lldb] Fix nondeterminism in TestCppBitfields

The test was printing a char[3] variable without a terminating nul. The
memory after that variable (an unnamed bitfield) was not initialized. If
the memory happened to be nonzero, the summary provider for the variable
would run off into the next field.

This is probably not the right behavior (it should stop at the end of
the array), but this is not the purpose of this test. I have filed
pr44649 for this bug, and fixed the test to not depend on this behavior.

4 years ago[NFC][ARM] Add test
Sam Parker [Fri, 24 Jan 2020 10:59:13 +0000 (10:59 +0000)]
[NFC][ARM] Add test

4 years ago[AArch64][SVE] Add intrinsics for FFR manipulation
Kerry McLaughlin [Fri, 24 Jan 2020 09:42:18 +0000 (09:42 +0000)]
[AArch64][SVE] Add intrinsics for FFR manipulation

Summary:
Implements the following intrinsics:
  - llvm.aarch64.sve.setffr
  - llvm.aarch64.sve.rdffr
  - llvm.aarch64.sve.rdffr.z
  - llvm.aarch64.sve.wrffr

Reviewers: sdesmalen, efriedma, dancgr, rengolin

Reviewed By: efriedma

Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, cameron.mcinally, cfe-commits, llvm-commits

Tags: #llvm

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

4 years ago[lldb][NFC] Fix formatting in ASTImporterDelegate::ImportImpl
Raphael Isemann [Fri, 24 Jan 2020 10:57:06 +0000 (11:57 +0100)]
[lldb][NFC] Fix formatting in ASTImporterDelegate::ImportImpl

4 years ago[lldb][NFC] Delete unused ClangASTImporter::CompleteDecl
Raphael Isemann [Fri, 24 Jan 2020 10:50:29 +0000 (11:50 +0100)]
[lldb][NFC] Delete unused ClangASTImporter::CompleteDecl

4 years ago[SelectionDAG] rot(x, y) --> x iff ComputeNumSignBits(x) == BitWidth(x)
Simon Pilgrim [Fri, 24 Jan 2020 10:35:19 +0000 (10:35 +0000)]
[SelectionDAG] rot(x, y) --> x iff ComputeNumSignBits(x) == BitWidth(x)

Rotating an 0/-1 value by any amount will always result in the same 0/-1 value

4 years ago[llvm-libc] Add memory function benchmarks
Guillaume Chatelet [Mon, 6 Jan 2020 12:17:04 +0000 (13:17 +0100)]
[llvm-libc] Add memory function benchmarks

Summary:
This patch adds a benchmarking infrastructure for llvm-libc memory functions.

In a nutshell, the code can benchmark small and large buffers for the memcpy, memset and memcmp functions.
It also produces graphs of size vs latency by running targets of the form `render-libc-{memcpy|memset|memcmp}-benchmark-{small|big}`.

The configurations are provided as JSON files and the benchmark also produces a JSON file.
This file is then parsed and rendered as a PNG file via the `render.py` script (make sure to run `pip3 install matplotlib scipy numpy`).
The script can take several JSON files as input and will superimpose the curves if they are from the same host.

TODO:
 - The code benchmarks whatever is available on the host but should be configured to benchmark the -to be added- llvm-libc memory functions.
 - Add a README file with instructions and rationale.
 - Produce scores to track the performance of the functions over time to allow for regression detection.

Reviewers: sivachandra, ckennelly

Subscribers: mgorny, MaskRay, libc-commits

Tags: #libc-project

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

4 years ago[mlir] Use all_of instead of a manual loop in IntrinsicGen. NFC
Alex Zinenko [Fri, 24 Jan 2020 10:27:17 +0000 (11:27 +0100)]
[mlir] Use all_of instead of a manual loop in IntrinsicGen. NFC

This was suggested in post-commit review of D72926.

4 years ago[doc][llvm-objcopy] Remove redundant COFF-specific sub-heading
James Henderson [Fri, 24 Jan 2020 09:49:55 +0000 (09:49 +0000)]
[doc][llvm-objcopy] Remove redundant COFF-specific sub-heading

The sub-heading used to contain the --only-keep-debug switch as that
switch wasn't implemented for ELF at one point. Since the switch is now
in the generic options section, and there are no other options in this
sub-heading, it is pointless and can be deleted.

4 years ago[NFC][ARM] Make some params members instead.
Sam Parker [Fri, 24 Jan 2020 10:17:43 +0000 (10:17 +0000)]
[NFC][ARM] Make some params members instead.

Add MachineLoopInfo and ReachingDefAnalysis as members of
LowOverheadLoop instead of passing them several times to different
methods.

4 years ago[clangd] Errors in TestTU cause test failures unless suppressed with error-ok.
Sam McCall [Wed, 22 Jan 2020 15:38:41 +0000 (16:38 +0100)]
[clangd] Errors in TestTU cause test failures unless suppressed with error-ok.

Summary:
The historic behavior of TestTU is to gather diagnostics and otherwise ignore
them. So if a test has a syntax error, and doesn't assert diagnostics, it
silently misbehaves.
This can be annoying when developing tests, as evidenced by various tests
gaining "assert no diagnostics" where that's not really the point of the test.

This patch aims to make that default behavior. For the first error
(not warning), TestTU will call ADD_FAILURE().

This can be suppressed with a comment containing "error-ok". For now that will
suppress any errors in the TU. We can make this stricter later -verify style.
(-verify itself is hard to reuse because of DiagnosticConsumer interfaces...)
A magic-comment was chosen over a TestTU option because of table-driven tests.

In addition to the behavior change, this patch:
  - adds //error-ok where we're knowingly testing invalid code
    (e.g. for diagnostics, crash-resilience, or token-level tests)
  - fixes a bunch of errors in the checked-in tests, mostly trivial (missing ;)
  - removes a bunch of now-redundant instances of "assert no diagnostics"

Reviewers: kadircet

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

Tags: #clang

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

4 years ago[X86] Add test showing failure to remove vector rotate of allsignbits
Simon Pilgrim [Fri, 24 Jan 2020 10:12:34 +0000 (10:12 +0000)]
[X86] Add test showing failure to remove vector rotate of allsignbits

Rotating an 0/-1 value by any amount will always result in the same 0/-1 value

4 years ago[clang][NFC] Remove redundant cast
Raphael Isemann [Fri, 24 Jan 2020 09:42:26 +0000 (10:42 +0100)]
[clang][NFC] Remove redundant cast

This cast just casts Decl* to Decl*.

4 years ago[Format] Fix 'auto x(T&&, T &&)->F' with PAS_Left.
Sam McCall [Fri, 24 Jan 2020 09:12:25 +0000 (10:12 +0100)]
[Format] Fix 'auto x(T&&, T &&)->F' with PAS_Left.

Summary:
An heuristic targetting `x && x->foo` was targed overly broadly and caused the
last T&& to be treated as a binary operator.

Reviewers: hokein

Subscribers: cfe-commits

Tags: #clang

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

4 years ago[DWARF][test] Test all the call-site realted attrs
Djordje Todorovic [Thu, 23 Jan 2020 13:20:19 +0000 (14:20 +0100)]
[DWARF][test] Test all the call-site realted attrs

Adding the test for the call site encoding in DWARF5 vs GNU extensions.
Some of the attributes were not covered by any test.

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

4 years agoRecommit "[DWARF5][clang]: Added support for DebugInfo generation for auto return...
Awanish Pandey [Thu, 23 Jan 2020 10:36:52 +0000 (16:06 +0530)]
Recommit "[DWARF5][clang]: Added support for DebugInfo generation for auto return type for C++ member functions."

Summary:
This was reverted in e45fcfc3aa57bb237fd4fd694d0c257be66d5482 due to
libcxx build failure. This revision addresses that case.

Original commit message:
    This patch will provide support for auto return type for the C++ member
    functions.

    This patch includes clang side implementation of this feature.

    Patch by: Awanish Pandey <Awanish.Pandey@amd.com>

    Reviewers: dblaikie, aprantl, shafik, alok, SouraVX, jini.susan.george
    Reviewed by: dblaikie

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

4 years ago[WholeProgramDevirt][test] Fix test after D73094
Fangrui Song [Fri, 24 Jan 2020 08:46:18 +0000 (00:46 -0800)]
[WholeProgramDevirt][test] Fix test after D73094

4 years ago[WPD] Allow load/save bitcoded index when running opt -wholeprogramdevirt
Evgeny Leviant [Fri, 24 Jan 2020 08:31:39 +0000 (00:31 -0800)]
[WPD] Allow load/save bitcoded index when running opt -wholeprogramdevirt

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

4 years ago[lldb] Fix file header of Host/posix/FileSystemPosix.cpp
Fangrui Song [Fri, 24 Jan 2020 08:29:43 +0000 (00:29 -0800)]
[lldb] Fix file header of Host/posix/FileSystemPosix.cpp

4 years ago[PowerPC] Delete IsDarwin from AsmPrinter functions
Fangrui Song [Fri, 24 Jan 2020 08:14:40 +0000 (00:14 -0800)]
[PowerPC] Delete IsDarwin from AsmPrinter functions

4 years ago[lldb][NFC] Fix all formatting errors in .cpp file headers
Raphael Isemann [Fri, 24 Jan 2020 07:23:27 +0000 (08:23 +0100)]
[lldb][NFC] Fix all formatting errors in .cpp file headers

Summary:
A *.cpp file header in LLDB (and in LLDB) should like this:
```
//===-- TestUtilities.cpp -------------------------------------------------===//
```
However in LLDB most of our source files have arbitrary changes to this format and
these changes are spreading through LLDB as folks usually just use the existing
source files as templates for their new files (most notably the unnecessary
editor language indicator `-*- C++ -*-` is spreading and in every review
someone is pointing out that this is wrong, resulting in people pointing out that this
is done in the same way in other files).

This patch removes most of these inconsistencies including the editor language indicators,
all the different missing/additional '-' characters, files that center the file name, missing
trailing `===//` (mostly caused by clang-format breaking the line).

Reviewers: aprantl, espindola, jfb, shafik, JDevlieghere

Reviewed By: JDevlieghere

Subscribers: dexonsmith, wuzish, emaste, sdardis, nemanjai, kbarton, MaskRay, atanasyan, arphaman, jfb, abidh, jsji, JDevlieghere, usaxena95, lldb-commits

Tags: #lldb

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

4 years ago[llvm][TextAPI/MachO] Extend TBD_V3 unittest to verify writing
Jonas Devlieghere [Fri, 24 Jan 2020 07:18:10 +0000 (23:18 -0800)]
[llvm][TextAPI/MachO] Extend TBD_V3 unittest to verify writing

The existing unit tests cover a wide variety of reading TBD files but
lack coverages on the writing side. Case in point is the macCatalyst
case which we're able to read, but not write.

This patch extends the unit test dealing with valid input to write their
content again to verify the writer.

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

4 years ago[llvm][TextAPI/MachO] Update variable names in unit tests. (NFC)
Jonas Devlieghere [Fri, 24 Jan 2020 06:48:29 +0000 (22:48 -0800)]
[llvm][TextAPI/MachO] Update variable names in unit tests. (NFC)

This changes the variables names to match the TBD version.

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

4 years ago[objc_direct] do not add direct properties to the serialization array
Pierre Habouzit [Wed, 22 Jan 2020 20:08:19 +0000 (12:08 -0800)]
[objc_direct] do not add direct properties to the serialization array

If we do, then the property_list_t length is wrong
and class_getProperty gets very sad.

Signed-off-by: Pierre Habouzit <phabouzit@apple.com>
Radar-Id: rdar://problem/58804805
Differential Revision: https://reviews.llvm.org/D73219

4 years ago[objc_direct] Allow for direct messages be sent to `self` when it is a Class
Pierre Habouzit [Wed, 15 Jan 2020 03:51:08 +0000 (19:51 -0800)]
[objc_direct] Allow for direct messages be sent to `self` when it is a Class

Sending a message to `self` when it is const and within a class method
is safe because we know that `self` is the Class itself.

We can only relax this warning in ARC.

Signed-off-by: Pierre Habouzit <phabouzit@apple.com>
Radar-Id: rdar://problem/58581965
Differential Revision: https://reviews.llvm.org/D72747

4 years ago[PowerPC][MC] Delete PPCMCExpr::IsDarwin
Fangrui Song [Fri, 24 Jan 2020 06:15:28 +0000 (22:15 -0800)]
[PowerPC][MC] Delete PPCMCExpr::IsDarwin

4 years ago[Frontend] Delete some unneeded CC1 options
Fangrui Song [Fri, 24 Jan 2020 05:29:09 +0000 (21:29 -0800)]
[Frontend] Delete some unneeded CC1 options

4 years ago[lldb/Util] Remove reproducers after replay
Jonas Devlieghere [Fri, 24 Jan 2020 05:46:47 +0000 (21:46 -0800)]
[lldb/Util] Remove reproducers after replay

Except for debugging purposes there's no point in leaving the reproducer
behind on disk after replay. This patch adds a cleanup in the replay
case.

4 years ago[lldb/Util] Fix Python 3 incompatibility in lldb-repro
Jonas Devlieghere [Fri, 24 Jan 2020 05:41:46 +0000 (21:41 -0800)]
[lldb/Util] Fix Python 3 incompatibility in lldb-repro

This fixes: TypeError: Unicode-objects must be encoded before hashing

4 years ago[X86] Add -flax-vector-conversions=none to all of the x86 vector intrinsic header...
Craig Topper [Thu, 23 Jan 2020 02:13:16 +0000 (20:13 -0600)]
[X86] Add -flax-vector-conversions=none to all of the x86 vector intrinsic header tests.

4 years ago[examples][ORC] Add an example of how to use a custom ObjectLinkingLayer plugin.
Lang Hames [Fri, 24 Jan 2020 03:15:27 +0000 (19:15 -0800)]
[examples][ORC] Add an example of how to use a custom ObjectLinkingLayer plugin.

ObjectLinkingLayer::Plugin instances can be used to receive events from
ObjectLinkingLayer, and to inspect/modify JITLink linker graphs. This example
shows how to write and set up a plugin to dump the linker graph at various
points in the linking process.

4 years ago[examples][ORC] Fix program names in calls to parse cl opt in examples.
Lang Hames [Fri, 24 Jan 2020 02:22:50 +0000 (18:22 -0800)]
[examples][ORC] Fix program names in calls to parse cl opt in examples.

These examples were all copied and adapted from the original HowToUseLLJIT
example code, however the calls to cl::ParseCommandLineOptions were not
updated.

4 years ago[examples][ORC] Remove an unused parameter from IR in an LLJIT example.
Lang Hames [Fri, 24 Jan 2020 02:09:29 +0000 (18:09 -0800)]
[examples][ORC] Remove an unused parameter from IR in an LLJIT example.

4 years agoFix assert that doesn't check anything.
Weverything [Fri, 24 Jan 2020 00:03:31 +0000 (16:03 -0800)]
Fix assert that doesn't check anything.

Move the assert that checks for the end iterator inside the loop which
actually moves over the elements.  This allows it to check that the
iteration stays within the range.

4 years ago[WinEH] Ignore lifetime.end PHI nodes in empty cleanuppads
Andy Kaylor [Fri, 24 Jan 2020 00:37:24 +0000 (16:37 -0800)]
[WinEH] Ignore lifetime.end PHI nodes in empty cleanuppads

This fixes a bug where a PHI node that is only referenced by a lifetime.end intrinsic in an otherwise empty cleanuppad can cause SimplyCFG to create an SSA violation while removing the empty cleanuppad. Theoretically the same problem can occur with debug intrinsics.

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

4 years ago[WebAssembly] Fix resume-only case in Emscripten EH
Heejin Ahn [Fri, 24 Jan 2020 00:39:32 +0000 (16:39 -0800)]
[WebAssembly] Fix resume-only case in Emscripten EH

Summary:
D72308 incorrectly assumed `resume` cannot exist without a `landingpad`,
which is not true. This sets `Changed` to true whenever we make changes
to a function, including creating a call to `__resumeException` within a
function without a landing pad.

Reviewers: tlively

Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits

Tags: #llvm

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

4 years ago[RISCV] Scheduler description for the Rocket core
Kai Wang [Thu, 23 Jan 2020 20:51:04 +0000 (14:51 -0600)]
[RISCV] Scheduler description for the Rocket core

Pipeline scheduler model for the RISC-V Rocket micro-architecture using the
MIScheduler interface.  Support for both 32 and 64-bit Rocket cores is
implemented.

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

4 years agoRevert "[LTO/WPD] Enable aggressive WPD under LTO option"
Teresa Johnson [Fri, 24 Jan 2020 01:26:51 +0000 (17:26 -0800)]
Revert "[LTO/WPD] Enable aggressive WPD under LTO option"

This reverts commit 59733525d37cf9ad88b5021b33ecdbaf2e18911c.

There is a windows sanitizer bot failure in one of the cfi tests
that I will need some time to figure out:
http://lab.llvm.org:8011/builders/sanitizer-windows/builds/57155/steps/stage%201%20check/logs/stdio

4 years ago[Driver][CodeGen] Support -fpatchable-function-entry=N,M and __attribute__((patchable...
Fangrui Song [Mon, 20 Jan 2020 22:30:06 +0000 (14:30 -0800)]
[Driver][CodeGen] Support -fpatchable-function-entry=N,M and __attribute__((patchable_function_entry(N,M))) where M>0

Reviewed By: nickdesaulniers

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

4 years ago[X86][test] Add tests for -fpatchable-function-entry=N,M (where M>0) and its interact...
Fangrui Song [Mon, 20 Jan 2020 22:57:59 +0000 (14:57 -0800)]
[X86][test] Add tests for -fpatchable-function-entry=N,M (where M>0) and its interaction with -fcf-protection=branch

Reviewed By: nickdesaulniers

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

4 years agoAdd function attribute "patchable-function-prefix" to support -fpatchable-function...
Fangrui Song [Mon, 20 Jan 2020 22:57:11 +0000 (14:57 -0800)]
Add function attribute "patchable-function-prefix" to support -fpatchable-function-entry=N,M where M>0

Similar to the function attribute `prefix` (prefix data),
"patchable-function-prefix" inserts data (M NOPs) before the function
entry label.

-fpatchable-function-entry=2,1 (1 NOP before entry, 1 NOP after entry)
will look like:

```
  .type foo,@function
.Ltmp0:               # @foo
  nop
foo:
.Lfunc_begin0:
  # optional `bti c` (AArch64 Branch Target Identification) or
  # `endbr64` (Intel Indirect Branch Tracking)
  nop

  .section  __patchable_function_entries,"awo",@progbits,get,unique,0
  .p2align  3
  .quad .Ltmp0
```

-fpatchable-function-entry=N,0 + -mbranch-protection=bti/-fcf-protection=branch has two reasonable
placements (https://gcc.gnu.org/ml/gcc-patches/2020-01/msg01185.html):

```
(a)         (b)

func:       func:
.Ltmp0:     bti c
  bti c     .Ltmp0:
  nop       nop
```

(a) needs no additional code. If the consensus is to go for (b), we will
need more code in AArch64BranchTargets.cpp / X86IndirectBranchTracking.cpp .

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

4 years ago[Concepts] Update cxx_status.html with Concepts support status
Saar Raz [Fri, 24 Jan 2020 00:59:14 +0000 (02:59 +0200)]
[Concepts] Update cxx_status.html with Concepts support status

Concepts will be available with Clang 10 - update cxx_status.html to reflect
the papers that have been implemented.

4 years ago[clang][clang-scan-deps] Aggregate the full dependency information.
Michael Spencer [Mon, 28 Oct 2019 21:26:45 +0000 (14:26 -0700)]
[clang][clang-scan-deps] Aggregate the full dependency information.

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

This is a recommit of f978ea498309 with a fix for the PowerPC failure.

The issue was that:
* `CompilerInstance::ExecuteAction` calls
  `getTarget().adjust(getLangOpts());`.
* `PPCTargetInfo::adjust` changes `LangOptions::HasAltivec`.
* This happens after the first few calls to `getModuleHash`.

There’s even a FIXME saying:
```
  // FIXME: We shouldn't need to do this, the target should be immutable once
  // created. This complexity should be lifted elsewhere.
```

This only showed up on PowerPC because it's one of the few targets that
almost always changes a hashed langopt.

I looked into addressing the fixme, but that would be a much larger
change, and it's not the only thing that happens in `ExecuteAction` that
can change the module context hash. Instead I changed the code to not
call `getModuleHash` until after it has been modified in `ExecuteAction`.

4 years agoAMDGPU: Implement FDIV optimizations in AMDGPUCodeGenPrepare
Changpeng Fang [Fri, 24 Jan 2020 00:57:43 +0000 (16:57 -0800)]
AMDGPU: Implement FDIV optimizations in AMDGPUCodeGenPrepare

    Summary:
      RCP has the accuracy limit. If FDIV fpmath require high accuracy rcp may not
    meet the requirement. However, in DAG lowering, fpmath information gets lost,
    and thus we may generate either inaccurate rcp related computation or slow code
    for fdiv.

    In patch implements fdiv optimizations in the AMDGPUCodeGenPrepare, which could
    exactly know !fpmath.

     FastUnsafeRcpLegal: We determine whether it is legal to use rcp based on
                         unsafe-fp-math, fast math flags, denormals and fpmath
                         accuracy request.

     RCP Optimizations:
       1/x -> rcp(x) when fast unsafe rcp is legal or fpmath >= 2.5ULP with
                                                      denormals flushed.
       a/b -> a*rcp(b) when fast unsafe rcp is legal.

     Use fdiv.fast:
       a/b -> fdiv.fast(a, b) when RCP optimization is not performed and
                              fpmath >= 2.5ULP with denormals flushed.

       1/x -> fdiv.fast(1,x)  when RCP optimization is not performed and
                              fpmath >= 2.5ULP with denormals.

    Reviewers:
      arsenm

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

4 years ago[Attributor] Avoid REQUIRED dependences in favor of OPTIONAL ones
Johannes Doerfert [Sun, 12 Jan 2020 06:11:56 +0000 (00:11 -0600)]
[Attributor] Avoid REQUIRED dependences in favor of OPTIONAL ones

When we use information only to short-cut deduction or improve it, we
can use OPTIONAL dependences instead of REQUIRED ones to avoid cascading
pessimistic fixpoints.

We also need to track dependences only when we use assumed information,
e.g., we act on assumed liveness information.

4 years ago[Attributor] Record dependences only when necessary
Johannes Doerfert [Sun, 12 Jan 2020 05:35:45 +0000 (23:35 -0600)]
[Attributor] Record dependences only when necessary

If we use assumed information from AAValueSimplify we need to record
an OPTIONAL dependence, otherwise we do not.

4 years ago[Attributor][FIX] Avoid dangling pointers during code deletion
Johannes Doerfert [Sun, 12 Jan 2020 05:30:36 +0000 (23:30 -0600)]
[Attributor][FIX] Avoid dangling pointers during code deletion

It can happen that we have instructions in the ToBeDeletedInsts set
which are deleted earlier already. To avoid dangling pointers we use
weak tracking handles.

4 years ago[Attributor][FIX] Handle non-pointers when following uses
Johannes Doerfert [Fri, 10 Jan 2020 18:32:24 +0000 (12:32 -0600)]
[Attributor][FIX] Handle non-pointers when following uses

When we follow uses, e.g., in AAMemoryBehavior or AANoCapture, we need
to make sure the value is a pointer before we ask for abstract
attributes only valid for pointers. This happens because we follow
pointers through calls that do not capture but may return the value.

4 years ago[Attributor][NFC] Do not (try to) simplify void values
Johannes Doerfert [Sun, 12 Jan 2020 05:59:36 +0000 (23:59 -0600)]
[Attributor][NFC] Do not (try to) simplify void values

We might accidentally ask AAValueSimplify to simplify a void value. That
can lead to very interesting, and very wrong, results. We now handle
this case gracefully.

4 years ago[lldb/Util] Use md5 instead of python's hash function.
Jonas Devlieghere [Fri, 24 Jan 2020 00:35:42 +0000 (16:35 -0800)]
[lldb/Util] Use md5 instead of python's hash function.

Because of the way the Python hash function works, it's not guaranteed
to be the same. This was causing a lot of reproducers to be generated
for the same tests, even though the CWD or arguments didn't change.
Switching to an MD5 hash should fix that.

4 years agoFix bot failure from 59733525d37cf9ad88b5021b33ecdbaf2e18911c
Teresa Johnson [Fri, 24 Jan 2020 00:33:35 +0000 (16:33 -0800)]
Fix bot failure from 59733525d37cf9ad88b5021b33ecdbaf2e18911c

Fix bot failure by loosening up the register matching on new test:
http://lab.llvm.org:8011/builders/clang-x86_64-debian-new-pass-manager-fast/builds/2423

4 years ago[clang-tidy] Add clang-tidy headers to clang distribution
Dmitry Polukhin [Thu, 23 Jan 2020 23:57:45 +0000 (15:57 -0800)]
[clang-tidy] Add clang-tidy headers to clang distribution

Summary:
Clang releases include static libraries for clang-tidy but corresponding
headers are missing in the tarball so these libraries are almost useless.
Clang-tidy libraries can be useful for build custom clang-tidy with
custom checks outside of llvm repo.

List of clang-tidy libraries included in clang 9.0.1 release:
    lib/libclangTidyMPIModule.a
    lib/libclangTidyPlugin.a
    lib/libclangTidyBoostModule.a
    lib/libclangTidyCERTModule.a
    lib/libclangTidyAndroidModule.a
    lib/libclangTidyPortabilityModule.a
    lib/libclangTidyPerformanceModule.a
    lib/libclangTidyOpenMPModule.a
    lib/libclangTidyBugproneModule.a
    lib/libclangTidyZirconModule.a
    lib/libclangTidyCppCoreGuidelinesModule.a
    lib/libclangTidyGoogleModule.a
    lib/libclangTidyUtils.a
    lib/libclangTidyHICPPModule.a
    lib/libclangTidyModernizeModule.a
    lib/libclangTidyLLVMModule.a
    lib/libclangTidyAbseilModule.a
    lib/libclangTidyReadabilityModule.a
    lib/libclangTidyFuchsiaModule.a
    lib/libclangTidyMiscModule.a
    lib/libclangTidy.a
    lib/libclangTidyObjCModule.a

Reviewers: smeenai, jdoerfert, alexfh, hokein, aaron.ballman

Subscribers: mgehre, mgorny, xazax.hun, cfe-commits

Tags: #clang-tools-extra, #clang

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

4 years ago[LoopStrengthReduce] Reuse utility method to clean dead instructions. [NFCI]
Alina Sbirlea [Thu, 23 Jan 2020 23:45:37 +0000 (15:45 -0800)]
[LoopStrengthReduce] Reuse utility method to clean dead instructions. [NFCI]

Create a utility wrapper for the RecursivelyDeleteTriviallyDeadInstructions utility
method, which sets to nullptr the instructions that are not trivially
dead. Use the new method in LoopStrengthReduce.
Alternative: add a bool to the same method; this option adds a marginal
amount of overhead to the other callers, and the method needs to be
updated to return a bool status when it removes/doesn't remove
instructions.

4 years ago[Concepts] Make constraint expressions unevaluated until satisfaction checking
Saar Raz [Fri, 24 Jan 2020 00:22:17 +0000 (02:22 +0200)]
[Concepts] Make constraint expressions unevaluated until satisfaction checking

As per P1980R0, constraint expressions are unevaluated operands, and their constituent atomic
constraints only become constant evaluated during satisfaction checking.

Change the evaluation context during parsing and instantiation of constraints to unevaluated.

4 years ago[Attributor][FIX][Alignment] Do not report a change if there was none
Johannes Doerfert [Sun, 12 Jan 2020 06:25:45 +0000 (00:25 -0600)]
[Attributor][FIX][Alignment] Do not report a change if there was none

If alignment was manifested but it is actually only as good as the
data-layout provided one we should not report it as a change.

For testing purposes we still manifest the information.

4 years ago[Attributor][NFC] Add an assertion
Johannes Doerfert [Sun, 12 Jan 2020 06:13:03 +0000 (00:13 -0600)]
[Attributor][NFC] Add an assertion

4 years ago[Attributor][NFC] Fix spelling
Johannes Doerfert [Sun, 12 Jan 2020 06:00:33 +0000 (00:00 -0600)]
[Attributor][NFC] Fix spelling