OSDN Git Service
Andrea Di Biagio [Wed, 2 Jan 2019 15:40:52 +0000 (15:40 +0000)]
[MCA] Minor refactoring of method DefaultResourceStrategy::select. NFCI
Common code used by the default resource strategy to select pipeline resources
has been moved to an helper function.
The new selection logic has been slightly rewritten to get rid of a redundant
zero check on the `ReadyMask` value. Before this patch, method select internally
called function `PowerOf2Floor` to compute the next ready pipeline resource.
However, `PowerOf2Floor` forces an implicit (redundant) zero check on the input
value. By construction, `ReadyMask` can never be zero. This patch replaces the
call to `PowerOf2Floor` with an equivalent block of code which avoids the
redundant zero check. This gives a minor 3-3.5% speedup on a release build.
No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350218
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Wed, 2 Jan 2019 12:43:56 +0000 (12:43 +0000)]
[gn build] Add some llvm/tools: bugpoint, dsymutil, llvm-opt-report
Also add build file for dependency llvm/lib/OptRemarks.
Needed for check-llvm.
Differential Revision: https://reviews.llvm.org/D56192
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350217
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Wed, 2 Jan 2019 12:42:39 +0000 (12:42 +0000)]
[gn build] Add some llvm/tools: llvm-c-test, llvm-cfi-verify, llvm-cov, llvm-cvtres
Needed for check-llvm.
Differential Revision: https://reviews.llvm.org/D56191
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350216
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Wed, 2 Jan 2019 12:40:04 +0000 (12:40 +0000)]
[gn build] Add some llvm/tools: llvm-cxxdump, llvm-cxxfilt, llvm-cxxmap
Needed for check-llvm.
This is the last target reading llvm_install_binutils_symlinks.
Differential Revision: https://reviews.llvm.org/D56190
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350215
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Wed, 2 Jan 2019 12:39:05 +0000 (12:39 +0000)]
[gn build] Add some llvm/tools: llvm-diff, llvm-dwp
Needed for check-llvm.
Differential Revision: https://reviews.llvm.org/D56189
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350214
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Wed, 2 Jan 2019 12:37:52 +0000 (12:37 +0000)]
[gn build] Add some llvm/tools: llvm-mca, llvm-mt
Also add build file for dependency llvm/lib/MCA.
Needed for check-llvm.
Differential Revision: https://reviews.llvm.org/D56166
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350213
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Wed, 2 Jan 2019 12:34:57 +0000 (12:34 +0000)]
[gn build] Add some llvm/tools: llvm-size, llvm-split, llvm-strings
Needed for check-llvm.
Differential Revision: https://reviews.llvm.org/D56164
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350212
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Wed, 2 Jan 2019 12:32:49 +0000 (12:32 +0000)]
[gn build] Add some llvm/tools: llvm-xray, sancov, sanstats, verify-uselistorder, yaml-bench
Also add build file for dependency llvm/lib/XRay.
Needed for check-llvm.
(yaml-bench is an llvm/util, not an llvm/tool.)
Differential Revision: https://reviews.llvm.org/D56163
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350211
91177308-0d34-0410-b5e6-
96231b3b80d8
Piotr Sobczak [Wed, 2 Jan 2019 09:47:41 +0000 (09:47 +0000)]
[AMDGPU] Handle OR as operand of raw load/store
Summary:
Use isBaseWithConstantOffset() which handles OR as an operand
to llvm.amdgcn.raw.buffer.load and llvm.amdgcn.raw.buffer.store.
Change-Id: Ifefb9dc5ded8710d333df07ab1900b230e33539a
Reviewers: nhaehnle, mareko, arsenm
Reviewed By: arsenm
Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits
Differential Revision: https://reviews.llvm.org/D55999
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350208
91177308-0d34-0410-b5e6-
96231b3b80d8
Clement Courbet [Wed, 2 Jan 2019 09:21:00 +0000 (09:21 +0000)]
Revert rL350035 "[llvm-exegesis] Clustering: don't enqueue a point multiple times"
Let's discuss this on the review thread before submitting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350207
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 2 Jan 2019 06:40:11 +0000 (06:40 +0000)]
[X86] Remove the separate SMUL8/UMUL8 X86ISD opcodes by merging with SMUL/UMUL. Remove the second result from X86ISD::UMUL.
All of these use custom isel so we can pretty easily detect the differences in the custom code in X86ISelDAGToDAG. The ISD opcodes just need to express the desired semantics not the details of how they would be selected by isel. So unifying them lets us remove the special casing from lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350206
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 2 Jan 2019 05:46:03 +0000 (05:46 +0000)]
[X86] Allow LowerSELECT and LowerBRCOND to directly lower i8 UMULO/SMULO.
These require a different X86ISD node to be created than i16/i32/i64. I guess no one wanted to add the special code for that except in LowerXALUO. But now LowerXALUO, LowerSELECT, and LowerBRCOND all use a common helper function so they all share the special code.
Unfortunately, there are no test changes because we seem to correct the miss in a DAG combine later. I did verify it manually using test cases from xmulo.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350205
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 2 Jan 2019 05:46:02 +0000 (05:46 +0000)]
[X86] Add i8/i16 smulo/umulo test cases where the overflow indication is used by a mask.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350204
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 2 Jan 2019 05:46:00 +0000 (05:46 +0000)]
[X86] Remove KNL specific check prefix from xmulo.ll test. NFC
This was added at a time when i1 was a legal type with avx512f and there was a bug. i1 is no longer considered a legal type with avx512f so there should be no codegen difference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350203
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 1 Jan 2019 21:51:39 +0000 (21:51 +0000)]
[InstCombine] canonicalize raw IR rotate patterns to funnel shift
The final piece of IR-level analysis to allow this was committed with:
rL350188
Using the intrinsics should improve transforms based on cost models
like vectorization and inlining.
The backend should be prepared too, so we can now canonicalize more
sequences of shift/logic to the intrinsics and know that the end
result should be equal or better to the original code even if the
target does not have an actual rotate instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350199
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 1 Jan 2019 19:34:11 +0000 (19:34 +0000)]
[X86] Factor the core code out of LowerXALUO into a helper function. Use it in LowerBRCOND and LowerSELECT to avoid some duplicated code.
This makes it easier to keep the LowerBRCOND and LowerSELECT code in sync with LowerXALUO so they always pick the same operation for overflowing instructions.
This is inspired by the helper functions used by ARM and AArch64 for the same purpose.
The test change is because LowerSELECT was not in sync with LowerXALUO with regard to INC/DEC for SADDO/SSUBO.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350198
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Widmann [Tue, 1 Jan 2019 19:03:37 +0000 (19:03 +0000)]
[LLVM-C] bool -> LLVMBool
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350197
91177308-0d34-0410-b5e6-
96231b3b80d8
Robert Widmann [Tue, 1 Jan 2019 18:56:51 +0000 (18:56 +0000)]
[LLVM-C] Add Accessors for Discarding Value Names in the IR
Summary: Add accessors so the performance improvement from this setting is accessible to third parties.
Reviewers: whitequark, deadalnix
Reviewed By: whitequark
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D56179
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350196
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 1 Jan 2019 18:44:44 +0000 (18:44 +0000)]
[X86] Remove KNL specific check prefix from xaluo.ll test. NFC
This was added at a time when i1 was a legal type with avx512f and there was a bug. i1 is no longer considered a legal type with avx512f so there should be no codegen difference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350195
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Tue, 1 Jan 2019 18:44:42 +0000 (18:44 +0000)]
[X86] Add test cases to show where LowerSELECT doesn't select SADDO/SSUBO to INC/DEC, but LowerXALUOOp does. Leading to duplicate code.
When SADDO/SSUBO is used as a part of a condition, the X86 backend has to lower the instruction twice. One for the flags use and then once for the data use. These two selections should be kept in sync so they end up with one node providing the data and the flags. This doesn't seem to be happening for INC/DEC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350194
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjay Patel [Tue, 1 Jan 2019 16:08:36 +0000 (16:08 +0000)]
[x86] move/rename helper for horizontal op codegen; NFC
Preliminary commit as suggested in D56011.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350193
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikita Popov [Tue, 1 Jan 2019 12:27:23 +0000 (12:27 +0000)]
[BDCE] Regenerate test checks; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350190
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikita Popov [Tue, 1 Jan 2019 10:17:35 +0000 (10:17 +0000)]
[BDCE] Remove -instsimplify from BDCE test; NFC
To make it more obvious which part of the transformation is carried
out by BDCE. Also drop the CHECK-IO lines which only run -instsimplify
as they don't really seem meaningful if the main check doesn't run
-instsimplify either.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350189
91177308-0d34-0410-b5e6-
96231b3b80d8
Nikita Popov [Tue, 1 Jan 2019 10:05:26 +0000 (10:05 +0000)]
Reapply "[BDCE][DemandedBits] Detect dead uses of undead instructions"
This (mostly) fixes https://bugs.llvm.org/show_bug.cgi?id=39771.
BDCE currently detects instructions that don't have any demanded bits
and replaces their uses with zero. However, if an instruction has
multiple uses, then some of the uses may be dead (have no demanded bits)
even though the instruction itself is still live. This patch extends
DemandedBits/BDCE to detect such uses and replace them with zero.
While this will not immediately render any instructions dead, it may
lead to simplifications (in the motivating case, by converting a rotate
into a simple shift), break dependencies, etc.
The implementation tries to strike a balance between analysis power and
complexity/memory usage. Originally I wanted to track demanded bits on
a per-use level, but ultimately we're only really interested in whether
a use is entirely dead or not. I'm using an extra set to track which uses
are dead. However, as initially all uses are dead, I'm not storing uses
those user is also dead. This case is checked separately instead.
The previous attempt to land this lead to miscompiles, because cases
where uses were initially dead but were later found to be live during
further analysis were not always correctly removed from the DeadUses
set. This is fixed now and the added test case demanstrates such an
instance.
Differential Revision: https://reviews.llvm.org/D55563
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350188
91177308-0d34-0410-b5e6-
96231b3b80d8
Ayonam Ray [Tue, 1 Jan 2019 07:28:55 +0000 (07:28 +0000)]
Reversing the commit in revision 350186. Revision causes regression in 4
tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350187
91177308-0d34-0410-b5e6-
96231b3b80d8
Ayonam Ray [Tue, 1 Jan 2019 06:37:50 +0000 (06:37 +0000)]
Omit range checks from jump tables when lowering switches with unreachable
default
During the lowering of a switch that would result in the generation of a jump
table, a range check is performed before indexing into the jump table, for the
switch value being outside the jump table range and a conditional branch is
inserted to jump to the default block. In case the default block is
unreachable, this conditional jump can be omitted. This patch implements
omitting this conditional branch for unreachable defaults.
Review Reference: D52002
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350186
91177308-0d34-0410-b5e6-
96231b3b80d8
Chen Zheng [Tue, 1 Jan 2019 01:09:20 +0000 (01:09 +0000)]
[InstCombine] canonicalize MUL with NEG operand
-X * Y --> -(X * Y)
X * -Y --> -(X * Y)
Differential Revision: https://reviews.llvm.org/D55961
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350185
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Mon, 31 Dec 2018 23:48:22 +0000 (23:48 +0000)]
[gn build] Add some llvm/tools: llvm-exegesis, llvm-extract, llvm-link
Also add build file for dependency llvm/lib/ExecutionEngine/MCJIT.
The exegesis stuff is pretty hairy and knows a lot about Target internals (in
general, not specifically in the GN build). I put the llvm-tblgen -gen-exegesis
call in llvm/tools/llvm-exegesis/lib/X86, instead of in llvm/lib/Target/X86
where it is in CMake land, and asked on D52932 why it's in that place in the
CMake build.
Needed for check-llvm.
Differential Revision: https://reviews.llvm.org/D56167
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350184
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Mon, 31 Dec 2018 23:32:15 +0000 (23:32 +0000)]
[gn build] Add some llvm/tools: llvm-rc, llvm-rtdyld
Also add build file for dependencies llvm/lib/ExecutionEngine,
llvm/lib/ExecutionEngine/RuntimeDyld.
Needed for check-llvm.
Differential Revision: https://reviews.llvm.org/D56165
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350183
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 31 Dec 2018 19:46:18 +0000 (19:46 +0000)]
[X86] Add PR34641 masked shld/shrd test cases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350181
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 31 Dec 2018 19:09:32 +0000 (19:09 +0000)]
[X86] Add additional RUN lines to prepare for D56156. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350180
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 31 Dec 2018 19:09:30 +0000 (19:09 +0000)]
[SelectionDAG] Add SIGN_EXTEND_VECTOR_INREG support to computeKnownBits.
Differential Revision: https://reviews.llvm.org/D56168
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350179
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 31 Dec 2018 19:09:27 +0000 (19:09 +0000)]
[X86] Add X86ISD::VSRAI to computeKnownBitsForTargetNode.
Differential Revision: https://reviews.llvm.org/D56169
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350178
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Mon, 31 Dec 2018 14:51:53 +0000 (14:51 +0000)]
Keep tablegen commands in alphabetical order. NFCI.
Mentioned on D56167.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350176
91177308-0d34-0410-b5e6-
96231b3b80d8
Michal Gorny [Mon, 31 Dec 2018 13:48:12 +0000 (13:48 +0000)]
[test] Fix propagating HOME envvar to unittests
Propagate HOME environment variable to unittests. This is necessary
to fix test failures resulting from pw_home pointing to a non-existing
directory while being overriden with HOME. Apparently Gentoo users
hit this sometimes when they override build directory for Portage.
Original bug report: https://bugs.gentoo.org/674088
Differential Revision: https://reviews.llvm.org/D56162
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350175
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Mon, 31 Dec 2018 10:22:04 +0000 (10:22 +0000)]
[AArch64] Accept "sve" as arch feature in assembler
Differential Revision: https://reviews.llvm.org/D56128
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350174
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Potapenko [Mon, 31 Dec 2018 09:42:23 +0000 (09:42 +0000)]
[MSan] Handle llvm.is.constant intrinsic
MSan used to report false positives in the case the argument of
llvm.is.constant intrinsic was uninitialized.
In fact checking this argument is unnecessary, as the intrinsic is only
used at compile time, and its value doesn't depend on the value of the
argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350173
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 31 Dec 2018 05:40:46 +0000 (05:40 +0000)]
[DAGCombiner] Add missing one use check on the shuffle in the bitcast(shuffle(bitcast(s0),bitcast(s1))) -> shuffle(s0,s1) transform.
Found while trying out some other changes so I don't really have a test case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350172
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Mon, 31 Dec 2018 00:10:47 +0000 (00:10 +0000)]
[gn build] Make `ninja check-clang` also run Clang's unit tests
Also add a build file for clang/lib/ASTMatchers/Dynamic, which is only needed
by tests (and clang/tools/extra).
Also make llvm/utils/gn/build/sync_source_lists_from_cmake.py check that every
CMakeLists.txt file below {lld,clang}/unittests has a corresponding BUILD.gn
file, so we notice if new test binaries get added (since the failure mode for
missing GN build files for tests is just the tests silently not running in the
GN build).
Also add a unittest() macro for defining unit test targets, and add a lengthy
comment there about where the unit test binaries go and why.
With this, the build files for //clang are complete.
Differential Revision: https://reviews.llvm.org/D56116
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350171
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Sun, 30 Dec 2018 21:06:32 +0000 (21:06 +0000)]
[AArch64] Implement the .arch_extension directive
Differential Revision: https://reviews.llvm.org/D56131
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350169
91177308-0d34-0410-b5e6-
96231b3b80d8
Martin Storsjo [Sun, 30 Dec 2018 20:35:43 +0000 (20:35 +0000)]
[llvm-objcopy] [COFF] Use Error/Expected returns instead of calling reportError. NFC.
Differential Revision: https://reviews.llvm.org/D55922
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350168
91177308-0d34-0410-b5e6-
96231b3b80d8
Kang Zhang [Sun, 30 Dec 2018 15:13:51 +0000 (15:13 +0000)]
[PowerPC] Fix machine verify pass error for PATCHPOINT pseudo instruction that bad machine code
Summary:
For SDAG, we pretend patchpoints aren't special at all until we emit the code for the pseudo.
Then the verifier runs and it seems like we have a use of an undefined register (the register will
be reserved later, but the verifier doesn't know that).
So this patch call setUsesTOCBasePtr before emit the code for the pseudo, so verifier can know
X2 is a reserved register.
Reviewed By: nemanjai
Differential Revision: https://reviews.llvm.org/D56148
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350165
91177308-0d34-0410-b5e6-
96231b3b80d8
David Bolvansky [Sun, 30 Dec 2018 13:18:17 +0000 (13:18 +0000)]
[NFC] Fixed extra semicolon warning
-This line, and those below, will be ignored--
M lib/Support/Error.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350162
91177308-0d34-0410-b5e6-
96231b3b80d8
Kang Zhang [Sun, 30 Dec 2018 07:48:09 +0000 (07:48 +0000)]
[PowerPC] Fix ADDE, SUBE do not know how to promote operator
Summary:
This patch is created to fix the Bugzilla bug 39815:
https://bugs.llvm.org/show_bug.cgi?id=39815
This patch is to support promotion integer result for the instruction ADDE, SUBE.
Reviewed By: hfinkel
Differential Revision: https://reviews.llvm.org/D56119
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350161
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 30 Dec 2018 03:05:07 +0000 (03:05 +0000)]
[X86] Don't mark SEXTLOAD from v4i8/v4i16/v8i8 as Custom on pre-sse4.1.
This seems to be getting in the way more than its helping. This does mean we stop scalarizing some cases, but I'm not convinced the scalarization was really better.
Some of the changes to vsel-cmp-load.ll are a regression but D56156 should fix it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350159
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sun, 30 Dec 2018 02:30:34 +0000 (02:30 +0000)]
[X86] Add custom type legalization for SIGN_EXTEND_VECTOR_INREG from 16i16/v32i8 to v4i64 when v4i64 needs splitting.
This allows us to sign extend to v4i32 first. And then share that extension to implement the final steps to v4i64 using a pcmpgt and punpckl and punpckh.
We already do something similar for SIGN_EXTEND with -x86-experimental-vector-widening-legalization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350158
91177308-0d34-0410-b5e6-
96231b3b80d8
Nemanja Ivanovic [Sat, 29 Dec 2018 16:13:11 +0000 (16:13 +0000)]
[PowerPC][NFC] Macro for register set defs for the Asm Parser
We have some unfortunate code in the back end that defines a bunch of register
sets for the Asm Parser. Every time another class is needed in the parser, we
have to add another one of those definitions with explicit lists of registers.
This NFC patch simply provides macros to use to condense that code a little bit.
Differential revision: https://reviews.llvm.org/D54433
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350156
91177308-0d34-0410-b5e6-
96231b3b80d8
Nemanja Ivanovic [Sat, 29 Dec 2018 13:40:48 +0000 (13:40 +0000)]
[PowerPC] Complete the custom legalization of vector int to fp conversion
A recent patch has added custom legalization of vector conversions of
v2i16 -> v2f64. This just rounds it out for other types where the input vector
has an illegal (narrower) type than the result vector. Specifically, this will
handle the following conversions:
v2i8 -> v2f64
v4i8 -> v4f32
v4i16 -> v4f32
Differential revision: https://reviews.llvm.org/D54663
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350155
91177308-0d34-0410-b5e6-
96231b3b80d8
Chen Zheng [Sat, 29 Dec 2018 12:18:15 +0000 (12:18 +0000)]
[InstCombine] [NFC] update testcases for canonicalize MUL with NEG operand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350154
91177308-0d34-0410-b5e6-
96231b3b80d8
Nemanja Ivanovic [Sat, 29 Dec 2018 11:43:54 +0000 (11:43 +0000)]
[PowerPC] Fix CR Bit spill pseudo expansion
The current CRBIT spill pseudo-op expansion creates a KILL instruction
that kills the CRBIT and defines the enclosing CR field. However, this
paints a false picture to the register allocator that all bits in the CR
field are killed so copies of other bits out of the field become dead and
removable.
This changes the expansion to preserve the KILL flag on the CRBIT as an
implicit use and to treat the CR field as an undef input.
Thanks to Hal Finkel for the review and Uli Weigand for implementation input.
Differential revision: https://reviews.llvm.org/D55996
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350153
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Sat, 29 Dec 2018 10:10:02 +0000 (10:10 +0000)]
[mips] Show an error on attempt to use 64-bit PC-relative relocation
The following code requests 64-bit PC-relative relocations unsupported
by MIPS ABI. Now it triggers an assertion. It's better to show an error
message.
```
foo:
.quad bar - foo
```
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350152
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Sat, 29 Dec 2018 10:09:55 +0000 (10:09 +0000)]
[mips] Show a regular error message on attempt to use one byte relocation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350151
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 29 Dec 2018 07:14:30 +0000 (07:14 +0000)]
[X86] Add test case from PR38217. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350150
91177308-0d34-0410-b5e6-
96231b3b80d8
Max Kazantsev [Sat, 29 Dec 2018 04:26:22 +0000 (04:26 +0000)]
Drop SE cache early because loop parent can change in LoopSimplifyCFG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350145
91177308-0d34-0410-b5e6-
96231b3b80d8
Heejin Ahn [Sat, 29 Dec 2018 02:42:04 +0000 (02:42 +0000)]
[WebAssembly] Fix comments in ExplicitLocals (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350144
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Sat, 29 Dec 2018 02:02:13 +0000 (02:02 +0000)]
Add vtable anchor to classes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350142
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Sat, 29 Dec 2018 01:17:11 +0000 (01:17 +0000)]
[X86] Don't mark SEXTLOAD v4i8->v4i64 and v8i8->v8i64 as custom under vector widening legalization.
This was tricking us into making these operations and then letting them get scalarized later. But I can't prove that the scalarized version is actually better.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350141
91177308-0d34-0410-b5e6-
96231b3b80d8
Anna Thomas [Fri, 28 Dec 2018 19:21:50 +0000 (19:21 +0000)]
[UnrollRuntime] NFC: Updated exiting tests and added more tests
Added more tests for multiple exiting blocks to the LatchExit.
Today these cases are not supported. Patch to follow soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350135
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Fri, 28 Dec 2018 19:19:39 +0000 (19:19 +0000)]
[X86] Directly emit X86ISD::PMULUDQ from the ReplaceNodeResults handling of v2i8/v2i16/v2i32 multiply.
Previously we emitted a multiply and some masking that was supposed to matched to PMULUDQ, but the masking could sometimes be removed before we got a chance to match it. So instead just emit the PMULUDQ directly.
Remove the DAG combine that was added when the ReplaceNodeResults code was originally added. Add a new DAG combine to avoid regressions in shrink_vmul.ll
Some of the shrink_vmul.ll test cases now pick PMULUDQ instead of PMADDWD/PMULLD, but I think this should be an improvement on most CPUs.
I think all of this can go away if/when we switch to -x86-experimental-vector-widening-legalization
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350134
91177308-0d34-0410-b5e6-
96231b3b80d8
Anna Thomas [Fri, 28 Dec 2018 18:52:16 +0000 (18:52 +0000)]
[UnrollRuntime] NFC: Add comment and verify LCSSA
Added -verify-loop-lcssa to test cases.
Updated comments in ConnectProlog.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350131
91177308-0d34-0410-b5e6-
96231b3b80d8
Diogo N. Sampaio [Fri, 28 Dec 2018 17:14:58 +0000 (17:14 +0000)]
[AArch64] Add command-line option for SB
SB (Speculative Barrier) is only mandatory from 8.5
onwards but is optional from Armv8.0-A. This patch adds a command
line option to enable SB, as it was previously only possible to
enable by selecting -march=armv8.5-a.
This patch also moves to FeatureSB the old FeatureSpecRestrict.
Reviewers: pbarrio, olista01, t.p.northover, LukeCheeseman
Differential Revision: https://reviews.llvm.org/D55921
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350126
91177308-0d34-0410-b5e6-
96231b3b80d8
Aleksandr Urakov [Fri, 28 Dec 2018 17:03:24 +0000 (17:03 +0000)]
[CodeView] Extend the `MemberAttributes` interface with the `isStatic` method
Summary:
This patch extends the MemberAttributes interface with the isStatic method.
It is needed for D56126.
Reviewers: zturner, rnk
Reviewed By: zturner
Differential Revision: https://reviews.llvm.org/D56127
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350125
91177308-0d34-0410-b5e6-
96231b3b80d8
Dmitry Preobrazhensky [Fri, 28 Dec 2018 11:48:23 +0000 (11:48 +0000)]
[AMDGPU][MC][DOC] Updated AMD GPU assembler description.
Minor bugfixing and improvements.
See bug 36572: https://bugs.llvm.org/show_bug.cgi?id=36572
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350120
91177308-0d34-0410-b5e6-
96231b3b80d8
Max Kazantsev [Fri, 28 Dec 2018 10:43:37 +0000 (10:43 +0000)]
[NFC] Add failing test on LCSSA form preservation of LoopSimplifyCFG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350119
91177308-0d34-0410-b5e6-
96231b3b80d8
Hiroshi Inoue [Fri, 28 Dec 2018 08:00:39 +0000 (08:00 +0000)]
[PowerPC] handle ISD:TRUNCATE in BitPermutationSelector
This is the last one in a series of patches to support better code generation for bitfield insert.
BitPermutationSelector already support ISD::ZERO_EXTEND but not TRUNCATE.
This patch adds support for ISD:TRUNCATE in BitPermutationSelector.
For example of this test case,
struct s64b {
int a:4;
int b:16;
int c:24;
};
void bitfieldinsert64b(struct s64b *p, unsigned char v) {
p->b = v;
}
the selection DAG loos like:
t14: i32,ch = load<(load 4 from %ir.0)> t0, t2, undef:i64
t18: i32 = and t14, Constant:i32<-
1048561>
t4: i64,ch = CopyFromReg t0, Register:i64 %1
t22: i64 = AssertZext t4, ValueType:ch:i8
t23: i32 = truncate t22
t16: i32 = shl nuw nsw t23, Constant:i32<4>
t19: i32 = or t18, t16
t20: ch = store<(store 4 into %ir.0)> t14:1, t19, t2, undef:i64
By handling truncate in the BitPermutationSelector, we can use information from AssertZext when selecting t19 and skip the mask operation corresponding to t18.
So the generated sequences with and without this patch are
without this patch
rlwinm 5, 5, 0, 28, 11 # corresponding to t18
rlwimi 5, 4, 4, 20, 27
with this patch
rlwimi 5, 4, 4, 12, 27
Differential Revision: https://reviews.llvm.org/D49076
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350118
91177308-0d34-0410-b5e6-
96231b3b80d8
Max Kazantsev [Fri, 28 Dec 2018 06:22:39 +0000 (06:22 +0000)]
Temporarily disable term folding in LoopSimplifyCFG, add tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350117
91177308-0d34-0410-b5e6-
96231b3b80d8
Max Kazantsev [Fri, 28 Dec 2018 06:08:51 +0000 (06:08 +0000)]
[LoopSimplifyCFG] Delete dead blocks in RPO
Deletion of dead blocks in arbitrary order may lead to failure
of assertion in `DeleteDeadBlock` that requires that we have
deleted all predecessors before we can delete the current block.
We should instead delete them in RPO order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350116
91177308-0d34-0410-b5e6-
96231b3b80d8
QingShan Zhang [Fri, 28 Dec 2018 03:38:09 +0000 (03:38 +0000)]
[PowerPC] Remove the implicit use of the register if it is replaced by Imm
If we are changing the MI operand from Reg to Imm, we need also handle its implicit use if have.
Differential Revision: https://reviews.llvm.org/D56078
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350115
91177308-0d34-0410-b5e6-
96231b3b80d8
Zi Xuan Wu [Fri, 28 Dec 2018 02:45:17 +0000 (02:45 +0000)]
[NFC] clang-format functions related to r350113
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350114
91177308-0d34-0410-b5e6-
96231b3b80d8
Zi Xuan Wu [Fri, 28 Dec 2018 02:12:55 +0000 (02:12 +0000)]
[PowerPC] Fix assert from machine verify pass that atomic pseudo expanding causes mismatched register class
For atomic value operand which less than 4 bytes need to be masked.
And the related operation to calculate the newvalue can be done in 32 bit gprc.
So just use gprc for mask and value calculation.
Differential Revision: https://reviews.llvm.org/D56077
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350113
91177308-0d34-0410-b5e6-
96231b3b80d8
Chen Zheng [Fri, 28 Dec 2018 01:02:35 +0000 (01:02 +0000)]
[PowerPC] fix register class after converting X-FORM instruction to D-FORM instruction
Differential Revision: https://reviews.llvm.org/D55806
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350111
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Thu, 27 Dec 2018 23:40:17 +0000 (23:40 +0000)]
[CallSite removal] Add and flesh out APIs on the new `CallBase` base class that previously were only available on the `CallSite` wrapper.
Summary:
This will make migrating code easier and generally seems like a good collection
of API improvements.
Some of these APIs seem like more consistent / better naming of existing
ones. I've retained the old names for migration simplicit and am just
adding the new ones in this commit. I'll try to garbage collect these
once CallSite is gone.
Subscribers: sanjoy, mcrosier, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D55638
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350109
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Thu, 27 Dec 2018 23:38:58 +0000 (23:38 +0000)]
[gn build] Add check-clang target and make it work
With this, check-clang runs and passes all of clang's lit tests. It doesn't run
any of its unit tests yet.
Like with check-lld, running just ninja -C out/gn will build all prerequisites
needed to run tests, but it won't run the tests (so that the build becomes
clean after one build). Running ninja -C out/gn check-clang will build
prerequisites if needed and run the tests. The check-clang target never becomes
clean and runs tests every time.
Differential Revision: https://reviews.llvm.org/D56095
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350108
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 27 Dec 2018 03:37:04 +0000 (03:37 +0000)]
[X86] Remove check that avoids creating PMULDQ with illegal types. Rely on SplitOpsAndApply to legalize it.
Create PMULDQ/PMULUDQ as long as the number of elements is a power of 2.
This seems to give some improvements in our ability to use SimplifyDemandedBits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350084
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 27 Dec 2018 01:50:40 +0000 (01:50 +0000)]
[X86] Factor the core code out of LowerSETCC into a helper that can create CMP/BT/PTEST/KORTEST etc. without making an X86ISD::SETCC node. NFCI
Make each of the helper functions only return their comparison node and the condition code. Leave X86ISD::SETCC creation to the LowerSETCC function itself.
Looking into whether we can use this code directly in BRCOND and SELECT lowering instead of going through LowerSETCC which creates an X86ISD::SETCC node we need to look through.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350082
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Thu, 27 Dec 2018 01:50:38 +0000 (01:50 +0000)]
[X86] Merge getBitTestCondition into LowerAndToBT. Don't create X86ISD::SETCC node in the merged function. NFCI
Only one of the 3 callers of LowerAndToBT need the SETCC node. Two of them have to look through it to find the operands they really need. Instead create it after the one call that needs it.
LowerAndToBT now returns both the BT node and the X86 specific condition code separately.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350081
91177308-0d34-0410-b5e6-
96231b3b80d8
Wouter van Oortmerssen [Wed, 26 Dec 2018 22:55:26 +0000 (22:55 +0000)]
[WebAssembly] Added basic support for if/else/end_if in MC layer.
Summary:
These instructions are currently unused in our backend, but for
completeness it is good to support them, so they can be used with
the assembler in hand-written code.
Tests are very basic, signature support missing much like other blocks.
Reviewers: dschuff, aheejin
Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D55973
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350079
91177308-0d34-0410-b5e6-
96231b3b80d8
Wouter van Oortmerssen [Wed, 26 Dec 2018 22:46:18 +0000 (22:46 +0000)]
[WebAssembly] Make assembler check for proper nesting of control flow.
Summary:
It does so using a simple nesting stack, and gives clear errors upon
violation. This is unique to wasm, since most CPUs do not have
any nested constructs.
Had to add an end of file check to the general assembler for this.
Note: if/else/end instructions are not currently supported in our
tablegen defs, so these tests will be enabled in a follow-up.
They already pass the nesting check.
Reviewers: dschuff, aheejin
Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D55797
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350078
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Wed, 26 Dec 2018 22:34:44 +0000 (22:34 +0000)]
manpages: Update the URL for https
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350077
91177308-0d34-0410-b5e6-
96231b3b80d8
Heejin Ahn [Wed, 26 Dec 2018 22:33:35 +0000 (22:33 +0000)]
[WebAssembly] Delete an unnecessary line in RegStackify
`OneUseInst` is set outside of the loop before and `OneUse` does not
change throughout the loop, so this line is not necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350076
91177308-0d34-0410-b5e6-
96231b3b80d8
Heejin Ahn [Wed, 26 Dec 2018 22:27:46 +0000 (22:27 +0000)]
[WebAssembly] Fix typos in comments in RegStackify (NFC)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350075
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Wed, 26 Dec 2018 21:59:48 +0000 (21:59 +0000)]
[LoopIdiomRecognize] Add CTTZ support
Summary:
Existing LIR recognizes CTLZ where shifting input variable right until it is zero. (Shift-Until-Zero idiom)
This commit:
1. Augments Shift-Until-Zero idiom to recognize CTTZ where input variable is shifted left.
2. Prepare for BitScan idiom recognition.
Patch by Yuanfang Chen (tabloid.adroit)
Reviewers: craig.topper, evstupac
Reviewed By: craig.topper
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D55876
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350074
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 26 Dec 2018 21:52:17 +0000 (21:52 +0000)]
[codeview] Check if this 'this' type of a method is a pointer
Fixes crash reported after r347354 for frontends that don't always emit
'this' pointers for methods. Now we will silently produce debug info
that makes functions like this look like static methods, which seems
reasonable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350073
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Lebar [Wed, 26 Dec 2018 19:12:31 +0000 (19:12 +0000)]
[NVPTX] Allow libcalls that are defined in the current module.
The patch adds a possibility to make library calls on NVPTX.
An important thing about library functions - they must be defined within
the current module. This basically should guarantee that we produce a
valid PTX assembly (without calls to not defined functions). The one who
wants to use the libcalls is probably will have to link against
compiler-rt or any other implementation.
Currently, it's completely impossible to make library calls because of
error LLVM ERROR: Cannot select: i32 = ExternalSymbol '...'. But we can
lower ExternalSymbol to TargetExternalSymbol and verify if the function
definition is available.
Also, there was an issue with a DAG during legalisation. When we expand
instruction into libcall, the inner call-chain isn't being "integrated"
into outer chain. Since the last "data-flow" (call retval load) node is
located in call-chain earlier than CALLSEQ_END node, the latter becomes
a leaf and therefore a dead node (and is being removed quite fast).
Proposed here solution relies on another data-flow pseudo nodes
(ProxyReg) which purpose is only to keep CALLSEQ_END at legalisation and
instruction selection phases - we remove the pseudo instructions before
register scheduling phase.
Patch by Denys Zariaiev!
Differential Revision: https://reviews.llvm.org/D34708
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350069
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Pilgrim [Wed, 26 Dec 2018 12:09:10 +0000 (12:09 +0000)]
[AMDGPU] Regenerate i64 shift tests.
To show codegen diff due to a future SimplifyDemandedBits patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350065
91177308-0d34-0410-b5e6-
96231b3b80d8
Max Kazantsev [Wed, 26 Dec 2018 08:22:25 +0000 (08:22 +0000)]
[NFC] Use utility function for guards detection
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350064
91177308-0d34-0410-b5e6-
96231b3b80d8
Petar Avramovic [Tue, 25 Dec 2018 14:42:30 +0000 (14:42 +0000)]
[MIPS GlobalISel] Select G_SELECT
Add widen scalar for type index 1 (i1 condition) for G_SELECT.
Select G_SELECT for pointer, s32(integer) and smaller low level
types on MIPS32.
Differential Revision: https://reviews.llvm.org/D56001
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350063
91177308-0d34-0410-b5e6-
96231b3b80d8
Max Kazantsev [Tue, 25 Dec 2018 07:20:06 +0000 (07:20 +0000)]
[NFC] Reuse variables instead of re-calling getParent
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350062
91177308-0d34-0410-b5e6-
96231b3b80d8
Kang Zhang [Tue, 25 Dec 2018 03:29:51 +0000 (03:29 +0000)]
[PowerPC] Fix the bug of ISD::ADDE to set its second return type to glue
Summary:
This patch is to fix the bug imported by rL341634.
In above submit , the the return type of ISD::ADDE is
14224: SDVTList VTs = DAG.getVTList(MVT::i64, MVT::i64),
but in fact, the second return type of ISD::ADDE should be
MVT::Glue not MVT::i64.
Reviewed By: hfinkel
Differential Revision: https://reviews.llvm.org/D55977
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350061
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Mon, 24 Dec 2018 23:06:29 +0000 (23:06 +0000)]
[gn build] Make NOSORT line actually work
GN wants the NOSORT line to be the first line of a comment block, not the last
line.
I sent https://gn-review.googlesource.com/c/gn/+/3560 to support having it in
the last line too, but since it will be a while until everyone has that change
even if it's expected, use the form that works today.
Differential Revision: https://reviews.llvm.org/D56065
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350060
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 24 Dec 2018 19:40:20 +0000 (19:40 +0000)]
[X86] Use GetDemandedBits to simplify the operands of PMULDQ/PMULUDQ.
This is an alternative to what I attempted in D56057.
GetDemandedBits is a special version of SimplifyDemandedBits that allows simplifications even when the operand has other uses. GetDemandedBits will only do simplifications that allow a node to be bypassed. It won't create new nodes or alter any of the other users.
I had to add support for bypassing SIGN_EXTEND_INREG to GetDemandedBits.
Based on a patch that Simon Pilgrim sent me in email.
Fixes PR40142.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350059
91177308-0d34-0410-b5e6-
96231b3b80d8
Craig Topper [Mon, 24 Dec 2018 19:40:17 +0000 (19:40 +0000)]
[X86] Add test cases for PR40142. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350058
91177308-0d34-0410-b5e6-
96231b3b80d8
Eugene Leviant [Mon, 24 Dec 2018 16:02:48 +0000 (16:02 +0000)]
[HWASAN] Instrument memorty intrinsics by default
Differential revision: https://reviews.llvm.org/D55926
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350055
91177308-0d34-0410-b5e6-
96231b3b80d8
Nico Weber [Mon, 24 Dec 2018 15:45:04 +0000 (15:45 +0000)]
[gn build] Add build files for clang/tools/{c-arcmt-test,c-index-test} and their dependency clang/tools/libclang
libclang is somewhat incomplete. It's just enough to get check-clang to pass,
but that requires it to be pretty complete. The biggest thing is that it's not
built as a shared library on Linux. The libclang/BUILD.gn file has a comment
with details on what else is missing.
Differential Revision: https://reviews.llvm.org/D56059
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350054
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Lebedev [Mon, 24 Dec 2018 12:12:26 +0000 (12:12 +0000)]
ReleaseNotes: X86 Target: bdver2 sched model was added (D52779)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350053
91177308-0d34-0410-b5e6-
96231b3b80d8
Max Kazantsev [Mon, 24 Dec 2018 10:30:04 +0000 (10:30 +0000)]
Revert rL350048 and rL350050
These patches have broken almost all buildbots on test
DebugInfo/X86/addr_comments.ll. Reverting to green.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350052
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 24 Dec 2018 07:56:40 +0000 (07:56 +0000)]
Fix build - follow-up to r350048 which broke headerless (v4) address pool
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350050
91177308-0d34-0410-b5e6-
96231b3b80d8
Max Kazantsev [Mon, 24 Dec 2018 07:41:33 +0000 (07:41 +0000)]
[LoopSimplifyCFG] Delete dead exiting edges
This patch teaches LoopSimplifyCFG to remove dead exiting edges
from loops.
Differential Revision: https://reviews.llvm.org/D54025
Reviewed By: fedor.sergeev
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350049
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 24 Dec 2018 07:35:10 +0000 (07:35 +0000)]
DebugInfo: Use assembly label arithmetic for address pool size for easier reading/editing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350048
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 24 Dec 2018 07:09:50 +0000 (07:09 +0000)]
DebugInfo: Add assembly comments for debug_addr contribution header fields
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350047
91177308-0d34-0410-b5e6-
96231b3b80d8