platform/upstream/llvm.git
4 years agoTableGen/GlobalISel: Allow output instructions with multiple defs
Matt Arsenault [Mon, 13 Jul 2020 12:59:38 +0000 (08:59 -0400)]
TableGen/GlobalISel: Allow output instructions with multiple defs

The DAG behavior allows matchching input patterns with a single result
to the first result of an output instruction that defines multiple
results. The remaining defs are implicitly dead.

This starts to fix using manual selection for AMDGPU add/sub (although
it's still needed, mostly because it's also still needed for
G_PTR_ADD).

4 years ago[llvm][CodeGen] Addressing modes for SVE ldN.
Francesco Petrogalli [Mon, 6 Jul 2020 17:46:59 +0000 (17:46 +0000)]
[llvm][CodeGen] Addressing modes for SVE ldN.

Reviewers: c-rhodes, efriedma, sdesmalen

Subscribers: huihuiz, tschuett, hiraditya, llvm-commits

Tags: #llvm

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

4 years ago[flang] Allow omission of comma in FORMAT(1PE5.2) in runtime
peter klausler [Wed, 22 Jul 2020 23:56:37 +0000 (16:56 -0700)]
[flang] Allow omission of comma in FORMAT(1PE5.2) in runtime

A comma is not required between a scale factor and a following
data edit descriptor (C1302).

Reviewed By: PeteSteinfeld

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

4 years ago[DFSan] Remove unused DataFlowSanitizer vars
Arthur Eubanks [Mon, 27 Jul 2020 21:58:42 +0000 (14:58 -0700)]
[DFSan] Remove unused DataFlowSanitizer vars

Reviewed By: morehouse

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

4 years ago[lldb] NFC: Use early exit in ArchSpec::IsEqualTo
Fred Riss [Mon, 27 Jul 2020 20:51:07 +0000 (13:51 -0700)]
[lldb] NFC: Use early exit in ArchSpec::IsEqualTo

4 years agoFix the move constructor of MMI to move MachineFunctions map
Sridhar Gopinath [Fri, 24 Jul 2020 17:44:48 +0000 (10:44 -0700)]
Fix the move constructor of MMI to move MachineFunctions map

The move constructor of MachineModuleInfo currently does not copy the
MachineFunctions map. This commit fixes this issue.

Patch by Sridhar Gopinath. Thanks!

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

4 years agoRevert "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support"
Jinsong Ji [Mon, 27 Jul 2020 20:48:44 +0000 (20:48 +0000)]
Revert "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support"

This reverts commit adffce71538e219aab4eeb024819baa7687262ff.

This is breaking test-suite, revert while investigation.

4 years ago[NFC] Move BitcodeCommon.h from Bitstream to Bitcode
Guillaume Chatelet [Mon, 27 Jul 2020 20:49:01 +0000 (20:49 +0000)]
[NFC] Move BitcodeCommon.h from Bitstream to Bitcode

4 years agoReland "[compiler-rt] [test] Allow expanding lit substitutions recursively"
Sergej Jaskiewicz [Tue, 14 Jul 2020 08:37:27 +0000 (11:37 +0300)]
Reland "[compiler-rt] [test] Allow expanding lit substitutions recursively"

The commit 8372d505082aceb38417e0b561cd32f2e227597b has been reverted
(eafeb8af34946306a7382fa3801cf6e39a1c7226) because it broke asan
tests on green dragon buildbots.

The underlying issue has been fixed in 4dd5c2bee366514cbc3fc4e6da46462bc11a0a3d.

4 years agoRename t2-reduce-size -> thumb2-reduce-size
Arthur Eubanks [Mon, 27 Jul 2020 20:42:13 +0000 (13:42 -0700)]
Rename t2-reduce-size -> thumb2-reduce-size

For readability and consistency with other thumb2 passes like
"thumb2-it".

Reviewed By: arsenm

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

4 years ago[OpenMPOpt] Most SCC's are uninteresting, don't waste time on them (up to 16x faster)
Roman Lebedev [Mon, 27 Jul 2020 20:35:51 +0000 (23:35 +0300)]
[OpenMPOpt] Most SCC's are uninteresting, don't waste time on them (up to 16x faster)

Summary:
This seems obvious in hindsight, but the result is surprising.
I've measured compile-time of `-openmpopt` pass standalone
on RawSpeed unity build, and while there is some OpenMP stuff,
most is not OpenMP. But nonetheless the pass does a lot of costly
preparations before ever trying to look for OpenMP stuff in SCC.

Numbers (n=25): 0.094624s  ->  0.005976s, an -93.68% improvement, or ~16x

Reviewers: jdoerfert

Reviewed By: jdoerfert

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

Tags: #llvm

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

4 years agoUnify the return value of GetByteSize to an llvm::Optional<uint64_t> (NFC-ish)
Adrian Prantl [Sat, 25 Jul 2020 15:27:21 +0000 (08:27 -0700)]
Unify the return value of GetByteSize to an llvm::Optional<uint64_t> (NFC-ish)

This cleanup patch unifies all methods called GetByteSize() in the
ValueObject hierarchy to return an optional, like the methods in
CompilerType do. This means fewer magic 0 values, which could fix bugs
down the road in languages where types can have a size of zero, such
as Swift and C (but not C++).

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

This re-lands the patch with bogus :m_byte_size(0) initalizations removed.

4 years ago[libunwind] Remove old keymgr related logic
Louis Dionne [Fri, 24 Jul 2020 14:13:53 +0000 (10:13 -0400)]
[libunwind] Remove old keymgr related logic

keymgr used to be used on MacOSX <= 10.6, however we don't build libunwind
from scratch for such old systems anymore. Hence, this code isn't useful
anymore.

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

4 years ago[OpenMP] Add more pass-through functions in DeviceTy
Ye Luo [Mon, 27 Jul 2020 20:08:19 +0000 (16:08 -0400)]
[OpenMP] Add more pass-through functions in DeviceTy

Summary:
1. Add DeviceTy::data_alloc, DeviceTy::data_delete, DeviceTy::data_alloc, DeviceTy::synchronize pass-through functions. Avoid directly accessing Device.RTL
2. Fix the type of the first argument of synchronize_ty in rth.h, device id is int32_t which is consistent with other functions.

Reviewers: tianshilei1992, jdoerfert

Reviewed By: tianshilei1992

Subscribers: yaxunl, guansong, sstefan1, openmp-commits

Tags: #openmp

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

4 years ago[lldb/AppleSimulator] Always provide a -simulator environment
Fred Riss [Fri, 24 Jul 2020 16:24:41 +0000 (09:24 -0700)]
[lldb/AppleSimulator] Always provide a -simulator environment

Summary:
This commit is somewhat NFC-ish today as the environment of triples
is not considered when comparing s if one of them is
not set (I plan to change that).

We have made simulator triples unambiguous these days, but the
simulator platforms still advertise triples without the
environment. This wasn't an issue when the sims ran only on
a very different architecure than the real device, but this
has changed with Apple Silicon.

This patch simplifies the way GetSupportedArchitectureAtIndex
is implemented for the sim platforms and adds the environment.
It also trivially adds support for Apple Silicon to those
platforms.

Reviewers: aprantl

Subscribers: lldb-commits

4 years ago[llvm][examples][SimplifyCFG] Fix pass's IR changed reporting
Jon Roelofs [Mon, 27 Jul 2020 19:37:35 +0000 (13:37 -0600)]
[llvm][examples][SimplifyCFG] Fix pass's IR changed reporting

... under the EXPENSIVE_CHECKS build, this fails the assert in the LegacyPM
that verifies whether a pass really did leave the IR alone when it reports no
changes back from its return status.

4 years ago[lldb] Remove CMAKE_VERSION checks now that the minimum version is 3.13.4
Jonas Devlieghere [Mon, 27 Jul 2020 19:30:09 +0000 (12:30 -0700)]
[lldb] Remove CMAKE_VERSION checks now that the minimum version is 3.13.4

4 years ago[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support
Jinsong Ji [Mon, 27 Jul 2020 18:01:40 +0000 (18:01 +0000)]
[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support

Per RFC http://lists.llvm.org/pipermail/llvm-dev/2020-April/141295.html
no one is making use of QPX/A2Q/BGQ/BGP CNK anymore.

This patch remove the support of QPX/A2Q in llvm, BGQ/BGP in clang,
CNK support in openmp/polly.

Reviewed By: hfinkel

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

4 years ago[mlir][AffineToStandard] Make LowerAffine pass Op-agnostic.
MaheshRavishankar [Mon, 27 Jul 2020 19:13:08 +0000 (12:13 -0700)]
[mlir][AffineToStandard] Make LowerAffine pass Op-agnostic.

The LowerAffine psas was a FunctionPass only for legacy
reasons. Making this Op-agnostic allows it to be used from command
line when affine expressions are within operations other than
`std.func`.

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

4 years ago[AIX] Implement AIX special alignment rule about double/long double
Xiangling Liao [Tue, 2 Jun 2020 15:51:58 +0000 (11:51 -0400)]
[AIX] Implement AIX special alignment rule about double/long double

Implement AIX default `power` alignment rule by adding `PreferredAlignment` and
`PreferredNVAlignment` in ASTRecordLayout class.

The patchh aims at returning correct value for `__alignof(x)` and `alignof(x)`
under `power` alignment rules.

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

4 years ago[Attributor][NFC] Add tests to noalias.ll
Shinji Okumura [Mon, 27 Jul 2020 18:50:43 +0000 (03:50 +0900)]
[Attributor][NFC] Add tests to noalias.ll

Summary: Add tests to `noalias.ll` to make changes in D84665 clear

Reviewers: jdoerfert, sstefan1, uenoku, homerdin, baziotis

Subscribers: uenoku, kuter, bbn, llvm-commits

Tags: #llvm

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

4 years ago[clangd] Add more logs and attach tracers to remote index server routines
Kirill Bobyrev [Mon, 27 Jul 2020 18:45:05 +0000 (20:45 +0200)]
[clangd] Add more logs and attach tracers to remote index server routines

Reviewers: kadircet

Reviewed By: kadircet

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

Tags: #clang

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

4 years agoReplace fuzzer::FuzzerDriver's INTERFACE marking with new LLVMRunFuzzerDriver.
Matt Morehouse [Mon, 27 Jul 2020 18:15:35 +0000 (18:15 +0000)]
Replace fuzzer::FuzzerDriver's INTERFACE marking with new LLVMRunFuzzerDriver.

This adds a new extern "C" function that serves the same purpose. This removes the need for external users to depend on internal headers in order to use this feature. It also standardizes the interface in a way that other fuzzing engines will be able to match.

Patch By: IanPudney

Reviewed By: kcc

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

4 years agoRecommit "[libFuzzer] Disable implicit builtin knowledge about memcmp-like functions...
Dokyung Song [Thu, 16 Jul 2020 21:24:06 +0000 (21:24 +0000)]
Recommit "[libFuzzer] Disable implicit builtin knowledge about memcmp-like functions when -fsanitize=fuzzer-no-link is given."

Summary: This patch disables implicit builtin knowledge about memcmp-like functions when compiling the program for fuzzing, i.e., when -fsanitize=fuzzer(-no-link) is given. This allows libFuzzer to always intercept memcmp-like functions as it effectively disables optimizing calls to such functions into different forms. This is done by adding a set of flags (-fno-builtin-memcmp and others) in the clang driver. Individual -fno-builtin-* flags previously used in several libFuzzer tests are now removed, as it is now done automatically in the clang driver.

The patch was once reverted in 8ef9e2bf355d05bc81d8b0fe1e5333eec59a0a91, as this patch was dependent on a reverted commit f78d9fceea736d431e9e3cbca291e3909e3aa46d. This reverted commit was recommitted in 831ae45e3dc609e43ba561af07670a8fe47461ef, so relanding this dependent patch too.

Reviewers: morehouse, hctim

Subscribers: cfe-commits, #sanitizers

Tags: #clang, #sanitizers

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

4 years ago[mlir] [VectorOps] [integration_test] Sparse matrix times vector (DOT version)
aartbik [Mon, 27 Jul 2020 18:22:26 +0000 (11:22 -0700)]
[mlir] [VectorOps] [integration_test] Sparse matrix times vector (DOT version)

Integration test that illustrates the gather operation with a
real-world operation expressed in mostly the Vector dialect.
Uses jagged diagonal storage.

Reviewed By: bondhugula

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

4 years agoPrefix some AArch64/ARM passes with "aarch64-"/"arm-"
Arthur Eubanks [Mon, 27 Jul 2020 17:49:16 +0000 (10:49 -0700)]
Prefix some AArch64/ARM passes with "aarch64-"/"arm-"

 For consistency with other target specific passes.

Reviewed By: arsenm

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

4 years ago[GWP-ASan] Crash handler API returns sizeof(collected trace)
Mitch Phillips [Mon, 27 Jul 2020 17:51:53 +0000 (10:51 -0700)]
[GWP-ASan] Crash handler API returns sizeof(collected trace)

Summary:
Fix up a slight bug with the crash handler API, where we say that we
return the size of the collected trace (instead of the size of the trace
that's returned) when the return buffer is too small, and the result is
truncated.

Also, as a result, patch up a small uninitialized memory bug.

Reviewers: morehouse, eugenis

Reviewed By: eugenis

Subscribers: #sanitizers

Tags: #sanitizers

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

4 years agoUse llvm::is_contained where appropriate (NFC)
Kazu Hirata [Fri, 24 Jul 2020 06:13:44 +0000 (23:13 -0700)]
Use llvm::is_contained where appropriate (NFC)

Summary:
This patch replaces std::find with llvm::is_contained where
appropriate.

Reviewers: efriedma, nhaehnle

Reviewed By: nhaehnle

Subscribers: arsenm, jvesely, nhaehnle, hiraditya, rogfer01, kerbowa, llvm-commits, vkmr

Tags: #llvm

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

4 years ago[StackProtector] Speed up RequiresStackProtector
Nadav Rotem [Mon, 27 Jul 2020 17:06:36 +0000 (10:06 -0700)]
[StackProtector] Speed up RequiresStackProtector

Speed up the method RequiresStackProtector by checking the intrinsic
value of the call. The original code calls getName() that returns an
allocating std::string on each check. This change removes about 96072
std::string instances when compiling sqlite3.c; The function was
discovered with a Facebook-internal performance tool.

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

4 years ago[X86] Add back comment inadvertently lost in 1a1448e6568d9b11f198e510fa9c4cb6b1f4216a.
Craig Topper [Mon, 27 Jul 2020 16:40:26 +0000 (09:40 -0700)]
[X86] Add back comment inadvertently lost in 1a1448e6568d9b11f198e510fa9c4cb6b1f4216a.

4 years ago[flang] Temp Driver - pass the flag to change the default integer kind through to...
AlexisPerry [Mon, 27 Jul 2020 16:57:31 +0000 (09:57 -0700)]
[flang] Temp Driver - pass the flag to change the default integer kind through to F18_FC

fixes BUG 46307

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

4 years ago[NFC][AArch64] Replace some template methods/invocations...
Francesco Petrogalli [Mon, 27 Jul 2020 16:24:18 +0000 (16:24 +0000)]
[NFC][AArch64] Replace some template methods/invocations...

...with the non-template version, as the template version might
increase the size of the compiler build.

Methods affected:

1.`findAddrModeSVELoadStore`
2. `SelectPredicatedStore`

Also, remove the `const` qualifier from the `unsigned` parameters of
the methods to conform with other similar methods in the class.

4 years ago[mlir][Linalg] Enable fusion of std.constant (producer) with
MaheshRavishankar [Mon, 27 Jul 2020 16:48:36 +0000 (09:48 -0700)]
[mlir][Linalg] Enable fusion of std.constant (producer) with
linalg.indexed_generic (consumer) with tensor arguments.

The implementation of fusing std.constant producer with a
linalg.indexed_generic consumer was already in place. It is exposed
with this change. Also cleaning up some of the patterns that implement
the fusion to not be templated, thereby avoiding lot of conditional
checks for calling the right instantiation.

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

4 years ago[X86][SSE] Relax 128-bit restriction on extract_subvector(ext_vector_inreg(X),0)...
Simon Pilgrim [Mon, 27 Jul 2020 16:32:53 +0000 (17:32 +0100)]
[X86][SSE] Relax 128-bit restriction on extract_subvector(ext_vector_inreg(X),0) -> ext_vector_inreg(extract_subvector(X,0)) fold

We only need to ensure that the source is larger than the subvector result type

4 years ago[gn build] Port ee7caa75939
LLVM GN Syncbot [Mon, 27 Jul 2020 16:45:49 +0000 (16:45 +0000)]
[gn build] Port ee7caa75939

4 years ago[gn build] Make syncing to single-line source files work after 1afd889d0b43
Nico Weber [Mon, 27 Jul 2020 16:44:47 +0000 (12:44 -0400)]
[gn build] Make syncing to single-line source files work after 1afd889d0b43

4 years agoReland [llvm-exegesis] Add benchmark latency option on X86 that uses LBR for more...
Vy Nguyen [Mon, 27 Jul 2020 16:38:05 +0000 (12:38 -0400)]
Reland [llvm-exegesis] Add benchmark latency option on X86 that uses LBR for more precise measurements.

        Starting with Skylake, the LBR contains the precise number of cycles between the two
        consecutive branches.
        Making use of this will hopefully make the measurements more precise than the
        existing methods of using RDTSC.

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

New change: check for existence of field `cycles` in perf_branch_entry before enabling this mode.
This should prevent compilation errors when building for older kernel whose headers don't support it.

4 years ago[gn build] (manually) merge 48c948abeb7
Nico Weber [Mon, 27 Jul 2020 16:30:09 +0000 (12:30 -0400)]
[gn build] (manually) merge 48c948abeb7

4 years ago[TableGen][CGS] Print better errors on overlapping InstRW
Jon Roelofs [Wed, 22 Jul 2020 22:13:20 +0000 (16:13 -0600)]
[TableGen][CGS] Print better errors on overlapping InstRW

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

4 years agoUse INTERFACE_COMPILE_OPTIONS to disable -Wsuggest-override for any target that links...
Logan Smith [Mon, 27 Jul 2020 15:37:01 +0000 (08:37 -0700)]
Use INTERFACE_COMPILE_OPTIONS to disable -Wsuggest-override for any target that links to gtest

This cleans up several CMakeLists.txt's where -Wno-suggest-override was manually specified. These test targets now inherit this flag from the gtest target.

Some unittests CMakeLists.txt's, in particular Flang and LLDB, are not touched by this patch. Flang manually adds the gtest sources itself in some configurations, rather than linking to LLVM's gtest target, so this fix would be insufficient to cover those cases. Similarly, LLDB has subdirectories that manually add the gtest headers to their include path without linking to the gtest target, so those subdirectories still need -Wno-suggest-override to be manually specified to compile without warnings.

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

4 years ago[llvm-exegesis] Check perf_branch_entry for field cycles
Vy Nguyen [Fri, 17 Jul 2020 23:08:48 +0000 (19:08 -0400)]
[llvm-exegesis] Check perf_branch_entry for field cycles

Summary: Follow up to breakages reported in D77422

Reviewers: ondrasej, gchatelet

Tags: #llvm

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

4 years ago[XCOFF][AIX] Handle llvm.used and llvm.compiler.used global array
jasonliu [Mon, 27 Jul 2020 14:04:59 +0000 (14:04 +0000)]
[XCOFF][AIX] Handle llvm.used and llvm.compiler.used global array

For now, just return and do nothing when we see llvm.used and
llvm.compiler.used global array.
Hopefully, we could come up with a good solution later to prevent
linker from eliminating symbols in llvm.used array.

Reviewed By: DiggerLin, daltenty

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

4 years ago[AArch64] fjcvtzs,rmif,cfinv,setf* all clobber nzcv
Jon Roelofs [Tue, 14 Jul 2020 21:45:05 +0000 (15:45 -0600)]
[AArch64] fjcvtzs,rmif,cfinv,setf* all clobber nzcv

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

4 years ago[lit] Don't expand escapes until all substitutions have been applied
Sergej Jaskiewicz [Wed, 15 Jul 2020 15:55:37 +0000 (18:55 +0300)]
[lit] Don't expand escapes until all substitutions have been applied

Otherwise, if a Lit script contains escaped substitutions (like %%p in this test https://github.com/llvm/llvm-project/blob/master/compiler-rt/test/asan/TestCases/Darwin/asan-symbolize-partial-report-with-module-map.cpp#L10), they are unescaped during recursive application of substitutions, and the results are unexpected.

We solve it using the fact that double percent signs are first replaced with #_MARKER_#, and only after all the other substitutions have been applied, #_MARKER_# is replaced with a single percent sign. The only change is that instead of replacing #_MARKER_# at each recursion step, we replace it once after the last recursion step.

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

4 years agoRevert "Re-apply:" Emit DW_OP_implicit_value for Floating point constants""
Amy Kwan [Mon, 27 Jul 2020 14:36:38 +0000 (09:36 -0500)]
Revert "Re-apply:" Emit DW_OP_implicit_value for Floating point constants""

This patch reverts commit `59a76d957a26` as it has caused failure on the
big endian PowerPC buildbots (as well as the SystemZ buildbots).

4 years ago[LLD] [COFF] Fix mingw comdat associativity for leader symbols with a different name
Martin Storsjö [Sat, 25 Jul 2020 09:25:19 +0000 (12:25 +0300)]
[LLD] [COFF] Fix mingw comdat associativity for leader symbols with a different name

For a weak symbol func in a comdat, the actual leader symbol ends up
named like .weak.func.default*. Likewise, for stdcall on i386, the symbol
may be named _func@4, while the section suffix only is "func", which the
previous implementation didn't handle.

This fixes unwinding through weak functions when using
-ffunction-sections in mingw environments.

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

4 years ago[Attributor] Fix qualifier warning of the unittest
Luofan Chen [Mon, 27 Jul 2020 14:28:39 +0000 (22:28 +0800)]
[Attributor] Fix qualifier warning of the unittest

Reviewed By: jdoerfert

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

4 years ago[OpenCL] Fixed missing address space for templated copy constructor.
Anastasia Stulova [Mon, 27 Jul 2020 12:27:21 +0000 (13:27 +0100)]
[OpenCL] Fixed missing address space for templated copy constructor.

Added missing address space for the parameter of copy ctor created
for templated constructor with an R-value reference.

Patch by Ole Strohm (olestrohm)!

Tags: #clang

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

4 years ago[NFC] Replace ".size() < 1" with ".empty()"
Guillaume Chatelet [Mon, 27 Jul 2020 13:54:46 +0000 (13:54 +0000)]
[NFC] Replace ".size() < 1" with ".empty()"

4 years ago[X86][AVX] Fold extract_subvector(truncate(x),0) -> truncate(extract_subvector(x),0)
Simon Pilgrim [Mon, 27 Jul 2020 13:32:32 +0000 (14:32 +0100)]
[X86][AVX] Fold extract_subvector(truncate(x),0) -> truncate(extract_subvector(x),0)

This is currently only supported for VLX targets where the op should be legal.

4 years ago[X86] combineExtractSubvector - pull out repeated getSizeInBits() calls. NFCI.
Simon Pilgrim [Mon, 27 Jul 2020 12:14:13 +0000 (13:14 +0100)]
[X86] combineExtractSubvector - pull out repeated getSizeInBits() calls. NFCI.

4 years agoIRPrintingPasses.h - simplify unnecessary header with forward declarations. NFC.
Simon Pilgrim [Sat, 25 Jul 2020 14:52:05 +0000 (15:52 +0100)]
IRPrintingPasses.h - simplify unnecessary header with forward declarations. NFC.

Remove duplicate PassManager.h include in IRPrintingPasses.cpp

4 years ago[MLIR] NFC: Rename mcuMemHostRegister* to mgpuMemHostRegister* to make it consistent...
Christian Sigg [Sat, 25 Jul 2020 12:56:35 +0000 (14:56 +0200)]
[MLIR] NFC: Rename mcuMemHostRegister* to mgpuMemHostRegister* to make it consistent with the other cuda-runner functions and ROCm.

Summary: Rename mcuMemHostRegister* to mgpuMemHostRegister*.

Reviewers: herhut

Reviewed By: herhut

Subscribers: yaxunl, mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, stephenneuendorffer, Joonsoo, grosul1, Kayjukh, jurahul, msifontes

Tags: #mlir

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

4 years ago[CallGraph] Preserve call records vector when replacing call edge
Sergey Dmitriev [Mon, 27 Jul 2020 13:02:06 +0000 (06:02 -0700)]
[CallGraph] Preserve call records vector when replacing call edge

Summary:
Try not to resize vector of call records in a call graph node when
replacing call edge. That would prevent invalidation of iterators
stored in the CG SCC pass manager's scc_iterator.

Reviewers: jdoerfert

Reviewed By: jdoerfert

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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

4 years ago[GWP-ASan] Fix uninitialized memory use in sigaction.
Mitch Phillips [Mon, 27 Jul 2020 12:46:43 +0000 (05:46 -0700)]
[GWP-ASan] Fix uninitialized memory use in sigaction.

Fix up a small bug where we used a partially-uninitialized sigaction
struct in the optional signal handler. Shouldn't be a user-visible
change.

4 years agoAArch64: avoid UB shift of negative value
Tim Northover [Mon, 27 Jul 2020 12:29:49 +0000 (13:29 +0100)]
AArch64: avoid UB shift of negative value

Left shifting a negative value is undefined behaviour, so this just moves the
negation afterwards to avoid it.

4 years agollvm_canonicalize_cmake_booleans(CLANGD_ENABLE_REMOTE)
Hans Wennborg [Mon, 27 Jul 2020 12:41:29 +0000 (14:41 +0200)]
llvm_canonicalize_cmake_booleans(CLANGD_ENABLE_REMOTE)

Otherwise it got defined as e.g. OFF in Features.inc.

4 years ago[JumpThreading] ProcessBranchOnXOR(): bailout if any pred ends in indirect branch...
Roman Lebedev [Mon, 27 Jul 2020 12:07:51 +0000 (15:07 +0300)]
[JumpThreading] ProcessBranchOnXOR(): bailout if any pred ends in indirect branch (PR46857)

SplitBlockPredecessors() can not split blocks that have such terminators,
and in two other places we already ensure that we don't end up calling
SplitBlockPredecessors() on such blocks. Do so in one more place.

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

4 years ago[Reduce] Argument reduction: shoe-horn new function into remaining uses of old function
Roman Lebedev [Mon, 27 Jul 2020 12:36:07 +0000 (15:36 +0300)]
[Reduce] Argument reduction: shoe-horn new function into remaining uses of old function

Much like with function reduction, there may be remaining unhandled uses
of function, in particular in blockaddress. And in constants we can't
RAUW it with undef, because undef is not a function.
Instead, let's try to pretent that in the remaining cases, the new
signature didn't change, by bitcasting it.

A new (previously crashing) test case added.

4 years ago[Reduce] Function reduction: replace all users of function with undef
Roman Lebedev [Mon, 27 Jul 2020 10:30:39 +0000 (13:30 +0300)]
[Reduce] Function reduction: replace all users of function with undef

There may be other users of a function other than CallInsts,
but what's more important, we can't actually replace function pointer
with undef, because for constants, that would not preserve the type
and RAUW would assert.

In particular, that affects blockaddress, however it proves to be
prohibitively complex to come up with a good test involving blockaddress:
we'd need to both ensure that the function body survives until
this pass, and is not interesting in this pass.

4 years ago[llvm][NFC] Silence unused variable warning by using isa over dyn_cast
Nathan James [Mon, 27 Jul 2020 12:37:21 +0000 (13:37 +0100)]
[llvm][NFC] Silence unused variable warning by using isa over dyn_cast

4 years ago[lldb][NFC] Use a StringRef for AddRegexCommand::AddRegexCommand parameters
Raphael Isemann [Mon, 27 Jul 2020 12:28:30 +0000 (14:28 +0200)]
[lldb][NFC] Use a StringRef for AddRegexCommand::AddRegexCommand parameters

Summary: This way we can get rid of this 1024 char buffer workaround.

Reviewers: #lldb, labath

Reviewed By: labath

Subscribers: JDevlieghere

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

4 years ago[clangd] Collect references for externally visible main-file symbols
Aleksandr Platonov [Mon, 27 Jul 2020 11:39:31 +0000 (14:39 +0300)]
[clangd] Collect references for externally visible main-file symbols

Summary:
Without this patch clangd does not collect references for main-file symbols if there is no public declaration in preamble.
Example:
`test1.c`
```
void f1() {}
```

`test2.c`
```
extern void f1();
void f2() {
  f^1();
}
```
`Find all references` does not show definition of f1() in the result, but GTD works OK.

Reviewers: sammccall, kadircet

Reviewed By: kadircet

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

Tags: #clang

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

4 years ago[lldb] Modernize away some snprintf calls
Raphael Isemann [Mon, 27 Jul 2020 12:05:23 +0000 (14:05 +0200)]
[lldb] Modernize away some snprintf calls

Reviewers: #lldb, JDevlieghere

Reviewed By: #lldb, JDevlieghere

Subscribers: JDevlieghere

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

4 years ago[InstSimplify] add tests for min/max intrinsics; NFC
Sanjay Patel [Sun, 26 Jul 2020 19:19:09 +0000 (15:19 -0400)]
[InstSimplify] add tests for min/max intrinsics; NFC

4 years ago[clangd] Add marshalling code for all request types
Kirill Bobyrev [Mon, 27 Jul 2020 12:15:59 +0000 (14:15 +0200)]
[clangd] Add marshalling code for all request types

Summary:
Only FuzzyFindRequest is implemented via Marshaller even though other requests
also follow a similar pattern. Unify them under the marshalling umbrella and
make the server requests even more uniform to complement D84499.

Reviewers: kadircet

Reviewed By: kadircet

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

Tags: #clang

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

4 years agoFix another #ifdef CLANGD_ENABLE_REMOTE
Hans Wennborg [Mon, 27 Jul 2020 12:11:29 +0000 (14:11 +0200)]
Fix another #ifdef CLANGD_ENABLE_REMOTE

4 years ago[gn] Set CLANGD_ENABLE_REMOTE=0
Hans Wennborg [Mon, 27 Jul 2020 12:03:55 +0000 (14:03 +0200)]
[gn] Set CLANGD_ENABLE_REMOTE=0

To fix the build after 37ac559fccd4.

4 years agoClangdMain.cpp: this #ifdef should be an #if
Hans Wennborg [Mon, 27 Jul 2020 12:03:28 +0000 (14:03 +0200)]
ClangdMain.cpp: this #ifdef should be an #if

CLANGD_ENABLE_REMOTE is always defined; to 0 or 1.

4 years agoAArch64: diagnose out of range relocation addends on MachO.
Tim Northover [Wed, 22 Jul 2020 13:53:26 +0000 (14:53 +0100)]
AArch64: diagnose out of range relocation addends on MachO.

MachO only has 24-bit addends for most relocations, small enough that it can
overflow in semi-reasonable functions and cause insidious bugs if compiled
without assertions enabled. Switch it to an actual error instead.

The condition isn't quite identical because ld64 treats the addend as a signed
number.

4 years ago[clang-tidy] Refactor IncludeInserter
Nathan James [Mon, 27 Jul 2020 11:48:53 +0000 (12:48 +0100)]
[clang-tidy] Refactor IncludeInserter

Simplified how `IncludeInserter` is used in Checks by abstracting away the SourceManager and PPCallbacks inside the method `registerPreprocessor`.
Changed checks that use `IncludeInserter` to no longer use a `std::unique_ptr`, instead the IncludeInserter is just a member of the class thats initialized with an `IncludeStyle`.
Saving an unnecessary allocation.

This results in the removal of the field `IncludeSorter::IncludeStyle` from the checks, as its wrapped in the `IncludeInserter`.
No longer need to create an instance of the `IncludeInserter` in the registerPPCallbacks, now that method only needs to contain:
```
Inserter.registerPreprocessor(PP);
```
Also added a helper method to `IncludeInserter` called `createMainFileInclusionInsertion`, purely sugar but does better express intentions.

Reviewed By: aaron.ballman

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

4 years agoSpeculative build fix for clangd/Features.inc.in
Hans Wennborg [Mon, 27 Jul 2020 11:39:54 +0000 (13:39 +0200)]
Speculative build fix for clangd/Features.inc.in

4 years agoSpeculative build fix for scudo/standalone/tests/combined_test.cpp
Hans Wennborg [Mon, 27 Jul 2020 11:35:35 +0000 (13:35 +0200)]
Speculative build fix for scudo/standalone/tests/combined_test.cpp

4 years ago[mlir] Support for mutable types
Alex Zinenko [Wed, 22 Jul 2020 11:03:24 +0000 (13:03 +0200)]
[mlir] Support for mutable types

Introduce support for mutable storage in the StorageUniquer infrastructure.
This makes MLIR have key-value storage instead of just uniqued key storage. A
storage instance now contains a unique immutable key and a mutable value, both
stored in the arena allocator that belongs to the context. This is a
preconditio for supporting recursive types that require delayed initialization,
in particular LLVM structure types.  The functionality is exercised in the test
pass with trivial self-recursive type. So far, recursive types can only be
printed in parsed in a closed type system. Removing this restriction is left
for future work.

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

4 years ago[lldb/DWARF] Don't treat class declarations with children as definitions
Pavel Labath [Tue, 7 Jul 2020 13:28:24 +0000 (15:28 +0200)]
[lldb/DWARF] Don't treat class declarations with children as definitions

Summary:
This effectively reverts r188124, which added code to handle
(DW_AT_)declarations of structures with some kinds of children as
definitions. The commit message claims this is a workaround for some
kind of debug info produced by gcc. However, it does not go into
specifics, so it's hard to reproduce or verify that this is indeed still a
problem.

Having this code is definitely a problem though, because it mistakenly
declares incomplete dwarf declarations to be complete. Both clang (with
-flimit-debug-info) and gcc (by default) generate DW_AT_declarations of
structs with children. This happens when full debug info for a class is
not emitted in a given compile unit (e.g. because of vtable homing), but
the class has inline methods which are used in the given compile unit.
In that case, the compilers emit a DW_AT_declaration of a class, but
add a DW_TAG_subprogram child to it to describe the inlined instance of
the method.

Even though the class tag has some children, it definitely does not
contain enough information to construct a full class definition (most
notably, it lacks any members). Keeping the class as incomplete allows
us to search for a real definition in other modules, helping the
-flimit-debug-info flow. And in case the definition is not found we can
display a error message saying that, instead of just showing an empty
struct.

Reviewers: clayborg, aprantl, JDevlieghere, shafik

Subscribers: lldb-commits

Tags: #lldb

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

4 years ago[JumpThreading] Add a test case that has a phi with undef; NFC
Juneyoung Lee [Mon, 27 Jul 2020 10:08:45 +0000 (19:08 +0900)]
[JumpThreading] Add a test case that has a phi with undef; NFC

4 years ago[JumpThreading] Add a test that threads jumps with frozen branch conditions
Juneyoung Lee [Mon, 27 Jul 2020 10:04:50 +0000 (19:04 +0900)]
[JumpThreading] Add a test that threads jumps with frozen branch conditions

4 years ago[lldb] Fix e89414f406 for msvc
Pavel Labath [Mon, 27 Jul 2020 09:46:51 +0000 (11:46 +0200)]
[lldb] Fix e89414f406 for msvc

MSVC finds the APInt construction ambiguous. Use a case to help it
choose the right constructor.

4 years ago[clangd] Add option to use remote index as static index
Kirill Bobyrev [Mon, 27 Jul 2020 09:21:55 +0000 (11:21 +0200)]
[clangd] Add option to use remote index as static index

Reviewers: hokein

Reviewed By: hokein

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

Tags: #clang

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

4 years ago[Docs] remove unused arguments in documentation examples on vectorization passes
Afanasyev Ivan [Mon, 27 Jul 2020 09:19:55 +0000 (10:19 +0100)]
[Docs] remove unused arguments in documentation examples on vectorization passes

Reviewers: nadav, tyler.nowicki

Reviewed By: nadav

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

4 years ago[lld][ELF] Add LOG2CEIL builtin ldscript function
Isaac Richter [Mon, 27 Jul 2020 08:49:24 +0000 (11:49 +0300)]
[lld][ELF] Add LOG2CEIL builtin ldscript function

This patch adds support for the LOG2CEIL builtin function in linker scripts: https://sourceware.org/binutils/docs/ld/Builtin-Functions.html#index-LOG2CEIL_0028exp_0029

As documented for LD, and to keep compatibility, LOG2CEIL(0) returns 0 (not -inf).

The test vectors are somewhat arbitrary. We check minimum values (0-4); middle values (2^32, and 2^32+1); and the maximum value (2^64-1).

The checks for LOG2CEIL explicitly use full 64-bit values (16 hex digits). This is needed to properly verify that -inf and other interesting results aren't returned. (For some reason, all other tests in operators.test use only 14 digits.)

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

4 years ago[libcxx][lit] Fix running testsuite with python2.7 after 9020d28688492c437abb648b6ab6...
Alex Richardson [Mon, 27 Jul 2020 09:15:17 +0000 (10:15 +0100)]
[libcxx][lit] Fix running testsuite with python2.7 after 9020d28688492c437abb648b6ab69baeba523219

Python 2.7 fails with TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
if you pass None as the prefix argument to NamedTemporaryFile.

Reviewed By: ldionne, bjope, #libc

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

4 years ago[clangd] Switch from EXPECT_TRUE to ASSERT_TRUE in remote marshalling tests
Kirill Bobyrev [Mon, 27 Jul 2020 08:43:38 +0000 (10:43 +0200)]
[clangd] Switch from EXPECT_TRUE to ASSERT_TRUE in remote marshalling tests

Summary:
When dereferencing Optional's it makes sense to use ASSERT_TRUE for better
test failures readability. Switch from EXPECT_TRUE to ASSERT_TRUE where
it is appropriate.

Reviewers: kadircet

Reviewed By: kadircet

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

Tags: #clang

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

Signed-off-by: Kirill Bobyrev <kbobyrev@google.com>
4 years ago[Alignment][NFC] Update Bitcodewriter to use Align
Guillaume Chatelet [Mon, 27 Jul 2020 08:16:28 +0000 (08:16 +0000)]
[Alignment][NFC] Update Bitcodewriter to use Align

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

4 years ago[InstCombine] Fold freeze into phi if one operand is not undef
Juneyoung Lee [Mon, 27 Jul 2020 08:07:27 +0000 (17:07 +0900)]
[InstCombine] Fold freeze into phi if one operand is not undef

 This patch adds folding freeze into phi if it has only one operand to target.

Reviewed By: nikic

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

4 years ago[lldb/Utility] Clean up Scalar constructors
Pavel Labath [Mon, 20 Jul 2020 14:42:01 +0000 (16:42 +0200)]
[lldb/Utility] Clean up Scalar constructors

- move initialization to initializer lists
- make desctructor non-virtual (nothing else is)
- fix long double constructor so that it actually works

4 years ago[lldb/Utility] Fix a bug in RangeMap::CombineConsecutiveRanges
Pavel Labath [Fri, 24 Jul 2020 12:49:17 +0000 (14:49 +0200)]
[lldb/Utility] Fix a bug in RangeMap::CombineConsecutiveRanges

The function didn't combine a large entry which overlapped several other
entries, if those other entries were not overlapping among each other.

E.g., (0,20),(5,6),(10,11) produced (0,20),(10,11)

Now it just produced (0,20).

4 years ago[MLIR][LLVMDialect] Added volatile and nontemporal attributes to load/store
George Mitenkov [Mon, 27 Jul 2020 07:19:48 +0000 (10:19 +0300)]
[MLIR][LLVMDialect] Added volatile and nontemporal attributes to load/store

This patch introduces 2 new optional attributes to `llvm.load`
and `llvm.store` ops: `volatile` and `nontemporal`. These attributes
are translated into proper LLVM as a `volatile` marker and a metadata node
respectively. They are also helpful with SPIR-V to LLVM dialect conversion
since they are the mappings for `Volatile` and `NonTemporal` Memory Operands.

Reviewed By: ftynse

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

4 years ago[AMDGPU] Make generating cache invalidating instructions optional
Piotr Sobczak [Thu, 23 Jul 2020 17:26:49 +0000 (19:26 +0200)]
[AMDGPU] Make generating cache invalidating instructions optional

Summary:
D78800 skipped generating cache invalidating instrucions altogether
on AMDPAL. However, this is sometimes too restrictive - we want a
more flexible option to be able to toggle this behaviour on and off
while we work towards developing a correct implementation of the
alternative memory model.

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

Tags: #llvm

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

4 years ago[SVE] Don't use LocalStackAllocation for SVE objects
David Sherwood [Tue, 14 Jul 2020 15:20:00 +0000 (16:20 +0100)]
[SVE] Don't use LocalStackAllocation for SVE objects

I have introduced a new TargetFrameLowering query function:

  isStackIdSafeForLocalArea

that queries whether or not it is safe for objects of a given stack
id to be bundled into the local area. The default behaviour is to
always bundle regardless of the stack id, however for AArch64 this is
overriden so that it's only safe for fixed-size stack objects.
There is future work here to extend this algorithm for multiple local
areas so that SVE stack objects can be bundled together and accessed
from their own virtual base-pointer.

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

4 years ago[XRay] Account: recursion detection
Roman Lebedev [Mon, 27 Jul 2020 07:15:44 +0000 (10:15 +0300)]
[XRay] Account: recursion detection

Summary:
Recursion detection can be non-trivial. Currently, the state-of-the-art for LLVM,
as far as i'm concerned, is D72362 `[clang-tidy] misc-no-recursion: a new check`.
However, it is quite limited:
* It does very basic call-graph based analysis, in the sense it will report even dynamically-unreachable recursion.
* It is inherently limited to a single TU
* It is hard to gauge how problematic each recursion is in practice.

Some of that can be addressed by adding clang analyzer-based check,
then it would at least support multiple TU's.

However, we can approach this problem from another angle - dynamic run-time analysis.
We already have means to capture a run-time callgraph (XRay, duh),
and there are already means to reconstruct it within `llvm-xray` tool.

This proposes to add a `-recursive-calls-only` switch to the `account` tool.
When the switch is on, when re-constructing callgraph for latency reconstruction,
each time we enter/leave some function, we increment/decrement an entry for the function
in a "recursion depth" map. If, when we leave the function, said entry was at `1`,
then that means the function didn't call itself, however if it is at `2` or more,
then that means the function (possibly indirectly) called itself.

If the depth is 1, we don't account the time spent there,
unless within this call stack the function already recursed into itself.
Note that we don't pay for recursion depth tracking when `recursive-calls-only` is not on,
and the perf impact is insignificant (+0.3% regression)

The overhead of the option is actually negative, around -5.26% user time on a medium-sized (3.5G) XRay log.
As a practical example, that 3.5G log is a capture of the entire middle-end opt pipeline
at `-O3` for RawSpeed unity build. There are total of `5500` functions in the log,
however `-recursive-calls-only` says that `269`, or 5%, are recursive.

Having this functionality could be helpful for recursion eradication.

Reviewers: dberris, mboerger

Reviewed By: dberris

Subscribers: llvm-commits

Tags: #llvm

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

4 years ago[NewPM] NFC. remove obsolete TODO comment
Yuanfang Chen [Mon, 27 Jul 2020 05:32:24 +0000 (22:32 -0700)]
[NewPM] NFC. remove obsolete TODO comment

The deleted TODO was implemented in D82344.

4 years ago[PowerPC] Add Vector Extract Double Instruction Definitions and MC tests.
biplmish [Mon, 27 Jul 2020 04:56:19 +0000 (23:56 -0500)]
[PowerPC] Add Vector Extract Double Instruction Definitions and MC tests.

This patch adds the td definitions and asm/disasm tests for the following instructions:

Vector Extract Double Left Index - vextdubvlx, vextduhvlx, vextduwvlx, vextddvlx
Vector Extract Double Right Index - vextdubvrx, vextduhvrx, vextduwvrx, vextddvrx

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

4 years agoRemove declaration of constexpr member kDynamicSize in MemRefType
Mehdi Amini [Mon, 27 Jul 2020 04:50:08 +0000 (04:50 +0000)]
Remove declaration of constexpr member kDynamicSize in MemRefType

This member is already publicly declared on the base class. The
redundant declaration is mangled differently though and in some
unoptimized build it requires a definition to also exist. However we
have a definition for the base ShapedType class, removing the
declaration here will redirect every use to the base class member
instead.

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

4 years ago[gcov] Simplify/speed up CFG hash calculation
Fangrui Song [Mon, 27 Jul 2020 04:14:20 +0000 (21:14 -0700)]
[gcov] Simplify/speed up CFG hash calculation

4 years agoAMDGPU/GlobalISel: Don't assert in LegalizerInfo constructor
Matt Arsenault [Mon, 27 Jul 2020 03:01:28 +0000 (23:01 -0400)]
AMDGPU/GlobalISel: Don't assert in LegalizerInfo constructor

We don't really need these asserts. The LegalizerInfo is also
overly-aggressivly constructed, even when not in use. It needs to not
assert on dummy targets that have manually specified, unrelated
features.

4 years ago[PowerPC] Cleanup p10vector clang test
biplmish [Mon, 27 Jul 2020 02:23:00 +0000 (21:23 -0500)]
[PowerPC] Cleanup p10vector clang test

Remove the duplicate LE test, correct the labels and remove common tests for vec_splat builtin.

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

4 years ago[Scheduling] Improve group algorithm for store cluster
QingShan Zhang [Mon, 27 Jul 2020 02:02:40 +0000 (02:02 +0000)]
[Scheduling] Improve group algorithm for store cluster

Store Addr and Store Addr+8 are clusterable pair. They have memory(ctrl) dependency on different loads.
Current implementation will put these two stores into different group and miss to cluster them.

Reviewed By: evandro

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

4 years ago[InstCombine] Add more tests to freeze-phi.ll; NFC
Juneyoung Lee [Mon, 27 Jul 2020 00:43:00 +0000 (09:43 +0900)]
[InstCombine] Add more tests to freeze-phi.ll; NFC

4 years ago[ORC] Remove a redundant call to getTargetMemory.
Lang Hames [Mon, 27 Jul 2020 00:33:07 +0000 (17:33 -0700)]
[ORC] Remove a redundant call to getTargetMemory.