platform/upstream/llvm.git
5 years ago[clangd] Simplify client capabilities parsing.
Sam McCall [Wed, 17 Oct 2018 07:33:42 +0000 (07:33 +0000)]
[clangd] Simplify client capabilities parsing.

Summary:
Instead of parsing into structs that mirror LSP, simply parse into a flat struct
that contains the info we need.
This is an exception to our strategy with Protocol.h, which seems justified:
 - the structure here is very large and deeply nested
 - we care about almost none of it
 - we should never have to serialize client capabilities

Reviewers: kadircet

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

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

llvm-svn: 344673

5 years ago[clangd] Refactor JSON-over-stdin/stdout code into Transport abstraction. (re-land...
Sam McCall [Wed, 17 Oct 2018 07:32:05 +0000 (07:32 +0000)]
[clangd] Refactor JSON-over-stdin/stdout code into Transport abstraction. (re-land r344620)

Summary:
This paves the way for alternative transports (mac XPC, maybe messagepack?),
and also generally improves layering: testing ClangdLSPServer becomes less of
a pipe dream, we split up the JSONOutput monolith, etc.

This isn't a final state, much of what remains in JSONRPCDispatcher can go away,
handlers can call reply() on the transport directly, JSONOutput can be renamed
to StreamLogger and removed, etc. But this patch is sprawling already.

The main observable change (see tests) is that hitting EOF on input is now an
error: the client should send the 'exit' notification.
This is defensible: the protocol doesn't spell this case out. Reproducing the
current behavior for all combinations of shutdown/exit/EOF clutters interfaces.
We can iterate on this if desired.

Reviewers: jkorous, ioeric, hokein

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

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

llvm-svn: 344672

5 years ago[ARM][NFCI] Do not fuse VADD and VMUL, continued (1/2)
Sjoerd Meijer [Wed, 17 Oct 2018 07:26:35 +0000 (07:26 +0000)]
[ARM][NFCI] Do not fuse VADD and VMUL, continued (1/2)

This is a follow up of rL342874, which stopped fusing muls and adds into VMLAs
for performance reasons on the Cortex-M4 and Cortex-M33.  This is a serie of 2
patches, that is trying to achieve the same for VFMA.  The second column in the
table below shows what we were generating before rL342874, the third column
what changed with rL342874, and the last column what we want to achieve with
these 2 patches:

 --------------------------------------------------------
 | Opt   |  < rL342874   |  >= rL342874   |             |
 |------------------------------------------------------|
 |-O3    |     vmla      |      vmul      |     vmul    |
 |       |               |      vadd      |     vadd    |
 |------------------------------------------------------|
 |-Ofast |     vfma      |      vfma      |     vmul    |
 |       |               |                |     vadd    |
 |------------------------------------------------------|
 |-Oz    |     vmla      |      vmla      |     vmla    |
 --------------------------------------------------------

This patch 1/2, is a cleanup of the spaghetti predicate logic on the different
VMLA and VFMA codegen rules, so that we can make the final functional change in
patch 2/2.  This also fixes a typo in the regression test added in rL342874.

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

llvm-svn: 344671

5 years ago[XRay][compiler-rt] Generational Buffer Management
Dean Michael Berris [Wed, 17 Oct 2018 06:57:50 +0000 (06:57 +0000)]
[XRay][compiler-rt] Generational Buffer Management

Summary:
This change updates the buffer queue implementation to support using a
generation number to identify the lifetime of buffers. This first part
introduces the notion of the generation number, without changing the way
we handle the buffers yet.

What's missing here is the cleanup of the buffers. Ideally we'll keep
the two most recent generations. We need to ensure that before we do any
writes to the buffers, that we check the generation number(s) first.

Those changes will follow-on from this change.

Depends on D52588.

Reviewers: mboerger, eizan

Subscribers: llvm-commits, jfb

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

llvm-svn: 344670

5 years agoDocument the behavior of option passing when using -DCLANG_ENABLE_BOOTSTRAP=On
Sylvestre Ledru [Wed, 17 Oct 2018 06:35:10 +0000 (06:35 +0000)]
Document the behavior of option passing when using -DCLANG_ENABLE_BOOTSTRAP=On
Also document -DCLANG_BOOTSTRAP_PASSTHROUGH

Reviewers: ecbeckmann

Subscribers: llvm-commits

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

llvm-svn: 344669

5 years agoNFC: Remove trailing space from CodeGenModule.cpp
Takuto Ikuta [Wed, 17 Oct 2018 04:29:56 +0000 (04:29 +0000)]
NFC: Remove trailing space from CodeGenModule.cpp

llvm-svn: 344668

5 years ago[BuildingAJIT] Update chapter 1 to use the ORCv2 APIs.
Lang Hames [Wed, 17 Oct 2018 03:34:09 +0000 (03:34 +0000)]
[BuildingAJIT] Update chapter 1 to use the ORCv2 APIs.

llvm-svn: 344667

5 years ago[python] [tests] Disable on known-broken arches
Michal Gorny [Wed, 17 Oct 2018 03:05:39 +0000 (03:05 +0000)]
[python] [tests] Disable on known-broken arches

Disable the Python binding tests on AArch64, Hexagon and SystemZ
following reports on test failures.  The first two yield different
results, possibly indicating test case problems.  The last one seems
to have broken FFI in Python.

While at it, refactor the code to make adding future test restrictions
easier.

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

llvm-svn: 344666

5 years agoAMDGPU: add __builtin_amdgcn_update_dpp
Yaxun Liu [Wed, 17 Oct 2018 02:32:26 +0000 (02:32 +0000)]
AMDGPU: add __builtin_amdgcn_update_dpp

Emit llvm.amdgcn.update.dpp for both __builtin_amdgcn_mov_dpp and
__builtin_amdgcn_update_dpp. The first argument to
llvm.amdgcn.update.dpp will be undef for __builtin_amdgcn_mov_dpp.

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

llvm-svn: 344665

5 years ago[analyzer] [www] Minor improvements to the text in open_projects
George Karpenkov [Wed, 17 Oct 2018 01:15:53 +0000 (01:15 +0000)]
[analyzer] [www] Minor improvements to the text in open_projects

llvm-svn: 344664

5 years ago[analyzer] [www] Updated a list of open projects
George Karpenkov [Wed, 17 Oct 2018 01:06:20 +0000 (01:06 +0000)]
[analyzer] [www] Updated a list of open projects

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

llvm-svn: 344663

5 years agoNew test requires x86-registered-target
Teresa Johnson [Wed, 17 Oct 2018 00:59:14 +0000 (00:59 +0000)]
New test requires x86-registered-target

New test added in r344658 also requires x86-registered-target.

llvm-svn: 344662

5 years ago[libcxx] Mark chrono literal unit tests as being unsupported on AppleClang 10
Louis Dionne [Wed, 17 Oct 2018 00:34:13 +0000 (00:34 +0000)]
[libcxx] Mark chrono literal unit tests as being unsupported on AppleClang 10

llvm-svn: 344661

5 years ago[ThinLTO] Fix test to require asserts
Teresa Johnson [Wed, 17 Oct 2018 00:19:21 +0000 (00:19 +0000)]
[ThinLTO] Fix test to require asserts

New test added in r344658 requires asserts due to -stats.

While here, augment it to test new global variable importing
message as well.

llvm-svn: 344660

5 years ago[Sanitizer][PassManager] Fix for failing ASan tests on arm-linux-gnueabihf
Leonard Chan [Wed, 17 Oct 2018 00:16:07 +0000 (00:16 +0000)]
[Sanitizer][PassManager] Fix for failing ASan tests on arm-linux-gnueabihf

Forgot to initialize the legacy pass in it's constructor.

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

llvm-svn: 344659

5 years ago[ThinLTO] Add importing stats to thin link
Teresa Johnson [Tue, 16 Oct 2018 23:49:50 +0000 (23:49 +0000)]
[ThinLTO] Add importing stats to thin link

Summary:
Previously we could only get the number of imported functions and
variables from the backend. This adds stats to the thin link where the
importing is decided.

Reviewers: wmi

Subscribers: inglorion, dexonsmith, llvm-commits

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

llvm-svn: 344658

5 years ago[SanitizerCoverage] Don't duplicate code to get section pointers
Jonathan Metzman [Tue, 16 Oct 2018 23:43:57 +0000 (23:43 +0000)]
[SanitizerCoverage] Don't duplicate code to get section pointers

Summary:
Merge code used to get section start and section end pointers
for SanitizerCoverage constructors. This includes code that handles
getting the start pointers when targeting MSVC.

Reviewers: kcc, morehouse

Reviewed By: morehouse

Subscribers: kcc, hiraditya

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

llvm-svn: 344657

5 years ago[clang-doc] Limit integration tests
Julie Hockett [Tue, 16 Oct 2018 23:07:37 +0000 (23:07 +0000)]
[clang-doc] Limit integration tests

Now that the clang-doc libraries are covered by unit tests, we don't
need to have extensive (and unmaintainable) integration tests. This
replaces the integration test suite with a smaller one that just tests
the tool itself and removes extraneous dumping logic from the tool
itself.

Includes tests that cover the parse->serialize->merge->generate
pipeline, as well as tests for the --public, --format, --doxygen, and
--output flags.

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

llvm-svn: 344655

5 years ago[clang-doc] Add unit tests for Markdown generation
Julie Hockett [Tue, 16 Oct 2018 23:07:26 +0000 (23:07 +0000)]
[clang-doc] Add unit tests for Markdown generation

Add unit tests for Markdown generation.

This is part of a move to convert clang-doc's tests to a more
maintainable unit test framework, with a smaller number of integration
tests to maintain and more granular failure feedback.

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

llvm-svn: 344654

5 years ago[clang-doc] Add unit tests for YAML generation
Julie Hockett [Tue, 16 Oct 2018 23:07:16 +0000 (23:07 +0000)]
[clang-doc] Add unit tests for YAML generation

Adds unit tests for the YAML generator library.

This is part of a move to convert clang-doc's tests to a more
maintainable unit test framework, with a smaller number of integration
tests to maintain and more granular failure feedback.

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

llvm-svn: 344653

5 years ago[clang-doc] Add unit tests for merging
Julie Hockett [Tue, 16 Oct 2018 23:07:04 +0000 (23:07 +0000)]
[clang-doc] Add unit tests for merging

Adds unit tests for the merging logic in Respresentation.cpp.

This is part of a move to convert clang-doc's tests to a more
maintainable unit test framework, with a smaller number of integration
tests to maintain and more granular failure feedback.

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

llvm-svn: 344652

5 years ago[clang-doc] Add unit tests for bitcode
Julie Hockett [Tue, 16 Oct 2018 23:06:53 +0000 (23:06 +0000)]
[clang-doc] Add unit tests for bitcode

Adds unit tests for the BitcodeWriter and BitcodeReader libraries.

This is part of a move to convert clang-doc's tests to a more
maintainable unit test framework, with a smaller number of integration
tests to maintain and more granular failure feedback.

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

llvm-svn: 344651

5 years ago[clang-doc] Add unit tests for serialization
Julie Hockett [Tue, 16 Oct 2018 23:06:42 +0000 (23:06 +0000)]
[clang-doc] Add unit tests for serialization

Adds unit tests for the Serialize library.

This is part of a move to convert clang-doc's tests to a more
maintainable unit test framework, with a smaller number of integration
tests to maintain and more granular failure feedback.

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

llvm-svn: 344650

5 years ago[X86] Match (cmp (and (shr X, C), mask), 0) to BEXTR+TEST.
Craig Topper [Tue, 16 Oct 2018 22:29:36 +0000 (22:29 +0000)]
[X86] Match (cmp (and (shr X, C), mask), 0) to BEXTR+TEST.

Without this we match the CMP+AND to a TEST and then match the SHR separately. I'm trusting analyzeCompare to remove the TEST during the peephole pass. Otherwise we need to check the flag users to see if they only use the Z flag.

This recovers a case lost by r344270.

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

llvm-svn: 344649

5 years agoDelete commented-out code.
Adrian Prantl [Tue, 16 Oct 2018 22:01:49 +0000 (22:01 +0000)]
Delete commented-out code.

llvm-svn: 344648

5 years agoReturn a named error in the result object of an expression with no result
Jim Ingham [Tue, 16 Oct 2018 21:58:40 +0000 (21:58 +0000)]
Return a named error in the result object of an expression with no result

Before we returned an error that was not exposed in the SB API and no useful
error message.  This change returns eExpressionProducedNoResult and an
appropriate error string.

<rdar://problem/44539514>

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

llvm-svn: 344647

5 years agoFixed an issue that a bot found with my changes
Jason Molenda [Tue, 16 Oct 2018 21:49:31 +0000 (21:49 +0000)]
Fixed an issue that a bot found with my changes
in r344626 & recommitting.  Original commit msg:

Simplify LocateDSYMInVincinityOfExecutable by moving
some redundant code into a separate function,
LookForDsymNextToExecutablePath, and having that function
also look for .dSYM.yaa files in addition to .dSYM
bundles.

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

<rdar://problem/40406580>

llvm-svn: 344646

5 years ago[InstCombine] Cleanup libfunc attribute inferring
David Bolvansky [Tue, 16 Oct 2018 21:18:31 +0000 (21:18 +0000)]
[InstCombine] Cleanup libfunc attribute inferring

Reviewers: efriedma

Reviewed By: efriedma

Subscribers: llvm-commits

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

llvm-svn: 344645

5 years agoCode cleanup: Remove DWARFDebugInfoEntry::m_empty_children
Jan Kratochvil [Tue, 16 Oct 2018 20:49:15 +0000 (20:49 +0000)]
Code cleanup: Remove DWARFDebugInfoEntry::m_empty_children

It merges DWARFDebugInfoEntry's m_empty_children into m_has_children.
m_empty_children was implemented by rL144983.

As Greg confirmed m_has_children was used to represent what was in the DWARF in
the byte that follows the DW_TAG. m_empty_children was used for DIEs that said
they had children but actually only contain a single NULL tag. It is fine to
not differentiate between the two.

Also changed assert()->lldbassert() for m_abbr_idx 16-bit overflow check as
that could be a tough bug to catch if it ever happens.

I have checked all calls of HasChildren() that this change should not matter to
them. The code even wants to know if there are any children - it does not
matter how the children presence is coded in the binary.

Patch written based on suggestions by Greg Clayton.

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

llvm-svn: 344644

5 years ago[ORC] Make the VModuleKey optional, propagate it via MaterializationUnit and
Lang Hames [Tue, 16 Oct 2018 20:13:06 +0000 (20:13 +0000)]
[ORC] Make the VModuleKey optional, propagate it via MaterializationUnit and
MaterializationResponsibility.

VModuleKeys are intended to enable selective removal of modules from a JIT
session, however for a wide variety of use cases selective removal is not
needed and introduces unnecessary overhead. As of this commit, the default
constructed VModuleKey value is reserved as a "do not track" value, and
becomes the default when adding a new module to the JIT.

This commit also changes the propagation of VModuleKeys. They were passed
alongside the MaterializationResponsibity instance in XXLayer::emit methods,
but are now propagated as part of the MaterializationResponsibility instance
itself (and as part of MaterializationUnit when stored in a JITDylib).
Associating VModuleKeys with MaterializationUnits in this way should allow
for a thread-safe module removal mechanism in the future, even when a module
is in the process of being compiled, by having the
MaterializationResponsibility object check in on its VModuleKey's state
before commiting its results to the JITDylib.

llvm-svn: 344643

5 years ago[libcxx] Avoid repeating the definition of std:: namespaces
Louis Dionne [Tue, 16 Oct 2018 20:02:59 +0000 (20:02 +0000)]
[libcxx] Avoid repeating the definition of std:: namespaces

This reduces code duplication a tiny bit.

llvm-svn: 344642

5 years ago[libcxx] Remove _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY
Louis Dionne [Tue, 16 Oct 2018 19:26:23 +0000 (19:26 +0000)]
[libcxx] Remove _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY

That macro has been defined to _LIBCPP_HIDE_FROM_ABI_AFTER_V1 for many
weeks now, so we're actually replacing uses of it for uses of
_LIBCPP_HIDE_FROM_ABI_AFTER_V1 directly.

This should not change or break anything since the two macros are
100% equivalent, unless somebody is (incorrectly!) relying on
_LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY being defined.

llvm-svn: 344641

5 years agoRevert "[WebAssembly] LSDA info generation"
Krasimir Georgiev [Tue, 16 Oct 2018 18:50:09 +0000 (18:50 +0000)]
Revert "[WebAssembly] LSDA info generation"

This reverts commit r344575.
Newly introduced test eh-lsda.ll.test fails with use-after-free under
ASAN build.

llvm-svn: 344639

5 years agoRevert "[clangd] Refactor JSON-over-stdin/stdout code into Transport abstraction."
Krasimir Georgiev [Tue, 16 Oct 2018 18:44:41 +0000 (18:44 +0000)]
Revert "[clangd] Refactor JSON-over-stdin/stdout code into Transport abstraction."

This reverts commit r344620.
Breaks upstream bots.

llvm-svn: 344637

5 years agoRevert r344626 while I address a testsuite failure from a bot.
Jason Molenda [Tue, 16 Oct 2018 18:25:46 +0000 (18:25 +0000)]
Revert r344626 while I address a testsuite failure from a bot.

llvm-svn: 344636

5 years agoTiny testsuite tweaks. Don't run the apple simulator
Jason Molenda [Tue, 16 Oct 2018 18:14:30 +0000 (18:14 +0000)]
Tiny testsuite tweaks.  Don't run the apple simulator
tests when targetting a device.  Add an include to
safe-to-call-func to work around a modules issue with
a certain combination of header files.  Add rules for
Darwin systems to ad-hoc codesign binaries that the
testsuite builds.

llvm-svn: 344635

5 years agoUse a relaxed substring check for function names in a test
Vedant Kumar [Tue, 16 Oct 2018 18:13:42 +0000 (18:13 +0000)]
Use a relaxed substring check for function names in a test

The TestTailCallFrameSBAPI.py test checks that function names in a
backtrace are equal to an expected value.

Use a relaxed substring check because function dislpay names are
platform-dependent. E.g we see "void sink(void)" on Windows, but "sink()" on
Darwin. This seems like a bug -- just work around it for now.

llvm-svn: 344634

5 years agoDon't run TestBreakpointIt.py on arm64 devices;
Jason Molenda [Tue, 16 Oct 2018 18:11:17 +0000 (18:11 +0000)]
Don't run TestBreakpointIt.py on arm64 devices;
it is armv7 specific.

llvm-svn: 344633

5 years ago[PATCH] [NFC][AArch64] Fix refactoring of macro fusion
Evandro Menezes [Tue, 16 Oct 2018 17:41:45 +0000 (17:41 +0000)]
[PATCH] [NFC][AArch64] Fix refactoring of macro fusion

Fix compiler error.

llvm-svn: 344632

5 years ago[LTO] Call InitLLVM from llvm-lto2
Teresa Johnson [Tue, 16 Oct 2018 17:37:45 +0000 (17:37 +0000)]
[LTO] Call InitLLVM from llvm-lto2

Summary:
D45602 added this to most tools, including llvm-lto, but not to
llvm-lto2. Add it there and test that it works in both lto tools.

Reviewers: ruiu

Subscribers: mehdi_amini, inglorion, eraman, steven_wu, dexonsmith, llvm-commits

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

llvm-svn: 344631

5 years agoDisable code object version 3 for HIP toolchain
Yaxun Liu [Tue, 16 Oct 2018 17:36:23 +0000 (17:36 +0000)]
Disable code object version 3 for HIP toolchain

AMDGPU backend will switch to code object version 3 by default.
Since HIP runtime is not ready, disable it until the runtime is ready.

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

llvm-svn: 344630

5 years ago[Intrinsic] Signed Saturation Addition Intrinsic
Leonard Chan [Tue, 16 Oct 2018 17:35:41 +0000 (17:35 +0000)]
[Intrinsic] Signed Saturation Addition Intrinsic

Add an intrinsic that takes 2 integers and perform saturation addition on them.

This is a part of implementing fixed point arithmetic in clang where some of
the more complex operations will be implemented as intrinsics.

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

llvm-svn: 344629

5 years agoFor a built & test bot, add an environment variable PLATFORM_SDK_DIRECTORY,
Jason Molenda [Tue, 16 Oct 2018 17:31:33 +0000 (17:31 +0000)]
For a built & test bot, add an environment variable PLATFORM_SDK_DIRECTORY,
which PlatformRemoteDarwinDevice::UpdateSDKDirectoryInfosIfNeeded
which examine for any additional SDK directories when it is
constructing its list.

<rdar://problem/42984340>
<rdar://problem/41351223>

llvm-svn: 344628

5 years agoRecommit <chrono> changes with a couple xtra tests marked to fail on apple's clang...
Marshall Clow [Tue, 16 Oct 2018 17:27:54 +0000 (17:27 +0000)]
Recommit <chrono> changes with a couple xtra tests marked to fail on apple's clang. Reviewed as D51762

llvm-svn: 344627

5 years agoSimplify LocateDSYMInVincinityOfExecutable by moving
Jason Molenda [Tue, 16 Oct 2018 17:26:04 +0000 (17:26 +0000)]
Simplify LocateDSYMInVincinityOfExecutable by moving
some redundant code into a separate function,
LookForDsymNextToExecutablePath, and having that function
also look for .dSYM.yaa files in addition to .dSYM
bundles.

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

<rdar://problem/40406580>

llvm-svn: 344626

5 years ago[NFC][ARM] Refactor macro fusion
Evandro Menezes [Tue, 16 Oct 2018 17:19:51 +0000 (17:19 +0000)]
[NFC][ARM] Refactor macro fusion

Simplify code for wildcards.

llvm-svn: 344625

5 years ago[NFC][AArch64] Refactor macro fusion
Evandro Menezes [Tue, 16 Oct 2018 17:19:28 +0000 (17:19 +0000)]
[NFC][AArch64] Refactor macro fusion

Simplify API of checking functions.

llvm-svn: 344624

5 years ago[lldbsuite] Fix the mac version decorator to work on non-mac platforms
Stella Stamenova [Tue, 16 Oct 2018 17:13:45 +0000 (17:13 +0000)]
[lldbsuite] Fix the mac version decorator to work on non-mac platforms

Summary: On non-mac platforms, mac_ver returns an empty string which when converted to LooseVersion has no "version" property. This causes a failure when the decorator executes. Instead, check whether the value returned from mac_ver is an empty string and avoid the LooseVersion comparison.

Reviewers: labath, davide, asmith, shafik, jingham

Reviewed By: jingham

Subscribers: jingham, lldb-commits

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

llvm-svn: 344623

5 years agoReland "[PPC64] Add split - stack support."
Sean Fertile [Tue, 16 Oct 2018 17:13:01 +0000 (17:13 +0000)]
Reland "[PPC64] Add split - stack support."

Recommitting https://reviews.llvm.org/rL344544 after fixing undefined behavior
from left-shifting a negative value. Original commit message:

This support is slightly different then the X86_64 implementation in that calls
to __morestack don't need to get rewritten to calls to __moresatck_non_split
when a split-stack caller calls a non-split-stack callee. Instead the size of
the stack frame requested by the caller is adjusted prior to the call to
__morestack. The size the stack-frame will be adjusted by is tune-able through a
new --split-stack-adjust-size option.

llvm-svn: 344622

5 years agofix an out of date paragraph noticed by Bryce Lelbach
Chris Lattner [Tue, 16 Oct 2018 16:54:10 +0000 (16:54 +0000)]
fix an out of date paragraph noticed by Bryce Lelbach

llvm-svn: 344621

5 years ago[clangd] Refactor JSON-over-stdin/stdout code into Transport abstraction.
Sam McCall [Tue, 16 Oct 2018 16:48:06 +0000 (16:48 +0000)]
[clangd] Refactor JSON-over-stdin/stdout code into Transport abstraction.

Summary:
This paves the way for alternative transports (mac XPC, maybe messagepack?),
and also generally improves layering: testing ClangdLSPServer becomes less of
a pipe dream, we split up the JSONOutput monolith, etc.

This isn't a final state, much of what remains in JSONRPCDispatcher can go away,
handlers can call reply() on the transport directly, JSONOutput can be renamed
to StreamLogger and removed, etc. But this patch is sprawling already.

The main observable change (see tests) is that hitting EOF on input is now an
error: the client should send the 'exit' notification.
This is defensible: the protocol doesn't spell this case out. Reproducing the
current behavior for all combinations of shutdown/exit/EOF clutters interfaces.
We can iterate on this if desired.

Reviewers: jkorous, ioeric, hokein

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

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

llvm-svn: 344620

5 years ago[clangd] Send CodeAction responses to textDocument/codeAction (LSP 3.8)
Sam McCall [Tue, 16 Oct 2018 16:29:41 +0000 (16:29 +0000)]
[clangd] Send CodeAction responses to textDocument/codeAction (LSP 3.8)

Summary:
I don't bother mirroring the full capabilities struct, just parse the
bits we care about. I'll send a new patch to use this approach elsewhere too.

Reviewers: kadircet

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

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

llvm-svn: 344617

5 years agoPartial fix for PR38964. (<string> can't be built with gcc -std=c++03) Reviewed as...
Marshall Clow [Tue, 16 Oct 2018 16:02:18 +0000 (16:02 +0000)]
Partial fix for PR38964. (<string> can't be built with gcc -std=c++03) Reviewed as https://reviews.llvm.org/D52240

llvm-svn: 344616

5 years agoRemove possibility to change compile database path at runtime
Simon Marchi [Tue, 16 Oct 2018 15:55:03 +0000 (15:55 +0000)]
Remove possibility to change compile database path at runtime

Summary:
This patch removes the possibility to change the compilation database
path at runtime using the didChangeConfiguration request.  Instead, it
is suggested to use the setting on the initialize request, and clangd
whenever the user wants to use a different build configuration.

Subscribers: ilya-biryukov, ioeric, jkorous, arphaman, kadircet, cfe-commits

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

llvm-svn: 344614

5 years ago[LV] Teach vectorizer about variant value store into uniform address
Anna Thomas [Tue, 16 Oct 2018 15:46:26 +0000 (15:46 +0000)]
[LV] Teach vectorizer about variant value store into uniform address

Summary:
Teach vectorizer about vectorizing variant value stores to uniform
address. Similar to rL343028, we do not allow vectorization if we have
multiple stores to the same uniform address.

Cost model already has the change for considering the extract
instruction cost for a variant value store. See added test cases for how
vectorization is done.
The patch also contains changes to the ORE messages.

Reviewers: Ayal, mkuper, anemet, hsaito

Subscribers: rkruppe, llvm-commits

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

llvm-svn: 344613

5 years agorevert rL344609: [InstCombine] try harder to form select from logic ops
Sanjay Patel [Tue, 16 Oct 2018 15:26:08 +0000 (15:26 +0000)]
revert rL344609: [InstCombine] try harder to form select from logic ops

I noticed a missing check and added it at rL344610, but there actually
are codegen tests that will fail without that, so I'll edit those and
submit a fixed patch with more tests.

llvm-svn: 344612

5 years ago[SystemZ] Actually enable -mzvector keywords
Ulrich Weigand [Tue, 16 Oct 2018 14:57:20 +0000 (14:57 +0000)]
[SystemZ] Actually enable -mzvector keywords

It appears when initially committing the support for the IBM Z vector
extension language, one critical line was lost, causing the specific
keywords __vector, __bool, and vec_step to not actually be enabled.
(Note that this does not affect "vector" and "bool"!)

Unfortunately, this was not caught by any tests either.  (All existing
Z vector tests just use the regular "vector" and "bool" keywords ...)

Fixed by adding the missing line and updating the tests.

llvm-svn: 344611

5 years ago[InstCombine] make sure type is integer before calling ComputeNumSignBits
Sanjay Patel [Tue, 16 Oct 2018 14:44:50 +0000 (14:44 +0000)]
[InstCombine] make sure type is integer before calling ComputeNumSignBits

llvm-svn: 344610

5 years ago[InstCombine] try harder to form select from logic ops
Sanjay Patel [Tue, 16 Oct 2018 14:35:21 +0000 (14:35 +0000)]
[InstCombine] try harder to form select from logic ops

This is part of solving PR37549:
https://bugs.llvm.org/show_bug.cgi?id=37549

The patterns shown here are a special case of something
that we already convert to select. Using ComputeNumSignBits()
catches that case (but not the more complicated motivating
patterns yet).

The backend has hooks/logic to convert back to logic ops
if that's better for the target.

llvm-svn: 344609

5 years ago[driver][mips] Support MIPS R6 target triples
Simon Atanasyan [Tue, 16 Oct 2018 14:29:27 +0000 (14:29 +0000)]
[driver][mips] Support MIPS R6 target triples

This change adds support for the following MIPS target triples:
  mipsisa32r6-linux-gnu
  mipsisa32r6el-linux-gnu
  mipsisa64r6-linux-gnuabi64
  mipsisa64r6el-linux-gnuabi64
  mipsisa64r6-linux-gnuabin32
  mipsisa64r6el-linux-gnuabin32

Patch by Yun Qiang Su.

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

llvm-svn: 344608

5 years agocxa_demangle: make demangler's parsing functions overridable
Pavel Labath [Tue, 16 Oct 2018 14:29:14 +0000 (14:29 +0000)]
cxa_demangle: make demangler's parsing functions overridable

Summary:
This uses CRTP (for performance reasons) to allow a user the override
demangler functions to implement custom parsing logic. The motivation
for this is LLDB, which needs to occasionaly modify the mangled names.
One such instance is already implemented via the TypeCallback member,
but this is very specific functionality which does not help with any
other use case. Currently we have a use case for modifying the
constructor flavours, which would require adding another callback. This
approach does not scale.

With CRTP, the user (LLDB) can override any function it needs without
any special support from the demangler library. After LLDB is ported to
use this instead of the TypeCallback mechanism, the callback can be
removed.

More context can be found in D50599.

Reviewers: erik.pilkington, rsmith

Subscribers: christof, ldionne, llvm-commits, libcxx-commits

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

llvm-svn: 344607

5 years ago[LV] Add test checks when vectorizing loops under opt for size; NFC
Ayal Zaks [Tue, 16 Oct 2018 14:25:02 +0000 (14:25 +0000)]
[LV] Add test checks when vectorizing loops under opt for size; NFC

Landing this as a separate part of https://reviews.llvm.org/D50480, recording
current behavior more accurately, to clarify subsequent diff ([LV] Vectorizing
loops of arbitrary trip count without remainder under opt for size).

llvm-svn: 344606

5 years agoFix: Assertion failed: (!m_first_die || m_first_die == m_die_array.front()), function...
Jan Kratochvil [Tue, 16 Oct 2018 11:38:22 +0000 (11:38 +0000)]
Fix: Assertion failed: (!m_first_die || m_first_die == m_die_array.front()), function ExtractDIEsRWLocked

xbolva00 bugreported $subj in: https://reviews.llvm.org/D46810#1247410
It can happen only from the line:
m_die_array.back().SetEmptyChildren(true);

In the case DW_TAG_compile_unit has DW_CHILDREN_yes but there is only 0 (end of
list, no children present). Therefore the assertion can fortunately happen only
with a hand-crafted DWARF or with DWARF from some suboptimal compilers.

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

llvm-svn: 344605

5 years ago[clangd] Allow disble down traversals from root.
Eric Liu [Tue, 16 Oct 2018 10:41:17 +0000 (10:41 +0000)]
[clangd] Allow disble down traversals from root.

Summary:
This is useful for symbo scope proximity, where down traversals from
the global scope if not desired.

Reviewers: sammccall

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

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

llvm-svn: 344604

5 years ago[driver][mips] Adjust target triple's environment accordingly to provided ABI name
Simon Atanasyan [Tue, 16 Oct 2018 10:19:06 +0000 (10:19 +0000)]
[driver][mips] Adjust target triple's environment accordingly to provided ABI name

For MIPS we need to adjust not only architecture name accordingly to ABI
provided by the `-mabi` command line option, but also modify triple's
environment. For example, for `mips-linux-gnu` triple and `-mabi=n32`
option a correct final triple is `mips64-linux-gnuabin32`.

llvm-svn: 344603

5 years ago[LegalizeDAG] ExpandLegalINT_TO_FP - cleanup UINT_TO_FP i64 -> f64 expansion.
Simon Pilgrim [Tue, 16 Oct 2018 10:06:15 +0000 (10:06 +0000)]
[LegalizeDAG] ExpandLegalINT_TO_FP - cleanup UINT_TO_FP i64 -> f64 expansion.

Use SrcVT/DestVT types, correct shift type and AND instead of ZERO_EXTEND_IN_REG.

Part of prep work for D52965

llvm-svn: 344602

5 years ago[NFC] Introduce ICFLoopSafetyInfo
Max Kazantsev [Tue, 16 Oct 2018 09:58:09 +0000 (09:58 +0000)]
[NFC] Introduce ICFLoopSafetyInfo

This is an alternative implementation of LoopSafetyInfo that uses the implicit
control flow tracking to give precise answers on queries "whether or not this
block contains throwing instructions". This rules out false-positive answers on
LoopSafetyInfo's queries.

This patch only introduces the new implementation. It is not currently used in
any pass. The enabling patches will go separately, through review.

The plan is to completely replace all uses of LoopSafetyInfo with
ICFLoopSafetyInfo in the future, but to avoid introducing functional problems,
we will do it pass by pass.

llvm-svn: 344601

5 years ago[X86] Fix Skylake ReadAfterLd for PADDrm etc.
Simon Pilgrim [Tue, 16 Oct 2018 09:50:16 +0000 (09:50 +0000)]
[X86] Fix Skylake ReadAfterLd for PADDrm etc.

Missed in rL343868 as due to their custom InstrRW.

llvm-svn: 344600

5 years ago[VPlan] Script to extract VPlan digraphs from log
Renato Golin [Tue, 16 Oct 2018 09:37:52 +0000 (09:37 +0000)]
[VPlan] Script to extract VPlan digraphs from log

The vectoriser's debug log prints VPlan digraphs, but it's a bit
cumbersome to extract them and render them into PNG images. This script
does exactly that, being careful enough to extract all individual plans,
name them appropriately and save in either .dot or .png files.

Example usage:

$ opt -O3 -debug-only=loop-vectorize file.ll -S -o /dev/null 2> debug.log

$ $LLVM_SRC/utils/extract_vplan.py < debug.log
Exporting VF1UF1 to DOT: VPlanVF1UF1.dot
Exporting VF24UF1 to DOT: VPlanVF24UF1.dot

$ $LLVM_SRC/utils/extract_vplan.py --png < debug.log
Exporting VF1UF1 to PNG via dot: VPlanVF1UF1.png
Exporting VF24UF1 to PNG via dot: VPlanVF24UF1.png

$ xdot VPlanVF1UF1.dot

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

llvm-svn: 344599

5 years agoFix buildbots - update clang-interpreter to use Legacy ORC classes introduced in...
Simon Pilgrim [Tue, 16 Oct 2018 09:21:58 +0000 (09:21 +0000)]
Fix buildbots - update clang-interpreter to use Legacy ORC classes introduced in rL344572.

llvm-svn: 344598

5 years ago[ARM][AArch64] Pass through endian flags to assembler and linker.
Peter Smith [Tue, 16 Oct 2018 09:21:17 +0000 (09:21 +0000)]
[ARM][AArch64] Pass through endian flags to assembler and linker.

The big-endian arm32 Linux builds are currently failing when the
-mbig-endian flag is used but the binutils default on the system is little
endian. This also holds when -mlittle-endian is used and the binutils
default is big endian.

The patch always passes through -EL or -BE to the assembler and linker,
taking into account the target and the -mbig-endian and -mlittle-endian
flag.

Fixes pr38770

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

llvm-svn: 344597

5 years ago[NFC] Remove obsolete method headerMayThrow
Max Kazantsev [Tue, 16 Oct 2018 09:11:25 +0000 (09:11 +0000)]
[NFC] Remove obsolete method headerMayThrow

llvm-svn: 344596

5 years ago[clangd] Fix threading bugs in (not-yet-used) BackgroundIndex, re-enable test.
Sam McCall [Tue, 16 Oct 2018 09:05:13 +0000 (09:05 +0000)]
[clangd] Fix threading bugs in (not-yet-used) BackgroundIndex, re-enable test.

Summary:
One relatively boring bug: forgot to notify the CV after enqueue.

One much more fun bug: the thread member could access instance variables before
they were initialized. Although the thread was last in the init list, QueueCV
etc were listed after Thread in the class, so their default constructors raced
with the thread itself.
We have to get very unlucky to lose this race, I saw it 0.02% of the time.

Reviewers: ioeric

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

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

llvm-svn: 344595

5 years ago[clangd] Optionally use dex for the preamble parts of the dynamic index.
Sam McCall [Tue, 16 Oct 2018 08:53:52 +0000 (08:53 +0000)]
[clangd] Optionally use dex for the preamble parts of the dynamic index.

Summary:
Reuse the old -use-dex-index experiment flag for this.

To avoid breaking the tests, make Dex deduplicate symbols, addressing an old FIXME.

Reviewers: hokein

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

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

llvm-svn: 344594

5 years ago Add target requirement to profile remap test.
Yvan Roux [Tue, 16 Oct 2018 08:47:36 +0000 (08:47 +0000)]
 Add target requirement to profile remap test.

 Fix bots which don't have x86_64 target built (ARM/AArch64).

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

llvm-svn: 344593

5 years ago[NFC] Make LoopSafetyInfo abstract to allow alternative implementations
Max Kazantsev [Tue, 16 Oct 2018 08:31:05 +0000 (08:31 +0000)]
[NFC] Make LoopSafetyInfo abstract to allow alternative implementations

llvm-svn: 344592

5 years ago[mips][micromips] Fix how values in .gcc_except_table are calculated
Aleksandar Beserminji [Tue, 16 Oct 2018 08:27:28 +0000 (08:27 +0000)]
[mips][micromips] Fix how values in .gcc_except_table are calculated

When a landing pad is calculated in a program that is compiled
for micromips, it will point to an even address. Such an error will
cause a segmentation fault, as the instructions in micromips are
aligned on odd addresses. This patch sets the last bit of the offset
where a landing pad is, to 1, which will effectively be
an odd address and point to the instruction exactly.

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

llvm-svn: 344591

5 years ago[NFC] Encapsulate work with BlockColors in LoopSafetyInfo
Max Kazantsev [Tue, 16 Oct 2018 08:07:14 +0000 (08:07 +0000)]
[NFC] Encapsulate work with BlockColors in LoopSafetyInfo

llvm-svn: 344590

5 years ago[DebugInfo][LCSSA] Rewrite pre-existing debug values outside loop
David Stenberg [Tue, 16 Oct 2018 08:06:48 +0000 (08:06 +0000)]
[DebugInfo][LCSSA] Rewrite pre-existing debug values outside loop

Summary:
Extend LCSSA so that debug values outside loops are rewritten to
use the PHI nodes that the pass creates.

This fixes PR39019. In that case, we ran LCSSA on a loop that
was later on vectorized, which left us with something like this:

  for.cond.cleanup:
    %add.lcssa = phi i32 [ %add, %for.body ], [ %34, %middle.block ]
    call void @llvm.dbg.value(metadata i32 %add,
    ret i32 %add.lcssa

  for.body:
    %add =
    [...]
    br i1 %exitcond, label %for.cond.cleanup, label %for.body

which later resulted in the debug.value becoming undef when
removing the scalar loop (and the location would have probably
been wrong for the vectorized case otherwise).

As we now may need to query the AvailableVals cache more than
once for a basic block, FindAvailableVals() in SSAUpdaterImpl is
changed so that it updates the cache for blocks that we do not
create a PHI node for, regardless of the block's number of
predecessors. The debug value in the attached IR reproducer
would not be properly rewritten without this.

Debug values residing in blocks where we have not inserted any
PHI nodes are currently left as-is by this patch. I'm not sure
what should be done with those uses.

Reviewers: mattd, aprantl, vsk, probinson

Reviewed By: mattd, aprantl

Subscribers: jmorse, gbedwell, JDevlieghere, llvm-commits

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

llvm-svn: 344589

5 years ago[NFC] Move block throw check inside allLoopPathsLeadToBlock
Max Kazantsev [Tue, 16 Oct 2018 07:50:14 +0000 (07:50 +0000)]
[NFC] Move block throw check inside allLoopPathsLeadToBlock

llvm-svn: 344588

5 years ago[NFC] Turn isGuaranteedToExecute into a method
Max Kazantsev [Tue, 16 Oct 2018 06:34:53 +0000 (06:34 +0000)]
[NFC] Turn isGuaranteedToExecute into a method

llvm-svn: 344587

5 years ago[clangd] Disable timeouting test while investigating
Sam McCall [Tue, 16 Oct 2018 06:32:14 +0000 (06:32 +0000)]
[clangd] Disable timeouting test while investigating

llvm-svn: 344586

5 years ago[llvm-objcopy] Factor out Buffer
Alexander Shaposhnikov [Tue, 16 Oct 2018 05:40:18 +0000 (05:40 +0000)]
[llvm-objcopy] Factor out Buffer

In this diff we move out the hierarchy of buffers from Object.h/Object.cpp
into separate files since it is not ELF-specific and will be reused later.
After this change Object.h/Object.cpp are almost exclusively ELF-specific.

Test plan: make check-all

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

llvm-svn: 344585

5 years ago[SCEV] Limit AddRec "simplifications" to avoid combinatorial explosions
Max Kazantsev [Tue, 16 Oct 2018 05:26:21 +0000 (05:26 +0000)]
[SCEV] Limit AddRec "simplifications" to avoid combinatorial explosions

SCEV's transform that turns `{A1,+,A2,+,...,+,An}<L> * {B1,+,B2,+,...,+,Bn}<L>` into
a single AddRec of size `2n+1` with complex combinatorial coefficients can easily
trigger exponential growth of the SCEV (in case if nothing gets folded and simplified).
We tried to restrain this transform using the option `scalar-evolution-max-add-rec-size`,
but its default value seems to be insufficiently small: the test attached to this patch
with default value of this option `16` has a SCEV of >3M symbols (when printed out).

This patch reduces the simplification limit. It is not a cure to combinatorial
explosions, but at least it reduces this corner case to something more or less
reasonable.

Differential Revision: https://reviews.llvm.org/D53282
Reviewed By: sanjoy

llvm-svn: 344584

5 years ago[mips] Group similar commands in the test case. NFC
Simon Atanasyan [Tue, 16 Oct 2018 05:18:36 +0000 (05:18 +0000)]
[mips] Group similar commands in the test case. NFC

llvm-svn: 344583

5 years agoRe-apply r344546 "Mark a couple of test cases as 'C++17-only'..."
Artem Dergachev [Tue, 16 Oct 2018 03:36:55 +0000 (03:36 +0000)]
Re-apply r344546 "Mark a couple of test cases as 'C++17-only'..."

Reverted too much in r344580.

llvm-svn: 344582

5 years agoUse assertEqual to improve test failure logging
Vedant Kumar [Tue, 16 Oct 2018 03:31:33 +0000 (03:31 +0000)]
Use assertEqual to improve test failure logging

Some tests in test/functionalities/tail_call_frames are failing on
non-Darwin platforms. Use assertEqual to improve logging on failure.

llvm-svn: 344581

5 years agoRevert r344529 "Implement the first part of the calendar support for C++20"
Artem Dergachev [Tue, 16 Oct 2018 02:40:42 +0000 (02:40 +0000)]
Revert r344529 "Implement the first part of the calendar support for C++20"
Revert r344535 "Wrap up the new chrono literals in an #ifdef..."
Revert r344546 "Mark a couple of test cases as 'C++17-only'..."

Some of the buildbot failures were masked by another error,
and this one was probably missed.

llvm-svn: 344580

5 years ago[XRay] Use fully qualified name for LogWriter
Petr Hosek [Tue, 16 Oct 2018 02:06:08 +0000 (02:06 +0000)]
[XRay] Use fully qualified name for LogWriter

This avoids the build error in newer versions of GCC.

llvm-svn: 344579

5 years ago[XRay] Encapsulate all FD log related logic into a class
Petr Hosek [Tue, 16 Oct 2018 01:24:46 +0000 (01:24 +0000)]
[XRay] Encapsulate all FD log related logic into a class

This abstracts away the file descriptor related logic which makes it
easier to port XRay to platform that don't use file descriptors or
file system for writing the log data, such as Fuchsia.

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

llvm-svn: 344578

5 years ago[hot-cold-split] fix failing testcases
Sebastian Pop [Tue, 16 Oct 2018 00:42:07 +0000 (00:42 +0000)]
[hot-cold-split] fix failing testcases

llvm-svn: 344577

5 years ago[libcxx] Remove custom CMake code targeting Mac OS 10.6
Louis Dionne [Tue, 16 Oct 2018 00:31:32 +0000 (00:31 +0000)]
[libcxx] Remove custom CMake code targeting Mac OS 10.6

libc++ has dropped support for Mac OS 10.6 for a while, and we don't
have any testers set up for that OS.

This commit puts in an error message so that people can reach out to
the libc++ maintainers in case support for 10.6 is still expected (as
opposed to silently failing in weird ways). We can completely drop
support for 10.6 and remove the error message some time in the future
when we're sure that nobody is relying on it.

llvm-svn: 344576

5 years ago[WebAssembly] LSDA info generation
Heejin Ahn [Tue, 16 Oct 2018 00:09:12 +0000 (00:09 +0000)]
[WebAssembly] LSDA info generation

Summary:
This adds support for LSDA (exception table) generation for wasm EH.
Wasm EH mostly follows the structure of Itanium-style exception tables,
with one exception: a call site table entry in wasm EH corresponds to
not a call site but a landing pad.

In wasm EH, the VM is responsible for stack unwinding. After an
exception occurs and the stack is unwound, the control flow is
transferred to wasm 'catch' instruction by the VM, after which the
personality function is called from the compiler-generated code. (Refer
to WasmEHPrepare pass for more information on this part.)

This patch:
- Changes wasm.landingpad.index intrinsic to take a token argument, to
make this 1:1 match with a catchpad instruction
- Stores landingpad index info and catch type info MachineFunction in
before instruction selection
- Lowers wasm.lsda intrinsic to an MCSymbol pointing to the start of an
exception table
- Adds WasmException class with overridden methods for table generation
- Adds support for LSDA section in Wasm object writer

Reviewers: dschuff, sbc100, rnk

Subscribers: mgorny, jgravelle-google, sunfish, llvm-commits

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

llvm-svn: 344575

5 years ago[OPENMP][NVPTX]Increment iterator only when it is used, NFC.
Alexey Bataev [Tue, 16 Oct 2018 00:09:06 +0000 (00:09 +0000)]
[OPENMP][NVPTX]Increment iterator only when it is used, NFC.

llvm-svn: 344574

5 years ago[X86] Remove some isel patterns that shouldn't be possible.
Craig Topper [Mon, 15 Oct 2018 23:34:58 +0000 (23:34 +0000)]
[X86] Remove some isel patterns that shouldn't be possible.

These included a bitcast of a load from v4f32 to v2f64, but DAG combine should have already changed the type of the load to remove the cast.

llvm-svn: 344573

5 years ago[ORC] Rename ORC layers to make the "new" ORC layers the default.
Lang Hames [Mon, 15 Oct 2018 22:56:10 +0000 (22:56 +0000)]
[ORC] Rename ORC layers to make the "new" ORC layers the default.

This commit adds a 'Legacy' prefix to old ORC layers and utilities, and removes
the '2' suffix from the new ORC layers. If you wish to continue using the old
ORC layers you will need to add a 'Legacy' prefix to your classes. If you were
already using the new ORC layers you will need to drop the '2' suffix.

The legacy layers will remain in-tree until the new layers reach feature
parity with them. This will involve adding support for removing code from the
new layers, and ensuring that performance is comperable.

llvm-svn: 344572

5 years ago[mips] Fix handling of GNUABIN32 environment in a target triple
Simon Atanasyan [Mon, 15 Oct 2018 22:43:23 +0000 (22:43 +0000)]
[mips] Fix handling of GNUABIN32 environment in a target triple

The `GNUABIN32` environment in a target triple implies using the N32
ABI. This patch adds support for this environment and switches on N32
ABI if necessary.

Patch by Patch by YunQiang Su.

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

llvm-svn: 344570

5 years agoStructurizeCFG,AMDGPU: Test case of a redundant phi and codegen consequences
Nicolai Haehnle [Mon, 15 Oct 2018 22:37:46 +0000 (22:37 +0000)]
StructurizeCFG,AMDGPU: Test case of a redundant phi and codegen consequences

Change-Id: I9681f9e41ca30f82576f3d1f965c3a550a34b171
llvm-svn: 344569

5 years ago[CMake] Fix a missing LLVM_ENABLE_IDE from r344555
Chris Bieneman [Mon, 15 Oct 2018 22:36:59 +0000 (22:36 +0000)]
[CMake] Fix a missing LLVM_ENABLE_IDE from r344555

This is just one place I missed swapping CMAKE_CONFIGURATION_TYPES with LLVM_ENABLE_IDE.

llvm-svn: 344568

5 years ago[ORC] Rename MultiThreadedSimpleCompiler to ConcurrentIRCompiler.
Lang Hames [Mon, 15 Oct 2018 22:36:22 +0000 (22:36 +0000)]
[ORC] Rename MultiThreadedSimpleCompiler to ConcurrentIRCompiler.

The new name is a better fit: This class does not actually spawn any new
threads for compilation, it is just safe to call from multiple threads
concurrently.

The "Simple" part of the name did not convey much either, so it was
dropped.

llvm-svn: 344567