platform/upstream/llvm.git
5 years ago[Sanitizer] Disable arc4random seeding apis on for Non NetBSD platforms.
David Carlier [Wed, 2 Jan 2019 19:11:44 +0000 (19:11 +0000)]
[Sanitizer] Disable arc4random seeding apis on for Non NetBSD platforms.

- arc4random_stir / arc4random_addrandom had been made obsolete (and removed) from FreeBSD 12.

Reviewers: krytarowski

Reviewed By: krytarowski

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

llvm-svn: 350249

5 years ago[Sanitizer] Enable funopen on FreeBSD
David Carlier [Wed, 2 Jan 2019 19:07:27 +0000 (19:07 +0000)]
[Sanitizer] Enable funopen on FreeBSD

Reviewers: krytarowski

Reviewed By: krytarowski

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

llvm-svn: 350248

5 years agoAdd file-based synchronization to flaky test
Adrian Prantl [Wed, 2 Jan 2019 19:06:22 +0000 (19:06 +0000)]
Add file-based synchronization to flaky test

TestQueues is failing randomly on green dragon and I suspect it is
because the enqueued threads haven't executed by the time we expect
them. This patch adds file-based synchronization to the queues.

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

llvm-svn: 350247

5 years ago[sanitizer] Android does not provide <fstab.h>
Evgeniy Stepanov [Wed, 2 Jan 2019 19:05:26 +0000 (19:05 +0000)]
[sanitizer] Android does not provide <fstab.h>

llvm-svn: 350246

5 years ago[X86] Remove X86ISD::INC/DEC. Just select them from X86ISD::ADD/SUB at isel time
Craig Topper [Wed, 2 Jan 2019 19:01:05 +0000 (19:01 +0000)]
[X86] Remove X86ISD::INC/DEC. Just select them from X86ISD::ADD/SUB at isel time

INC/DEC are pretty much the same as ADD/SUB except that they don't update the C flag.

This patch removes the special nodes and just pattern matches from ADD/SUB during isel if the C flag isn't being used.

I had to avoid selecting DEC is the result isn't used. This will become a SUB immediate which will turned into a CMP later by optimizeCompareInstr. This lead to the one test change where we use a CMP instead of a DEC for an overflow intrinsic since we only checked the flag.

This also exposed a hole in our RMW flag matching use of hasNoCarryFlagUses. Our root node for the match is a store and there's no guarantee that all the flag users have been selected yet. So hasNoCarryFlagUses needs to check copyToReg and machine opcodes, but it also needs to check for the pre-match SETCC, SETCC_CARRY, BRCOND, and CMOV opcodes.

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

llvm-svn: 350245

5 years agoUse map::insert instead of try_emplace.
Zachary Turner [Wed, 2 Jan 2019 18:53:11 +0000 (18:53 +0000)]
Use map::insert instead of try_emplace.

try_emplace is C++17.

llvm-svn: 350244

5 years ago[NativePDB] Implement ParseDeclsForContext.
Zachary Turner [Wed, 2 Jan 2019 18:33:54 +0000 (18:33 +0000)]
[NativePDB] Implement ParseDeclsForContext.

This is a first step towards getting lldb-test symbols working
with the native plugin.  There is a remaining issue, which is
that the plugin expects that ParseDeclsForContext will also
create lldb symbols rather than just the decls, but the native
pdb plugin doesn't currently do this.  This will be addressed
in a followup patch.

llvm-svn: 350243

5 years ago[NativePDB] Update function-types-classes test to check VarDecls.
Zachary Turner [Wed, 2 Jan 2019 18:33:32 +0000 (18:33 +0000)]
[NativePDB] Update function-types-classes test to check VarDecls.

A Previous patch added support for creating VarDecls for global
variables.  This patch updates this test to be more strict and
actually check these, not just the types.

llvm-svn: 350242

5 years ago[MS Demangler] Add a flag for dumping types without tag specifier.
Zachary Turner [Wed, 2 Jan 2019 18:33:12 +0000 (18:33 +0000)]
[MS Demangler] Add a flag for dumping types without tag specifier.

Sometimes it's useful to be able to output demangled names without
tag specifiers like "struct", "class", etc.  This patch adds a
flag enabling this.

llvm-svn: 350241

5 years ago[NativePDB] Fix setting breakpoint by file and line.
Zachary Turner [Wed, 2 Jan 2019 18:32:50 +0000 (18:32 +0000)]
[NativePDB] Fix setting breakpoint by file and line.

There were several problems preventing this from working.  The
first is that when the PDB had an absolute path to the main
source file, we would construct an invalid path by prepending the
compilation directory to it anyway.  So we needed to check if the
path is already absolute first.

Second, LLDB assumes that the zero'th item in the support file list
is the main compilation unit.  We were respecting this requirement,
but LLDB *also* requires that file to appear somewhere in the list
starting from index 1 as well.  So the main compilation file should
appear in the support file list twice.  And when parsing a line
table, it expects the LineEntry records to be constructed using
the 1-based index.  With these two fixes we can now set breakpoints
by file and line using the native PDB reader.

llvm-svn: 350240

5 years ago[DAGCombiner] After performing the division by constant optimization for a DIV or...
Craig Topper [Wed, 2 Jan 2019 18:19:07 +0000 (18:19 +0000)]
[DAGCombiner] After performing the division by constant optimization for a DIV or REM node, replace the users of the corresponding REM or DIV node if it exists.

Currently we expand the two nodes separately. This gives DAG combiner an opportunity to optimize the expanded sequence taking into account only one set of users. When we expand the other node we'll create the expansion again, but might not be able to optimize it the same way. So the nodes won't CSE and we'll have two similarish sequences in the same basic block. By expanding both nodes at the same time we'll avoid prematurely optimizing the expansion until both the division and remainder have been replaced.

Improves the test case from PR38217. There may be additional opportunities after this.

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

llvm-svn: 350239

5 years ago[gn build] Add fuzzers in llvm/tools that are needed for check-llvm
Nico Weber [Wed, 2 Jan 2019 18:13:14 +0000 (18:13 +0000)]
[gn build] Add fuzzers in llvm/tools that are needed for check-llvm

Also add a fuzzer() template for defining fuzzers that's similar to
add_llvm_fuzzer in the CMake build, and a build file for dependency
llvm/lib/FuzzMutate.

Also make `assert(defined(...` error strings a bit more self-consistent.

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

llvm-svn: 350238

5 years ago[X86] Adding full coverage of MC encoding for the XOP and LWP ISAs.
Craig Topper [Wed, 2 Jan 2019 18:09:41 +0000 (18:09 +0000)]
[X86] Adding full coverage of MC encoding for the XOP and LWP ISAs.

Adding MC regressions tests to cover the XOP isa set.
This patch is part of a larger task to cover MC encoding of all X86 isa sets started in revision: https://reviews.llvm.org/D39952

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

llvm-svn: 350237

5 years ago[LegalizeIntegerTypes] When promoting the result of an extract_vector_elt also promot...
Craig Topper [Wed, 2 Jan 2019 17:58:30 +0000 (17:58 +0000)]
[LegalizeIntegerTypes] When promoting the result of an extract_vector_elt also promote the input type if necessary

By also promoting the input type we get a better idea for what scalar type to use. This can provide better results if the result of the extract is sign extended. What was previously happening is that the extract result would be legalized, sometime later the input of the sign extend would be legalized using the result of the extract. Then later the extract input would be legalized forcing a truncate into the input of the sign extend using a replace all uses. This requires DAG combine to combine out the sext/truncate pair. But sometimes we visited the truncate first and messed things up before the sext could be combined.

By creating the extract with the correct scalar type when we create legalize the result type, the truncate will be added right away. Then when the sign_extend input is legalized it will create an any_extend of the truncate which can be optimized by getNode to maybe remove the truncate. And then a sign_extend_inreg. Now DAG combine doesn't have to worry about getting rid of the extend.

This fixes the regression on X86 in D56156.

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

llvm-svn: 350236

5 years ago[DAGCombiner][X86][PowerPC] Teach visitSIGN_EXTEND_INREG to fold (sext_in_reg (aext...
Craig Topper [Wed, 2 Jan 2019 17:58:27 +0000 (17:58 +0000)]
[DAGCombiner][X86][PowerPC] Teach visitSIGN_EXTEND_INREG to fold (sext_in_reg (aext/sext x)) -> (sext x) when x has more than 1 sign bit and the sext_inreg is from one of them.

If x has multiple sign bits than it doesn't matter which one we extend from so we can sext from x's msb instead.

The X86 setcc-combine.ll changes are a little weird. It appears we ended up with a (sext_inreg (aext (trunc (extractelt)))) after type legalization. The sext_inreg+aext now gets optimized by this combine to leave (sext (trunc (extractelt))). Then we visit the trunc before we visit the sext. This ends up changing the truncate to an extractvectorelt from a bitcasted vector. I have a follow up patch to fix this.

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

llvm-svn: 350235

5 years ago[gn build] Add build files for bugpoint-passes and LLVMHello plugins
Nico Weber [Wed, 2 Jan 2019 17:38:22 +0000 (17:38 +0000)]
[gn build] Add build files for bugpoint-passes and LLVMHello plugins

These two plugins are loaded into a host process that contains all LLVM
symbols, so they don't link against anything. This required minor readjustments
to the tablegen() setup of IR.

Needed for check-llvm.

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

llvm-svn: 350234

5 years ago[sanitizer_common] Implement funopen*() interceptors for NetBSD
Michal Gorny [Wed, 2 Jan 2019 17:37:14 +0000 (17:37 +0000)]
[sanitizer_common] Implement funopen*() interceptors for NetBSD

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

llvm-svn: 350233

5 years ago[sanitizer_common] Implement popen, popenve, pclose interceptors
Michal Gorny [Wed, 2 Jan 2019 17:37:09 +0000 (17:37 +0000)]
[sanitizer_common] Implement popen, popenve, pclose interceptors

Implement the interceptors for popen(), pclose() and popenve()
functions.  The first two are POSIX, the third one is specific
to NetBSD.  popen() spawns a process and creates a FILE object piping
data from/to that process.  pclose() closes the pipe and waits for
the process to terminate appropriately.

For the purpose of popen(), the COMMON_INTERCEPTOR_FILE_OPEN macro is
modified to allow null path parameter.

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

llvm-svn: 350232

5 years ago[sanitizer_common] Add tests for NetBSD funopen*() functions
Michal Gorny [Wed, 2 Jan 2019 17:37:04 +0000 (17:37 +0000)]
[sanitizer_common] Add tests for NetBSD funopen*() functions

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

llvm-svn: 350231

5 years ago[sanitizer_common] Add test for popen()
Michal Gorny [Wed, 2 Jan 2019 17:37:00 +0000 (17:37 +0000)]
[sanitizer_common] Add test for popen()

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

llvm-svn: 350230

5 years ago[sanitizer_common] Add tests for more *putc and *getc variants
Michal Gorny [Wed, 2 Jan 2019 17:36:55 +0000 (17:36 +0000)]
[sanitizer_common] Add tests for more *putc and *getc variants

Add tests for the more character-oriented functions, that is:
- fputc(), putc() and putchar()
- getc_unlocked()
- putc_unlocked() and putchar_unlocked()

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

llvm-svn: 350229

5 years ago[sanitizer_common] Fix devname_r() return type on !NetBSD
Michal Gorny [Wed, 2 Jan 2019 17:36:50 +0000 (17:36 +0000)]
[sanitizer_common] Fix devname_r() return type on !NetBSD

Update the interceptor for devname_r() to account for correct return
types on different platforms.  This function returns int on NetBSD
but char* on FreeBSD/OSX.  Noticed by @krytarowski.

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

llvm-svn: 350228

5 years ago[sanitizer_common] Rewrite more Posix tests to use asserts
Michal Gorny [Wed, 2 Jan 2019 17:36:46 +0000 (17:36 +0000)]
[sanitizer_common] Rewrite more Posix tests to use asserts

Rewrite the tests for Posix functions that silently 'return 1'
or 'exit(1)' on error, to instead verbosely report the error using
assert.  This is based on requests made in review of D56136.

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

llvm-svn: 350227

5 years ago[gn build] Add some llvm/tools: lli, lli-child-target
Nico Weber [Wed, 2 Jan 2019 17:36:41 +0000 (17:36 +0000)]
[gn build] Add some llvm/tools: lli, lli-child-target

Also add build files for dependencies llvm/lib/ExecutionEngine/{Interpreter,Orc}

Needed for check-llvm.

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

llvm-svn: 350226

5 years ago[sanitizer_common] Add tests for more stdio.h functions
Michal Gorny [Wed, 2 Jan 2019 17:36:37 +0000 (17:36 +0000)]
[sanitizer_common] Add tests for more stdio.h functions

Add two new test cases that test the following stdio.h functions:
- clearerr()
- feof()
- ferror()
- fileno()
- fgetc()
- getc()
- ungetc()

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

llvm-svn: 350225

5 years agoOnly convert objc messages to alloc to objc_alloc if the receiver is a class.
Pete Cooper [Wed, 2 Jan 2019 17:25:30 +0000 (17:25 +0000)]
Only convert objc messages to alloc to objc_alloc if the receiver is a class.

r348687 converted [Foo alloc] to objc_alloc(Foo).  However the objc runtime method only takes a Class, not an arbitrary pointer.

This makes sure we are messaging a class before we convert these messages.

rdar://problem/46943703

llvm-svn: 350224

5 years ago[PowerPC] Remove SeenUse check when optimizing conditional branch in
Wei Mi [Wed, 2 Jan 2019 17:07:23 +0000 (17:07 +0000)]
[PowerPC] Remove SeenUse check when optimizing conditional branch in
PPCPreEmitPeephole pass.

PPCPreEmitPeephole will convert a BC to B when the conditional branch is
based on a constant CR by CRSET or CRUNSET. This is added in
https://reviews.llvm.org/rL343100.

When the conditional branch is known to be always taken, all branches will
be removed and a new unconditional branch will be inserted. However, when
SeenUse is false the original patch will not remove the branches, but still
insert the new unconditional branch, update the successors and create
inconsistent IR. Compiling the synthetic testcase included can show the
problem we run into.

The patch simply removes the SeenUse condition when adding branches into
InstrsToErase set.

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

llvm-svn: 350223

5 years ago[X86] Support SHLD/SHRD masked shift-counts (PR34641)
Simon Pilgrim [Wed, 2 Jan 2019 17:05:37 +0000 (17:05 +0000)]
[X86] Support SHLD/SHRD masked shift-counts (PR34641)

Peek through shift modulo masks while matching double shift patterns.

I was hoping to delay this until I could remove the X86 code with generic funnel shift matching (PR40081) but this will do for now.

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

llvm-svn: 350222

5 years ago[x86] add more tests for potential horizontal ops; NFC
Sanjay Patel [Wed, 2 Jan 2019 16:36:04 +0000 (16:36 +0000)]
[x86] add more tests for potential horizontal ops; NFC

As discussed in D56011 - add runs for AVX512 and tests with extra uses.

llvm-svn: 350221

5 years ago[BasicAA] Support arbitrary pointer sizes (and fix an overflow bug)
Hal Finkel [Wed, 2 Jan 2019 16:28:09 +0000 (16:28 +0000)]
[BasicAA] Support arbitrary pointer sizes (and fix an overflow bug)

Motivated by the discussion in D38499, this patch updates BasicAA to support
arbitrary pointer sizes by switching most remaining non-APInt calculations to
use APInt. The size of these APInts is set to the maximum pointer size (maximum
over all address spaces described by the data layout string).

Most of this translation is straightforward, but this patch contains a fix for
a bug that revealed itself during this translation process. In order for
test/Analysis/BasicAA/gep-and-alias.ll to pass, which is run with 32-bit
pointers, the intermediate calculations must be performed using 64-bit
integers. This is because, as noted in the patch, when GetLinearExpression
decomposes an expression into C1*V+C2, and we then multiply this by Scale, and
distribute, to get (C1*Scale)*V + C2*Scale, it can be the case that, even
through C1*V+C2 does not overflow for relevant values of V, (C2*Scale) can
overflow. If this happens, later logic will draw invalid conclusions from the
(base) offset value. Thus, when initially applying the APInt conversion,
because the maximum pointer size in this test is 32 bits, it started failing.
Suspicious, I created a 64-bit version of this test (included here), and that
failed (miscompiled) on trunk for a similar reason (the multiplication can
overflow).

After fixing this overflow bug, the first test case (at least) in
Analysis/BasicAA/q.bad.ll started failing. This is also a 32-bit test, and was
relying on having 64-bit intermediate values to have BasicAA return an accurate
result. In order to fix this problem, and because I believe that it is not
uncommon to use i64 indexing expressions in 32-bit code (especially portable
code using int64_t), it seems reasonable to always use at least 64-bit
integers. In this way, we won't regress our analysis capabilities (and there's
a command-line option added, so experimenting with this should be easy).

As pointed out by Eli during the review, there are other potential overflow
conditions that this patch does not address. Fixing those is left to follow-up
work.

Patch by me with contributions from Michael Ferguson (mferguson@cray.com).

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

llvm-svn: 350220

5 years agoExtend Module::getOrInsertGlobal to control the construction of the
Philip Pfaffe [Wed, 2 Jan 2019 15:41:47 +0000 (15:41 +0000)]
Extend Module::getOrInsertGlobal to control the construction of the
GlobalVariable

Summary:
Extend Module::getOrInsertGlobal to accept a callback for creating a new
GlobalVariable if necessary instead of calling the GV constructor
directly using default arguments. Additionally overload
getOrInsertGlobal for the previous default behavior.

Reviewers: chandlerc

Subscribers: hiraditya, llvm-commits, bollu

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

llvm-svn: 350219

5 years ago[MCA] Minor refactoring of method DefaultResourceStrategy::select. NFCI
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.

llvm-svn: 350218

5 years ago[gn build] Add some llvm/tools: bugpoint, dsymutil, llvm-opt-report
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

llvm-svn: 350217

5 years ago[gn build] Add some llvm/tools: llvm-c-test, llvm-cfi-verify, llvm-cov, llvm-cvtres
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

llvm-svn: 350216

5 years ago[gn build] Add some llvm/tools: llvm-cxxdump, llvm-cxxfilt, llvm-cxxmap
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

llvm-svn: 350215

5 years ago[gn build] Add some llvm/tools: llvm-diff, llvm-dwp
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

llvm-svn: 350214

5 years ago[gn build] Add some llvm/tools: llvm-mca, llvm-mt
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

llvm-svn: 350213

5 years ago[gn build] Add some llvm/tools: llvm-size, llvm-split, llvm-strings
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

llvm-svn: 350212

5 years ago[gn build] Add some llvm/tools: llvm-xray, sancov, sanstats, verify-uselistorder...
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

llvm-svn: 350211

5 years ago[clangd] Show FileStatus in vscode-clangd.
Haojian Wu [Wed, 2 Jan 2019 11:25:37 +0000 (11:25 +0000)]
[clangd] Show FileStatus in vscode-clangd.

Summary:
The file status will be shown in the status bar.
Depends on D55363.

Reviewers: ilya-biryukov

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

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

llvm-svn: 350210

5 years agoNativeProcessProtocolTest: fix -Winconsistent-missing-override warning
Pavel Labath [Wed, 2 Jan 2019 10:37:38 +0000 (10:37 +0000)]
NativeProcessProtocolTest: fix -Winconsistent-missing-override warning

The warning comes from the fact that the MOCK_METHOD macros don't use the
override keyword internally. This makes us not use it in the manually overriden
methods either, to be consistent.

llvm-svn: 350209

5 years ago[AMDGPU] Handle OR as operand of raw load/store
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

llvm-svn: 350208

5 years agoRevert rL350035 "[llvm-exegesis] Clustering: don't enqueue a point multiple times"
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.

llvm-svn: 350207

5 years ago[X86] Remove the separate SMUL8/UMUL8 X86ISD opcodes by merging with SMUL/UMUL. Remov...
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.

llvm-svn: 350206

5 years ago[X86] Allow LowerSELECT and LowerBRCOND to directly lower i8 UMULO/SMULO.
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

llvm-svn: 350205

5 years ago[X86] Add i8/i16 smulo/umulo test cases where the overflow indication is used by...
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.

llvm-svn: 350204

5 years ago[X86] Remove KNL specific check prefix from xmulo.ll test. NFC
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.

llvm-svn: 350203

5 years ago[CMake][Fuchsia] Include check-lld in the list of bootstrap targets
Petr Hosek [Wed, 2 Jan 2019 05:11:57 +0000 (05:11 +0000)]
[CMake][Fuchsia] Include check-lld in the list of bootstrap targets

This allows running lld tests when doing 2-stage toolchain build.

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

llvm-svn: 350202

5 years ago[InstCombine] canonicalize raw IR rotate patterns to funnel shift
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.

llvm-svn: 350199

5 years ago[X86] Factor the core code out of LowerXALUO into a helper function. Use it in LowerB...
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.

llvm-svn: 350198

5 years ago[LLVM-C] bool -> LLVMBool
Robert Widmann [Tue, 1 Jan 2019 19:03:37 +0000 (19:03 +0000)]
[LLVM-C] bool -> LLVMBool

llvm-svn: 350197

5 years ago[LLVM-C] Add Accessors for Discarding Value Names in the IR
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

llvm-svn: 350196

5 years ago[X86] Remove KNL specific check prefix from xaluo.ll test. NFC
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.

llvm-svn: 350195

5 years ago[X86] Add test cases to show where LowerSELECT doesn't select SADDO/SSUBO to INC...
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.

llvm-svn: 350194

5 years ago[x86] move/rename helper for horizontal op codegen; NFC
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.

llvm-svn: 350193

5 years agoFix some typos in the clang doc.
Sylvestre Ledru [Tue, 1 Jan 2019 12:51:14 +0000 (12:51 +0000)]
Fix some typos in the clang doc.
Fixed with:
$ codespell -w ClangFormatStyleOptions.rst Toolchain.rst LanguageExtensions.rst ClangCommandLineReference.rst

llvm-svn: 350192

5 years agoclang-format-diff: add an example with hg
Sylvestre Ledru [Tue, 1 Jan 2019 12:32:08 +0000 (12:32 +0000)]
clang-format-diff: add an example with hg

llvm-svn: 350191

5 years ago[BDCE] Regenerate test checks; NFC
Nikita Popov [Tue, 1 Jan 2019 12:27:23 +0000 (12:27 +0000)]
[BDCE] Regenerate test checks; NFC

llvm-svn: 350190

5 years ago[BDCE] Remove -instsimplify from BDCE test; NFC
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.

llvm-svn: 350189

5 years agoReapply "[BDCE][DemandedBits] Detect dead uses of undead instructions"
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

llvm-svn: 350188

5 years agoReversing the commit in revision 350186. Revision causes regression in 4
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.

llvm-svn: 350187

5 years agoOmit range checks from jump tables when lowering switches with unreachable
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

llvm-svn: 350186

5 years ago[InstCombine] canonicalize MUL with NEG operand
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

llvm-svn: 350185

5 years ago[gn build] Add some llvm/tools: llvm-exegesis, llvm-extract, llvm-link
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

llvm-svn: 350184

5 years ago[gn build] Add some llvm/tools: llvm-rc, llvm-rtdyld
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

llvm-svn: 350183

5 years agoMake clearer which clang::type subclasses have visualizers
Mike Spertus [Mon, 31 Dec 2018 23:01:34 +0000 (23:01 +0000)]
Make clearer which clang::type subclasses have visualizers

llvm-svn: 350182

5 years ago[X86] Add PR34641 masked shld/shrd test cases
Simon Pilgrim [Mon, 31 Dec 2018 19:46:18 +0000 (19:46 +0000)]
[X86] Add PR34641 masked shld/shrd test cases

llvm-svn: 350181

5 years ago[X86] Add additional RUN lines to prepare for D56156. NFC
Craig Topper [Mon, 31 Dec 2018 19:09:32 +0000 (19:09 +0000)]
[X86] Add additional RUN lines to prepare for D56156. NFC

llvm-svn: 350180

5 years ago[SelectionDAG] Add SIGN_EXTEND_VECTOR_INREG support to computeKnownBits.
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

llvm-svn: 350179

5 years ago[X86] Add X86ISD::VSRAI to computeKnownBitsForTargetNode.
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

llvm-svn: 350178

5 years ago[DWARFUnit] Remove commented out code. NFCI.
Davide Italiano [Mon, 31 Dec 2018 18:45:30 +0000 (18:45 +0000)]
[DWARFUnit] Remove commented out code. NFCI.

llvm-svn: 350177

5 years agoKeep tablegen commands in alphabetical order. NFCI.
Simon Pilgrim [Mon, 31 Dec 2018 14:51:53 +0000 (14:51 +0000)]
Keep tablegen commands in alphabetical order. NFCI.

Mentioned on D56167.

llvm-svn: 350176

5 years ago[test] Fix propagating HOME envvar to unittests
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

llvm-svn: 350175

5 years ago[AArch64] Accept "sve" as arch feature in assembler
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

llvm-svn: 350174

5 years ago[MSan] Handle llvm.is.constant intrinsic
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.

llvm-svn: 350173

5 years ago[DAGCombiner] Add missing one use check on the shuffle in the bitcast(shuffle(bitcast...
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.

llvm-svn: 350172

5 years ago[gn build] Make `ninja check-clang` also run Clang's unit tests
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

llvm-svn: 350171

5 years agoMore tolerance for flaky tests in libc++ on NetBSD
Kamil Rytarowski [Sun, 30 Dec 2018 23:05:14 +0000 (23:05 +0000)]
More tolerance for flaky tests in libc++ on NetBSD

Summary:
Tests marked with the flaky attribute ("FLAKY_TEST.")
can still report false positives in local tests and on the
NetBSD buildbot.

Additionally a number of tests (probably all threaded
ones) unmarked with the flaky attribute is flaky on
NetBSD.

An ideal solution on the libcxx side would be to raise
max retries for NetBSD and mark failing tests with
the flaky flag, however this adds more maintenance
burden and constant monitoring of flaky tests.

Reduce the work and handle flaky tests as more flaky
on NetBSD and allow flakiness  of other tests on
NetBSD.

Reviewers: mgorny, EricWF

Reviewed By: mgorny

Subscribers: christof, llvm-commits, libcxx-commits

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

llvm-svn: 350170

5 years ago[AArch64] Implement the .arch_extension directive
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

llvm-svn: 350169

5 years ago[llvm-objcopy] [COFF] Use Error/Expected returns instead of calling reportError....
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

llvm-svn: 350168

5 years agoDeclAccessPair visualizer should be expandable
Mike Spertus [Sun, 30 Dec 2018 20:22:37 +0000 (20:22 +0000)]
DeclAccessPair visualizer should be expandable

llvm-svn: 350167

5 years ago[CommandInterpreter] Simplify PreprocessCommand. (NFCI)
Jonas Devlieghere [Sun, 30 Dec 2018 17:56:30 +0000 (17:56 +0000)]
[CommandInterpreter] Simplify PreprocessCommand. (NFCI)

Simplify some code in PreprocessCommand. This change improves
consistency, reduces the indentation and makes the code easier to follow
overall.

llvm-svn: 350166

5 years ago[PowerPC] Fix machine verify pass error for PATCHPOINT pseudo instruction that bad...
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

llvm-svn: 350165

5 years ago[Type] Simplify operator!=. NFC.
Davide Italiano [Sun, 30 Dec 2018 15:08:51 +0000 (15:08 +0000)]
[Type] Simplify operator!=. NFC.

llvm-svn: 350164

5 years ago[TypeName] Simplify operator!=. NFCI.
Davide Italiano [Sun, 30 Dec 2018 15:07:25 +0000 (15:07 +0000)]
[TypeName] Simplify operator!=. NFCI.

llvm-svn: 350163

5 years ago[NFC] Fixed extra semicolon warning
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

llvm-svn: 350162

5 years ago[PowerPC] Fix ADDE, SUBE do not know how to promote operator
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

llvm-svn: 350161

5 years ago[test] Remove flakiness decorator from TestObjCDynamicSBType
Jonas Devlieghere [Sun, 30 Dec 2018 06:10:03 +0000 (06:10 +0000)]
[test] Remove flakiness decorator from TestObjCDynamicSBType

The quoted bug report (llvm.org/PR20270) was closed in 2014.

llvm-svn: 350160

5 years ago[X86] Don't mark SEXTLOAD from v4i8/v4i16/v8i8 as Custom on pre-sse4.1.
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.

llvm-svn: 350159

5 years ago[X86] Add custom type legalization for SIGN_EXTEND_VECTOR_INREG from 16i16/v32i8...
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.

llvm-svn: 350158

5 years ago[CodeGen] Replace '@' characters in block descriptors' symbol names with
Akira Hatanaka [Sat, 29 Dec 2018 17:28:30 +0000 (17:28 +0000)]
[CodeGen] Replace '@' characters in block descriptors' symbol names with
'\1'.

'@' can't be used in block descriptors' symbol names since it is
reserved on ELF platforms as a separator between symbol names and symbol
versions.

See the discussion here: https://reviews.llvm.org/D50783.

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

llvm-svn: 350157

5 years ago[PowerPC][NFC] Macro for register set defs for the Asm Parser
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

llvm-svn: 350156

5 years ago[PowerPC] Complete the custom legalization of vector int to fp conversion
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

llvm-svn: 350155

5 years ago[InstCombine] [NFC] update testcases for canonicalize MUL with NEG operand
Chen Zheng [Sat, 29 Dec 2018 12:18:15 +0000 (12:18 +0000)]
[InstCombine] [NFC] update testcases for canonicalize MUL with NEG operand

llvm-svn: 350154

5 years ago[PowerPC] Fix CR Bit spill pseudo expansion
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

llvm-svn: 350153

5 years ago[mips] Show an error on attempt to use 64-bit PC-relative relocation
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
```

llvm-svn: 350152

5 years ago[mips] Show a regular error message on attempt to use one byte relocation
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

llvm-svn: 350151

5 years ago[X86] Add test case from PR38217. NFC
Craig Topper [Sat, 29 Dec 2018 07:14:30 +0000 (07:14 +0000)]
[X86] Add test case from PR38217. NFC

llvm-svn: 350150

5 years ago[RegisterValue] Rewrite operator!= in terms of operator==. NFCI.
Davide Italiano [Sat, 29 Dec 2018 05:05:23 +0000 (05:05 +0000)]
[RegisterValue] Rewrite operator!= in terms of operator==. NFCI.

llvm-svn: 350149

5 years ago[CompilerType] Simplify operator!=. NFCI.
Davide Italiano [Sat, 29 Dec 2018 05:00:33 +0000 (05:00 +0000)]
[CompilerType] Simplify operator!=. NFCI.

llvm-svn: 350148