Michal Paszkowski [Sat, 23 May 2020 11:51:43 +0000 (13:51 +0200)]
Revert "Added a new IRCanonicalizer pass."
This reverts commit
14d358537f124a732adad1ec6edf3981dc9baece.
Michal Paszkowski [Sat, 23 May 2020 11:51:07 +0000 (13:51 +0200)]
LLVM GN Syncbot [Sat, 23 May 2020 11:05:09 +0000 (11:05 +0000)]
[gn build] Port
14d358537f1
Michal Paszkowski [Sat, 23 May 2020 00:48:55 +0000 (02:48 +0200)]
Added a new IRCanonicalizer pass.
Summary:
Added a new IRCanonicalizer pass which aims to transform LLVM modules into
a canonical form by reordering and renaming instructions while preserving the
same semantics. The canonicalizer makes it easier to spot semantic differences
when diffing two modules which have undergone different passes.
Presentation: https://www.youtube.com/watch?v=c9WMijSOEUg
Reviewed by: plotfi
Differential Revision: https://reviews.llvm.org/D66029
mydeveloperday [Sat, 23 May 2020 10:28:06 +0000 (11:28 +0100)]
[Analyzer][WebKit][NFC] Correct documentation to avoid sphinx build error
This was introduced with commit
54e91a3c7010
Nikita Popov [Tue, 19 May 2020 20:37:37 +0000 (22:37 +0200)]
[TargetPassConfig] Don't add alias analysis at optnone
When performing codegen at optnone, don't add alias analysis to
the pipeline. We don't need it, but it causes an unnecessary
dominator tree calculation.
I've also moved the module verifier call to the top so that a bunch
of disabled-at-optnone passes group more nicely.
Differential Revision: https://reviews.llvm.org/D80378
Craig Topper [Sat, 23 May 2020 04:45:09 +0000 (21:45 -0700)]
[Align] Remove operations on MaybeAlign that asserted that it had a defined value.
If the caller needs to reponsible for making sure the MaybeAlign
has a value, then we should just make the caller convert it to an Align
with operator*.
I explicitly deleted the relational comparison operators that
were being inherited from Optional. It's unclear what the meaning
of two MaybeAligns were one is defined and the other isn't
should be. So make the caller reponsible for defining the behavior.
I left the ==/!= operators from Optional. But now that exposed a
weird quirk that ==/!= between Align and MaybeAlign required the
MaybeAlign to be defined. But now we use the operator== from
Optional that takes an Optional and the Value.
Differential Revision: https://reviews.llvm.org/D80455
Fangrui Song [Sat, 23 May 2020 04:12:17 +0000 (21:12 -0700)]
[MC] Drop unneeded std::abs for DW_def_cfa_offset in DarwinX86AsmBackend::generateCompactUnwindEncoding
This clean-up is available after double negation bugs are fixed.
Fangrui Song [Sat, 23 May 2020 03:18:15 +0000 (20:18 -0700)]
[MC] Fix double negation of DW_CFA_def_cfa
Negations are incorrectly added in numerous places and the code just happens to work.
Also fix a missed DW_CFA_def_cfa_offset negation in
c693b9c321d5a40d012340619674cf790c9ac86c:
ARMAsmBackendDarwin::generateCompactUnwindEncoding
Craig Topper [Sat, 23 May 2020 03:12:57 +0000 (20:12 -0700)]
[X86] Update some av512 shift intrinsics to use "unsigned int" parameter instead of int to match Intel documentation
There are 65 that take a scalar shift amount. Intel documentation shows 60 of them taking unsigned int. There are 5 versions of srli_epi16 that use int, the 512-bit maskz and 128/256 mask/maskz.
Fixes PR45931
Differential Revision: https://reviews.llvm.org/D80251
Fangrui Song [Sat, 23 May 2020 02:57:21 +0000 (19:57 -0700)]
[MC] Fix double negation of DW_CFA_def_cfa_offset
Negations are incorrectly added in two places and the code works just
because the negations cancel each other.
Tony [Sat, 23 May 2020 02:29:57 +0000 (22:29 -0400)]
[AMDGPU] DWARF Proposal For Heterogeneous Debugging
- Change title to "DWARF Proposal For Heterogeneous Debugging".
Tony [Sat, 23 May 2020 02:01:01 +0000 (22:01 -0400)]
[AMDGPU] DWARF For Heterogeneous Debugging
- Change title to "DWARF For Heterogeneous Debugging".
- Add "Examples" section that references the AMDGPUUsage DWARF section.
- Make the "References" section a top level section.
Differential Revision: https://reviews.llvm.org/D70523
Stephen Kelly [Sat, 23 May 2020 00:28:55 +0000 (01:28 +0100)]
Add missing unit test
Stephen Kelly [Sat, 23 May 2020 00:24:56 +0000 (01:24 +0100)]
Fix mistake made while rebasing
Fangrui Song [Fri, 22 May 2020 22:51:24 +0000 (15:51 -0700)]
[MC] Change MCCFIInstruction::createDefCfaOffset to cfiDefCfaOffset which does not negate Offset
The negative Offset has caused a bunch of problems and confused quite a
few call sites. Delete the unneeded negation and fix all call sites.
Stephen Kelly [Fri, 22 May 2020 21:48:54 +0000 (22:48 +0100)]
Add some explicit use of TK_AsIs
Stephen Kelly [Thu, 21 May 2020 23:57:50 +0000 (00:57 +0100)]
Fix ignoring traversal of intermediate parens
Stephen Kelly [Thu, 21 May 2020 23:23:59 +0000 (00:23 +0100)]
Traverse-ignore invisible CXXConstructExprs with default args
Adrian Prantl [Fri, 22 May 2020 22:51:43 +0000 (15:51 -0700)]
Restrict test for DW_AT_APPLE_optimized to Darwin
Fangrui Song [Fri, 22 May 2020 22:18:05 +0000 (15:18 -0700)]
[MC] Change MCCFIInstruction::createDefCfa to cfiDefCfa which does not negate Offset
The negative Offset has caused a bunch of problems and confused quite a
few call sites. Delete the unneeded negation and fix all call sites.
Adrian Prantl [Fri, 22 May 2020 00:42:24 +0000 (17:42 -0700)]
Print a warning when stopped in a frame LLDB has no plugin for.
This patchs adds an optional warning that is printed when stopped at a
frame that was compiled in a source language that LLDB has no plugin
for.
The motivational use-case is debugging Swift code on Linux. When the
user accidentally invokes the system LLDB that was built without the
Swift plugin, it is very much non-obvious why debugging doesnt
work. This warning makes it easy to figure out what went wrong.
<rdar://problem/
56986569>
Stephen Neuendorffer [Thu, 21 May 2020 17:52:44 +0000 (10:52 -0700)]
Reapply "[lit] GoogleTest framework should report failures if test binary crashes"
This reverts commit
78dea0e8fb6cc5c0fae64d65b7f40560cab7b329.
The offending lldb test (which is a real bug exposed by this patch)
has been disabled on windows (see
a67b2faa7c4cfbceffb4213f46769c45a5a9291a)
and lldb is queued for inclusion into precommit testing, which would
have caught this.
Differential Revision: https://reviews.llvm.org/D80389
Stanislav Mekhanoshin [Fri, 22 May 2020 18:04:46 +0000 (11:04 -0700)]
[AMDGPU] Define 6 dword subregs
This prevents autogeneration of degenerate names for these.
Differential Revision: https://reviews.llvm.org/D80451
Eric Christopher [Fri, 22 May 2020 20:42:09 +0000 (13:42 -0700)]
Handle eExpressionThreadVanished in error switch to handle
covered switch warning.
Sanjay Patel [Fri, 22 May 2020 20:22:27 +0000 (16:22 -0400)]
[VectorCombine] set preserve alias analysis
As noted in D80236, moving the pass in the pipeline exposed this
shortcoming. Extra work to recalculate the alias results showed
up as a compile-time slowdown.
Louis Dionne [Thu, 21 May 2020 14:25:15 +0000 (10:25 -0400)]
[libc++] Mark __u64toa and __u32toa as noexcept
The two functions don't throw, and the generated code is better when
we explicitly tell the compiler that the functions are noexcept. This
isn't an ABI break because the signatures of the functions stay the
same with or without noexcept.
Fixes https://llvm.org/PR46016
Differential Revision: https://reviews.llvm.org/D80379
Jonas Devlieghere [Fri, 22 May 2020 20:06:36 +0000 (13:06 -0700)]
[lldb/Test] Disable APITests.exe on Windows
The generated binary (APITests.exe) is not a valid googletest binary. I
suspect it has something to do with us linking against liblldb.
Jonas Devlieghere [Fri, 22 May 2020 20:06:01 +0000 (13:06 -0700)]
[lldb/Reproducers] Make the type tests work with reproducers
Ahsan Saghir [Fri, 22 May 2020 19:35:13 +0000 (14:35 -0500)]
[PowerPC] Add support for vmsumudm
This patch adds support for Vector Multiply-Sum Unsigned Doubleword Modulo
instruction; vmsumudm.
Differential Revision: https://reviews.llvm.org/D80294
Louis Dionne [Fri, 22 May 2020 19:32:29 +0000 (15:32 -0400)]
[libc++] Fix broken tuple tests
The tests had copy-paste errors which started showing when an
unused-variable warning started being emitted after we made
the MoveOnly type constexpr (in
a4b8ee64223f).
Jean-Michel Gorius [Fri, 22 May 2020 19:26:46 +0000 (21:26 +0200)]
Revert "[CodeGen] Add support for multiple memory operands in MachineInstr::mayAlias"
This temporarily reverts commit
7019cea26dfef5882c96f278c32d0f9c49a5e516.
It seems that, for some targets, there are instructions with a lot of memory operands (probably more than would be expected). This causes a lot of buildbots to timeout and notify failed builds. While investigations are ongoing to find out why this happens, revert the changes.
Raphael Isemann [Fri, 22 May 2020 19:23:03 +0000 (21:23 +0200)]
Revert "[lldb] Enable C++14 when evaluating expressions in a C++14 frame"
This reverts commit
5f88f39ab8154682c3b1eb9d7050a9412a55d9e7. It broke these
three tests on the Window bot:
lldb-api :: commands/expression/completion/TestExprCompletion.py
lldb-api :: lang/cpp/scope/TestCppScope.py
lldb-api :: lang/cpp/standards/cpp11/TestCPP11Standard.py
Louis Dionne [Fri, 22 May 2020 15:20:27 +0000 (11:20 -0400)]
[libc++] Make MoveOnly constexpr-friendly
This is necessary when writing constexpr tests.
Kirstóf Umann [Fri, 22 May 2020 18:18:16 +0000 (20:18 +0200)]
Revert "[analyzer] Change the default output type to PD_TEXT_MINIMAL in the frontend, error if an output loc is missing for PathDiagConsumers that need it"
This reverts commit
fe1a3a7e8c8be33968b9a768666489823dabab10.
Florian Hahn [Mon, 27 Apr 2020 14:46:12 +0000 (15:46 +0100)]
[DSE,MSSA] Add additional multiblock tests.
Joe Ranieri [Fri, 22 May 2020 16:57:58 +0000 (12:57 -0400)]
[clang-tidy] Expand the list of functions in bugprone-unused-return-value
This change adds common C, C++, and POSIX functions to the clang-tidy unused return value checker.
Differential Revision: https://reviews.llvm.org/D76083
Jonas Devlieghere [Fri, 22 May 2020 16:22:53 +0000 (09:22 -0700)]
[lldb/Test] Remove issue_verification subdirectory
These files haven't been touched since 2015. According to Pavel these
were intended to be test for the test framework which never really took
of and are mostly irrelevant by now.
Differential revision: https://reviews.llvm.org/D80408
Sanjay Patel [Fri, 22 May 2020 16:13:18 +0000 (12:13 -0400)]
[VectorCombine] position pass after SLP in the optimization pipeline rather than before
There are 2 known problem patterns shown in the test diffs here:
vector horizontal ops (an x86 specialization) and vector reductions.
SLP has greater ability to match and fold those than vector-combine,
so let SLP have first chance at that.
This is a quick fix while we continue to improve vector-combine and
possibly canonicalize to reduction intrinsics.
In the longer term, we should improve matching of these patterns
because if they were created in the "bad" forms shown here, then we
would miss optimizing them.
I'm not sure what is happening with alias analysis on the addsub test.
The old pass manager now shows an extra line for that, and we see an
improvement that comes from SLP vectorizing a store. I don't know
what's missing with the new pass manager to make that happen.
Strangely, I can't reproduce the behavior if I compile from C++ with
clang and invoke the new PM with "-fexperimental-new-pass-manager".
Differential Revision: https://reviews.llvm.org/D80236
Pengxuan Zheng [Thu, 21 May 2020 02:12:36 +0000 (19:12 -0700)]
[RISCV] Register null target streamer for RISC-V
Summary:
This fixes two llc crashes with the following tests when RISC-V is the default
target.
LLVM :: DebugInfo/Generic/global.ll
LLVM :: DebugInfo/Generic/inlined-strings.ll
Reviewers: HsiangKai
Reviewed By: HsiangKai
Subscribers: hiraditya, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, kito-cheng, shiva0217, jrtc27, MaskRay, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, lenary, s.egerton, sameer.abuasal, apazos, luismarques, evandro, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80352
Valeriy Savchenko [Fri, 22 May 2020 15:47:04 +0000 (18:47 +0300)]
[analyzer] SATestBuild.py: Fix hang when one of the tasks fails
Summary:
Tasks can crash with many different exceptions including SystemExit.
Bare except still causes a warning, so let's use BaseException instead.
Differential Revision: https://reviews.llvm.org/D80443
Simon Pilgrim [Fri, 22 May 2020 15:59:05 +0000 (16:59 +0100)]
[CGP] Ensure address offset is representable as int64_t
AddressingModeMatcher::matchAddr was calling getSExtValue for a constant before ensuring that we can actually represent the value as int64_t
Fixes PR46004 / OSSFuzz#22357
Sanjay Patel [Fri, 22 May 2020 15:37:58 +0000 (11:37 -0400)]
[InstCombine] (A + B) + B --> A + (B << 1)
This eliminates a use of 'B', so it can enable follow-on transforms
as well as improve analysis/codegen.
The PhaseOrdering test was added for D61726, and that shows
the limits of instcombine vs. real reassociation. We would
need to run some form of CSE to collapse that further.
The intermediate variable naming here is intentional because
there's a test at llvm/test/Bitcode/value-with-long-name.ll
that would break with the usual nameless value. I'm not sure
how to improve that test to be more robust.
The naming may also be helpful to debug regressions if this
change exposes weaknesses in the reassociation pass for example.
Sanjay Patel [Fri, 22 May 2020 14:20:43 +0000 (10:20 -0400)]
[InstCombine] add tests for adds with common operand; NFC
Denis Antrushin [Wed, 13 May 2020 17:55:07 +0000 (20:55 +0300)]
[SCEV] Constant fold MultExpr before applying depth limit.
Summary:
Users of SCEV reasonably assume that multiplication of two constant
SCEVs will in turn be constant.
However, that is not always the case:
First, we can get here with reached depth limit, and will create
MultExpr SCEV `C1 * C2` and cache it.
Then, we can get here with the same operands, but with small depth
level. But this time we will find existing MultExpr SCEV and return
it, instead of expected constant SCEV.
This patch changes getMultExpr to not apply depth limit to all constant
operands expression, allowing them to be folded.
Reviewers: reames, mkazantsev
Subscribers: hiraditya, javed.absar, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D79893
Xiangling_Liao [Fri, 22 May 2020 12:20:35 +0000 (08:20 -0400)]
[NFC][AIX] Remove spaces after the comma for '.csect' directive
To be consistent with other directives like '.comm', '.lcomm', we remove
the spaces after the comma for '.csect' on AIX.
Differential Revision: https://reviews.llvm.org/D80247
Matt Arsenault [Sun, 17 May 2020 14:51:22 +0000 (10:51 -0400)]
AMDGPU/GlobalISel: Fix masked control flow with fallthrough blocks
Unlike SelectionDAGBuilder, IRTranslator omits the unconditional
branch in fallthrough cases. Confusingly, the control flow pseudos
function in the opposite way the intrinsics are used, and the branch
targets always need to be swapped. We're inverting the target blocks,
so we need to figure out the old fallthrough block and insert a branch
to the original unconditional branch target.
Sanjay Patel [Fri, 22 May 2020 13:54:00 +0000 (09:54 -0400)]
[PhaseOrdering] regenerate test checks; NFC
Remove some redundant/unnecessary bits too.
Anh Tuyen Tran [Fri, 22 May 2020 13:30:56 +0000 (13:30 +0000)]
Title: [LV] Handle Fold-Tail of loops with vectorizarion factor equal to 1
Summary:
When handling loops whose VF is 1, fold-tail vectorization sets the
backedge taken count of the original loop with a vector of a single
element. This causes type-mismatch during instruction generartion.
The purpose of this patch is toto address the case of VF==1.
Reviewer: Ayal (Ayal Zaks), bmahjour (Bardia Mahjour), fhahn (Florian Hahn), gilr (Gil Rapaport), rengolin (Renato Golin)
Reviewed By: Ayal (Ayal Zaks), bmahjour (Bardia Mahjour), fhahn (Florian Hahn)
Subscribers: Ayal (Ayal Zaks), rkruppe (Hanna Kruppe), bmahjour (Bardia Mahjour), rogfer01 (Roger Ferrer Ibanez), vkmr (Vineet Kumar), bollu (Siddharth Bhat), hiraditya (Aditya Kumar), llvm-commits (Mailing List llvm-commits)
Tag: LLVM
Differential Revision: https://reviews.llvm.org/D79976
Simon Pilgrim [Fri, 22 May 2020 13:22:56 +0000 (14:22 +0100)]
TargetLowering.h - remove unnecessary includes. NFC.
Replace with forward declarations and move SizeOpts.h down to TargetLoweringBase.cpp
Simon Pilgrim [Fri, 22 May 2020 12:18:06 +0000 (13:18 +0100)]
[TargetLowering] Move TargetLoweringBase::isJumpTableRelative() implementation into TargetLoweringBase.cpp. NFC.
This will help with reducing header dependencies in TargetLowering.h in a future patch.
Louis Dionne [Fri, 22 May 2020 13:23:32 +0000 (09:23 -0400)]
[libc++] NFC: Inline array<T,N>::at methods inside the class
All other methods are defined in the class, so this increases consistency.
Sanjay Patel [Fri, 22 May 2020 13:12:06 +0000 (09:12 -0400)]
[SLP] fix verification check for valid IR
This is a fix for PR45965 - https://bugs.llvm.org/show_bug.cgi?id=45965 -
which was left out of D80106 because of a test failure.
SLP does its own mini-CSE after potentially creating redundant instructions,
so we need to wait for that to complete before running the verifier.
Otherwise, we will see a test failure for
test/Transforms/SLPVectorizer/X86/crash_vectorizeTree.ll (not changed here)
because a phi temporarily has identical but different incoming values for
the same incoming block.
A related, but independent, test that would have been altered here was
fixed with:
rG880df55
The test was escaping verification in SLP without this change because we
were not running verifyFunction() unless SLP actually changed the IR.
Differential Revision: https://reviews.llvm.org/D80401
Artem Dergachev [Fri, 22 May 2020 11:53:59 +0000 (14:53 +0300)]
[analyzer] LoopUnrolling: fix crash when a parameter is a loop counter.
When loop counter is a function parameter "isPossiblyEscaped" will not find
the variable declaration which lead to hitting "llvm_unreachable".
Parameters of reference type should be escaped like global variables;
otherwise treat them as unescaped.
Patch by Abbas Sabra!
Differential Revision: https://reviews.llvm.org/D80171
Sanjay Patel [Fri, 22 May 2020 12:39:22 +0000 (08:39 -0400)]
[SLP] fix test to have valid IR; NFC
This test was failing verification because the
metadata is ill-formed. This commit is split
from D80401 because it is an independent fix
(although the test would break with that change).
Nemanja Ivanovic [Fri, 22 May 2020 12:59:12 +0000 (07:59 -0500)]
[PowerPC] Treat 'Z' inline asm constraint as a true memory constraint
We currently emit incorrect codegen for this constraint because we set it as a
constraint that allows registers. This will cause the value to be copied to the
stack and that address to be passed as the address. This is not what we want.
Fixes: https://bugs.llvm.org/show_bug.cgi?id=42762
Differential revision: https://reviews.llvm.org/D77542
Nemanja Ivanovic [Fri, 22 May 2020 12:48:09 +0000 (07:48 -0500)]
[PowerPC] Add missing handling for half precision
The fix for PR39865 took care of some of the handling for half precision
but it missed a number of issues that still exist. This patch fixes the
remaining issues that cause crashes in the PPC back end.
Fixes: https://bugs.llvm.org/show_bug.cgi?id=45776
Differential revision: https://reviews.llvm.org/D79283
Marek Kurdej [Fri, 22 May 2020 12:33:16 +0000 (14:33 +0200)]
[CMake] Fix typos. NFC
Marek Kurdej [Fri, 22 May 2020 12:32:39 +0000 (14:32 +0200)]
[Target] Fix typos. NFC
Matt Arsenault [Thu, 21 May 2020 16:31:28 +0000 (12:31 -0400)]
InstCombine: Add constant folding/simplify for amdgcn.ldexp intrinsic
This really belongs in InstructionSimplify since it doesn't introduce
new instructions. Put it in instcombine to avoid increasing the number
of passes considering target intrinsics.
I also noticed that we seem to now be interpreting strictfp attributes
on call sites, so try to handle that.
Jon Roelofs [Fri, 22 May 2020 11:36:15 +0000 (05:36 -0600)]
Revert "[llvm][test] Add COM: directives before colon-less non-CHECKs in comments. NFC"
This reverts commit
183d6af081899973f00fc24aeafcfc32de732f02.
Revert pending further consensus building: https://reviews.llvm.org/D79963#2050521
Simon Pilgrim [Fri, 22 May 2020 11:28:26 +0000 (12:28 +0100)]
[AVR] Remove unsigned <= 0 checks. NFCI.
D77207 changed the bounds checks resulting in tests for positive unsigned values - dropping the superfluous check to fix gcc+Werror "error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits]" warning.
Dmitry Preobrazhensky [Fri, 22 May 2020 10:54:59 +0000 (13:54 +0300)]
[AMDGPU][MC][GFX8+] Enabled clamp for v_mul_i32_i24_e64 and v_mul_u32_u24_e64
See bug 45925: https://bugs.llvm.org/show_bug.cgi?id=45925
Reviewers: arsenm, rampitec
Differential Revision: https://reviews.llvm.org/D80287
Simon Pilgrim [Fri, 22 May 2020 11:04:59 +0000 (12:04 +0100)]
Remove superfluous semicolon to stop Wpedantic warning. NFCI.
Simon Pilgrim [Fri, 22 May 2020 10:59:19 +0000 (11:59 +0100)]
Replace dyn_cast<> with isa<> to fix unused variable warning. NFCI.
QingShan Zhang [Fri, 22 May 2020 10:56:46 +0000 (10:56 +0000)]
[NFC][Test] Add test coverage for fsqrt on PowerPC
Valeriy Savchenko [Fri, 22 May 2020 09:51:25 +0000 (12:51 +0300)]
[analyzer] SumTimerInfo.py: Partially modernize
Differential Revision: https://reviews.llvm.org/D80427
Valeriy Savchenko [Fri, 22 May 2020 09:38:03 +0000 (12:38 +0300)]
[analyzer] SATestUpdateDiffs.py: Refactor and add type annotations
Differential Revision: https://reviews.llvm.org/D80426
Valeriy Savchenko [Fri, 22 May 2020 08:59:39 +0000 (11:59 +0300)]
[analyzer] SATestUtils.py: Refactor and add type annotations
Differential Revision: https://reviews.llvm.org/D80424
Valeriy Savchenko [Thu, 21 May 2020 15:28:36 +0000 (18:28 +0300)]
[analyzer] SATestBuild.py: Refactor and add type annotations
Summary:
SATest scripts should be more python-style than they are now.
This includes better architecture, type annotations, naming
convesions, and up-to-date language features. This commit starts
with two scripts SATestBuild and SATestAdd.
Differential Revision: https://reviews.llvm.org/D80423
Pavel Labath [Fri, 22 May 2020 10:41:46 +0000 (12:41 +0200)]
[lldb] Increase timeout in TestExitDuringExpression
200 microseconds is not enough time for any expression to execute
reliably. On linux, calling pthread_exit can result in call to dlopen,
which cannot complete in that time, particularly when running under a
debugger.
On linux, this test failed all the time, on macos, about two thirds of
runs were failing. This patch increases the timeout to 100ms, which is
enough to get it passing reliably on linux, though I wouldn't be
surprised if an even bigger timeout would be needed for remote test
runs.
Alexey Bader [Wed, 20 May 2020 19:22:30 +0000 (22:22 +0300)]
[SYCL] Prohibit arithmetic operations for incompatible pointers
Summary:
This change enables OpenCL diagnostics for the pointers annotated with
address space attribute SYCL mode.
Move `isAddressSpaceOverlapping` method from PointerType to QualType.
Reviewers: Anastasia, rjmccall
Reviewed By: rjmccall
Subscribers: rjmccall, jeroen.dobbelaere, Fznamznon, yaxunl, ebevhan, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D80317
Victor Campos [Fri, 22 May 2020 09:03:18 +0000 (10:03 +0100)]
Revert "[ARM] Improve codegen of volatile load/store of i64"
This reverts commit
8a12553223180246eeafaa0fa7bfa11e834d34b6.
A bug has been found when generating code for Thumb2. In some very
specific cases, the prologue/epilogue emitter generates erroneous stack
offsets for the new LDRD instructions that access the stack.
This bug does not seem to be caused by the reverted patch though. Likely
the latter has made an undiscovered issue emerge in the
prologue/epilogue emission pass. Nevertheless, this reversion is
necessary since it is blocking users of the ARM backend.
Simon Pilgrim [Fri, 22 May 2020 09:48:21 +0000 (10:48 +0100)]
StatepointLowering.h - remove unused includes. NFC.
Simon Pilgrim [Fri, 22 May 2020 09:47:12 +0000 (10:47 +0100)]
Fix msvc "switch statement contains 'default' but no 'case' labels" warning. NFC.
Stripped out the switch statement, but kept case labels as comments for future reference.
Simon Pilgrim [Thu, 21 May 2020 16:12:15 +0000 (17:12 +0100)]
MILexer.h/cpp - remove unused includes. NFC.
Remove duplicates in MILexer.cpp that are already included in MILexer.h.
Raphael Isemann [Fri, 22 May 2020 09:42:32 +0000 (11:42 +0200)]
[lldb] Enable C++14 when evaluating expressions in a C++14 frame
Summary:
Currently we never enable C++14 in the expression evaluator. This enables it when the language of the program is C++14.
It seems C++17 and so on isn't yet in any of the language enums (and the DWARF standard it seems), so C++17 support will be a follow up patch.
Reviewers: labath, JDevlieghere
Reviewed By: labath, JDevlieghere
Subscribers: aprantl
Differential Revision: https://reviews.llvm.org/D80308
Raphael Isemann [Fri, 22 May 2020 07:36:37 +0000 (09:36 +0200)]
[lldb][NFC] Overload raw_ostream operator << for ConstString
Summary: We are not doing this very often, but sometimes it's convenient when I can just << ConstStrings into llvm::errs() during testing.
Reviewers: labath, JDevlieghere
Reviewed By: labath, JDevlieghere
Subscribers: JDevlieghere
Differential Revision: https://reviews.llvm.org/D80310
Roman Lebedev [Thu, 21 May 2020 15:11:03 +0000 (18:11 +0300)]
[NFC] InstCombineNegator: use auto where type is obvious from the cast
Max Kazantsev [Fri, 22 May 2020 07:32:21 +0000 (14:32 +0700)]
[InstCombine] Sink pure instructions down to return and unreachable blocks
If the only user of `Instr` is in a return or unreachable block, we can
sink `Instr` to the`User` safely (unless it reads/writes memory).
Return or unreachable blocks are guaranteed to execute zero
or one time, and `Instr` always dominates `User`, so they either will
be executed together (execution of `User` always implies execution
of `Instr`) or not executed at all.
Differential Revision: https://reviews.llvm.org/D80120
Reviewed By: asbirlea, jdoerfert
Jonas Devlieghere [Fri, 22 May 2020 06:22:16 +0000 (23:22 -0700)]
[lldb/REPL] Fix unhandled switch case
Fix warning: enumeration value 'eExpressionThreadVanished' not handled
in switch [-Wswitch]
LLVM GN Syncbot [Fri, 22 May 2020 04:58:19 +0000 (04:58 +0000)]
[gn build] Port
2e40cf06df0
Craig Topper [Fri, 22 May 2020 01:16:02 +0000 (18:16 -0700)]
[X86] Allow avx512vp2intersect to be used with __builtin_cpu_supports.
compiler-rt and trunk libgcc support this now.
Craig Topper [Fri, 22 May 2020 01:12:21 +0000 (18:12 -0700)]
[X86] Add avx512vp2intersect feature to compiler-rt's feature detection to match libgcc.
Lang Hames [Fri, 22 May 2020 04:44:00 +0000 (21:44 -0700)]
[JITLink] Initial implementation of ELF / x86-64 support for JITLink.
This initial implementation supports section and symbol parsing, but no
relocation support. It enables JITLink to link and execute ELF relocatable
objects that do not require relocations.
Patch by Jared Wyles. Thanks Jared!
Differential Revision: https://reviews.llvm.org/D79832
ISHIGURO, Hiroshi [Fri, 22 May 2020 02:34:49 +0000 (11:34 +0900)]
[OPENMP] Fix mixture of omp and clang pragmas
Fixes PR45753
When a program that contains a loop to which both `omp parallel for`
pragma and `clang loop` pragma are associated is compiled with the
-fopenmp option, `clang loop` pragma did not take effect. The example
below should not be vectorized by the `clang loop` pragma but it was
actually vectorized. The cause is that `llvm.loop.vectorize.width`
was not output to the IR when -fopenmp is specified.
The fix attaches attributes if they exist for the loop.
[example.c]
```
int a[100], b[100];
void foo() {
#pragma omp parallel for
#pragma clang loop vectorize(disable)
for (int i = 0; i < 100; i++)
a[i] += b[i] * i;
}
```
[compile]
```
$ clang -O2 -fopenmp example.c -c -Rpass=vect
example.c:3:11: remark: vectorized loop (vectorization width: 4, interleaved count: 2) [-Rpass=loop-vectorize]
#pragma omp parallel for
^
```
[IR with -fopenmp]
```
$ clang -O2 exmaple.c -S -emit-llvm -mllvm -disable-llvm-optzns -o - -fopenmp | grep 'vectorize\.width'
```
[IR with -fno-openmp]
```
$ clang -O2 example.c -S -emit-llvm -mllvm -disable-llvm-optzns -o - -fno-openmp | grep 'vectorize\.width'
!7 = !{!"llvm.loop.vectorize.width", i32 1}
```
Differential Revision: https://reviews.llvm.org/D79921
Jinsong Ji [Fri, 22 May 2020 03:10:34 +0000 (03:10 +0000)]
[docs][llvm-extract] Add missing alias/bb options
llvm-extract get serveral new options, but we forgot to update doc.
This patch update the doc.
Reviewed By: volkan
Differential Revision: https://reviews.llvm.org/D80413
Jonas Devlieghere [Fri, 22 May 2020 03:36:39 +0000 (20:36 -0700)]
[lldb/Reproducers] Skip test that changes the source file while debugging
The VFS is a snapshot and cannot capture changes to the file system.
Jonas Devlieghere [Fri, 22 May 2020 03:34:39 +0000 (20:34 -0700)]
[lldb/Test] Fix replay with TestSetWatchpoint.py
The reproducers only track the creation of objects and not their
destruction. Therefore it keeps all objects alive indefinitely.
Nico Weber [Fri, 22 May 2020 03:04:41 +0000 (23:04 -0400)]
[gn build] (manually) port
49a4f3f7d88
Jessica Paquette [Fri, 22 May 2020 01:05:37 +0000 (18:05 -0700)]
[AArch64][GlobalISel] Add a post-legalizer combiner with a very simple combine.
(This patch is by Jessica, I'm just committing it on her behalf because I need
a post-legalizer combiner for something else).
This supersedes D77250, which did equivalent work in the selector. This can be
done pre-legalization or post-legalization. Post-legalization is more likely to
hit, since G_IMPLICIT_DEFs tend to appear during legalization. There's no reason
to not do it pre-legalization though-- if it can be caught earlier, great.
(I also think that it might be worth reimplementing D78769 using a
target-specific post-legalization combine too after thinking about it for a
while.)
Differential Revision: https://reviews.llvm.org/D78852
Paula Toth [Fri, 22 May 2020 00:39:03 +0000 (17:39 -0700)]
[libc] Make clang-tidy use host compiler's resource dir.
Summary: When building llvm-libc with linting enabled, clang-tidy would use the resource dir of the monorepo rather then the host compiler's resource dir. This presented issues when including headers from the host compiler e.g. for sanitizers. Therefore this patch explicitly tells clang-tidy to use the host compiler's resource dir.
Reviewers: sivachandra
Reviewed By: sivachandra
Subscribers: mgorny, tschuett, ecnelises, libc-commits
Tags: #libc-project
Differential Revision: https://reviews.llvm.org/D80265
Jim Ingham [Fri, 22 May 2020 01:38:49 +0000 (18:38 -0700)]
Maybe I need ENABLE_THREADS in the Makefile.
Jim Ingham [Fri, 22 May 2020 01:26:01 +0000 (18:26 -0700)]
This very simple .c file is failing on the Debian bot wit the error
undefined reference to pthread_create
I skipped the test till I can figure out why this didn't build.
Dominic Chen [Thu, 21 May 2020 00:05:40 +0000 (20:05 -0400)]
[llvm-extract] Fix basic block extraction by delaying search until the function is materialized
Summary: When I try to extract a basic block using llvm-extract, it erroneously reports that the named basic block doesn't exist. After digging into the code, it appears to be iterating over an unmaterialized function, which will fail to match any basic blocks.
Reviewers: volkan, qcolombet
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80346
Jim Ingham [Thu, 21 May 2020 01:00:56 +0000 (18:00 -0700)]
Handle the case where a thread exits while we are running a function on it.
Tony [Thu, 21 May 2020 21:20:06 +0000 (17:20 -0400)]
[AMDGPU] Correct formatting typos in documentation
Summary:
- Correct missing space in some "note" and "TODO" directives in
AMDGPUUsage.rst
- Correct warning for heading underline being too short in
BitCodeFormat.rst
Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, kerbowa, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D80407
Jonas Devlieghere [Fri, 22 May 2020 00:31:51 +0000 (17:31 -0700)]
[lldb/Test] Cleanup TestSymbolContext.py
Remove commented out code, fix the indentation and always use the full
path to the executable. The latter is necessary for the test to pass
from reproducer replay.
Heejin Ahn [Thu, 21 May 2020 06:02:41 +0000 (23:02 -0700)]
[WebAssembly] Warn on exception spec only when Wasm EH is used
Summary:
In D80061 we added warning for exception specifications with types (such
as `throw(int)`), but it was enabled every time the target was wasm,
which means it warned (and ignored) exception specifications even if
wasm EH was not used. This fixes it and we only have the warning when we
enable `-fwasm-exceptions`.
Reviewers: dschuff
Subscribers: sbc100, jgravelle-google, sunfish, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D80362
Zequan Wu [Thu, 21 May 2020 23:44:30 +0000 (16:44 -0700)]
[clang] Add nomerge function attribute to clang
Differential Revision: https://reviews.llvm.org/D79121