]> granicus.if.org Git - llvm/log
llvm
7 years agoMerging r300267: release_40 origin/release_40
Tom Stellard [Tue, 13 Jun 2017 01:46:44 +0000 (01:46 +0000)]
Merging r300267:

------------------------------------------------------------------------
r300267 | tejohnson | 2017-04-13 17:51:49 -0400 (Thu, 13 Apr 2017) | 11 lines

[Support] Fix ErrorOr assertion when /proc/cpuinfo doesn't exist.

The ErrorOr should not be dereferenced on the error path.

Patch by Jacob Young

Reviewers: tejohnson

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D32032
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@305264 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r304537:
Tom Stellard [Mon, 12 Jun 2017 14:17:05 +0000 (14:17 +0000)]
Merging r304537:

------------------------------------------------------------------------
r304537 | john.brawn | 2017-06-02 06:24:14 -0400 (Fri, 02 Jun 2017) | 9 lines

[GlobalMerge] Don't merge globals that may be preempted

When a global may be preempted it needs to be accessed directly, instead of
indirectly through a MergedGlobals symbol, for the preemption to work.

This fixes PR33136.

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

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@305187 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r298179:
Tom Stellard [Tue, 30 May 2017 20:36:49 +0000 (20:36 +0000)]
Merging r298179:

-----------------------------------------------------------------------
r298179 | niravd | 2017-03-17 20:44:07 -0400 (Fri, 17 Mar 2017) | 7 lines

Make library calls sensitive to regparm module flag (Fixes PR3997).

Reviewers: mkuper, rnk

Subscribers: mehdi_amini, jyknight, aemerson, llvm-commits, rengolin

Differential Revision: https://reviews.llvm.org/D27050
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@304242 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r302183:
Tom Stellard [Mon, 29 May 2017 11:56:29 +0000 (11:56 +0000)]
Merging r302183:

------------------------------------------------------------------------
r302183 | kparzysz | 2017-05-04 15:14:54 -0400 (Thu, 04 May 2017) | 7 lines

[PPC] When restoring R30 (PIC base pointer), mark it as <def>

This happened on the PPC32/SVR4 path and was discovered when building
FreeBSD on PPC32. It was a typo-class error in the frame lowering code.

This fixes PR26519.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@304150 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r303257:
Tom Stellard [Mon, 29 May 2017 10:36:17 +0000 (10:36 +0000)]
Merging r303257:

------------------------------------------------------------------------
r303257 | kparzysz | 2017-05-17 09:25:09 -0400 (Wed, 17 May 2017) | 10 lines

[PPC] Properly update register save area offsets

The variables MinGPR/MinG8R were not updated properly when resetting the
offsets, which in the included testcase lead to saving the CR register
in the same location as R30.

This fixes another issue reported in PR26519.

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

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@304145 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging part of 292188:
Tom Stellard [Fri, 26 May 2017 14:32:08 +0000 (14:32 +0000)]
Merging part of 292188:

------------------------------------------------------------------------
r292188 | ab | 2017-01-16 22:10:02 -0500 (Mon, 16 Jan 2017) | 11 lines

[TLI] Add prototype checking for all remaining LibFuncs.

This is another step towards unifying all LibFunc prototype checks.
This work started in r267758 (D19469);  add the remaining checks.

Also add a unittest that checks each libfunc declared with a known-valid
and known-invalid prototype.  New libfuncs added in the future are
required to have prototype checking in place; the known-valid test will
fail otherwise.

Differential Revision: https://reviews.llvm.org/D28030
------------------------------------------------------------------------

This ports just the fix for the log1p LibFunc to fix a crash on
FreeBSD.  See PR32494 and PR32495.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@303992 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r303679:
Tom Stellard [Wed, 24 May 2017 14:20:42 +0000 (14:20 +0000)]
Merging r303679:

------------------------------------------------------------------------
r303679 | oleg | 2017-05-23 15:38:37 -0400 (Tue, 23 May 2017) | 16 lines

[ARM] Temporarily disable globals promotion to constant pools to prevent miscompilation

Summary:
A temporary workaround for PR32780 - rematerialized instructions accessing the same promoted global through different constant pool entries.

The patch turns off the globals promotion optimization leaving all its code in place, so that it can be easily turned on once PR32780 is fixed.

Since this is a miscompilation issue causing generation of misbehaving code, and the problem is very subtle, the patch might be valuable enough to get into 4.0.1.

Reviewers: efriedma, jmolloy

Reviewed By: efriedma

Subscribers: aemerson, javed.absar, llvm-commits, rengolin, asl, tstellar

Differential Revision: https://reviews.llvm.org/D33446
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@303749 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r302416:
Tom Stellard [Wed, 24 May 2017 14:08:01 +0000 (14:08 +0000)]
Merging r302416:

------------------------------------------------------------------------
r302416 | mstorsjo | 2017-05-08 06:26:24 -0400 (Mon, 08 May 2017) | 19 lines

[ARM] Clear the constant pool cache on explicit .ltorg directives

Multiple ldr pseudoinstructions with the same constant value will
reuse the same constant pool entry. However, if the constant pool
is explicitly flushed with a .ltorg directive, we should not try
to reference constants in the previous pool any longer, since they
may be out of range.

This fixes assembling hand-written assembler source which repeatedly
loads the same constant value, across a binary size larger than the
pc-relative fixup range for ldr instructions (4096 bytes). Such
assembler source already uses explicit .ltorg instructions to emit
constant pools with regular intervals. However if we try to reuse
constants emitted in earlier pools, they end up out of range.

This makes the output of the testcase match what binutils gas does
(prior to this patch, it would fail to assemble).

Differential Revision: https://reviews.llvm.org/D32847
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@303746 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r303685:
Tom Stellard [Tue, 23 May 2017 20:49:03 +0000 (20:49 +0000)]
Merging r303685:

------------------------------------------------------------------------
r303685 | tstellar | 2017-05-23 16:35:38 -0400 (Tue, 23 May 2017) | 5 lines

merge-request.sh: Use https url for bugzilla

With the http url, the script fails with:

Connection lost/failed: 411 Client Error: Length Required
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@303688 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r303456:
Tom Stellard [Tue, 23 May 2017 20:49:01 +0000 (20:49 +0000)]
Merging r303456:

------------------------------------------------------------------------
r303456 | eugenis | 2017-05-19 16:58:48 -0400 (Fri, 19 May 2017) | 3 lines

[safestack] Disable stack coloring by default.

Workaround for apparent miscompilation of PR32143.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@303687 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r302137:
Tom Stellard [Tue, 23 May 2017 17:30:58 +0000 (17:30 +0000)]
Merging r302137:

------------------------------------------------------------------------
r302137 | mstorsjo | 2017-05-04 06:54:35 -0400 (Thu, 04 May 2017) | 9 lines

[ArgPromotion] Fix a truncated variable

This fixes a regression since SVN rev 273808 (which was supposed to
not change functionality).

The regression caused miscompilations (noted in the wild when targeting
AArch64) on platforms with 32 bit long.

Differential Revision: https://reviews.llvm.org/D32850
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@303661 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r299866:
Tom Stellard [Tue, 23 May 2017 17:13:15 +0000 (17:13 +0000)]
Merging r299866:

------------------------------------------------------------------------
r299866 | arsenm | 2017-04-10 15:00:25 -0400 (Mon, 10 Apr 2017) | 3 lines

[MemCpyOpt] Only replace memcpy with bitcast if address spaces match

Patch by James Price
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@303657 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r297403:
Tom Stellard [Fri, 19 May 2017 10:13:18 +0000 (10:13 +0000)]
Merging r297403:

------------------------------------------------------------------------
r297403 | tstellar | 2017-03-09 14:24:07 -0500 (Thu, 09 Mar 2017) | 17 lines

CMake: Don't install llvm-tblgen twice

Summary:
The add_tablegen macros defines its own install target, and it was also calling
add_llvm_utility which adds another install target.

Configuring with -DLLVM_TOOLS_INSTALL_DIR set to something other than
'bin' along with -DLLVM_INSTALL_UTILS=ON was causing llvm-tablgen
to be installed to two separate directories.

Reviewers: beanz, hans

Reviewed By: beanz

Subscribers: llvm-commits, mgorny

Differential Revision: https://reviews.llvm.org/D30656
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@303413 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r294690:
Tom Stellard [Fri, 19 May 2017 01:55:05 +0000 (01:55 +0000)]
Merging r294690:

------------------------------------------------------------------------
r294690 | ericwf | 2017-02-09 20:59:20 -0500 (Thu, 09 Feb 2017) | 13 lines

[CMake] Fix pthread handling for out-of-tree builds

LLVM defines `PTHREAD_LIB` which is used by AddLLVM.cmake and various projects
to correctly link the threading library when needed. Unfortunately
`PTHREAD_LIB` is defined by LLVM's `config-ix.cmake` file which isn't installed
and therefore can't be used when configuring out-of-tree builds. This causes
such builds to fail since `pthread` isn't being correctly linked.

This patch attempts to fix that problem by renaming and exporting
`LLVM_PTHREAD_LIB` as part of`LLVMConfig.cmake`. I renamed `PTHREAD_LIB`
because It seemed likely to cause collisions with downstream users of
`LLVMConfig.cmake`.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@303399 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r296163:
Tom Stellard [Tue, 16 May 2017 12:48:20 +0000 (12:48 +0000)]
Merging r296163:

------------------------------------------------------------------------
r296163 | yaxunl | 2017-02-24 15:27:25 -0500 (Fri, 24 Feb 2017) | 9 lines

[InstCombine] Fix bug in pointer replacement

This optimisation was crashing when there was a chain of more than one bitcast
instruction to replace, as a result of the changes in D27283.

Patch by James Price.

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

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@303166 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r296645: (PR32253)
Krzysztof Parzyszek [Thu, 27 Apr 2017 15:38:30 +0000 (15:38 +0000)]
Merging r296645: (PR32253)

Included an updated testcase

------------------------------------------------------------------------
[Hexagon] Fix lowering of formal arguments of type i1

On Hexagon, values of type i1 are passed in registers of type i32,
even though i1 is not a legal value for these registers. This is a
special case and needs special handling to maintain consistency of
the lowering information.

This fixes PR32089.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@301550 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r292034: (PR32315)
Hans Wennborg [Wed, 26 Apr 2017 21:37:30 +0000 (21:37 +0000)]
Merging r292034: (PR32315)

Tweaked to not remove the non-const variants as to not change the ABI.

------------------------------------------------------------------------
r292034 | majnemer | 2017-01-14 13:54:58 -0800 (Sat, 14 Jan 2017) | 7 lines

Adding const overloads of operator* and operator-> for DenseSet iterators

This fixes some problems when building ClangDiagnostics.cpp on Visual Studio 2017 RC. As far as I understand, there was a change in the implementation of the constructor for std::vector with two iterator parameters, which in our case causes an attempt to dereference const Iterator objects. Since there was no overload for a const Iterator, the compile would fail.

Patch by Hugo Puhlmann!

Differential Revision: https://reviews.llvm.org/D28726
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@301479 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r294786:
Tom Stellard [Wed, 26 Apr 2017 20:04:01 +0000 (20:04 +0000)]
Merging r294786:

------------------------------------------------------------------------
r294786 | yaxunl | 2017-02-10 16:46:07 -0500 (Fri, 10 Feb 2017) | 24 lines

Fix invalid addrspacecast due to combining alloca with global var

For function-scope variables with large initialisation list, FE usually
generates a global variable to hold the initializer, then generates
memcpy intrinsic to initialize the alloca. InstCombiner::visitAllocaInst
identifies such allocas which are accessed only by reading and replaces
them with the global variable. This is done by casting the global variable
to the type of the alloca and replacing all references.

However, when the global variable is in a different address space which
is disjoint with addr space 0 (e.g. for IR generated from OpenCL,
global variable cannot be in private addr space i.e. addr space 0), casting
the global variable to addr space 0 results in invalid IR for certain
targets (e.g. amdgpu).

To fix this issue, when the global variable is not in addr space 0,
instead of casting it to addr space 0, this patch chases down the uses
of alloca until reaching the load instructions, then replaces load from
alloca with load from the global variable. If during the chasing
bitcast and GEP are encountered, new bitcast and GEP based on the global
variable are generated and used in the load instructions.

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

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@301452 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r300429:
Tom Stellard [Wed, 26 Apr 2017 17:52:15 +0000 (17:52 +0000)]
Merging r300429:

------------------------------------------------------------------------
r300429 | d0k | 2017-04-16 16:13:08 -0400 (Sun, 16 Apr 2017) | 7 lines

[X86] Remove special handling for 16 bit for A asm constraints.

Our 16 bit support is assembler-only + the terrible hack that is
.code16gcc. Simply using 32 bit registers does the right thing for the
latter.

Fixes PR32681.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@301437 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r300404:
Tom Stellard [Wed, 26 Apr 2017 17:52:11 +0000 (17:52 +0000)]
Merging r300404:

------------------------------------------------------------------------
r300404 | dim | 2017-04-15 18:15:01 -0400 (Sat, 15 Apr 2017) | 22 lines

Use correct registers for "A" inline asm constraint

Summary:
In PR32594, inline assembly using the 'A' constraint on x86_64 causes
llvm to crash with a "Cannot select" stack trace.  This is because
`X86TargetLowering::getRegForInlineAsmConstraint` hardcodes that 'A'
means the EAX and EDX registers.

However, on x86_64 it means the RAX and RDX registers, and on 16-bit x86
(ia16?) it means the old AX and DX registers.

Add new register classes in `X86RegisterInfo.td` to support these cases,
and amend the logic in `getRegForInlineAsmConstraint` to cope with
different subtargets.  Also add a test case, derived from PR32594.

Reviewers: craig.topper, qcolombet, RKSimon, ab

Reviewed By: ab

Subscribers: ab, emaste, royger, llvm-commits

Differential Revision: https://reviews.llvm.org/D31902
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@301436 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r296105, r296016 and 296111:
Simon Dardis [Mon, 24 Apr 2017 09:48:54 +0000 (09:48 +0000)]
Merging r296105, r296016 and 296111:

------------------------------------------------------------------------
r296105 | sdardis | 2017-02-24 10:50:27 +0000 (Fri, 24 Feb 2017) | 13 lines

[mips][mc] Fix a crash when disassembling odd sized sections

Make the MIPS disassembler consistent with the other targets in returning
a Size of zero when the input buffer cannot contain an instruction due
to it's size. Previously it reported the minimum instruction size when
it failed due to the buffer not being big enough for an instruction
causing llvm-objdump to crash when disassembling all sections.

Reviewers: slthakur

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

------------------------------------------------------------------------
------------------------------------------------------------------------
r296106 | sdardis | 2017-02-24 10:51:27 +0000 (Fri, 24 Feb 2017) | 5 lines

[mips][mc] Fix a crash when disassembling odd sized sections

Corresponding test.

------------------------------------------------------------------------
------------------------------------------------------------------------
r296111 | rovka | 2017-02-24 12:47:11 +0000 (Fri, 24 Feb 2017) | 1 line

Fixup r296105 - only run tests on Mips
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@301169 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r296493:
Brad Smith [Sat, 22 Apr 2017 16:34:38 +0000 (16:34 +0000)]
Merging r296493:

------------------------------------------------------------------------
r296493 | brad | 2017-02-28 12:28:35 -0500 (Tue, 28 Feb 2017) | 2 lines

Set default CPU for OpenBSD/arm to Cortex-A8
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@301082 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r298604:
Tom Stellard [Fri, 21 Apr 2017 14:14:41 +0000 (14:14 +0000)]
Merging r298604:

------------------------------------------------------------------------
r298604 | niravd | 2017-03-23 11:01:50 -0400 (Thu, 23 Mar 2017) | 14 lines

[SDAG] Fix zeroExtend assertion error

Move CombineTo preventing deleted node from being returned in
visitZERO_EXTEND.

Fixes PR32284.

Reviewers: RKSimon, bogner

Reviewed By: RKSimon

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D31254
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@300979 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r296698:
Tom Stellard [Thu, 6 Apr 2017 17:41:41 +0000 (17:41 +0000)]
Merging r296698:
------------------------------------------------------------------------
r296698 | rnk | 2017-03-01 17:41:12 -0500 (Wed, 01 Mar 2017) | 10 lines

[Constant Hoisting] Avoid inserting instructions before EH pads

Now that terminators can be EH pads, this code needs to iterate over the
immediate dominators of the EH pad to find a valid insertion point.

Fix for PR32107

Patch by Robert Olliff!

Differential Revision: https://reviews.llvm.org/D30511
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@299670 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r298705:
Tom Stellard [Tue, 4 Apr 2017 18:38:19 +0000 (18:38 +0000)]
Merging r298705:
------------------------------------------------------------------------
r298705 | tstellar | 2017-03-24 12:13:18 -0400 (Fri, 24 Mar 2017) | 11 lines

stable-merge-request.sh: Add a script for submitting merge requests via bugzilla

Summary:
This script will automatically create a new stable merge request bug in
bugzilla for the given svn revision and release number.

Reviewers: hans

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D30905
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@299455 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoMerging r298551:
Tom Stellard [Tue, 4 Apr 2017 15:23:53 +0000 (15:23 +0000)]
Merging r298551:
------------------------------------------------------------------------
r298551 | kzhuravl | 2017-03-22 17:48:18 -0400 (Wed, 22 Mar 2017) | 4 lines

[AMDGPU] Fix bug 31610

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

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@299441 91177308-0d34-0410-b5e6-96231b3b80d8

7 years agoPartial merge of r293110 into the 4.0 branch
Tom Stellard [Tue, 4 Apr 2017 01:17:09 +0000 (01:17 +0000)]
Partial merge of r293110 into the 4.0 branch

Avoid printing optimization remarks from llc unless they are enabled.

Fixes http://llvm.org/PR32184

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@299409 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoBump version to 4.0.1
Tom Stellard [Thu, 23 Mar 2017 19:17:39 +0000 (19:17 +0000)]
Bump version to 4.0.1

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@298635 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoReleaseNotes: fix indent
Hans Wennborg [Tue, 7 Mar 2017 20:44:17 +0000 (20:44 +0000)]
ReleaseNotes: fix indent

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@297204 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoReleaseNotes: fix the VS version; follow-up to r297097
Hans Wennborg [Tue, 7 Mar 2017 20:43:19 +0000 (20:43 +0000)]
ReleaseNotes: fix the VS version; follow-up to r297097

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@297203 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r297075:
Hans Wennborg [Tue, 7 Mar 2017 17:36:53 +0000 (17:36 +0000)]
Merging r297075:
------------------------------------------------------------------------
r297075 | hans | 2017-03-06 13:10:40 -0800 (Mon, 06 Mar 2017) | 1 line

Disable gvn-hoist (PR32153)
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@297165 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r296992:
Hans Wennborg [Tue, 7 Mar 2017 17:33:14 +0000 (17:33 +0000)]
Merging r296992:
------------------------------------------------------------------------
r296992 | sanjoy | 2017-03-05 15:49:17 -0800 (Sun, 05 Mar 2017) | 7 lines

[SCEV] Decrease the recursion threshold for CompareValueComplexity

Fixes PR32142.

r287232 accidentally increased the recursion threshold for
CompareValueComplexity from 2 to 32.  This change reverses that change
by introducing a separate flag for CompareValueComplexity's threshold.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@297164 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoReleaseNotes: reformulate compiler version change text
Hans Wennborg [Mon, 6 Mar 2017 23:43:34 +0000 (23:43 +0000)]
ReleaseNotes: reformulate compiler version change text

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@297097 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[notes] adding vulcan rename to release notes
Renato Golin [Mon, 6 Mar 2017 22:56:55 +0000 (22:56 +0000)]
[notes] adding vulcan rename to release notes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@297090 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r296642:
Hans Wennborg [Thu, 2 Mar 2017 16:44:46 +0000 (16:44 +0000)]
Merging r296642:
------------------------------------------------------------------------
r296642 | hans | 2017-03-01 09:15:08 -0800 (Wed, 01 Mar 2017) | 5 lines

[GVNHoist] Don't hoist unsafe scalars at -Oz (PR31729)

Based on Aditya Kumar's patch:

Differential Revision: https://reviews.llvm.org/D29092
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296761 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAdded pocl and TCE to releasenotes. Both of them now work with LLVM 4.0
Pekka Jaaskelainen [Wed, 1 Mar 2017 15:44:10 +0000 (15:44 +0000)]
Added pocl and TCE to releasenotes. Both of them now work with LLVM 4.0

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296633 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoReleaseNotes: Add some X86 target bullets.
Craig Topper [Wed, 1 Mar 2017 08:04:06 +0000 (08:04 +0000)]
ReleaseNotes: Add some X86 target bullets.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296587 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoReleaseNotes: mention the versioning scheme change
Hans Wennborg [Tue, 28 Feb 2017 19:32:31 +0000 (19:32 +0000)]
ReleaseNotes: mention the versioning scheme change

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296509 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r296093 and r296260:
Hans Wennborg [Mon, 27 Feb 2017 20:53:28 +0000 (20:53 +0000)]
Merging r296093 and r296260:
------------------------------------------------------------------------
r296093 | ctopper | 2017-02-23 22:38:24 -0800 (Thu, 23 Feb 2017) | 1 line

[ExecutionDepsFix] Use range-based for loop. NFC
------------------------------------------------------------------------

------------------------------------------------------------------------
r296260 | ctopper | 2017-02-25 10:12:25 -0800 (Sat, 25 Feb 2017) | 18 lines

[ExecutionDepsFix] Don't make copies of LiveReg objects when collecting operands for soft instructions

Summary:
While collecting operands we make copies of the LiveReg objects which are stored in the LiveRegs array. If the instruction uses the same register multiple times we end up with multiple copies. Later we iterate through the collected list of LiveReg objects and merge DomainValues. In the process of doing this the merge function can change the contents of the original LiveReg object in the LiveRegs array, but not the copies that have been made. So when we get to the second usage of the register we end up seeing a stale copy of the LiveReg object.

To fix this I've stopped copying and now just store a pointer to the original LiveReg object. Another option might be to avoid adding the same register to the Regs array twice, but this approach seemed simpler.

The included test case exposes this bug due to an AVX-512 masked OR instruction using the same register for the passthru operand and one of the inputs to the OR operation.

Fixes PR30284.

Reviewers: RKSimon, stoklund, MatzeB, spatel, myatsina

Reviewed By: RKSimon

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D30242
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296380 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r295116:
Hans Wennborg [Mon, 27 Feb 2017 17:01:04 +0000 (17:01 +0000)]
Merging r295116:
------------------------------------------------------------------------
r295116 | dim | 2017-02-14 14:49:49 -0800 (Tue, 14 Feb 2017) | 18 lines

Disable wrapping llvm-xray YAML output

Summary:
The YAML output produced by llvm-xray is supposed to be wrapped at the
arbitrary default of 70 columns set by `yaml:Output`.  Unfortunately,
the wrapping is rather unpredictable, and can easily go past the set
number of columns, depending on the execution environment.

To make the YAML output environment-independent, disable wrapping
instead.

Reviewers: dberris

Reviewed By: dberris

Subscribers: fhahn, llvm-commits

Differential Revision: https://reviews.llvm.org/D29962
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296357 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[ReleaseNotes] Add MIPS release notes.
Simon Dardis [Mon, 27 Feb 2017 13:25:42 +0000 (13:25 +0000)]
[ReleaseNotes] Add MIPS release notes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296340 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoRelaseNotes: tweaks
Hans Wennborg [Fri, 24 Feb 2017 23:48:15 +0000 (23:48 +0000)]
RelaseNotes: tweaks

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296202 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoReleaseNotes: drop empty sections
Hans Wennborg [Fri, 24 Feb 2017 23:38:14 +0000 (23:38 +0000)]
ReleaseNotes: drop empty sections

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296200 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoReleaseNotes: drop in-progress warning
Hans Wennborg [Fri, 24 Feb 2017 23:35:53 +0000 (23:35 +0000)]
ReleaseNotes: drop in-progress warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296199 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoRevert r288115 for PR31847.
Hans Wennborg [Fri, 24 Feb 2017 22:33:47 +0000 (22:33 +0000)]
Revert r288115 for PR31847.

------------------------------------------------------------------------
r288115 | abataev | 2016-11-29 09:21:14 +0100 (Tue, 29 Nov 2016) | 8 lines

[SLPVectorizer] Improved support of partial tree vectorization.

Currently SLP vectorizer tries to vectorize a binary operation and dies
immediately after unsuccessful the first unsuccessfull attempt. Patch
tries to improve the situation, trying to vectorize all binary
operations of all children nodes in the binop tree.

Differential Revision: https://reviews.llvm.org/D25517
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296185 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r295990:
Hans Wennborg [Fri, 24 Feb 2017 18:56:41 +0000 (18:56 +0000)]
Merging r295990:
------------------------------------------------------------------------
r295990 | jvesely | 2017-02-23 08:12:21 -0800 (Thu, 23 Feb 2017) | 5 lines

AMDGPU/SI: Fix trunc i16 pattern

Hit on ASICs that support 16bit instructions.

Differential Revision: https://reviews.llvm.org/D30281
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296158 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r296003:
Hans Wennborg [Fri, 24 Feb 2017 18:53:54 +0000 (18:53 +0000)]
Merging r296003:
------------------------------------------------------------------------
r296003 | mcrosier | 2017-02-23 10:49:03 -0800 (Thu, 23 Feb 2017) | 32 lines

[Reassociate] Add negated value of negative constant to the Duplicates list.

In OptimizeAdd, we scan the operand list to see if there are any common factors
between operands that can be factored out to reduce the number of multiplies
(e.g., 'A*A+A*B*C+D' -> 'A*(A+B*C)+D'). For each operand of the operand list, we
only consider unique factors (which is tracked by the Duplicate set). Now if we
find a factor that is a negative constant, we add the negated value as a factor
as well, because we can percolate the negate out. However, we mistakenly don't
add this negated constant to the Duplicates set.

Consider the expression A*2*-2 + B. Obviously, nothing to factor.

For the added value A*2*-2 we over count 2 as a factor without this change,
which causes the assert reported in PR30256.  The problem is that this code is
assuming that all the multiply operands of the add are already reassociated.
This change avoids the issue by making OptimizeAdd tolerate multiplies which
haven't been completely optimized; this sort of works, but we're doing wasted
work: we'll end up revisiting the add later anyway.

Another possible approach would be to enforce RPO iteration order more strongly.
If we have RedoInsts, we process them immediately in RPO order, rather than
waiting until we've finished processing the whole function. Intuitively, it
seems like the natural approach: reassociation works on expression trees, so
the optimization only works in one direction. That said, I'm not sure how
practical that is given the current Reassociate; the "optimal" form for an
expression depends on its use list (see all the uses of "user_back()"), so
Reassociate is really an iterative optimization of sorts, so any changes here
would probably get messy.

PR30256

Differential Revision: https://reviews.llvm.org/D30228
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296156 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r296030:
Hans Wennborg [Fri, 24 Feb 2017 18:37:22 +0000 (18:37 +0000)]
Merging r296030:
------------------------------------------------------------------------
r296030 | hans | 2017-02-23 14:29:00 -0800 (Thu, 23 Feb 2017) | 7 lines

Revert r282872 "CVP. Turn marking adds as no wrap on by default"

While not CVP's fault, this caused miscompiles (PR31181). Reverting
until those are resolved.

(This also reverts the follow-ups r288154 and r288161 which removed the
flag.)
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296148 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r295762:
Hans Wennborg [Thu, 23 Feb 2017 18:39:15 +0000 (18:39 +0000)]
Merging r295762:
------------------------------------------------------------------------
r295762 | eugenis | 2017-02-21 12:17:34 -0800 (Tue, 21 Feb 2017) | 3 lines

Fix PR31896.

Address of an alias of a global with offset is incorrectly lowered as an address of the global (i.e. ignoring offset).
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@296002 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoBackport r293433, ARM: support `-mlong-calls` with AEABI TLS on ELF
Hans Wennborg [Thu, 23 Feb 2017 00:14:14 +0000 (00:14 +0000)]
Backport r293433, ARM: support `-mlong-calls` with AEABI TLS on ELF

Support lowering AEABI TLS access (__aeabi_read_tp) with long calls.
This requires adjusting the call sequence to use an indirect call to get
full addressability.

Resolves PR31769!

By Saleem Abdulrasool!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295910 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293273:
Hans Wennborg [Tue, 21 Feb 2017 19:01:56 +0000 (19:01 +0000)]
Merging r293273:
------------------------------------------------------------------------
r293273 | chandlerc | 2017-01-27 02:27:32 -0800 (Fri, 27 Jan 2017) | 19 lines

[LICM] When we are recomputing the alias sets for a subloop, we cannot
skip sub-subloops.

The logic to skip subloops dated from when this code was shared with the
cached case. Once it was factored out to only run in the case of
recomputed subloops it became a dangerous bug. If a subsubloop contained
an interfering instruction it would be silently skipped from the alias
sets for LICM.

With the old pass manager this was extremely hard to trigger as it would
require failing to visit these subloops with the LICM pass but then
visiting the outer loop somehow. I've not yet contrived any test case
that actually manages to trigger this.

But with the new pass manager we don't do the cross-loop caching hack
that the old PM does and so we recompute alias set information from
first principles. While this seems much cleaner and simpler it exposed
this bug and would subtly miscompile code due to failing to correctly
model the aliasing constraints of deeply nested loops.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295748 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r295486 and r295490:
Hans Wennborg [Tue, 21 Feb 2017 18:53:27 +0000 (18:53 +0000)]
Merging r295486 and r295490:
------------------------------------------------------------------------
r295486 | adrian | 2017-02-17 11:42:32 -0800 (Fri, 17 Feb 2017) | 6 lines

Debug Info: Sort frame index expressions before emitting them.
This fixes PR31381, which caused an assertion and/or invalid debug info.

This affects debug variables that have multiple fragments in the MMI
side (i.e.: in the stack frame) table.
rdar://problem/30571676
------------------------------------------------------------------------

------------------------------------------------------------------------
r295490 | adrian | 2017-02-17 12:02:26 -0800 (Fri, 17 Feb 2017) | 1 line

Fix windows bots by locking down the target triple on this testcase.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295747 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r295512:
Hans Wennborg [Tue, 21 Feb 2017 18:46:57 +0000 (18:46 +0000)]
Merging r295512:
------------------------------------------------------------------------
r295512 | matze | 2017-02-17 15:15:03 -0800 (Fri, 17 Feb 2017) | 8 lines

AArch64LoadStoreOptimizer: Correctly clear kill flags

When promoting the Load of a Store-Load pair to a COPY all kill flags
between the store and the load need to be cleared.

rdar://30402435

Differential Revision: https://reviews.llvm.org/D30110
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295744 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoReleaseNotes: GVNHoist; by Sepastian Pop
Hans Wennborg [Tue, 21 Feb 2017 18:30:34 +0000 (18:30 +0000)]
ReleaseNotes: GVNHoist; by Sepastian Pop

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295743 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293124:
Hans Wennborg [Thu, 16 Feb 2017 21:50:00 +0000 (21:50 +0000)]
Merging r293124:
------------------------------------------------------------------------
r293124 | mkuper | 2017-01-25 17:04:11 -0800 (Wed, 25 Jan 2017) | 9 lines

[LoopUnroll] Properly update loopinfo for runtime unrolling by 2

Even when we don't create a remainder loop (that is, when we unroll by 2), we
may duplicate nested loops into the remainder. This is complicated by the fact
the remainder may itself be either inserted into an outer loop, or at the top
level. In the latter case, we may need to create new top-level loops.

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

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295380 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r295230:
Hans Wennborg [Thu, 16 Feb 2017 21:17:54 +0000 (21:17 +0000)]
Merging r295230:
------------------------------------------------------------------------
r295230 | arnolds | 2017-02-15 12:43:43 -0800 (Wed, 15 Feb 2017) | 11 lines

AddressSanitizer: don't track swifterror memory addresses

They are register promoted by ISel and so it makes no sense to treat them as
memory.

Inserting calls to the thread sanitizer would also generate invalid IR.

You would hit:

"swifterror value can only be loaded and stored from, or as a swifterror
argument!"
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295377 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r295215:
Hans Wennborg [Thu, 16 Feb 2017 21:15:37 +0000 (21:15 +0000)]
Merging r295215:
------------------------------------------------------------------------
r295215 | arnolds | 2017-02-15 10:57:06 -0800 (Wed, 15 Feb 2017) | 11 lines

ThreadSanitizer: don't track swifterror memory addresses

They are register promoted by ISel and so it makes no sense to treat them as
memory.

Inserting calls to the thread sanitizer would also generate invalid IR.

You would hit:

"swifterror value can only be loaded and stored from, or as a swifterror
argument!"
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295376 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r295213:
Hans Wennborg [Thu, 16 Feb 2017 21:11:04 +0000 (21:11 +0000)]
Merging r295213:
------------------------------------------------------------------------
r295213 | mkuper | 2017-02-15 10:37:26 -0800 (Wed, 15 Feb 2017) | 10 lines

[DAG] Don't try to create an INSERT_SUBVECTOR with an illegal source

We currently can't legalize those, but we should really not be creating
them in the first place, since legalization would probably look similar to the
way we legalize CONCAT_VECTORS - basically replace the INSERT with a BUILD.

This fixes PR311956.

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

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295374 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAdd external project LDC to release notes.
Kai Nacke [Thu, 16 Feb 2017 19:35:37 +0000 (19:35 +0000)]
Add external project LDC to release notes.

LDC, the LLVM-based D compiler, is already ready for LLVM 4.0.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295367 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r292271:
Hans Wennborg [Thu, 16 Feb 2017 17:59:33 +0000 (17:59 +0000)]
Merging r292271:

------------------------------------------------------------------------
r292271 | aaron | 2017-01-17 21:48:31 +0000 (Tue, 17 Jan 2017) | 2 lines

Silence some Sphinx diagnostics in an attempt to get the documentation builder back to green (http://lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/1895).
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295344 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r294129:
Hans Wennborg [Wed, 15 Feb 2017 22:36:35 +0000 (22:36 +0000)]
Merging r294129:
------------------------------------------------------------------------
r294129 | gberry | 2017-02-05 10:28:14 -0800 (Sun, 05 Feb 2017) | 16 lines

[SelectionDAG] In InstrEmitter, handle EXTRACT_SUBREG of a physical register.

Summary:
Without this change, the getVR() call would hit an assert since it was
being passed a physical register.

Update the AArch64/ldst-opt.ll test with a case that triggers this
behavior by adding a run with strict-align, which causes an unaligned
STR XZR instruction to be split into byte stores, creating an
EXTRACT_SUBREG of XZR that triggers the original problem.

Reviewers: bogner, qcolombet, MatzeB, atrick

Subscribers: aemerson, mcrosier, llvm-commits

Differential Revision: https://reviews.llvm.org/D29495
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295250 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r294003:
Hans Wennborg [Wed, 15 Feb 2017 22:34:24 +0000 (22:34 +0000)]
Merging r294003:
------------------------------------------------------------------------
r294003 | abataev | 2017-02-03 04:28:40 -0800 (Fri, 03 Feb 2017) | 8 lines

[SelectionDAG] Fix for PR30775: Assertion `NodeToMatch->getOpcode() !=
ISD::DELETED_NODE && "NodeToMatch was removed partway through
selection"' failed.

NodeToMatch can be modified during matching, but code does not handle
this situation.

Differential Revision: https://reviews.llvm.org/D29292
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295249 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r294982:
Hans Wennborg [Wed, 15 Feb 2017 19:12:45 +0000 (19:12 +0000)]
Merging r294982:
------------------------------------------------------------------------
r294982 | arnolds | 2017-02-13 11:58:28 -0800 (Mon, 13 Feb 2017) | 6 lines

swiftcc: Don't emit tail calls from callers with swifterror parameters

Backends don't support this yet. They would have to move to the swifterror
register before the tail call to make sure it is live-in to the call.

rdar://30495920
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295219 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAdded a section about Regcall and Vectorcall calling convention changes.
Oren Ben Simhon [Wed, 15 Feb 2017 10:50:01 +0000 (10:50 +0000)]
Added a section about Regcall and Vectorcall calling convention changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295165 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r294527:
Hans Wennborg [Wed, 15 Feb 2017 01:06:12 +0000 (01:06 +0000)]
Merging r294527:
------------------------------------------------------------------------
r294527 | arnolds | 2017-02-08 14:30:47 -0800 (Wed, 08 Feb 2017) | 14 lines

[ARM/AArch ISel] SwiftCC: First parameters that are marked swiftself are not 'this returns'

We mark X0 as preserved by a call that passes the returned parameter.

 x0 = ...
 fun(x0) // no implicit def of x0

This no longer is valid if we pass the parameter in a different register then
the returned value as is the case with a swiftself parameter (passed in x20).

x20 = ...
fun(x20) // there should be an implict def of x8

rdar://30425845
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295135 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r294551:
Hans Wennborg [Tue, 14 Feb 2017 17:39:39 +0000 (17:39 +0000)]
Merging r294551:
------------------------------------------------------------------------
r294551 | arnolds | 2017-02-08 17:52:17 -0800 (Wed, 08 Feb 2017) | 10 lines

SwiftCC: swifterror register cannot be as the base register

Functions that have a dynamic alloca require a base register which is defined to
be X19 on AArch64 and r6 on ARM.  We have defined the swifterror register to be
the same register. Use a different callee save register for swifterror instead:

 X21 on AArch64
 R8 on ARM

rdar://30433803
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295079 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoReleaseNotes: coroutines; by Gor Nishanov
Hans Wennborg [Tue, 14 Feb 2017 17:20:43 +0000 (17:20 +0000)]
ReleaseNotes: coroutines; by Gor Nishanov

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295070 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoReleaseNotes: llvm-cov blurb; by Vedant Kumar
Hans Wennborg [Tue, 14 Feb 2017 17:19:38 +0000 (17:19 +0000)]
ReleaseNotes: llvm-cov blurb; by Vedant Kumar

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295069 91177308-0d34-0410-b5e6-96231b3b80d8

8 years ago[ThinLTO] Make a copy of buffer identifier in ThinLTOCodeGenerator
Mehdi Amini [Tue, 14 Feb 2017 04:49:31 +0000 (04:49 +0000)]
[ThinLTO] Make a copy of buffer identifier in ThinLTOCodeGenerator

This is anticipating a crash with ThinLTO and Xcode 8.3.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@295024 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoAdd release notes for the AVR backend
Dylan McKay [Fri, 10 Feb 2017 23:13:12 +0000 (23:13 +0000)]
Add release notes for the AVR backend

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294803 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoReleaseNotes: ADCE; patch by David Callahan
Hans Wennborg [Fri, 10 Feb 2017 22:42:53 +0000 (22:42 +0000)]
ReleaseNotes: ADCE; patch by David Callahan

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294797 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoReleaseNotes.rst: Add a section about .mir testing
Matthias Braun [Thu, 9 Feb 2017 23:25:27 +0000 (23:25 +0000)]
ReleaseNotes.rst: Add a section about .mir testing

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294656 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoRegisterCoalescer: Fix joinReservedPhysReg()
Matthias Braun [Thu, 9 Feb 2017 21:45:33 +0000 (21:45 +0000)]
RegisterCoalescer: Fix joinReservedPhysReg()

Merging r294268:

joinReservedPhysReg() can only deal with a liverange in a single basic
block when copying from a vreg into a physreg.

See also rdar://30306405

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

Fixes http://llvm.org/PR31889

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294631 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoRegisterCoalescer: Cleanup joinReservedPhysReg(); NFC
Matthias Braun [Thu, 9 Feb 2017 21:45:29 +0000 (21:45 +0000)]
RegisterCoalescer: Cleanup joinReservedPhysReg(); NFC

Merging r293856:

- Factor out a common subexpression
- Add some helpful comments
- Fix printing of a register in a debug message

Preparation for http://llvm.org/PR31889

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294630 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agobuild_llvm_package.bat: remove lldb, as it doesn't work
Hans Wennborg [Thu, 9 Feb 2017 00:13:15 +0000 (00:13 +0000)]
build_llvm_package.bat: remove lldb, as it doesn't work

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294535 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoDocs: drop minor version
Hans Wennborg [Wed, 8 Feb 2017 17:28:49 +0000 (17:28 +0000)]
Docs: drop minor version

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294485 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r292949:
Hans Wennborg [Wed, 8 Feb 2017 17:14:38 +0000 (17:14 +0000)]
Merging r292949:
------------------------------------------------------------------------
r292949 | rnk | 2017-01-24 08:57:55 -0800 (Tue, 24 Jan 2017) | 6 lines

[CodeView] Fix off-by-one error in def range gap emission

Also fixes a much worse bug where we emitted the wrong gap size for the
def range uncovered by the test for this issue.

Fixes PR31726.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294479 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoRelease notes for ilist changes, by Duncan
Hans Wennborg [Wed, 8 Feb 2017 17:04:11 +0000 (17:04 +0000)]
Release notes for ilist changes, by Duncan

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294478 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r294349 and r294357:
Hans Wennborg [Wed, 8 Feb 2017 17:02:53 +0000 (17:02 +0000)]
Merging r294349 and r294357:
------------------------------------------------------------------------
r294349 | dexonsmith | 2017-02-07 13:03:50 -0800 (Tue, 07 Feb 2017) | 12 lines

ADT: Add explicit conversions for reverse ilist iterators

Add explicit conversions between forward and reverse ilist iterators.
These follow the conversion conventions of std::reverse_iterator, which
are off-by-one: the newly-constructed "reverse" iterator dereferences to
the previous node of the one sent in.  This has the benefit of
converting reverse ranges in place:
  - If [I, E) is a valid range,
  - then [reverse(E), reverse(I)) gives the same range in reverse order.

ilist_iterator::getReverse() is unchanged: it returns a reverse iterator
to the *same* node.
------------------------------------------------------------------------

------------------------------------------------------------------------
r294357 | dblaikie | 2017-02-07 13:31:03 -0800 (Tue, 07 Feb 2017) | 1 line

Fix some missing negations in the traits checking from r294349
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294477 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r294348:
Hans Wennborg [Wed, 8 Feb 2017 16:50:40 +0000 (16:50 +0000)]
Merging r294348:
------------------------------------------------------------------------
r294348 | hans | 2017-02-07 12:37:45 -0800 (Tue, 07 Feb 2017) | 6 lines

[X86] Disable conditional tail calls (PR31257)

They are currently modelled incorrectly (as calls, which clobber
registers, confusing e.g. Machine Copy Propagation).

Reverting until we figure out the proper solution.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294476 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoForgot to add this in r294473
Hans Wennborg [Wed, 8 Feb 2017 16:47:33 +0000 (16:47 +0000)]
Forgot to add this in r294473

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294474 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMachineCopyPropagation: Respect implicit operands of COPY
Hans Wennborg [Wed, 8 Feb 2017 16:42:21 +0000 (16:42 +0000)]
MachineCopyPropagation: Respect implicit operands of COPY

Cherry pick llvm r294088 to 4.0 branch with slight changes to the way
undef operands are handled.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294473 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r294318:
Hans Wennborg [Tue, 7 Feb 2017 21:15:12 +0000 (21:15 +0000)]
Merging r294318:
------------------------------------------------------------------------
r294318 | adrian | 2017-02-07 09:35:41 -0800 (Tue, 07 Feb 2017) | 12 lines

Fix the bitcode upgrade for DIGlobalVariable in a DIImportedEntity context.

The bitcode upgrade for DIGlobalVariable unconditionally wrapped
DIGlobalVariables in a DIGlobalVariableExpression. When a
DIGlobalVariable is referenced by a DIImportedEntity, however, this is
wrong. This patch fixes the bitcode upgrade by deferring the creation
of DIGlobalVariableExpressions until we know the context of the
DIGlobalVariable.

<rdar://problem/30134279>

Differential Revision: https://reviews.llvm.org/D29349
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294352 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293017 and r294267:
Hans Wennborg [Tue, 7 Feb 2017 19:09:04 +0000 (19:09 +0000)]
Merging r293017 and r294267:
------------------------------------------------------------------------
r293017 | chapuni | 2017-01-24 20:26:29 -0800 (Tue, 24 Jan 2017) | 5 lines

Rewind instantiations of OuterAnalysisManagerProxy in r289317, r291651, and r291662.

I found root class should be instantiated for variadic tempate to instantiate static member explicitly.

This will fix failures in mingw DLL build.
------------------------------------------------------------------------

------------------------------------------------------------------------
r294267 | chandlerc | 2017-02-06 17:50:48 -0800 (Mon, 06 Feb 2017) | 18 lines

Revert r293017 and fix the actual underlying issue.

The patch committed in r293017, as discussed on the list, doesn't really
make sense but was causing an actual issue to go away.

The issue turns out to be that in one place the extra template arguments
were dropped from the OuterAnalysisManagerProxy. This in turn caused the
types used in one set of places to access the key to be completely
different from the types used in another set of places for both Loop and
CGSCC cases where there are extra arguments.

I have literally no idea how anything seemed to work with this bug in
place. It blows my mind. But it did except for mingw64 in a DLL build.

I've added a really handy static assert that helps ensure we don't break
this in the future. It immediately diagnoses the issue with a compile
failure and a very clear error message. Much better that staring at
backtraces on a build bot. =]
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294335 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r294203:
Hans Wennborg [Mon, 6 Feb 2017 21:27:55 +0000 (21:27 +0000)]
Merging r294203:
------------------------------------------------------------------------
r294203 | john.brawn | 2017-02-06 10:07:20 -0800 (Mon, 06 Feb 2017) | 9 lines

[AArch64] Fix incorrect MachinePointerInfo in splitStoreSplat

When splitting up one store into several in splitStoreSplat we have to
make sure we get the MachinePointerInfo right, otherwise alias
analysis thinks they all store to the same location. This can then
cause invalid scheduling later on.

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

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294242 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r294102:
Dimitry Andric [Sun, 5 Feb 2017 12:01:07 +0000 (12:01 +0000)]
Merging r294102:
------------------------------------------------------------------------
r294102 | dim | 2017-02-04 23:24:55 +0100 (Sat, 04 Feb 2017) | 13 lines

Add lld to the test-release.sh script

Building lld is enabled by default, but it can be disabled using the
-no-lld option.

Reviewers: tstellarAMD, rengolin, hans

Reviewed By: hans

Subscribers: grosser, wdng, emaste, llvm-commits

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

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@294123 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293345:
Hans Wennborg [Thu, 2 Feb 2017 22:19:34 +0000 (22:19 +0000)]
Merging r293345:
------------------------------------------------------------------------
r293345 | spatel | 2017-01-27 15:26:27 -0800 (Fri, 27 Jan 2017) | 19 lines

[InstCombine] move icmp transforms that might be recognized as min/max and inf-loop (PR31751)

This is a minimal patch to avoid the infinite loop in:
https://llvm.org/bugs/show_bug.cgi?id=31751

But the general problem is bigger: we're not canonicalizing all of the min/max forms reported
by value tracking's matchSelectPattern(), and we don't define min/max consistently. Some code
uses matchSelectPattern(), other code uses matchers like m_Umax, and others have their own
inline definitions which may be subtly different from any of the above.

The reason that the test cases in this patch need a cast op to trigger is because we don't
(yet) canonicalize all min/max forms based on matchSelectPattern() in
canonicalizeMinMaxWithConstant(), but we do make min/max+cast transforms based on
matchSelectPattern() in visitSelectInst().

The location of the icmp transforms that trigger the inf-loop seems arbitrary at best, so
I'm moving those behind the min/max fence in visitICmpInst() as the quick fix.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293947 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r292167:
Hans Wennborg [Thu, 2 Feb 2017 21:44:30 +0000 (21:44 +0000)]
Merging r292167:
------------------------------------------------------------------------
r292167 | davide | 2017-01-16 14:01:41 -0800 (Mon, 16 Jan 2017) | 3 lines

[llvm-objdump] Dump PT_OPENBSD_{BOOTDATA,RANDOMIZE,WXNEEDED}.

PR: 31641
------------------------------------------------------------------------
Merging r292169:
------------------------------------------------------------------------
r292169 | davide | 2017-01-16 14:58:26 -0800 (Mon, 16 Jan 2017) | 3 lines

[llvm-objdump] Dump PT_GNU_RELRO as part of -p.

PR: 31641
------------------------------------------------------------------------
Merging r292170:
------------------------------------------------------------------------
r292170 | davide | 2017-01-16 15:13:46 -0800 (Mon, 16 Jan 2017) | 3 lines

[llvm-objdump] Dump PT_NOTE as part of -p.

PR: 31641
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293942 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293635:
Hans Wennborg [Thu, 2 Feb 2017 21:34:25 +0000 (21:34 +0000)]
Merging r293635:
------------------------------------------------------------------------
r293635 | nha | 2017-01-31 06:35:37 -0800 (Tue, 31 Jan 2017) | 16 lines

[DAGCombine] require UnsafeFPMath for re-association of addition

Summary:
The affected transforms all implicitly use associativity of addition,
for which we usually require unsafe math to be enabled.

The "Aggressive" flag is only meant to convey information about the
performance of the fused ops relative to a fmul+fadd sequence.

Fixes Bug 31626.

Reviewers: spatel, hfinkel, mehdi_amini, arsenm, tstellarAMD

Subscribers: jholewinski, nemanjai, wdng, llvm-commits

Differential Revision: https://reviews.llvm.org/D28675
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293940 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293542:
Hans Wennborg [Wed, 1 Feb 2017 22:00:37 +0000 (22:00 +0000)]
Merging r293542:
------------------------------------------------------------------------
r293542 | arsenm | 2017-01-30 11:50:17 -0800 (Mon, 30 Jan 2017) | 7 lines

LSR: Don't drop address space when type doesn't match

For targets with different addressing modes in each address space,
if this is dropped querying isLegalAddressingMode later with this
will give a nonsense result, breaking the isLegalUse assertions.

This is a candidate for the 4.0 release branch.
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293819 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293730:
Hans Wennborg [Wed, 1 Feb 2017 19:45:51 +0000 (19:45 +0000)]
Merging r293730:
------------------------------------------------------------------------
r293730 | matze | 2017-01-31 17:31:36 -0800 (Tue, 31 Jan 2017) | 3 lines

MCMacho: Allow __thread_ptr section after dwarf sections

Differential Revision: https://reviews.llvm.org/D29315
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293807 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293673:
Hans Wennborg [Wed, 1 Feb 2017 19:41:46 +0000 (19:41 +0000)]
Merging r293673:
------------------------------------------------------------------------
r293673 | matze | 2017-01-31 10:37:53 -0800 (Tue, 31 Jan 2017) | 6 lines

InterleaveAccessPass: Avoid constructing invalid shuffle masks

Fix a bug where we would construct shufflevector instructions addressing
invalid elements.

Differential Revision: https://reviews.llvm.org/D29313
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293805 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293309:
Hans Wennborg [Wed, 1 Feb 2017 19:40:39 +0000 (19:40 +0000)]
Merging r293309:
------------------------------------------------------------------------
r293309 | mssimpso | 2017-01-27 09:33:16 -0800 (Fri, 27 Jan 2017) | 20 lines

[ARM/AArch64] Relocate and update InterleavedAccessPass tests (NFC)

The interleaved access pass is an IR-to-IR transformation that runs before code
generation. It matches interleaved memory operations to target-specific
intrinsics (that are later lowered to load and store multiple instructions on
ARM/AArch64). We place tests for similar passes (e.g., GlobalMergePass) under
test/Transforms. This patch moves the InterleavedAccessPass tests out of
test/CodeGen and into target-specific directories under
test/Transforms/InterleavedAccess.

Although the pass is an IR pass, many of the existing tests were llc tests
rather opt tests. For example, the tests would check for ldN/stN instructions
generated by llc rather than the intrinsic calls the pass actually inserts.
Thus, this patch updates all tests to be opt tests that check for the inserted
intrinsics. We already have separate CodeGen tests that ensure we lower the
interleaved access intrinsics to their corresponding ldN/stN instructions. In
addition to migrating the tests to opt, this patch also performs some minor
clean-up (to ensure consistent naming, etc.).

Differential Revision: https://reviews.llvm.org/D29184
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293804 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293727:
Hans Wennborg [Wed, 1 Feb 2017 18:42:29 +0000 (18:42 +0000)]
Merging r293727:
------------------------------------------------------------------------
r293727 | davide | 2017-01-31 17:01:22 -0800 (Tue, 31 Jan 2017) | 3 lines

[IPSCCP] Teach how to not propagate return values of naked functions.

Differential Revision:  https://reviews.llvm.org/D29360
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293796 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293658:
Hans Wennborg [Wed, 1 Feb 2017 16:56:48 +0000 (16:56 +0000)]
Merging r293658:
------------------------------------------------------------------------
r293658 | arnolds | 2017-01-31 09:53:49 -0800 (Tue, 31 Jan 2017) | 1 line

Don't combine stores to a swifterror pointer operand to a different type
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293781 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293230:
Hans Wennborg [Wed, 1 Feb 2017 16:54:47 +0000 (16:54 +0000)]
Merging r293230:
------------------------------------------------------------------------
r293230 | yuyichao | 2017-01-26 15:50:18 -0800 (Thu, 26 Jan 2017) | 11 lines

CMake is funky on detecting Intel 17 as GCC compatible.

Summary: This adds a fallback in case that the Intel compiler is failed to be detected correctly.

Reviewers: chapuni

Reviewed By: chapuni

Subscribers: llvm-commits, mgorny

Differential Revision: https://reviews.llvm.org/D27610
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293780 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293629:
Hans Wennborg [Tue, 31 Jan 2017 18:33:00 +0000 (18:33 +0000)]
Merging r293629:
------------------------------------------------------------------------
r293629 | sbaranga | 2017-01-31 06:04:15 -0800 (Tue, 31 Jan 2017) | 15 lines

[InstCombine] Make sure that LHS and RHS have the same type in
transformToIndexedCompare

If they don't have the same type, the size of the constant
index would need to be adjusted (and this wouldn't be always
possible).

Alternatively we could try the analysis with the initial
RHS value, which would guarantee that the two sides have
the same type. However it is unlikely that in practice this
would pass our transformation requirements.

Fixes PR31808 (https://llvm.org/bugs/show_bug.cgi?id=31808).

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293669 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r292117:
Hans Wennborg [Tue, 31 Jan 2017 18:23:49 +0000 (18:23 +0000)]
Merging r292117:
------------------------------------------------------------------------
r292117 | sdardis | 2017-01-16 05:55:58 -0800 (Mon, 16 Jan 2017) | 14 lines

[mips] Correct c.cond.fmt instruction definition.

Permit explicit $fcc<X> operand in c.cond.fmt instruction.

Add c.cond.fmt to the MIPS to microMIPS instruction mapping table.

Check that $fcc1 - $fcc7 are unusable for MIPS-I to MIPS-III for
c.cond.fmt, bc1t, bc1f.

Reviewers: seanbruno, zoran.jovanovic, vkalintiris

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

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293665 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r292624:
Hans Wennborg [Tue, 31 Jan 2017 18:21:40 +0000 (18:21 +0000)]
Merging r292624:
------------------------------------------------------------------------
r292624 | petarj | 2017-01-20 09:53:30 -0800 (Fri, 20 Jan 2017) | 9 lines

[mips] Fix debug information for __thread variable

This patch fixes debug information for __thread variable on Mips
using .dtprelword and .dtpreldword directives.

Patch by Aleksandar Beserminji.

Differential Revision: http://reviews.llvm.org/D28770

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293664 91177308-0d34-0410-b5e6-96231b3b80d8

8 years agoMerging r293417:
Hans Wennborg [Tue, 31 Jan 2017 17:23:10 +0000 (17:23 +0000)]
Merging r293417:
------------------------------------------------------------------------
r293417 | jhibbits | 2017-01-28 20:55:57 -0800 (Sat, 28 Jan 2017) | 16 lines

Add some Book-E instructions to the asm parser and printer.

Summary:
Adds the following instructions:
* mfpmr
* mtpmr
* icblc
* icblq
* icbtls

Fix the scheduling for mtspr on e5500, which uses CFX0, instead of
SFX0/SFX1 as on e500mc.

Addresses PR 31538.

Differential Revision: https://reviews.llvm.org/D29002
------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_40@293651 91177308-0d34-0410-b5e6-96231b3b80d8