OSDN Git Service
Simon Pilgrim [Wed, 22 May 2019 11:20:52 +0000 (11:20 +0000)]
[VirtualFileSystem] Fix uninitialized variable warning. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361371
91177308-0d34-0410-b5e6-
96231b3b80d8
Sjoerd Meijer [Wed, 22 May 2019 10:40:26 +0000 (10:40 +0000)]
[TargetMachine] error message unsupported code model
When the tiny code model is requested for a target machine that does not
support this, we get an error message (which is nice) but also this diagnostic
and request to submit a bug report:
fatal error: error in backend: Target does not support the tiny CodeModel
[Inferior 2 (process 31509) exited with code 0106]
clang-9: error: clang frontend command failed with exit code 70 (use -v to see invocation)
(gdb) clang version 9.0.0 (http://llvm.org/git/clang.git
29994b0c63a40f9c97c664170244a7bba5ecc15e) (http://llvm.org/git/llvm.git
95606fdf91c2d63a931e865f4b78b2e9828ddc74)
Target: arm-arm-none-eabi
Thread model: posix
clang-9: note: diagnostic msg: PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
clang-9: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-9: note: diagnostic msg: /tmp/tiny-dfe1a2.c
clang-9: note: diagnostic msg: /tmp/tiny-dfe1a2.sh
clang-9: note: diagnostic msg:
But this is not a bug, this is a feature. :-) Not only is this not a bug, this
is also pretty confusing. This patch causes just to print the fatal error and
not the diagnostic:
fatal error: error in backend: Target does not support the tiny CodeModel
Differential Revision: https://reviews.llvm.org/D62236
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361370
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Wed, 22 May 2019 09:49:54 +0000 (09:49 +0000)]
[llvm-dlltool] Respect NONAME keyword
This adds proper handling of the NONAME-keyword, which makes llvm-dlltool
generate an import using the ordinal instead of the name.
Patch by by Jannik Vogel, test added by Stefan Schmidt.
Differential Revision: https://reviews.llvm.org/D62175
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361367
91177308-0d34-0410-b5e6-
96231b3b80d8
Clement Courbet [Wed, 22 May 2019 09:45:40 +0000 (09:45 +0000)]
Re-land r361257 "[MergeICmps][NFC] Make BCEAtom move-only.""
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361366
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Afanasyev [Wed, 22 May 2019 07:41:34 +0000 (07:41 +0000)]
[MIR] Add simple PRE pass to MachineCSE
This is the second part of the commit fixing PR38917 (hoisting
partitially redundant machine instruction). Most of PRE (partitial
redundancy elimination) and CSE work is done on LLVM IR, but some of
redundancy arises during DAG legalization. Machine CSE is not enough
to deal with it. This simple PRE implementation works a little bit
intricately: it passes before CSE, looking for partitial redundancy
and transforming it to fully redundancy, anticipating that the next
CSE step will eliminate this created redundancy. If CSE doesn't
eliminate this, than created instruction will remain dead and eliminated
later by Remove Dead Machine Instructions pass.
The third part of the commit is supposed to refactor MachineCSE,
to make it more clear and to merge MachinePRE with MachineCSE,
so one need no rely on further Remove Dead pass to clear instrs
not eliminated by CSE.
First step: https://reviews.llvm.org/D54839
Fixes llvm.org/PR38917
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361356
91177308-0d34-0410-b5e6-
96231b3b80d8
Fangrui Song [Wed, 22 May 2019 07:29:59 +0000 (07:29 +0000)]
[PPC64] Parse -elfv1 -elfv2 when specified on target triple
Summary:
For big-endian powerpc64, the default ABI is ELFv1. OpenPower ABI ELFv2 is supported when -mabi=elfv2 is specified. FreeBSD support for PowerPC64 ELFv2 ABI with LLVM is in progress[1]. This patch adds an alternative way to specify ELFv2 ABI on target triple [2].
The following results are expected:
ELFv1 when using:
-target powerpc64-unknown-freebsd12.0
-target powerpc64-unknown-freebsd12.0 -mabi=elfv1
-target powerpc64-unknown-freebsd12.0-elfv1
ELFv2 when using:
-target powerpc64-unknown-freebsd12.0 -mabi=elfv2
-target powerpc64-unknown-freebsd12.0-elfv2
[1] https://wiki.freebsd.org/powerpc/llvm-elfv2
[2] https://clang.llvm.org/docs/CrossCompilation.html
Patch by Alfredo Dal'Ava JĂșnior!
Differential Revision: https://reviews.llvm.org/D61950
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361355
91177308-0d34-0410-b5e6-
96231b3b80d8
Sjoerd Meijer [Wed, 22 May 2019 07:10:27 +0000 (07:10 +0000)]
[AArch64] Subtarget crypto extension defaults
The Armv8.2-A crypto extensions all defaulted to true, but should default to
false, like all the other extensions.
Differential Revision: https://reviews.llvm.org/D62180
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361354
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikita Popov [Wed, 22 May 2019 06:47:06 +0000 (06:47 +0000)]
[X86] Don't compare i128 through vector if construction not cheap (PR41971)
Fix for https://bugs.llvm.org/show_bug.cgi?id=41971. Make the
combineVectorSizedSetCCEquality() transform more conservative by
checking that the bitcast to the vector type will be cheap/free
for both operands. I'm considering it cheap if it's a constant,
a load or already a vector. I've dropped the explicit check for
f128 because it should fall out naturally (in the cases where
it'd be detrimental).
Differential Revision: https://reviews.llvm.org/D62220
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361352
91177308-0d34-0410-b5e6-
96231b3b80d8
Serge Guelton [Wed, 22 May 2019 06:30:46 +0000 (06:30 +0000)]
Properly categorize llvm-objdump options
Filters out noise, and distinguish Mach-O related options from others.
Differential Revision: https://reviews.llvm.org/D62195
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361351
91177308-0d34-0410-b5e6-
96231b3b80d8
Seiya Nuta [Wed, 22 May 2019 04:48:26 +0000 (04:48 +0000)]
[NFC] Remove a blank line (test commit)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361349
91177308-0d34-0410-b5e6-
96231b3b80d8
Chen Zheng [Wed, 22 May 2019 03:17:39 +0000 (03:17 +0000)]
[PowerPC] use meaningful name for displacement form aligned with x-form - NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361347
91177308-0d34-0410-b5e6-
96231b3b80d8
Chen Zheng [Wed, 22 May 2019 02:57:31 +0000 (02:57 +0000)]
[PowerPC] [ISEL] select x-form instruction for unaligned offset
Differential Revision: https://reviews.llvm.org/D62173
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361346
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Wed, 22 May 2019 00:56:42 +0000 (00:56 +0000)]
[Docs] Increase Doxygen cache size
Summary:
When building Doxygen docs for llvm and clang, it helpfully prints a warning at
the end noting that the `LOOKUP_CACHE_SIZE` value was too small to keep all
symbols in memory.
By increasing to the size it recommends, Doxygen builds have greatly improved
performance. On my machine, time to run `doxygen-llvm` changes from 34 minutes
to 22 minutes, which is a decent amount of time saved by changing a single
number.
Reviewed By: hintonda
Patch by J. Ryan Stinnett!
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D62138
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361343
91177308-0d34-0410-b5e6-
96231b3b80d8
Pengfei Wang [Wed, 22 May 2019 00:50:21 +0000 (00:50 +0000)]
[X86] [CET] Deal with return-twice function such as vfork, setjmp when
CET-IBT enabled
Return-twice functions will indirectly jump after the caller's position.
So when CET-IBT is enable, we should make sure these is endbr*
instructions follow these Return-twice function caller. Like GCC does.
Patch by Xiang Zhang (xiangzhangllvm)
Differential Revision: https://reviews.llvm.org/D61881
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361342
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 22 May 2019 00:48:47 +0000 (00:48 +0000)]
[Docs] fix formatting for bullet list; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361341
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Wed, 22 May 2019 00:47:37 +0000 (00:47 +0000)]
[Analysis] Link library dependencies to Analysis plugins
These are needed to avoid undefined symbols which aren't satisfied
by Clang itself.
Differential Revision: https://reviews.llvm.org/D62174
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361340
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Wed, 22 May 2019 00:32:25 +0000 (00:32 +0000)]
[InstCombine] fold shuffles of insert_subvectors
This should be a valid exception to the general rule of not creating new shuffle masks in IR...
because we already do it. :)
Also, DAG combining/legalization will undo this by widening the shuffle back out if needed.
Explanation for how we already do this: SLP or vector source can create chains of insert/extract
as shown in 1 of the examples from PR16739:
https://godbolt.org/z/NlK7rA
https://bugs.llvm.org/show_bug.cgi?id=16739
And we expect instcombine or DAGCombine to clean that up by creating relatively simple shuffles.
Differential Revision: https://reviews.llvm.org/D62024
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361338
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 21 May 2019 23:23:16 +0000 (23:23 +0000)]
AMDGPU: Assume calls read exec
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361333
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 21 May 2019 23:23:12 +0000 (23:23 +0000)]
AMDGPU: Add some tests for inlineasm behavior
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361332
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 21 May 2019 23:23:10 +0000 (23:23 +0000)]
AMDGPU: Assume call pseudos are convergent
There should probably be nonconvergent versions, but my guess is it
doesn't matter in practice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361331
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Tue, 21 May 2019 23:23:05 +0000 (23:23 +0000)]
AMDGPU: Fix not marking new gfx10 SGPRs as CSRs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361330
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 21 May 2019 23:06:34 +0000 (23:06 +0000)]
[WebAssembly] Add the signature for the new llround builtin function
r360889 added new llround builtin functions. This patch adds their
signatures for the WebAssembly backend.
It also adds wasm32 support to utils/update_llc_test_checks.py, since
that's the script other targets are using for their testcases for this
feature.
Differential Revision: https://reviews.llvm.org/D62207
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361327
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 21 May 2019 22:07:53 +0000 (22:07 +0000)]
[ORC] Guarantee unique JITDylib names in lli, add usage notes to createJITDylib.
JITDylibs should have unique names. This patch adds code to lli to respect this
invariant (by refering to the exist JITDylib if a -jd <name> option is specified
more than once). It also adds usage notes to the doxygen comment for
createJITDylib method in ExecutionSession and LLJIT.
http://llvm.org/PR41937
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361322
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Lebedev [Tue, 21 May 2019 21:49:14 +0000 (21:49 +0000)]
[NFC][AMDGPU] Autogenerate llvm.amdgcn.s.barrier.ll test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361320
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Lebedev [Tue, 21 May 2019 21:49:10 +0000 (21:49 +0000)]
[NFC][X86] Autogenerate ragreedy-hoist-spill.ll test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361319
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Lebedev [Tue, 21 May 2019 21:49:05 +0000 (21:49 +0000)]
[NFC][Thumb2] Autogenerate thumb2-ldr_pre.ll test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361318
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 21 May 2019 21:45:24 +0000 (21:45 +0000)]
[InstCombine] add more tests for shuffle folding; NFC
As discussed in D62024, we want to limit any potential IR
transforms of shuffles to cases where we know the SDAG
conversion would result in equivalent patterns for these
IR variants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361317
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikita Popov [Tue, 21 May 2019 21:27:08 +0000 (21:27 +0000)]
[X86] Add large integer comparison tests for PR41971; NFC
In these cases we would prefer a direct comparison over going through
a vector type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361315
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron McInally [Tue, 21 May 2019 21:07:46 +0000 (21:07 +0000)]
[NFC][InstCombine] Add unary fneg tests to operand-complexity.ll.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361311
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron McInally [Tue, 21 May 2019 20:31:09 +0000 (20:31 +0000)]
[NFC][InstCombine] Add unary FNeg tests to X86/x86-avx512.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361308
91177308-0d34-0410-b5e6-
96231b3b80d8
Saleem Abdulrasool [Tue, 21 May 2019 20:28:32 +0000 (20:28 +0000)]
build: enable CMake policy 0077
Enable CMake policy 77. This alters the behavior of option. The old behavior
would remove the value of the option from the cache and create a new one. The
new behavior does not create the variable if it is defined already. This ensures
that subsequent reconfigures will behave identically. This seems better than the
setting of OLD - the desire is to ensure that it is set to OLD or NEW.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361307
91177308-0d34-0410-b5e6-
96231b3b80d8
Yi-Hong Lyu [Tue, 21 May 2019 20:28:31 +0000 (20:28 +0000)]
Move csr-save-restore-order.ll to the right place
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361306
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Lebedev [Tue, 21 May 2019 20:14:54 +0000 (20:14 +0000)]
[NFC][X86][AArch64] Add tests for sinking of add/sub by constant through add/sub
Looks we can transform all 8 variants of the pattern:
https://rise4fun.com/Alive/auH
This comes up as an issue on the path towards
https://bugs.llvm.org/show_bug.cgi?id=41952
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361303
91177308-0d34-0410-b5e6-
96231b3b80d8
Stanislav Mekhanoshin [Tue, 21 May 2019 19:32:41 +0000 (19:32 +0000)]
Fix register coalescer failure to prune value
Register coalescer fails for the test in the patch with the assertion in
JoinVals::ConflictResolution `DefMI != nullptr'. It attempts to join
live intervals for two adjacent instructions and erase the copy:
%2:vreg_256 = COPY %1
%3:vreg_256 = COPY killed %1
The LI needs to be adjusted to kill subrange for the erased instruction
and extend the subrange of the original def. That was done for the main
interval only but not for the subrange. As a result subrange had a VNI
pointing to the erased slot resulting in the above failure.
Differential Revision: https://reviews.llvm.org/D62162
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361293
91177308-0d34-0410-b5e6-
96231b3b80d8
Leonard Chan [Tue, 21 May 2019 19:30:25 +0000 (19:30 +0000)]
Fix for sphinx bot warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361292
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Tue, 21 May 2019 19:25:54 +0000 (19:25 +0000)]
[cmake] Don't use VERSION_GREATER_EQUAL in cmake versions prior to 3.72.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361291
91177308-0d34-0410-b5e6-
96231b3b80d8
Leonard Chan [Tue, 21 May 2019 19:17:19 +0000 (19:17 +0000)]
[Intrinsic] Signed Fixed Point Saturation Multiplication Intrinsic
Add an intrinsic that takes 2 signed integers with the scale of them provided
as the third argument and performs fixed point multiplication on them. The
result is saturated and clamped between the largest and smallest representable
values of the first 2 operands.
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/D55720
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361289
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 21 May 2019 19:03:45 +0000 (19:03 +0000)]
[X86] Remove an unneeded ZERO_EXTEND creation from LowerINTRINSIC_W_CHAIN. NFC
We were trying to ZERO_EXTEND from an i8 X86ISD::SETCC to i8 again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361288
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 21 May 2019 18:53:53 +0000 (18:53 +0000)]
[SelectionDAG] fold insert subvector of undef into undef
DAGCombiner simplifies this more liberally as:
// If inserting an UNDEF, just return the original vector.
if (N1.isUndef())
return N0;
So there's no way to make this visible in output AFAIK, but
doing this at node creation time should be slightly more efficient.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361287
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Tue, 21 May 2019 18:51:21 +0000 (18:51 +0000)]
[cmake] Try to make cmake happy and fix bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361286
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 21 May 2019 18:28:22 +0000 (18:28 +0000)]
[SelectionDAG] remove redundant code; NFCI
getNode() squashes concatenation of undefs via FoldCONCAT_VECTORS():
// Concat of UNDEFs is UNDEF.
if (llvm::all_of(Ops, [](SDValue Op) { return Op.isUndef(); }))
return DAG.getUNDEF(VT);
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361284
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Tue, 21 May 2019 18:15:01 +0000 (18:15 +0000)]
[cmake] Bug in r361281: make include optional and fix typo which might make a difference on some systems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361282
91177308-0d34-0410-b5e6-
96231b3b80d8
Clement Courbet [Tue, 21 May 2019 17:58:42 +0000 (17:58 +0000)]
[MergeICmps] Make sorting strongly stable on the rhs.
Summary:
Because the sort order was not strongly stable on the RHS, whether the
chain could merge would depend on the order of the blocks in the Phi.
EXPENSIVE_CHECKS would shuffle the blocks before sorting, resulting in
non-deterministic merging.
Reviewers: gchatelet
Subscribers: hiraditya, llvm-commits, RKSimon
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62193
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361281
91177308-0d34-0410-b5e6-
96231b3b80d8
Don Hinton [Tue, 21 May 2019 17:56:45 +0000 (17:56 +0000)]
[cmake] Add custom command to touch archives on Darwin so ninja won't rebuild them.
Summary:
clang and newer versions of ninja use high-resolutions timestamps, but
older versions of libtool on Darwin don't, so the archive will often
get an older timestamp than the last object that was added or updated.
To fix this, we add a custom command to touch the archive after it's
been built so that ninja won't rebuild it unnecessarily the next time
it's run.
Reviewed By: beanz
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62172
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361280
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Desaulniers [Tue, 21 May 2019 17:55:26 +0000 (17:55 +0000)]
[Bugpoint] fix use-after-move. NFC
Summary:
This was flagged in https://www.viva64.com/en/b/0629/ under "Snippet No.
6".
Note that author also states:
"Note that the loop doesn't actually execute at all."
This is not true, but the author can be forgiven; there's two distinct
variables with very similar identifiers:
MiscompiledFunctions
MisCompFunctions
Reviewers: echristo, srhines, RKSimon
Reviewed By: RKSimon
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62113
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361279
91177308-0d34-0410-b5e6-
96231b3b80d8
Jonas Devlieghere [Tue, 21 May 2019 17:31:51 +0000 (17:31 +0000)]
[Dsymutil] Remove redundant argument (NFC)
The dwarf streamer already holds a copy of the link options, so there's
no need to pass them as an argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361276
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Bieneman [Tue, 21 May 2019 16:29:31 +0000 (16:29 +0000)]
[docs] Add new document on building distributions
Summary:
This document is an attempt to provide a guide for best practices for using the LLVM build system to generate distributable LLVM-based tools.
Most of the document is geared toward distributions of LLVM-based toolchains, but much of it also applies to distributing other LLVM-based tools and libraries.
Reviewers: tstellar, phosek, jroelofs, hans, sylvestre.ledru
Reviewed By: tstellar
Subscribers: smeenai, dschuff, arphaman, winksaville, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62040
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361272
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 21 May 2019 15:20:24 +0000 (15:20 +0000)]
[X86][SSE] computeKnownBitsForTargetNode - add X86ISD::ANDNP support
Fixes PACKSS-PSHUFB shuffle regressions mentioned on D61692
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361270
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 21 May 2019 14:47:38 +0000 (14:47 +0000)]
[DAGCombiner] prevent unsafe reassociation of FP ops
There are no FP callers of DAGCombiner::reassociateOps() currently,
but we can add a fast-math check to make sure this API is not being
misused.
This was noted as a potential risk (and that risk might increase) with:
D62191
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361268
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Tue, 21 May 2019 14:41:27 +0000 (14:41 +0000)]
gn build: Merge r361264
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361267
91177308-0d34-0410-b5e6-
96231b3b80d8
Clement Courbet [Tue, 21 May 2019 14:24:46 +0000 (14:24 +0000)]
Revert r361257 "[MergeICmps][NFC] Make BCEAtom move-only."
Broke some bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361263
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Tue, 21 May 2019 14:22:38 +0000 (14:22 +0000)]
gn build: Run `git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format`
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361262
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Tue, 21 May 2019 14:20:46 +0000 (14:20 +0000)]
gn build: Merge r361252
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361260
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Tue, 21 May 2019 14:10:55 +0000 (14:10 +0000)]
gn build: Merge r361233
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361259
91177308-0d34-0410-b5e6-
96231b3b80d8
Clement Courbet [Tue, 21 May 2019 13:34:12 +0000 (13:34 +0000)]
[MergeICmps][NFC] Make BCEAtom move-only.
And handle for self-move. This is required so that llvm::sort can work
with EXPENSIVE_CHECKS, as it will do a random shuffle of the input
which can result in self-moves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361257
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Tue, 21 May 2019 13:23:32 +0000 (13:23 +0000)]
Fix typo in r361251.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361256
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Lebedev [Tue, 21 May 2019 13:04:56 +0000 (13:04 +0000)]
[NFC][X86][AArch64] Shift amount masking: tests that show that 'neg' doesn't last
Meaning if we were to produce 'neg' in dagcombine, we will get an
endless cycle; some inverse transform would need to be guarded somehow.
Also, the 'and (sub 0, x), 31' variant is sticky,
doesn't get optimized in any way.
https://bugs.llvm.org/show_bug.cgi?id=41952
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361254
91177308-0d34-0410-b5e6-
96231b3b80d8
Florian Hahn [Tue, 21 May 2019 13:04:53 +0000 (13:04 +0000)]
[ScheduleDAGInstrs] Compute topological ordering on demand.
In most cases, the topological ordering does not get changed in
ScheduleDAGInstrs. We can compute the ordering on demand, similar to
D60125.
This drastically cuts down the number of times we need to compute the
topological ordering, e.g. for SPEC2006, SPEC2k and MultiSource, we get
the following stats for -O3 -flto on X86 (showing the top reductions,
with small absolute values filtered). The smallest reduction is -50%.
Slightly positive impact on compile-time (-0.1 % geomean speedup for
test-suite + SPEC & co, with -O1 on X86)
Tests: 243
Metric: pre-RA-sched.NumTopoInits
Program base patch diff
test-suite...ngs-C/fixoutput/fixoutput.test 115.00 3.00 -97.4%
test-suite...ks/Prolangs-C/cdecl/cdecl.test 957.00 26.00 -97.3%
test-suite...math/automotive-basicmath.test 107.00 3.00 -97.2%
test-suite...rolangs-C++/deriv2/deriv2.test 144.00 6.00 -95.8%
test-suite...lowfish/security-blowfish.test 410.00 18.00 -95.6%
test-suite...frame_layout/frame_layout.test 441.00 23.00 -94.8%
test-suite...rolangs-C++/employ/employ.test 159.00 11.00 -93.1%
test-suite...s/Ptrdist/anagram/anagram.test 157.00 11.00 -93.0%
test-suite...s-C/unix-smail/unix-smail.test 829.00 59.00 -92.9%
test-suite...chmarks/Olden/power/power.test 154.00 11.00 -92.9%
test-suite...T95/147.vortex/147.vortex.test 19876.00 1434.00 -92.8%
test-suite...000/255.vortex/255.vortex.test 19881.00 1435.00 -92.8%
test-suite...ce/Applications/Burg/burg.test 2203.00 168.00 -92.4%
test-suite...urce/Applications/hbd/hbd.test 1067.00 85.00 -92.0%
test-suite...ternal/HMMER/hmmcalibrate.test 3145.00 251.00 -92.0%
test-suite.../Applications/spiff/spiff.test 1037.00 84.00 -91.9%
test-suite...SPEC/CINT95/130.li/130.li.test 5913.00 487.00 -91.8%
test-suite.../CINT95/134.perl/134.perl.test 12532.00 1041.00 -91.7%
test-suite...ce/Benchmarks/Olden/bh/bh.test 220.00 19.00 -91.4%
test-suite :: External/Nurbs/nurbs.test 2304.00 206.00 -91.1%
test-suite...arks/VersaBench/dbms/dbms.test 773.00 75.00 -90.3%
test-suite...ce/Applications/siod/siod.test 9043.00 878.00 -90.3%
test-suite...pplications/treecc/treecc.test 4510.00 438.00 -90.3%
test-suite...T2006/456.hmmer/456.hmmer.test 7093.00 697.00 -90.2%
test-suite...s-C/Pathfinder/PathFinder.test 882.00 87.00 -90.1%
test-suite.../CINT2000/176.gcc/176.gcc.test 64978.00 6721.00 -89.7%
test-suite...cations/hexxagon/hexxagon.test 657.00 69.00 -89.5%
test-suite...fice-ispell/office-ispell.test 2712.00 285.00 -89.5%
test-suite.../CINT2006/403.gcc/403.gcc.test 139613.00 14992.00 -89.3%
test-suite...lications/ClamAV/clamscan.test 25880.00 2785.00 -89.2%
Reviewers: MatzeB, atrick, efriedma, niravd
Reviewed By: efriedma
Differential Revision: https://reviews.llvm.org/D60839
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361253
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Tue, 21 May 2019 12:48:46 +0000 (12:48 +0000)]
[DebugInfo] Fix tests missed by r362148
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361251
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Tue, 21 May 2019 12:08:42 +0000 (12:08 +0000)]
De-Window-ize a test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361250
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Tue, 21 May 2019 11:59:03 +0000 (11:59 +0000)]
[DebugInfo] Handle '# line "file"' correctly for asm source.
This provides the correct file path for the original source, rather
than the preprocessed source.
Part of the fix for PR41839.
Differential Revision: https://reviews.llvm.org/D62074
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361248
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Haarman [Tue, 21 May 2019 11:53:41 +0000 (11:53 +0000)]
Revert r360902 "Resubmit: [Salvage] Change salvage debug info ..."
This reverts commit rr360902. It caused an assertion failure in
lib/IR/DebugInfoMetadata.cpp: Assertion `(OffsetInBits + SizeInBits <=
FragmentSizeInBits) && "new fragment outside of original fragment"'
failed.
PR41931.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361246
91177308-0d34-0410-b5e6-
96231b3b80d8
Paul Robinson [Tue, 21 May 2019 11:52:27 +0000 (11:52 +0000)]
[DebugInfo] Handle -main-file-name correctly for asm source.
This option provides only the base filename, not a full relative path.
Part of the fix for PR41839.
Differential Revision: https://reviews.llvm.org/D62071
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361245
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Tue, 21 May 2019 11:42:28 +0000 (11:42 +0000)]
[X86][SSE] Add shuffle tests for 'splat3' patterns.
Test codegen from shuffles for { dst[0] = dst[1] = dst[2] = *src++; dst += 3 } 'splatting' memcpy patterns generated by loop-vectorizer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361243
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Lebedev [Tue, 21 May 2019 11:14:01 +0000 (11:14 +0000)]
[NFC][X86][AArch64] Add some more tests for shift amount masking
The negation creation should be more eager:
https://bugs.llvm.org/show_bug.cgi?id=41952
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361241
91177308-0d34-0410-b5e6-
96231b3b80d8
George Rimar [Tue, 21 May 2019 11:05:46 +0000 (11:05 +0000)]
[llvm-objdump] Make --disassemble-functions imply -d
Fixes https://bugs.llvm.org/show_bug.cgi?id=41903
Patch by Mike Pozulp!
Differential revision: https://reviews.llvm.org/D62054
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361240
91177308-0d34-0410-b5e6-
96231b3b80d8
Clement Courbet [Tue, 21 May 2019 11:02:23 +0000 (11:02 +0000)]
[MergeICmps] Preserve the dominator tree.
Summary: In preparation for D60318 .
Reviewers: gchatelet, efriedma
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62068
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361239
91177308-0d34-0410-b5e6-
96231b3b80d8
Fangrui Song [Tue, 21 May 2019 10:41:25 +0000 (10:41 +0000)]
[PPC64] Update LocalEntry from assigned symbols
On PowerPC64 ELFv2 ABI, functions may have 2 entry points: global and local.
The local entry point location of a function is stored in the st_other field of the symbol, as an offset relative to the global entry point.
In order to make symbol assignments (e.g. .equ/.set) work properly with this, PPCTargetELFStreamer already copies the local entry bits from the source symbol to the destination one, on emitAssignment(). The problem is that this copy is performed only at the assignment location, where the source symbol may not yet have processed the .localentry directive, that sets the local entry. This may cause the destination symbol to end up with wrong local entry information. Other symbol info is not affected by this because, in this case, the destination symbol value is actually a symbol reference.
This change keeps track of these assignments, and update all needed st_other fields when finish() is called.
Patch by Leandro Lupori!
Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D56586
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361237
91177308-0d34-0410-b5e6-
96231b3b80d8
Florian Hahn [Tue, 21 May 2019 10:05:26 +0000 (10:05 +0000)]
[AArch64] Skip mask checks for masks with an odd number of elements.
Some checks in isShuffleMaskLegal expect an even number of elements,
e.g. isTRN_v_undef_Mask or isUZP_v_undef_Mask, otherwise they access
invalid elements and crash. This patch adds checks to the impacted
functions.
Fixes PR41951
Reviewers: t.p.northover, dmgreen, samparker
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D60690
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361235
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Leviant [Tue, 21 May 2019 09:09:33 +0000 (09:09 +0000)]
[llvm-objcopy] Strip file symbols with --strip-unneeded
Differential revision: https://reviews.llvm.org/D61641
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361231
91177308-0d34-0410-b5e6-
96231b3b80d8
Cullen Rhodes [Tue, 21 May 2019 09:06:51 +0000 (09:06 +0000)]
[AArch64][SVE2] Asm: add integer unary instructions (predicated)
Summary:
Patch adds support for the following instructions:
* URECPE, URSQRTE, SQABS, SQNEG
The specification can be found here:
https://developer.arm.com/docs/ddi0602/latest
Reviewed By: SjoerdMeijer
Differential Revision: https://reviews.llvm.org/D62129
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361230
91177308-0d34-0410-b5e6-
96231b3b80d8
Cullen Rhodes [Tue, 21 May 2019 08:59:00 +0000 (08:59 +0000)]
[AArch64][SVE2] Asm: add integer pairwise arithmetic instructions
Summary:
Patch adds support for the following instructions:
ADDP, SMAXP, UMAXP, SMINP, UMINP
The specification can be found here:
https://developer.arm.com/docs/ddi0602/latest
Reviewed By: SjoerdMeijer
Differential Revision: https://reviews.llvm.org/D62128
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361229
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Parker [Tue, 21 May 2019 07:56:47 +0000 (07:56 +0000)]
[ARM][CGP] Skip nuw in PrepareConstants
PrepareConstants step converts add/sub with 'negative' immediates to
sub/add with a 'positive' imm to make promotion more simple. nuw
already states that the add shouldn't cause an unsigned wrap, so
it shouldn't need any tweaking. Plus, we also don't allow a sub with
a 'negative' immediate to be safe wrap, so this functionality has
been removed. The PrepareConstants step now just handles the add
instructions that we've determined would be safe if they wrap around
zero.
Differential Revision: https://reviews.llvm.org/D62057
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361227
91177308-0d34-0410-b5e6-
96231b3b80d8
Petr Hosek [Tue, 21 May 2019 07:13:58 +0000 (07:13 +0000)]
[CMake] Specify component for all target types
This addresses an issue introduced in r360230 which broke existing
use cases of LLVM_DISTRIBUTION_COMPONENTS since ARCHIVE and LIBRARY
target types are no longer handled as components.
Differential Revision: https://reviews.llvm.org/D62176
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361223
91177308-0d34-0410-b5e6-
96231b3b80d8
Dylan McKay [Tue, 21 May 2019 06:38:02 +0000 (06:38 +0000)]
Add TargetLoweringInfo hook for explicitly setting the ABI calling convention endianess
Summary:
The endianess used in the calling convention does not always match the
endianess of the target on all architectures, namely AVR.
When an argument is too large to be legalised by the architecture and is
split for the ABI, a new hook TargetLoweringInfo::shouldSplitFunctionArgumentsAsLittleEndian
is queried to find the endianess that function arguments must be laid
out in.
This approach was recommended by Eli Friedman.
Originally reported in https://github.com/avr-rust/rust/issues/129.
Patch by Carl Peto.
Reviewers: bogner, t.p.northover, RKSimon, niravd, efriedma
Reviewed By: efriedma
Subscribers: JDevlieghere, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62003
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361222
91177308-0d34-0410-b5e6-
96231b3b80d8
QingShan Zhang [Tue, 21 May 2019 06:32:31 +0000 (06:32 +0000)]
[NFC][PowerPC] Add a test to verify if the scheduler schedule the addi before the load.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361221
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikita Popov [Tue, 21 May 2019 06:24:36 +0000 (06:24 +0000)]
Move thumbv7k test from AArch64 to ARM
As pointed out by charukcs on rL361166, this test uses an ARM triple.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361220
91177308-0d34-0410-b5e6-
96231b3b80d8
Chen Zheng [Tue, 21 May 2019 05:06:09 +0000 (05:06 +0000)]
[PowerPC] test cases for selecting x-form instruction for unaligned offset - NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361219
91177308-0d34-0410-b5e6-
96231b3b80d8
Chen Zheng [Tue, 21 May 2019 03:54:42 +0000 (03:54 +0000)]
[PowerPC] use more meaningful name - NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361218
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 21 May 2019 03:23:08 +0000 (03:23 +0000)]
[ORC] Assert that JITDylibs have unique names.
Patch by Praveen Velliengiri. Thanks Praveen!
Differential Revision: https://reviews.llvm.org/D62139
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361215
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Tue, 21 May 2019 03:01:01 +0000 (03:01 +0000)]
Tweaks for setting CMAKE_LINKER to lld-link
- Just look for "lld-link", not "lld-link.exe".
llvm/cmake/platforms/WinMsvc.cmake for example sets CMAKE_LINKER to
lld-link without .exe
- Stop passing -gwarf to the compiler in sanitizer options when lld is
enabled -- there's no reason to use different debug information keyed
off the linker. (If this was for MinGW, we should check for that
instead.)
Differential Revision: https://reviews.llvm.org/D62111
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361214
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Tue, 21 May 2019 00:27:26 +0000 (00:27 +0000)]
Try to fix build with older gccs after r361152
Also merge the cmake change there to the gn build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361209
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Desaulniers [Mon, 20 May 2019 22:17:43 +0000 (22:17 +0000)]
[ORC] fix use-after-move. NFC
Summary:
scan-build flagged a potential use-after-move in debug builds. It's not
safe that a moved from value contains anything but garbage. Manually
DRY up these repeated expressions.
Reviewers: lhames
Reviewed By: lhames
Subscribers: hiraditya, llvm-commits, srhines
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62112
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361203
91177308-0d34-0410-b5e6-
96231b3b80d8
Matt Arsenault [Mon, 20 May 2019 22:04:42 +0000 (22:04 +0000)]
AMDGPU: Force skip branches over calls
Unfortunately the way SIInsertSkips works is backwards, and is
required for correctness. r338235 added handling of some special cases
where skipping is mandatory to avoid side effects if no lanes are
active. It conservatively handled asm correctly, but the same logic
needs to apply to calls.
Usually the call sequence code is larger than the skip threshold,
although the way the count is computed is really broken, so I'm not
sure if anything was likely to really hit this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361202
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Mon, 20 May 2019 21:33:25 +0000 (21:33 +0000)]
[docs] Fix an RST typo: "code-blocks" should be "code-block".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361200
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Mon, 20 May 2019 21:30:33 +0000 (21:30 +0000)]
[ORC] Remove some unreachable code.
Fixes http://llvm.org/PR41662.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361199
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Mon, 20 May 2019 21:07:16 +0000 (21:07 +0000)]
[docs] Add more details/examples for LLJIT/LLLazyJIT, tweak lookup discussion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361198
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron McInally [Mon, 20 May 2019 21:00:42 +0000 (21:00 +0000)]
[NFC][InstCombine] Add FIXME for one-use check on constant negation transforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361197
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Mon, 20 May 2019 20:53:05 +0000 (20:53 +0000)]
[Support] Renamed member 'Size' to 'AllocatedSize' in MemoryBlock and OwningMemoryBlock.
Rename member 'Size' to 'AllocatedSize' in order to provide a hint that the
allocated size may be different than the requested size. Comments are added to
clarify this point. Updated the InMemoryBuffer in FileOutputBuffer.cpp to track
the requested buffer size.
Patch by Machiel van Hooren. Thanks Machiel!
https://reviews.llvm.org/D61599
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361195
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Mon, 20 May 2019 19:53:28 +0000 (19:53 +0000)]
[AArch64] Handle lowering lround on windows, where long is 32 bit
Differential Revision: https://reviews.llvm.org/D62108
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361192
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Mon, 20 May 2019 19:33:32 +0000 (19:33 +0000)]
gn build: Merge r361148
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361191
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikita Popov [Mon, 20 May 2019 19:13:04 +0000 (19:13 +0000)]
[LFTR] Add additional PR31181 test cases
One case where overflow happens in the first loop iteration, and
two cases where we switch to a dynamically dead IV with post/pre
increment, respectively.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361189
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron McInally [Mon, 20 May 2019 19:10:30 +0000 (19:10 +0000)]
[InstCombine] Add visitFNeg(...) visitor for unary Fneg
Also, break out a helper function, namely foldFNegIntoConstant(...), which performs transforms common between visitFNeg(...) and visitFSub(...).
Differential Revision: https://reviews.llvm.org/D61693
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361188
91177308-0d34-0410-b5e6-
96231b3b80d8
Pete Couperus [Mon, 20 May 2019 18:09:37 +0000 (18:09 +0000)]
[TableGen] - Type comparison LE should be LT or equal.
Differential Revision: https://reviews.llvm.org/D61705
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361183
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 20 May 2019 17:52:22 +0000 (17:52 +0000)]
[InstCombine] auto-generate test checks; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361181
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Mon, 20 May 2019 17:52:18 +0000 (17:52 +0000)]
[InstSimplify] update stale comment; NFC
Missed this diff with rL361118.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361180
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 20 May 2019 17:37:52 +0000 (17:37 +0000)]
[X86] Add test case for r361177.
That commit makes sure we flush PendingExports in SelectDAGBuilder
before we create INLINEASM_BR. Unfortunatley, I haven't yet found
a CodeGen failure without that change.
This commit uses the debug output from SelectionDAG to at least
ensure we build the DAG correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361179
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 20 May 2019 17:08:02 +0000 (17:08 +0000)]
[SelectionDAGBuilder] Flush PendingExports before creating INLINEASM_BR node for asm goto.
Since INLINEASM_BR is a terminator we need to flush the pending exports before
emitting it. If we don't do this, a TokenFactor can be inserted between it and
the BR instruction emitted to finish the callbr lowering.
It looks like nodes are glued to the INLINEASM_BR so I had to make sure we emit
the TokenFactor before that.
Differential Revision: https://reviews.llvm.org/D59981
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361177
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Desaulniers [Mon, 20 May 2019 16:58:59 +0000 (16:58 +0000)]
[DWARF] hoist nullptr checks. NFC
Summary:
This was flagged in https://www.viva64.com/en/b/0629/ under "Snippet No.
15" (see under #13). It looks like PVS studio flags nullptr checks where
the ptr is used inbetween creation and checking against nullptr.
Reviewers: JDevlieghere, probinson
Reviewed By: JDevlieghere
Subscribers: RKSimon, hiraditya, llvm-commits, srhines
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D62118
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361176
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 20 May 2019 16:58:23 +0000 (16:58 +0000)]
[X86] Add icelake-client and tremont model numbers to getHostCPUName.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361174
91177308-0d34-0410-b5e6-
96231b3b80d8