Artem Dergachev [Fri, 18 Jan 2019 22:52:13 +0000 (22:52 +0000)]
[analyzer] Do not try to body-farm Objective-C properties with custom accessors.
If a property is defined with a custom getter, we should not behave as if
the getter simply returns an instance variable. We don't support setters,
so they aren't affected.
On top of being the right thing to do, this also fixes a crash on
the newly added test - in which a property and its getter are defined
in two separate categories.
rdar://problem/
47051544
Differential Revision: https://reviews.llvm.org/D56823
llvm-svn: 351609
Vitaly Buka [Fri, 18 Jan 2019 22:32:29 +0000 (22:32 +0000)]
[safestack] Add ThreadId type as uint64_t
Reviewers: krytarowski, eugenis
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D56937
llvm-svn: 351607
Stephen Kelly [Fri, 18 Jan 2019 22:15:13 +0000 (22:15 +0000)]
[ASTDump] Add test for current AST dump behavior
llvm-svn: 351606
Stephen Kelly [Fri, 18 Jan 2019 22:15:09 +0000 (22:15 +0000)]
[ASTDump] NFC: Move variable into if() statement
llvm-svn: 351605
Stephen Kelly [Fri, 18 Jan 2019 22:15:05 +0000 (22:15 +0000)]
[ASTDump] NFC: Remove redundant condition
These conditions are duplicated from the dumpDeclContext function called
within the if(). This is presumably an attempt to avoid calling the
function in the case it will do nothing.
That may have made sense in the past if the code was different, but it
doesn't make sense now.
llvm-svn: 351604
Stephen Kelly [Fri, 18 Jan 2019 22:14:59 +0000 (22:14 +0000)]
[ASTDump] NFC: Remove non-needed braces
llvm-svn: 351603
Stephen Kelly [Fri, 18 Jan 2019 22:00:16 +0000 (22:00 +0000)]
[ASTDump] Mark null params with a tag rather than a child node
Reviewers: aaron.ballman
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D56753
llvm-svn: 351601
Stephen Kelly [Fri, 18 Jan 2019 21:55:24 +0000 (21:55 +0000)]
[ASTDump] Mark BlockDecls which capture this with a tag
Summary:
Removal of the child node makes it easier to separate traversal from
output generation.
Reviewers: aaron.ballman
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D56752
llvm-svn: 351600
Matt Arsenault [Fri, 18 Jan 2019 21:42:55 +0000 (21:42 +0000)]
AMDGPU/GlobalISel: Legalize more types for select
llvm-svn: 351599
Roman Tereshin [Fri, 18 Jan 2019 21:38:44 +0000 (21:38 +0000)]
Revert "[CGP] Check for existing inttotpr before creating new one"
This reverts commit r351582.
Bots are failing. Reverting this to fix and re-commit later.
llvm-svn: 351598
Stephen Kelly [Fri, 18 Jan 2019 21:38:30 +0000 (21:38 +0000)]
[ASTDump] Mark variadic declarations with a tag instead of child node
Summary:
This makes it easier to separate traversal of the AST from output
generation.
Reviewers: aaron.ballman
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D56751
llvm-svn: 351597
Matt Arsenault [Fri, 18 Jan 2019 21:33:50 +0000 (21:33 +0000)]
AMDGPU/GlobalISel: Legalize illegal g_constant
llvm-svn: 351596
Erik Pilkington [Fri, 18 Jan 2019 21:33:23 +0000 (21:33 +0000)]
[Sema] Suppress a warning about a forward-declared fixed enum in C mode
As of r343360, we support fixed-enums in C. This lead to some
warnings in project headers where a fixed enum is forward declared
then later defined. In C++, this is fine, the forward declaration is
treated as a complete type even though the definition isn't present.
We use this rule in C too, but still warn about the forward
declaration anyways. This patch suppresses the warning.
rdar://problem/
47356469
Differential revision: https://reviews.llvm.org/D56879
llvm-svn: 351595
Matt Arsenault [Fri, 18 Jan 2019 21:04:59 +0000 (21:04 +0000)]
GlobalISel: Verify G_BITCAST
llvm-svn: 351594
Leonard Chan [Fri, 18 Jan 2019 21:04:25 +0000 (21:04 +0000)]
[Fixed Point Arithmetic] Fixed Point Addition Constant Expression Evaluation
This patch includes logic for constant expression evaluation of fixed point additions.
Differential Revision: https://reviews.llvm.org/D55868
llvm-svn: 351593
Armando Montanez [Fri, 18 Jan 2019 20:56:03 +0000 (20:56 +0000)]
[elfabi] Add support for reading DT_NEEDED from binaries
This patch gives elfabi the ability to read DT_NEEDED entries from ELF binaries
to populate NeededLibs in TextAPI's ELFStub.
Differential Revision: https://reviews.llvm.org/D55852
llvm-svn: 351592
Matt Arsenault [Fri, 18 Jan 2019 20:49:17 +0000 (20:49 +0000)]
GlobalISel: Verify G_ICMP/G_FCMP vector types
llvm-svn: 351591
Sanjay Patel [Fri, 18 Jan 2019 20:42:12 +0000 (20:42 +0000)]
[x86] add more movmsk tests; NFC
The existing tests already show a sub-optimal transform,
but this should make it clear that we can't just match
an 'and' op when creating movmsk instructions.
llvm-svn: 351590
Teresa Johnson [Fri, 18 Jan 2019 20:41:49 +0000 (20:41 +0000)]
Make ThinLTO test run single threaded to try to avoid flakiness
To see if this helps flaky bot failures in PR40351.
llvm-svn: 351589
Simon Pilgrim [Fri, 18 Jan 2019 20:40:35 +0000 (20:40 +0000)]
Fix MSVC "not all control paths return a value" warning. NFCI.
llvm-svn: 351588
Martin Storsjo [Fri, 18 Jan 2019 20:31:12 +0000 (20:31 +0000)]
[SjLj] Don't use __declspec(thread) in MinGW mode
GCC and Clang in MinGW mode don't support __declspec(thread), which
after expanding macros ends up as __attribute__((thread)). Use the
GCC specific attribute __thread instead (the next one in the chain
of alternatives).
Differential Revision: https://reviews.llvm.org/D56905
llvm-svn: 351587
Matt Arsenault [Fri, 18 Jan 2019 20:27:02 +0000 (20:27 +0000)]
AMDGPU: Remove llvm.SI.load.const
It's taken 3 years, but now all of the old AMDGPU and SI intrinsics
are finally gone
llvm-svn: 351586
Jim Ingham [Fri, 18 Jan 2019 20:20:40 +0000 (20:20 +0000)]
Add BreakpadRecords to the Xcode project.
llvm-svn: 351585
Matt Arsenault [Fri, 18 Jan 2019 20:17:37 +0000 (20:17 +0000)]
GlobalISel: Verify g_zextload and g_sextload
llvm-svn: 351584
Craig Topper [Fri, 18 Jan 2019 20:14:46 +0000 (20:14 +0000)]
[X86] Lower avx512f scatter intrinsics to X86MaskedScatterSDNode instead of going directly to MachineSDNode.
This sends these intrinsics through isel in a much more normal way. This should allow addressing mode matching in isel to make better use of the displacement field.
llvm-svn: 351583
Roman Tereshin [Fri, 18 Jan 2019 20:13:42 +0000 (20:13 +0000)]
[CGP] Check for existing inttotpr before creating new one
Make sure CodeGenPrepare doesn't emit multiple inttoptr instructions of
the same integer value while sinking address computations, but rather
CSEs them on the fly: excessive inttoptr's confuse SCEV into thinking
that related pointers have nothing to do with each other.
This problem blocks LoadStoreVectorizer from vectorizing some of the
loads / stores in a downstream target.
Reviewed By: hfinkel
Differential Revision: https://reviews.llvm.org/D56838
llvm-svn: 351582
Bjorn Pettersson [Fri, 18 Jan 2019 20:06:13 +0000 (20:06 +0000)]
[SelectionDAG] Updates for -dag-dump-verbose
Summary:
This patch makes some changes related to -dag-dump-verbose.
Main use case has been when debugging how SelectionDAG is
dealing with debug info (SDDbgValue nodes).
1) We now print the number of DbgValues that are mapped to each
SDNode.
2) Removed duplicated printing of DebugLoc (nowadays DebugLoc is
printed also when not using -dag-dump-verbose).
3) Renamed SDDbgValue::dump to SDDbgValue::print, and added a
new SDDbgValue::dump that will start a new line after calling
print.
4) SDDbgValue::print now prints "Order", and it also prints
some additional information when kind is CONST/FRAMEIX/VREG.
5) SelectionDAG::dump() now dumps all SDDbgValue nodes after
the list of SDNodes (both "regular" and "ByVal" SDDbgValue:s).
Invalidated nodes are not printed.
6) Prohibit inline printing of SDNode operands that has SDDbgValue
nodes associated to them.
Reviewers: jmorse, aprantl
Reviewed By: aprantl
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D56793
llvm-svn: 351581
Kelvin Li [Fri, 18 Jan 2019 19:57:37 +0000 (19:57 +0000)]
[OPENMP][DOCS] Release notes/OpenMP support updates, NFC.
Differential Revision: https://reviews.llvm.org/D56733
llvm-svn: 351580
Vladimir Stefanovic [Fri, 18 Jan 2019 19:54:51 +0000 (19:54 +0000)]
[mips] Add '-mrelax-pic-calls', '-mno-relax-pic-calls'
These two options enable/disable emission of R_{MICRO}MIPS_JALR fixups along
with PIC calls. The linker may then try to turn PIC calls into direct jumps.
By default, these fixups do get emitted by the backend, use
'-mno-relax-pic-calls' to omit them.
Differential revision: https://reviews.llvm.org/D56878
llvm-svn: 351579
Sanjin Sijaric [Fri, 18 Jan 2019 19:34:20 +0000 (19:34 +0000)]
Fix the buildbot issue introduced by r351421
The EXPENSIVE_CHECK x86_64 Windows buildbot is failing due to this change. Fix
the map access.
llvm-svn: 351577
Erich Keane [Fri, 18 Jan 2019 19:31:54 +0000 (19:31 +0000)]
[NFC] Fix wParentheses warning in ASTContext getFixedPointSemantics
Change-Id: I862f00a548236872fe24f7da8eb2bf7917e123ff
llvm-svn: 351576
George Karpenkov [Fri, 18 Jan 2019 19:24:55 +0000 (19:24 +0000)]
Revert "Fix failing MSan bots"
This reverts commit
2cedaaef383d8d6142046074ffebc2bb5a914778.
Revert with a fix.
llvm-svn: 351575
Mandeep Singh Grang [Fri, 18 Jan 2019 18:53:48 +0000 (18:53 +0000)]
[GlobalISel] Change to range-based invocation of llvm::sort
llvm-svn: 351574
Mandeep Singh Grang [Fri, 18 Jan 2019 18:45:26 +0000 (18:45 +0000)]
[clang] Change to range-based invocation of llvm::sort
llvm-svn: 351573
Daniel Sanders [Fri, 18 Jan 2019 18:40:35 +0000 (18:40 +0000)]
[adt] Twine(nullptr) derefs the nullptr. Add a deleted Twine(std::nullptr_t)
Summary:
nullptr can implicitly convert to Twine as Twine(nullptr) in which case it
resolves to Twine(const char *). This constructor derefs the pointer and
therefore doesn't work. Add a Twine(std::nullptr_t) = delete to make it a
compile time error.
It turns out that in-tree usage of Twine(nullptr) is confined to a single
private method in IRBuilder where foldConstant(... const Twine &Name = nullptr)
and this method is only ever called with an explicit Name argument as making it
a mandatory argument doesn't cause compile-time or run-time errors.
Reviewers: jyknight
Reviewed By: jyknight
Subscribers: dexonsmith, kristina, llvm-commits
Differential Revision: https://reviews.llvm.org/D56870
llvm-svn: 351572
Florian Hahn [Fri, 18 Jan 2019 18:37:38 +0000 (18:37 +0000)]
[SelectionDAG] Split very large token factors for chained stores to 64k chunks.
Similar to D55073. Without this change, the DAG combiner crashes on code
with more than 64k of stores in a single basic block that form parallelizable
chains.
No test case, as it would be very IR file.
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D56740
llvm-svn: 351571
Craig Topper [Fri, 18 Jan 2019 18:22:26 +0000 (18:22 +0000)]
[X86] Lower avx2/avx512f gather intrinsics to X86MaskedGatherSDNode instead of going directly to MachineSDNode.:
This sends these intrinsics through isel in a much more normal way. This should allow addressing mode matching in isel to make better use of the displacement field.
Differential Revision: https://reviews.llvm.org/D56827
llvm-svn: 351570
Jonas Toth [Fri, 18 Jan 2019 18:03:11 +0000 (18:03 +0000)]
[clang-tidy] add reproducer for PR39949 into test-suite
Summary:
The underlying issue is fixed in https://reviews.llvm.org/D56444
and this test ensures the issue does not creep back into our
code-base.
Reviewers: alexfh, aaron.ballman, hokein, hwright
Reviewed By: aaron.ballman
Subscribers: xazax.hun, cfe-commits
Differential Revision: https://reviews.llvm.org/D56918
llvm-svn: 351569
Craig Topper [Fri, 18 Jan 2019 17:51:51 +0000 (17:51 +0000)]
[X86] Only define _XCR_XFEATURE_ENABLED_MASK in xsaveintrin.h when _MSC_VER is defined. Remove from intrin.h.
I think this was my intention when I added it xsaveintrin.h
llvm-svn: 351568
Florian Hahn [Fri, 18 Jan 2019 17:36:22 +0000 (17:36 +0000)]
[LCSSA] Skip blocks in sub-loops when scanning for uses.
Summary:
Scanning blocks in sub-loops for uses is unnecessary, as they were
already handled while dealing with the containing sub-loop.
This speeds up LCSSA for highly nested loops. For the test case in PR37202, it
halves the time spent in LCSSA. In cases were we won't be able to skip
any blocks, the additional lookup should be negligible.
Time-passes without this patch for test case from PR37202:
Total Execution Time: 48.5505 seconds (48.5511 wall clock)
---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name ---
10.0822 ( 21.0%) 0.1406 ( 27.0%) 10.2228 ( 21.1%) 10.2228 ( 21.1%) Loop-Closed SSA Form Pass
10.0417 ( 20.9%) 0.1467 ( 28.2%) 10.1884 ( 21.0%) 10.1890 ( 21.0%) Loop-Closed SSA Form Pass #2
4.2703 ( 8.9%) 0.0040 ( 0.8%) 4.2742 ( 8.8%) 4.2742 ( 8.8%) Unswitch loops
2.7376 ( 5.7%) 0.0229 ( 4.4%) 2.7605 ( 5.7%) 2.7611 ( 5.7%) Loop-Closed SSA Form Pass #5
2.7332 ( 5.7%) 0.0214 ( 4.1%) 2.7546 ( 5.7%) 2.7546 ( 5.7%) Loop-Closed SSA Form Pass #3
2.7088 ( 5.6%) 0.0230 ( 4.4%) 2.7319 ( 5.6%) 2.7324 ( 5.6%) Loop-Closed SSA Form Pass #4
2.6855 ( 5.6%) 0.0236 ( 4.5%) 2.7091 ( 5.6%) 2.7090 ( 5.6%) Loop-Closed SSA Form Pass #6
2.1648 ( 4.5%) 0.0018 ( 0.4%) 2.1666 ( 4.5%) 2.1664 ( 4.5%) Unroll loops
1.8371 ( 3.8%) 0.0009 ( 0.2%) 1.8379 ( 3.8%) 1.8380 ( 3.8%) Value Propagation
1.8149 ( 3.8%) 0.0021 ( 0.4%) 1.8170 ( 3.7%) 1.8169 ( 3.7%) Loop Invariant Code Motion
1.6755 ( 3.5%) 0.0226 ( 4.3%) 1.6981 ( 3.5%) 1.6980 ( 3.5%) Loop-Closed SSA Form Pass #7
Time-passes with this patch
Total Execution Time: 29.9285 seconds (29.9276 wall clock)
---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name ---
5.2786 ( 17.7%) 0.0021 ( 1.2%) 5.2806 ( 17.6%) 5.2808 ( 17.6%) Unswitch loops
4.3739 ( 14.7%) 0.0303 ( 18.1%) 4.4042 ( 14.7%) 4.4042 ( 14.7%) Loop-Closed SSA Form Pass
4.2658 ( 14.3%) 0.0192 ( 11.5%) 4.2850 ( 14.3%) 4.2851 ( 14.3%) Loop-Closed SSA Form Pass #2
2.2307 ( 7.5%) 0.0013 ( 0.8%) 2.2320 ( 7.5%) 2.2318 ( 7.5%) Loop Invariant Code Motion
2.0888 ( 7.0%) 0.0012 ( 0.7%) 2.0900 ( 7.0%) 2.0897 ( 7.0%) Unroll loops
1.6761 ( 5.6%) 0.0013 ( 0.8%) 1.6774 ( 5.6%) 1.6774 ( 5.6%) Value Propagation
1.3686 ( 4.6%) 0.0029 ( 1.8%) 1.3716 ( 4.6%) 1.3714 ( 4.6%) Induction Variable Simplification
1.1457 ( 3.8%) 0.0010 ( 0.6%) 1.1468 ( 3.8%) 1.1468 ( 3.8%) Loop-Closed SSA Form Pass #4
1.1384 ( 3.8%) 0.0005 ( 0.3%) 1.1389 ( 3.8%) 1.1389 ( 3.8%) Loop-Closed SSA Form Pass #6
1.1360 ( 3.8%) 0.0027 ( 1.6%) 1.1387 ( 3.8%) 1.1387 ( 3.8%) Loop-Closed SSA Form Pass #5
1.1331 ( 3.8%) 0.0010 ( 0.6%) 1.1341 ( 3.8%) 1.1340 ( 3.8%) Loop-Closed SSA Form Pass #3
Reviewers: davide, efriedma, mzolotukhin
Reviewed By: davide, efriedma
Subscribers: hiraditya, dmgreen, llvm-commits
Differential Revision: https://reviews.llvm.org/D56848
llvm-svn: 351567
Ilya Biryukov [Fri, 18 Jan 2019 17:30:49 +0000 (17:30 +0000)]
[Support] Implement llvm::Registry::iterator via llvm_iterator_facade
Summary:
Among other things, this allows using STL algorithms like 'find_if' over
llvm::Registry.
Reviewers: sammccall
Reviewed By: sammccall
Subscribers: kristina, llvm-commits
Differential Revision: https://reviews.llvm.org/D56854
llvm-svn: 351566
Zola Bridges [Fri, 18 Jan 2019 17:20:46 +0000 (17:20 +0000)]
[clang][slh] add Clang attr no_speculative_load_hardening
Summary:
This attribute will allow users to opt specific functions out of
speculative load hardening. This compliments the Clang attribute
named speculative_load_hardening. When this attribute or the attribute
speculative_load_hardening is used in combination with the flags
-mno-speculative-load-hardening or -mspeculative-load-hardening,
the function level attribute will override the default during LLVM IR
generation. For example, in the case, where the flag opposes the
function attribute, the function attribute will take precendence.
The sticky inlining behavior of the speculative_load_hardening attribute
may cause a function with the no_speculative_load_hardening attribute
to be tagged with the speculative_load_hardening tag in
subsequent compiler phases which is desired behavior since the
speculative_load_hardening LLVM attribute is designed to be maximally
conservative.
If both attributes are specified for a function, then an error will be
thrown.
Reviewers: chandlerc, echristo, kristof.beyls, aaron.ballman
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D54909
llvm-svn: 351565
Greg Clayton [Fri, 18 Jan 2019 17:06:01 +0000 (17:06 +0000)]
Make sure to fill in the compiler register number so when we try to backtrace using EH frame, it works.
Prior to this, backtraces could fail due to not being able to convert a EH frame register number to LLDB register number.
llvm-svn: 351564
Ilya Biryukov [Fri, 18 Jan 2019 17:04:26 +0000 (17:04 +0000)]
[clangd] Make background index less chatty
Summary:
It is producing too much input in non-verbose mode,
i.e. a message per indexed file
Reviewers: sammccall, kadircet
Reviewed By: sammccall
Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits
Differential Revision: https://reviews.llvm.org/D56915
llvm-svn: 351563
Neil Henning [Fri, 18 Jan 2019 16:39:27 +0000 (16:39 +0000)]
[AMDGPU] Add some missing always-uniform values.
This commit adds some missing intrinsics into the isAlwaysUniform list
for the AMDGPU backend.
Differential Revision: https://reviews.llvm.org/D56845
llvm-svn: 351562
Nirav Dave [Fri, 18 Jan 2019 16:03:08 +0000 (16:03 +0000)]
Revert "Clang side support for @cc assembly operands."
llvm-svn: 351561
Simon Pilgrim [Fri, 18 Jan 2019 15:57:59 +0000 (15:57 +0000)]
[LTO] Change test/tools/lto/no-bitcode.s requirement from arm to aarch64
Set the test to properly require aarch64 instead of arm. Otherwise, this test fails with LLVM_TARGETS_TO_BUILD='ARM;X86'
bin/llvm-mc: : error: unable to get target for 'arm64-apple-ios7.0.0'
Committed on behalf of @easyaspi314 (Devin)
Differential Revision: https://reviews.llvm.org/D56472
llvm-svn: 351560
Nirav Dave [Fri, 18 Jan 2019 15:57:23 +0000 (15:57 +0000)]
Clang side support for @cc assembly operands.
llvm-svn: 351559
Nirav Dave [Fri, 18 Jan 2019 15:57:13 +0000 (15:57 +0000)]
[SelectionDAGBuilder] Cleanup InlineAsm Output generation. NFCI.
Defer inline asm's output fixup work until after we've generated the
inline asm node itself. Remove StoresToEmit, IndirectStoresToEmit, and
RetValRegs in favor of using ConstraintOperands.
llvm-svn: 351558
Sanjay Patel [Fri, 18 Jan 2019 15:55:21 +0000 (15:55 +0000)]
[x86] simplify code for SDValue.getOperand(); NFC
llvm-svn: 351557
Clement Courbet [Fri, 18 Jan 2019 15:26:14 +0000 (15:26 +0000)]
Revert r351529 "[llvm-objdump][NFC] Improve readability."
msan errors in ELF/strip-all.s.
llvm-svn: 351556
Dmitry Preobrazhensky [Fri, 18 Jan 2019 15:17:17 +0000 (15:17 +0000)]
[AMDGPU][MC][GFX8+][DISASSEMBLER] Corrected 1/2pi value for 64-bit operands
See bug 39332: https://bugs.llvm.org/show_bug.cgi?id=39332
Reviewers: artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D56794
llvm-svn: 351555
Simon Pilgrim [Fri, 18 Jan 2019 14:48:36 +0000 (14:48 +0000)]
[TTI] Use ConcreteTTI cast in getIntrinsicInstrCost Type variant. NFCI.
Same as we do in the Value variant.
llvm-svn: 351554
Clement Courbet [Fri, 18 Jan 2019 14:20:13 +0000 (14:20 +0000)]
Reland r351529 "[llvm-objdump][NFC] Improve readability."
`SectionSymbol*` is cast from `void*` to
`std::tuple<uint64_t, StringRef, uint8_t>` in AMDGPUSymbolizer, so it has to
*be* one, not *act like* one.
llvm-svn: 351553
Florian Hahn [Fri, 18 Jan 2019 14:05:59 +0000 (14:05 +0000)]
[SelectionDAG] Add getTokenFactor, which splits nodes with > 64k operands.
This functionality is required at multiple places which potentially
create large operand lists, like SelectionDAGBuilder or DAGCombiner.
Differential Revision: https://reviews.llvm.org/D56739
llvm-svn: 351552
James Henderson [Fri, 18 Jan 2019 13:58:41 +0000 (13:58 +0000)]
Add __[_[_]]Z demangling to new common demangle function
This is a follow-up to r351448. It adds support for other _*Z extensions
of the Itanium demanling, to the newly available demangle function
heuristic.
Reviewed by: erik.pilkington, rupprecht, grimar
Differential Revision: https://reviews.llvm.org/D56855
llvm-svn: 351551
Erich Keane [Fri, 18 Jan 2019 13:58:10 +0000 (13:58 +0000)]
Fix test failure from r351495
The test has problems due to some platforms having a different type for
ptrdiff_t, so the error message is different. The error message doesn't
matter to the test for anything other than an incompatible intger to
pointer conversion, so this patch removes the integral type from the
expected message.
Change-Id: I80e786f9b80268163813774bbf25a9ca25b6c60c
llvm-svn: 351550
Dmitry Preobrazhensky [Fri, 18 Jan 2019 13:57:43 +0000 (13:57 +0000)]
[AMDGPU][MC] Disabled use of 2 different literals with SOP2/SOPC instructions
See bug 39319: https://bugs.llvm.org/show_bug.cgi?id=39319
Reviewers: artem.tamazov, arsenm, rampitec
Differential Revision: https://reviews.llvm.org/D56847
llvm-svn: 351549
Pavel Labath [Fri, 18 Jan 2019 12:52:03 +0000 (12:52 +0000)]
[ADT] Add streaming operators for llvm::Optional
Summary:
The operators simply print the underlying value or "None".
The trickier part of this patch is making sure the streaming operators
work even in unit tests (which was my primary motivation, though I can
also see them being useful elsewhere). Since the stream operator was a
template, implicit conversions did not kick in, and our gtest glue code
was explicitly introducing an implicit conversion to make sure other
implicit conversions do not kick in :P. I resolve that by specializing
llvm_gtest::StreamSwitch for llvm:Optional<T>.
Reviewers: sammccall, dblaikie
Reviewed By: sammccall
Subscribers: mgorny, dexonsmith, kristina, llvm-commits
Differential Revision: https://reviews.llvm.org/D56795
llvm-svn: 351548
George Rimar [Fri, 18 Jan 2019 12:01:59 +0000 (12:01 +0000)]
[llvm-objdump] - Dump the archive headers when -all-headers is specified.
When -all-headers is given it is supposed to dump all headers,
but now it skips the archive headers for no reason.
The patch fixes that.
Differential revision: https://reviews.llvm.org/D56780
llvm-svn: 351547
Anastasia Stulova [Fri, 18 Jan 2019 11:38:16 +0000 (11:38 +0000)]
[OpenCL] Fix overloading ranking rules for addrspace conversions.
Extend ranking to work with address spaces correctly when
resolving overloads.
Differential Revision: https://reviews.llvm.org/D56735
llvm-svn: 351546
George Rimar [Fri, 18 Jan 2019 11:33:26 +0000 (11:33 +0000)]
[llvm-objdump] - Move getRelocationValueString and dependenices out of the llvm-objdump.cpp
getRelocationValueString is a dispatcher function that calls the
corresponding ELF/COFF/Wasm/MachO implementations
that currently live in the llvm-objdump.cpp file.
These implementations better be moved to ELFDump.cpp,
COFFDump.cpp and other corresponding files, to move platform specific
implementation out from the common logic.
The patch does that. Also, I had to move ToolSectionFilter helper
and SectionFilterIterator, SectionFilter to a header to make them
available across the objdump code.
Differential revision: https://reviews.llvm.org/D56842
llvm-svn: 351545
Dylan McKay [Fri, 18 Jan 2019 11:27:38 +0000 (11:27 +0000)]
[AVR] Fix codegen bug in 16-bit loads
Prior to this patch, the AVR::LDWRdPtr instruction was always lowered to
instructions of this pattern:
ld $GPR8, [PTR:XYZ]+
ld $GPR8, [PTR]+1
This has a problem; the [PTR] is incremented in-place once, but never
decremented.
Future uses of the same pointer will use the now clobbered value,
leading to the pointer being incorrect by an offset of one.
This patch modifies the expansion code of the LDWRdPtr pseudo
instruction so that the pointer variable is not silently clobbered in
future uses in the same live range.
Patch by Keshav Kini.
llvm-svn: 351544
George Rimar [Fri, 18 Jan 2019 10:41:26 +0000 (10:41 +0000)]
[llvm-objdump] - Show aliases in -help.
Currently llvm-objdump is inconsistent.
When -help is specified it shows no aliases except two.
Aliases are shown with -help-hidden though.
GNU objdump also prints them by default.
This patch does a change to always show all aliases
when -help is given.
Differential revision: https://reviews.llvm.org/D56853
llvm-svn: 351542
Pavel Labath [Fri, 18 Jan 2019 10:37:04 +0000 (10:37 +0000)]
Breakpad: Extract parsing code into a separate file
Summary:
This centralizes parsing of breakpad records, which was previously
spread out over ObjectFileBreakpad and SymbolFileBreakpad.
For each record type X there is a separate breakpad::XRecord class, and
an associated parse function. The classes just store the information in
the breakpad records in a more accessible form. It is up to the users to
determine what to do with that data.
This separation also made it possible to write some targeted tests for
the parsing code, which was previously unaccessible, so I write a couple
of those too.
Reviewers: clayborg, lemo, zturner
Reviewed By: clayborg
Subscribers: mgorny, fedor.sergeev, lldb-commits
Differential Revision: https://reviews.llvm.org/D56844
llvm-svn: 351541
Alex Bradbury [Fri, 18 Jan 2019 10:13:07 +0000 (10:13 +0000)]
[analyzer] Unbreak building of SymbolReaperTest true BUILD_SHARED_LIBS=True
Extra dependencies need to be listed for StaticAnalysisTests in order for
linking to succeed when BUILD_SHARED_LIBS=True.
llvm-svn: 351540
Dylan McKay [Fri, 18 Jan 2019 10:11:33 +0000 (10:11 +0000)]
[AVR] Fix the inst-cbr test
Now that the CBR alias has lower priority than ANDI, the assembly
printer uses ANDI instead.
Original broken in r351526.
llvm-svn: 351539
Florian Hahn [Fri, 18 Jan 2019 10:00:38 +0000 (10:00 +0000)]
[SelectionDAG] Add static getMaxNumOperands function to SDNode.
Summary:
Use this helper to make sure we use the same value at various places.
This will likely be needed at more places were we currently crash
because we use more operands than possible.
Also makes it easier to change in the future.
Reviewers: RKSimon, craig.topper, efriedma, aemerson
Reviewed By: RKSimon
Subscribers: hiraditya, arsenm, llvm-commits
Differential Revision: https://reviews.llvm.org/D56859
llvm-svn: 351537
Clement Courbet [Fri, 18 Jan 2019 09:40:19 +0000 (09:40 +0000)]
Revert r351529 "[llvm-objdump][NFC] Improve readability."
Breaks labels-branch.s
llvm-svn: 351534
Kadir Cetinkaya [Fri, 18 Jan 2019 09:00:31 +0000 (09:00 +0000)]
[tooling] Add a new argument adjuster for deleting plugin related command line args
Summary:
Currently both clangd and clang-tidy makes use of this mechanism so
putting it into tooling so that all tools can make use of it.
Reviewers: ilya-biryukov, sammccall
Subscribers: ioeric, cfe-commits
Differential Revision: https://reviews.llvm.org/D56856
llvm-svn: 351531
Clement Courbet [Fri, 18 Jan 2019 08:59:39 +0000 (08:59 +0000)]
[llvm-objdump][NFC] Improve readability.
Summary:
Introduce a `struct SectionSymbol` instead of
`tuple<uint64_t, StringRef, uint8>`.
Reviewers: jhenderson, davide
Subscribers: rupprecht, llvm-commits
Differential Revision: https://reviews.llvm.org/D56858
llvm-svn: 351529
Vlad Tsyrklevich [Fri, 18 Jan 2019 08:43:22 +0000 (08:43 +0000)]
Fix failing MSan bots
Revert r351508-351514, this block of changes introduced a consistent
MSan failure on the sanitizer bots.
llvm-svn: 351528
Shiva Chen [Fri, 18 Jan 2019 08:36:06 +0000 (08:36 +0000)]
[ScheduleDAGRRList] Do not preschedule the node has ADJCALLSTACKDOWN parent
We should not pre-scheduled the node has ADJCALLSTACKDOWN parent,
or else, when bottom-up scheduling, ADJCALLSTACKDOWN and
ADJCALLSTACKUP may hold CallResource too long and make other
calls can't be scheduled. If there's no other available node
to schedule, the scheduler will try to rename the register by
creating copy to avoid the conflict which will fail because
CallResource is not a real physical register.
llvm-svn: 351527
Dylan McKay [Fri, 18 Jan 2019 07:31:34 +0000 (07:31 +0000)]
[AVR] Rewrite the CBRRdK instruction as an alias of ANDIRdK
The CBR instruction is just an ANDI instruction with the immediate
complemented.
Because of this, prior to this change TableGen would warn due to a
decoding conflict.
This commit fixes the existing compilation warning:
===============
[423/492] Building AVRGenDisassemblerTables.inc...
Decoding Conflict:
0111............
01..............
................
ANDIRdK 0111____________
CBRRdK 0111____________
================
After this commit, there are no more decoding conflicts in the AVR
backend's instruction definitions.
Thanks to Eli F for pointing me torward `t2_so_imm_not` as an example of
how to perform a complement in an instruction alias.
Fixes BugZilla PR38802.
llvm-svn: 351526
Hsiangkai Wang [Fri, 18 Jan 2019 07:17:09 +0000 (07:17 +0000)]
[CodeGen] Fix bugs in LiveDebugVariables when debug labels are generated.
Remove DBG_LABELs in LiveDebugVariables and generate them in
VirtRegRewriter.
This bug is reported in
https://bugs.chromium.org/p/chromium/issues/detail?id=898152.
Differential Revision: https://reviews.llvm.org/D54465
llvm-svn: 351525
Jonas Devlieghere [Fri, 18 Jan 2019 07:17:05 +0000 (07:17 +0000)]
[Reproducers] Fix reproducers unittest.
Fix fallout from r351501 in the reproducer unittest.
llvm-svn: 351524
Dylan McKay [Fri, 18 Jan 2019 06:10:41 +0000 (06:10 +0000)]
[AVR] Expand 8/16-bit multiplication to libcalls on MCUs that don't have hardware MUL
This change modifies the LLVM ISel lowering settings so that
8-bit/16-bit multiplication is expanded to calls into the compiler
runtime library if the MCU being targeted does not support
multiplication in hardware.
Before this, MUL instructions would be generated on CPUs like the
ATtiny85, triggering a CPU reset due to an illegal instruction at
runtime.
First raised in https://github.com/avr-rust/rust/issues/124.
llvm-svn: 351523
Craig Topper [Fri, 18 Jan 2019 06:06:03 +0000 (06:06 +0000)]
[X86] Add test cases showing failure to fold a global variable address into the gather addressing mode when using the target specific intrinsics. NFC
llvm-svn: 351522
Craig Topper [Fri, 18 Jan 2019 06:06:01 +0000 (06:06 +0000)]
[X86] Change avx512-gather-scatter-intrin.ll to use x86_64-unknown-unknown instead of x86_64-apple-darwin. NFC
Will help with an upcoming patch.
llvm-svn: 351521
Max Kazantsev [Fri, 18 Jan 2019 04:57:32 +0000 (04:57 +0000)]
Re-enable terminator folding in LoopSimplifyCFG: underlying bugs fixed
llvm-svn: 351520
Nico Weber [Fri, 18 Jan 2019 04:09:30 +0000 (04:09 +0000)]
gn build: unbreak mac (and maybe win) after r351258, r351277
The check-hwasan build files assert that current_os == "linux" || current_os ==
"android", so pull it in only there.
ar is unused on mac, so don't set it in the stage2 toolchain. (It'd be nicer to
use llvm-libtool on mac instead of host libtool, but llvm-libtool doesn't seem
to understand the -no_warning_for_no_symbols flag.)
Differential Revision: https://reviews.llvm.org/D56898
llvm-svn: 351519
Chandler Carruth [Fri, 18 Jan 2019 03:57:39 +0000 (03:57 +0000)]
[PSTL] Convert license text file to use unix line endings, matching the
other licenses in the LLVM project.
llvm-svn: 351518
Xing GUO [Fri, 18 Jan 2019 03:56:37 +0000 (03:56 +0000)]
[DOCS] it it => it
Summary: it it => it for LLVM Language Reference Manual
Reviewers: aaron.ballman, Higuoxing, liangdzou
Reviewed By: aaron.ballman, Higuoxing, liangdzou
Subscribers: Higuoxing, llvm-commits
Differential Revision: https://reviews.llvm.org/D56533
llvm-svn: 351517
Nico Weber [Fri, 18 Jan 2019 03:38:53 +0000 (03:38 +0000)]
gn build: Merge r351499
llvm-svn: 351516
Nico Weber [Fri, 18 Jan 2019 03:36:04 +0000 (03:36 +0000)]
mac: Correctly disable tools/lto tests when building with LLVM_ENABLE_PIC=OFF
llvm/tools sets LLVM_TOOL_LTO_BUILD to Off if LLVM_ENABLE_PIC=OFF, but that's
not visible in llvm/test.
r289662 added the llvm_tool_lto_build lit parameter, there the intent was to
use it with an explicit -DLLVM_TOOL_LTO_BUILD=OFF, which is visible globally.
On the review for that (D27739), a mild preference was expressed for using a
lit parameter over checking the existence of libLTO.dylib. Since that works
with the LLVM_ENABLE_PIC=OFF case too and since it matches what we do for the
gold plugin, switch to that approach.
Differential Revision: https://reviews.llvm.org/D56805
llvm-svn: 351515
George Karpenkov [Fri, 18 Jan 2019 03:13:53 +0000 (03:13 +0000)]
[analyzer] Introduce proper diagnostic for freeing unowned object
Insert a note when the object becomes not (exclusively) owned.
Differential Revision: https://reviews.llvm.org/D56891
llvm-svn: 351514
George Karpenkov [Fri, 18 Jan 2019 03:13:40 +0000 (03:13 +0000)]
[analyzer] Extend the PathDiagnosticLocation constructor to handle CallExitEnd
Differential Revision: https://reviews.llvm.org/D56890
llvm-svn: 351513
George Karpenkov [Fri, 18 Jan 2019 03:13:27 +0000 (03:13 +0000)]
[analyzer] [NFC] Clean up messy handling of bug categories in RetainCountChecker
https://reviews.llvm.org/D56887
llvm-svn: 351512
George Karpenkov [Fri, 18 Jan 2019 03:13:14 +0000 (03:13 +0000)]
[analyzer] const-ify reference to bug type used in BugReporter
Differential Revision: https://reviews.llvm.org/D56885
llvm-svn: 351511
George Karpenkov [Fri, 18 Jan 2019 03:13:01 +0000 (03:13 +0000)]
[analyzer] Extend BugType constructor to accept "SuppressOnSink" as a parameter
Differential Revision: https://reviews.llvm.org/D56884
llvm-svn: 351510
George Karpenkov [Fri, 18 Jan 2019 03:12:48 +0000 (03:12 +0000)]
[analyzer] [RetainCountChecker] Produce a correct message when OSTypeAlloc is used
Differential Revision: https://reviews.llvm.org/D56820
llvm-svn: 351509
George Karpenkov [Fri, 18 Jan 2019 03:12:35 +0000 (03:12 +0000)]
[analyzer] [RetainCountChecker] Smart pointer support.
rdar://
47323216
Differential Revision: https://reviews.llvm.org/D56817
llvm-svn: 351508
Thomas Lively [Fri, 18 Jan 2019 02:47:48 +0000 (02:47 +0000)]
[WebAssembly] Add languages from debug info to producers section
Reviewers: aheejin, dschuff, sbc100
Subscribers: aprantl, jgravelle-google, hiraditya, sunfish
Differential Revision: https://reviews.llvm.org/D56889
llvm-svn: 351507
Vitaly Buka [Fri, 18 Jan 2019 01:53:37 +0000 (01:53 +0000)]
[safestack] Remove dependency of SafeStack on sanitizer_common
Summary:
SafeStack needs just few functions from there, but sanitizer_common
introduces conflicts with other runtimes, e.g. SCUDO.
Reviewers: eugenis, kcc, cryptoad
Subscribers: mgorny, krytarowski, fedor.sergeev, jfb, llvm-commits
Differential Revision: https://reviews.llvm.org/D56886
llvm-svn: 351506
Artem Dergachev [Fri, 18 Jan 2019 01:37:14 +0000 (01:37 +0000)]
[analyzer] A speculative fix for buildbot failures in the new SymbolReaperTest.
I expect an xvalue to be easier to convert.
llvm-svn: 351505
Brad Smith [Fri, 18 Jan 2019 01:36:58 +0000 (01:36 +0000)]
Use llvm::VersionTuple instead of manual version marshalling
llvm-svn: 351504
Vitaly Buka [Fri, 18 Jan 2019 01:36:09 +0000 (01:36 +0000)]
[safestack] Replace statics with unnamed namespace
Reviewers: eugenis
Subscribers: jfb, llvm-commits
Differential Revision: https://reviews.llvm.org/D56888
llvm-svn: 351503
Mandeep Singh Grang [Fri, 18 Jan 2019 01:06:46 +0000 (01:06 +0000)]
[polly] Change to range-based invocation of llvm::sort
llvm-svn: 351502
Jonas Devlieghere [Fri, 18 Jan 2019 01:04:59 +0000 (01:04 +0000)]
[Reproducers] Refactor reproducer info
In the original reproducer design, I expected providers to be more
dynamic than they turned out. For example, we don't have any instances
where one provider has multiple files. Additionally, I expected there to
be less locality between capture and replay, with the provider being
defined in one place and the replay code to live in another. Both
contributed to the design of the provider info.
This patch refactors the reproducer info to be something static. This
means less magic strings and better type checking. The new design still
allows for the capture and replay code to live in different places as
long as they both have access to the new statically defined info class.
I didn't completely get rid of the index, because it is useful for (1)
sanity checking and (2) knowing what files are used by the reproducer.
Differential revision: https://reviews.llvm.org/D56814
llvm-svn: 351501
Artem Dergachev [Fri, 18 Jan 2019 00:16:25 +0000 (00:16 +0000)]
[analyzer] MoveChecker: Add one more common resetting method, "append".
This is especially crucial for reports related to use-after-move of
standard library objects.
rdar://problem/
47338505
Differential Revision: https://reviews.llvm.org/D56824
llvm-svn: 351500