platform/upstream/llvm.git
7 years agoGC HAVE_BCOPY.
Joerg Sonnenberger [Thu, 29 Sep 2016 21:30:23 +0000 (21:30 +0000)]
GC HAVE_BCOPY.

llvm-svn: 282778

7 years agoSwitch to a different workaround for unimplementability of P0145R3 in MS ABIs.
Richard Smith [Thu, 29 Sep 2016 21:30:12 +0000 (21:30 +0000)]
Switch to a different workaround for unimplementability of P0145R3 in MS ABIs.
Instead of ignoring the evaluation order rule, ignore the "destroy parameters
in reverse construction order" rule for the small number of problematic cases.
This only causes incorrect behavior in the rare case where both parameters to
an overloaded operator <<, >>, ->*, &&, ||, or comma are of class type with
non-trivial destructor, and the program is depending on those parameters being
destroyed in reverse construction order.

We could do a little better here by reversing the order of parameter
destruction for those functions (and reversing the argument evaluation order
for all direct calls, not just those with operator syntax), but that is not a
complete solution to the problem, as the same situation can be reached by an
indirect function call.

Approach reviewed off-line by rnk.

llvm-svn: 282777

7 years agoGC opendir/readdir/closedir checks.
Joerg Sonnenberger [Thu, 29 Sep 2016 21:29:57 +0000 (21:29 +0000)]
GC opendir/readdir/closedir checks.

llvm-svn: 282776

7 years agoGC HAVE_SETJMP_H and checks for the content of setjmp.h.
Joerg Sonnenberger [Thu, 29 Sep 2016 21:28:37 +0000 (21:28 +0000)]
GC HAVE_SETJMP_H and checks for the content of setjmp.h.

llvm-svn: 282775

7 years agoThis test will not work in i386 mode because we don't create interesting types from...
Enrico Granata [Thu, 29 Sep 2016 21:20:56 +0000 (21:20 +0000)]
This test will not work in i386 mode because we don't create interesting types from the ObjC runtime

"Fixes" rdar://28501616

llvm-svn: 282774

7 years agoSort futimes correctly.
Joerg Sonnenberger [Thu, 29 Sep 2016 21:19:43 +0000 (21:19 +0000)]
Sort futimes correctly.

llvm-svn: 282773

7 years agoCheck for sysconf(3).
Joerg Sonnenberger [Thu, 29 Sep 2016 21:18:05 +0000 (21:18 +0000)]
Check for sysconf(3).

llvm-svn: 282772

7 years agoGC HAVE_MACH_O_DYLD_H.
Joerg Sonnenberger [Thu, 29 Sep 2016 21:15:57 +0000 (21:15 +0000)]
GC HAVE_MACH_O_DYLD_H.

llvm-svn: 282771

7 years agoGC HAVE_UTIME_H.
Joerg Sonnenberger [Thu, 29 Sep 2016 21:15:23 +0000 (21:15 +0000)]
GC HAVE_UTIME_H.

llvm-svn: 282770

7 years agoGC HAVE_LIMITS_H.
Joerg Sonnenberger [Thu, 29 Sep 2016 21:14:34 +0000 (21:14 +0000)]
GC HAVE_LIMITS_H.

llvm-svn: 282769

7 years agoMake HAVE_DECL_ARC4RANDOM always defined. Sort the entry correctly.
Joerg Sonnenberger [Thu, 29 Sep 2016 21:10:38 +0000 (21:10 +0000)]
Make HAVE_DECL_ARC4RANDOM always defined. Sort the entry correctly.

llvm-svn: 282768

7 years agoHAVE_UNWIND_BACKTRACE -> HAVE__UNWIND_BACKTRACE
Joerg Sonnenberger [Thu, 29 Sep 2016 21:07:57 +0000 (21:07 +0000)]
HAVE_UNWIND_BACKTRACE -> HAVE__UNWIND_BACKTRACE
Check for existance and not truth value.

llvm-svn: 282767

7 years agoNext set of additional error checks for invalid Mach-O files for the
Kevin Enderby [Thu, 29 Sep 2016 21:07:29 +0000 (21:07 +0000)]
Next set of additional error checks for invalid Mach-O files for the
load command that uses the MachO::entry_point_command type
but not used in llvm libObject code but used in llvm tool code.

This includes just the LC_MAIN load command.

llvm-svn: 282766

7 years agoRemove LLVM_CONFIGTIME, left-overs from when reproducable builds where
Joerg Sonnenberger [Thu, 29 Sep 2016 21:00:53 +0000 (21:00 +0000)]
Remove LLVM_CONFIGTIME, left-overs from when reproducable builds where
not the default.

llvm-svn: 282765

7 years agoRename "void check(Error)".
Rui Ueyama [Thu, 29 Sep 2016 21:00:26 +0000 (21:00 +0000)]
Rename "void check(Error)".

We have a few "check" functions in Error.h. All of them are to
check for an error and strip an error object if there was no error,
except "void check(Error E)", which doesn't return anything.
This patch renames it and moves it to the .cpp file where it is used.

llvm-svn: 282764

7 years agoRename warning -> warn.
Rui Ueyama [Thu, 29 Sep 2016 21:00:23 +0000 (21:00 +0000)]
Rename warning -> warn.

It's better because it's a verb.

llvm-svn: 282763

7 years agoAdd FE_ALL_EXCEPT and FE_INEXACT detection macros forgotten on the cmake
Joerg Sonnenberger [Thu, 29 Sep 2016 20:59:48 +0000 (20:59 +0000)]
Add FE_ALL_EXCEPT and FE_INEXACT detection macros forgotten on the cmake
side of configuration.

llvm-svn: 282762

7 years agoClamp version number in S_COMPILE3 to avoid overflowing 16-bit field.
Adrian McCarthy [Thu, 29 Sep 2016 20:28:25 +0000 (20:28 +0000)]
Clamp version number in S_COMPILE3 to avoid overflowing 16-bit field.

llvm-svn: 282761

7 years agoUse > and not >> to create the script.
Rafael Espindola [Thu, 29 Sep 2016 20:23:07 +0000 (20:23 +0000)]
Use > and not >> to create the script.

llvm-svn: 282760

7 years agoRevert "[LAA, LV] Port to new streaming interface for opt remarks. Update LV"
Adam Nemet [Thu, 29 Sep 2016 20:17:37 +0000 (20:17 +0000)]
Revert "[LAA, LV] Port to new streaming interface for opt remarks.  Update LV"

This reverts commit r282758.

There are some clang failures I haven't seen.

llvm-svn: 282759

7 years ago[LAA, LV] Port to new streaming interface for opt remarks. Update LV
Adam Nemet [Thu, 29 Sep 2016 20:12:18 +0000 (20:12 +0000)]
[LAA, LV] Port to new streaming interface for opt remarks.  Update LV

OptimizationRemarkAnalysis directly takes the role of the report that is
generated by LAA.

Then we need the magic to be able to turn an LAA remark into an LV
remark.  This is done via a new OptimizationRemark ctor.

llvm-svn: 282758

7 years ago[Myriad] Silently ignore -fno-split-dwarf-inlining
Douglas Katzman [Thu, 29 Sep 2016 19:59:12 +0000 (19:59 +0000)]
[Myriad] Silently ignore -fno-split-dwarf-inlining

llvm-svn: 282757

7 years ago[RegisterBankInfo] Change the default mapping for Copy and PHI.
Quentin Colombet [Thu, 29 Sep 2016 19:51:46 +0000 (19:51 +0000)]
[RegisterBankInfo] Change the default mapping for Copy and PHI.

Instead of producing a mapping for all the operands, we only generate a
mapping for the definition. Indeed, the other operands are not
constrained by the instruction and thus, we should leave the choice to
the actual definition to do the right thing.

In pratice this is almost NFC, but with one advantage. We will have only
one instance of OperandsMapping for each copy and phi that map to one
register bank instead of one different instance for each different
number of operands for each copy and phi.

llvm-svn: 282756

7 years agoGeneralize ArgList::AddAllArgs more
Douglas Katzman [Thu, 29 Sep 2016 19:47:58 +0000 (19:47 +0000)]
Generalize ArgList::AddAllArgs more

llvm-svn: 282755

7 years agoFix an issue where, in i386 mode, the wrong values were being copied into the pair...
Enrico Granata [Thu, 29 Sep 2016 19:46:48 +0000 (19:46 +0000)]
Fix an issue where, in i386 mode, the wrong values were being copied into the pair object for a single-entry NSDictionary

Fixes rdar://28502335

llvm-svn: 282754

7 years ago[sanitizer-coverage] a bit more docs
Kostya Serebryany [Thu, 29 Sep 2016 19:06:09 +0000 (19:06 +0000)]
[sanitizer-coverage] a bit more docs

llvm-svn: 282752

7 years ago[sanitizer-coverage] more docs
Kostya Serebryany [Thu, 29 Sep 2016 18:58:17 +0000 (18:58 +0000)]
[sanitizer-coverage] more docs

llvm-svn: 282751

7 years agoDon't error if we can't put the header in a PT_LOAD.
Rafael Espindola [Thu, 29 Sep 2016 18:50:34 +0000 (18:50 +0000)]
Don't error if we can't put the header in a PT_LOAD.

If there is not sufficient address space, just give up and don't put
the header in the PT_LOAD.

This matches bfd behaviour and I found at least one script that
depends on having a section at address 0.

llvm-svn: 282750

7 years ago[sanitize-coverage] doc typo
Kostya Serebryany [Thu, 29 Sep 2016 18:34:40 +0000 (18:34 +0000)]
[sanitize-coverage] doc typo

llvm-svn: 282749

7 years agowww: Add Loopy publication
Tobias Grosser [Thu, 29 Sep 2016 18:17:30 +0000 (18:17 +0000)]
www: Add Loopy publication

llvm-svn: 282747

7 years ago[LV] Port OptimizationRemarkAnalysisFPCommute and
Adam Nemet [Thu, 29 Sep 2016 18:04:47 +0000 (18:04 +0000)]
[LV] Port OptimizationRemarkAnalysisFPCommute and
OptimizationRemarkAnalysisAliasing to new streaming API for opt remarks

llvm-svn: 282742

7 years agoTo fix TestObjCMethods2/i386, allowed messaging nil ObjC objects as in x86_64.
Sean Callanan [Thu, 29 Sep 2016 17:57:33 +0000 (17:57 +0000)]
To fix TestObjCMethods2/i386, allowed messaging nil ObjC objects as in x86_64.

llvm-svn: 282741

7 years ago[LV] Convert processLoop to new streaming API for opt remarks
Adam Nemet [Thu, 29 Sep 2016 17:55:13 +0000 (17:55 +0000)]
[LV] Convert processLoop to new streaming API for opt remarks

llvm-svn: 282740

7 years ago[codeview] Use character types for all byte-sized integer types
Reid Kleckner [Thu, 29 Sep 2016 17:55:01 +0000 (17:55 +0000)]
[codeview] Use character types for all byte-sized integer types

The VS debugger doesn't appear to understand the 0x68 or 0x69 type
indices, which were probably intended for use on a platform where a C
'int' is 8 bits. So, use the character types instead. Clang was already
using the character types because '[u]int8_t' is usually defined in
terms of 'char'.

See the Rust issue for screenshots of what VS does:
https://github.com/rust-lang/rust/issues/36646

Fixes PR30552

llvm-svn: 282739

7 years agofix formatting; NFC
Sanjay Patel [Thu, 29 Sep 2016 17:48:19 +0000 (17:48 +0000)]
fix formatting; NFC

llvm-svn: 282737

7 years agoNext set of additional error checks for invalid Mach-O files for the
Kevin Enderby [Thu, 29 Sep 2016 17:45:23 +0000 (17:45 +0000)]
Next set of additional error checks for invalid Mach-O files for the
load command that uses the Mach::source_version_command type
but not used in llvm libObject code but used in llvm tool code.

This includes just the LC_SOURCE_VERSION load command.

llvm-svn: 282736

7 years ago[sanitizer-coverage/libFuzzer] make the guards for trace-pc 32-bit; create one array...
Kostya Serebryany [Thu, 29 Sep 2016 17:43:24 +0000 (17:43 +0000)]
[sanitizer-coverage/libFuzzer] make the guards for trace-pc 32-bit; create one array of guards per function, instead of one guard per BB. reorganize the code so that trace-pc-guard does not create unneeded globals

llvm-svn: 282735

7 years ago[thinlto] Add cold-callsite import heuristic
Piotr Padlewski [Thu, 29 Sep 2016 17:32:07 +0000 (17:32 +0000)]
[thinlto] Add cold-callsite import heuristic

Summary:
Not tunned up heuristic, but with this small heuristic there is about
+0.10% improvement on SPEC 2006

Reviewers: tejohnson, mehdi_amini, eraman

Subscribers: mehdi_amini, llvm-commits

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

llvm-svn: 282733

7 years ago[X86] Avoid "unused" warnings if no asserts
Douglas Katzman [Thu, 29 Sep 2016 17:26:12 +0000 (17:26 +0000)]
[X86] Avoid "unused" warnings if no asserts

llvm-svn: 282732

7 years ago[LV] Move static createMissedAnalysis from anonymous to global namespace
Adam Nemet [Thu, 29 Sep 2016 17:25:00 +0000 (17:25 +0000)]
[LV] Move static createMissedAnalysis from anonymous to global namespace

This is an attempt to fix a windows bot.

llvm-svn: 282730

7 years ago[LV] Convert CostModel to use the new streaming opt remark API
Adam Nemet [Thu, 29 Sep 2016 17:15:48 +0000 (17:15 +0000)]
[LV] Convert CostModel to use the new streaming opt remark API

Here we can already remove the member function emitAnalysis.

llvm-svn: 282729

7 years ago[LV] Split most of createMissedAnalysis into a static function. NFC
Adam Nemet [Thu, 29 Sep 2016 17:05:35 +0000 (17:05 +0000)]
[LV] Split most of createMissedAnalysis into a static function. NFC

This will be shared between Legality and CostModel.

llvm-svn: 282728

7 years ago[sancov] removing html report option test, the option doesn't exist anymore
Mike Aizatsky [Thu, 29 Sep 2016 16:59:04 +0000 (16:59 +0000)]
[sancov] removing html report option test, the option doesn't exist anymore

llvm-svn: 282727

7 years ago[LV] Convert all but one opt remark in Legality to new streaming interface
Adam Nemet [Thu, 29 Sep 2016 16:49:42 +0000 (16:49 +0000)]
[LV] Convert all but one opt remark in Legality to new streaming interface

The last one remaining after which emitAnalysis can be removed is when
we convert the LAA's report to a vectorization report.  This requires
converting LAA to the new interface first.

llvm-svn: 282726

7 years agoSimplify. NFC.
Rafael Espindola [Thu, 29 Sep 2016 16:29:55 +0000 (16:29 +0000)]
Simplify. NFC.

llvm-svn: 282725

7 years agoDon't handle binary output differently.
Rafael Espindola [Thu, 29 Sep 2016 16:24:17 +0000 (16:24 +0000)]
Don't handle binary output differently.

It is not clear if we need a different layout, so for now handle them
like regular ELF output.

llvm-svn: 282724

7 years ago[LV] Convert emitRemark to new opt remark streaming interface
Adam Nemet [Thu, 29 Sep 2016 16:23:12 +0000 (16:23 +0000)]
[LV] Convert emitRemark to new opt remark streaming interface

Also renamed the function to emitRemarkWithHints to better reflect what
the function actually does.

llvm-svn: 282723

7 years agoRemove unnecessary explicit
Adam Nemet [Thu, 29 Sep 2016 16:01:34 +0000 (16:01 +0000)]
Remove unnecessary explicit

llvm-svn: 282722

7 years ago[libFuzzer] initialize ValueBitMap::NumBits
Kostya Serebryany [Thu, 29 Sep 2016 15:51:28 +0000 (15:51 +0000)]
[libFuzzer] initialize ValueBitMap::NumBits

llvm-svn: 282721

7 years ago[X86][SSE] Added common helper for shuffle mask constant pool decodes.
Simon Pilgrim [Thu, 29 Sep 2016 15:25:48 +0000 (15:25 +0000)]
[X86][SSE] Added common helper for shuffle mask constant pool decodes.

The shuffle mask decodes have a large amount of repeated code extracting/splitting mask values from Constant data.

This patch pulls all of this duplicated code into a single helper function to identify undef elements and combine/split constant integer data into the requested shuffle mask elements.

Updated PSHUFB/VPERMIL/VPERMIL2/VPPERM decoders to use it (VPERMV/VPERMV3 could be converted as well in the future).

llvm-svn: 282720

7 years ago[X86] Add explicit test triple to make windows/msvc builds happier
Simon Pilgrim [Thu, 29 Sep 2016 15:10:09 +0000 (15:10 +0000)]
[X86] Add explicit test triple to make windows/msvc builds happier

llvm-svn: 282719

7 years ago[docs] Fix a broken URL in 'HowToAddABuilder'
Dylan McKay [Thu, 29 Sep 2016 13:29:49 +0000 (13:29 +0000)]
[docs] Fix a broken URL in 'HowToAddABuilder'

llvm-svn: 282718

7 years agoTest commit. NFC.
Volkan Keles [Thu, 29 Sep 2016 13:04:37 +0000 (13:04 +0000)]
Test commit. NFC.

llvm-svn: 282717

7 years ago[ELF][MIPS] Set GP0 value to zero in case of relocatable object generation
Simon Atanasyan [Thu, 29 Sep 2016 12:58:48 +0000 (12:58 +0000)]
[ELF][MIPS] Set GP0 value to zero in case of relocatable object generation

LLD does not update relocations addends when generate a relocatable
object. That is why we should not write a non-zero GP0 value into
the .reginfo and .MIPS.options sections. And we should not accept input
object files with non-zero GP0 value because we cannot handle them
properly.

llvm-svn: 282716

7 years ago[ELF][MIPS] Do not use a binary input file in the test case. NFC
Simon Atanasyan [Thu, 29 Sep 2016 12:58:42 +0000 (12:58 +0000)]
[ELF][MIPS] Do not use a binary input file in the test case. NFC

llvm-svn: 282715

7 years ago[ELF][MIPS] Setup STO_MIPS_PIC flag for PIC symbols when generate a relocatable object
Simon Atanasyan [Thu, 29 Sep 2016 12:58:36 +0000 (12:58 +0000)]
[ELF][MIPS] Setup STO_MIPS_PIC flag for PIC symbols when generate a relocatable object

In case of linking PIC and non-PIC code together and generation of a
relocatable object, all PIC symbols should have STO_MIPS_PIC flag in the
symbol table of the ouput file.

llvm-svn: 282714

7 years ago[docs] Fix typo in 'How to add a builder'
Dylan McKay [Thu, 29 Sep 2016 12:51:26 +0000 (12:51 +0000)]
[docs] Fix typo in 'How to add a builder'

llvm-svn: 282713

7 years agoRevert "[AVR] Add instruction selection lowering code"
Dylan McKay [Thu, 29 Sep 2016 12:49:18 +0000 (12:49 +0000)]
Revert "[AVR] Add instruction selection lowering code"

I accidentally comitted it.

llvm-svn: 282712

7 years ago[AVR] Add instruction selection lowering code
Dylan McKay [Thu, 29 Sep 2016 12:44:38 +0000 (12:44 +0000)]
[AVR] Add instruction selection lowering code

Summary: This adds AVRISelLowering.cpp

Reviewers: kparzysz, arsenm

Subscribers: wdng, beanz, mgorny

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

llvm-svn: 282711

7 years agoRevert "[PR30341] Alias must point to a definition"
Aditya Kumar [Thu, 29 Sep 2016 11:37:23 +0000 (11:37 +0000)]
Revert "[PR30341] Alias must point to a definition"

This reverts commit r282679.

Ninja check fails, reverting to debug the issue.

llvm-svn: 282710

7 years ago[ELF] - Fixed crash on invalid input.
George Rimar [Thu, 29 Sep 2016 11:10:40 +0000 (11:10 +0000)]
[ELF] - Fixed crash on invalid input.

I took the input from https://llvm.org/bugs/show_bug.cgi?id=30540, it was
"id_000000,sig_11,src_000000,op_flip1,pos_98"

File contains invalid symbol name offset (too large) and lld just crashes,
patch fixes the issue.

Differential revision: https://reviews.llvm.org/D24970

llvm-svn: 282709

7 years agoDon't GC non-alloc mergeable section pieces
Eugene Leviant [Thu, 29 Sep 2016 10:27:10 +0000 (10:27 +0000)]
Don't GC non-alloc mergeable section pieces

Differential revision: https://reviews.llvm.org/D25033

llvm-svn: 282708

7 years ago[ELF] - Testcases: remove "invalid-" prefix from inputs located in "invalid" subfolde...
George Rimar [Thu, 29 Sep 2016 09:39:06 +0000 (09:39 +0000)]
[ELF] - Testcases: remove "invalid-" prefix from inputs located in "invalid" subfolder. NFC.

llvm-svn: 282707

7 years ago[ELF] - Rename testcase folder from "Invalid" to "invalid". NFC.
George Rimar [Thu, 29 Sep 2016 09:30:01 +0000 (09:30 +0000)]
[ELF] - Rename testcase folder from "Invalid" to "invalid". NFC.

llvm-svn: 282706

7 years ago[ELF] Change the way we compute file offsets
Eugene Leviant [Thu, 29 Sep 2016 09:20:33 +0000 (09:20 +0000)]
[ELF] Change the way we compute file offsets

If we two sections reside in the same PT_LOAD segment,
we compute second section using the following formula:
Off2 = Off1 + VA2 - VA1. This allows OS kernel allocating
sections correctly when loading an image.

Differential revision: https://reviews.llvm.org/D25014

llvm-svn: 282705

7 years ago[modules] Centralize the module cache.
Vassil Vassilev [Thu, 29 Sep 2016 08:14:06 +0000 (08:14 +0000)]
[modules] Centralize the module cache.

This reduces the build size from 17G to 1.9G on my machine.

llvm-svn: 282704

7 years agoRevert r282692: Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic...
Igor Kudrin [Thu, 29 Sep 2016 08:11:57 +0000 (08:11 +0000)]
Revert r282692: Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic memory exhaustion.

The test breaks build bots.

llvm-svn: 282703

7 years agoXFAIL Driver/darwin-stdlib.cpp if CLANG_DEFAULT_CXX_STDLIB is set
Jonas Hahnfeld [Thu, 29 Sep 2016 07:43:08 +0000 (07:43 +0000)]
XFAIL Driver/darwin-stdlib.cpp if CLANG_DEFAULT_CXX_STDLIB is set

Until someone rewrites the stdlib logic for Darwin so that we don't need
to pass down the -stdlib argument to cc1.
(see https://llvm.org/bugs/show_bug.cgi?id=30548)

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

llvm-svn: 282701

7 years agoAdd symbols introduced with -m32 build
Vitaly Buka [Thu, 29 Sep 2016 07:08:42 +0000 (07:08 +0000)]
Add symbols introduced with -m32 build

llvm-svn: 282695

7 years agoLimit script to sanitizers as SCUDO does not pass tests if we add symbolizer
Vitaly Buka [Thu, 29 Sep 2016 07:08:40 +0000 (07:08 +0000)]
Limit script to sanitizers as SCUDO does not pass tests if we add symbolizer

llvm-svn: 282694

7 years ago[X86] Really fix the FileCheck line from r282690.
Craig Topper [Thu, 29 Sep 2016 06:49:21 +0000 (06:49 +0000)]
[X86] Really fix the FileCheck line from r282690.

Why does Folded Spill comments print with a different number of # characters on different systems?

llvm-svn: 282693

7 years ago[libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic memor...
Igor Kudrin [Thu, 29 Sep 2016 06:38:06 +0000 (06:38 +0000)]
[libc++abi] Use fallback_malloc to allocate __cxa_eh_globals in case of dynamic memory exhaustion.

Throwing an exception for the first time may lead to call calloc to
allocate memory for __cxa_eh_globals. If the memory pool is exhausted
at that moment, it results in abnormal termination of the program.

This patch addresses the issue by using fallback_malloc in that case.

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

llvm-svn: 282692

7 years ago[AVX-512] Fix a check line from r282690.
Craig Topper [Thu, 29 Sep 2016 06:37:21 +0000 (06:37 +0000)]
[AVX-512] Fix a check line from r282690.

llvm-svn: 282691

7 years ago[AVX-512] Support spills of XMM16-31 and YMM16-31 when VLX isn't available.
Craig Topper [Thu, 29 Sep 2016 06:07:09 +0000 (06:07 +0000)]
[AVX-512] Support spills of XMM16-31 and YMM16-31 when VLX isn't available.

This adds new pseudo instructions that can be selected during register allocation to represent loads and stores of XMM/YMM registers when AVX512F is available, but VLX isn't. They will be converted to VEX encoded moves if the register turns out to be XMM0-15/YMM0-15. Otherwise either an EVEX VEXTRACT(store) or VBROADCAST(load) will be used.

Fixes one of the cases from PR29112.

llvm-svn: 282690

7 years ago[X86] Remove extra FileCheck lines that got left behind in r282688.
Craig Topper [Thu, 29 Sep 2016 06:07:07 +0000 (06:07 +0000)]
[X86] Remove extra FileCheck lines that got left behind in r282688.

llvm-svn: 282689

7 years ago[AVX-512] Replicate pattern from AVX to select VMOVDDUP for (v2f64 (X86VBroadcast...
Craig Topper [Thu, 29 Sep 2016 05:54:43 +0000 (05:54 +0000)]
[AVX-512] Replicate pattern from AVX to select VMOVDDUP for (v2f64 (X86VBroadcast f64:)). Add AVX512VL to command line of existing AVX2 test that hits this condition.

llvm-svn: 282688

7 years ago[X86] Add EVEX encoded VBROADCASTSS/SD and VPBROADCASTD/Q to execution domain fixing...
Craig Topper [Thu, 29 Sep 2016 05:54:39 +0000 (05:54 +0000)]
[X86] Add EVEX encoded VBROADCASTSS/SD and VPBROADCASTD/Q to execution domain fixing table.

llvm-svn: 282687

7 years ago[X86] Remove AddedComplexity adjustments that don't seem to be needed.
Craig Topper [Thu, 29 Sep 2016 05:54:34 +0000 (05:54 +0000)]
[X86] Remove AddedComplexity adjustments that don't seem to be needed.

llvm-svn: 282686

7 years ago[X86] Add 512-bit VPBROADCASTB and VPBROADCASTW tests.
Craig Topper [Thu, 29 Sep 2016 05:54:32 +0000 (05:54 +0000)]
[X86] Add 512-bit VPBROADCASTB and VPBROADCASTW tests.

llvm-svn: 282685

7 years ago[X86] Add VBROADCASTF128/VBROADCASTI128 to execution domain fixing tables.
Craig Topper [Thu, 29 Sep 2016 05:54:28 +0000 (05:54 +0000)]
[X86] Add VBROADCASTF128/VBROADCASTI128 to execution domain fixing tables.

llvm-svn: 282684

7 years agoAdd a unit test for an x86_64 assembly inspection of
Jason Molenda [Thu, 29 Sep 2016 04:01:43 +0000 (04:01 +0000)]
Add a unit test for an x86_64 assembly inspection of
a large stack frame with lots of spilled registers.

While writing the i386 version of this test, it looks
like I found a bug in the 32-bit instruction profiler
code.  I may ned to fix the assembly inspection engine
before I can finish writing that test, so I'm only
committing the 64-bit one tonight.

<rdar://problem/28509178>

llvm-svn: 282683

7 years agoMove verbose clang binaries detection
Vitaly Buka [Thu, 29 Sep 2016 03:53:20 +0000 (03:53 +0000)]
Move verbose clang binaries detection

llvm-svn: 282682

7 years ago[libc++] Add missing locale aliases
Shoaib Meenai [Thu, 29 Sep 2016 03:35:41 +0000 (03:35 +0000)]
[libc++] Add missing locale aliases

Add underscore aliases for strtof_l and strtod_l. _strtold_l exists in
VS 2013 and above, so fix that definition as a drive-by fix.

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

llvm-svn: 282681

7 years agoIR: Rename the tablegen'd Attributes file to .gen
Justin Bogner [Thu, 29 Sep 2016 03:35:19 +0000 (03:35 +0000)]
IR: Rename the tablegen'd Attributes file to .gen

All of the other tablegen'd include files are named .gen, so it's best
to be consistent.

llvm-svn: 282680

7 years ago[PR30341] Alias must point to a definition
Aditya Kumar [Thu, 29 Sep 2016 03:32:04 +0000 (03:32 +0000)]
[PR30341] Alias must point to a definition

Inlining the destructor caused the compiler to generate bad IR which failed the Verifier in the backend.
https://llvm.org/bugs/show_bug.cgi?id=30341

This patch disables alias to available_externally definitions.

Reviewers: eugenis, rsmith

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

llvm-svn: 282679

7 years agoAdd explanatory comment.
Peter Collingbourne [Thu, 29 Sep 2016 03:29:28 +0000 (03:29 +0000)]
Add explanatory comment.

llvm-svn: 282678

7 years agoRemove an unnecessary duplicate initialization of TLOF from the Mips
Eric Christopher [Thu, 29 Sep 2016 02:03:52 +0000 (02:03 +0000)]
Remove an unnecessary duplicate initialization of TLOF from the Mips
AsmPrinter. This was reinitializing the Mangler after we moved the
Mangler down to TLOF and causing us to have two different unnamed
global values accessed with the same name.

This should fix the problems on the ubsan tests here:
http://lab.llvm.org:8011/builders/clang-cmake-mips/builds/15307

llvm-svn: 282675

7 years agoRemove the default constructor and count variable from the Mangler since
Eric Christopher [Thu, 29 Sep 2016 02:03:50 +0000 (02:03 +0000)]
Remove the default constructor and count variable from the Mangler since
we can just use the size of the DenseMap as a unique counter.

llvm-svn: 282674

7 years agoUpdate comment about initializing TLOF with a pointer at the previous
Eric Christopher [Thu, 29 Sep 2016 02:03:47 +0000 (02:03 +0000)]
Update comment about initializing TLOF with a pointer at the previous
line or the other commented out place.

llvm-svn: 282673

7 years agoTidy spelling and grammar.
Eric Christopher [Thu, 29 Sep 2016 02:03:44 +0000 (02:03 +0000)]
Tidy spelling and grammar.

llvm-svn: 282672

7 years ago[AArch64] Fix test case ELF/aarch64-tls-le.s
Lei Liu [Thu, 29 Sep 2016 02:01:27 +0000 (02:01 +0000)]
[AArch64] Fix test case ELF/aarch64-tls-le.s

The add instruction should be generated with shift bit (lsl #12).
Update the test case.

llvm-svn: 282671

7 years agoAttempt to fix Windows buildbots.
Rui Ueyama [Thu, 29 Sep 2016 01:59:03 +0000 (01:59 +0000)]
Attempt to fix Windows buildbots.

llvm-svn: 282670

7 years agoMachineFunction: Add missing newline in debug print()
Matthias Braun [Thu, 29 Sep 2016 01:47:42 +0000 (01:47 +0000)]
MachineFunction: Add missing newline in debug print()

Should not be a functional but an aesthetic change.

llvm-svn: 282669

7 years agoRemove unused #includes.
Rui Ueyama [Thu, 29 Sep 2016 01:45:22 +0000 (01:45 +0000)]
Remove unused #includes.

llvm-svn: 282668

7 years agoAMDGPU: Partially fix control flow at -O0
Matt Arsenault [Thu, 29 Sep 2016 01:44:16 +0000 (01:44 +0000)]
AMDGPU: Partially fix control flow at -O0

Fixes to allow spilling all registers at the end of the block
work with exec modifications. Don't emit s_and_saveexec_b64 for
if lowering, and instead emit copies. Mark control flow mask
instructions as terminators to get correct spill code placement
with fast regalloc, and then have a separate optimization pass
form the saveexec.

This should work if SGPRs are spilled to VGPRs, but
will likely fail in the case that an SGPR spills to memory
and no workitem takes a divergent branch.

llvm-svn: 282667

7 years agoScheduleDAGInstrs: There is no need to set OrigNode for MI SUnits; NFC
Matthias Braun [Thu, 29 Sep 2016 01:32:31 +0000 (01:32 +0000)]
ScheduleDAGInstrs: There is no need to set OrigNode for MI SUnits; NFC

llvm-svn: 282666

7 years agoLTO: Fix use-after-scope error.
Peter Collingbourne [Thu, 29 Sep 2016 01:28:36 +0000 (01:28 +0000)]
LTO: Fix use-after-scope error.

llvm-svn: 282665

7 years agoAdd comments.
Rui Ueyama [Thu, 29 Sep 2016 01:26:48 +0000 (01:26 +0000)]
Add comments.

llvm-svn: 282664

7 years agoRead addend from the correct location.
Rafael Espindola [Thu, 29 Sep 2016 01:20:40 +0000 (01:20 +0000)]
Read addend from the correct location.

llvm-svn: 282663

7 years ago[LTO] Fully qualify make_unique to make MSVC happy.
Davide Italiano [Thu, 29 Sep 2016 01:13:32 +0000 (01:13 +0000)]
[LTO] Fully qualify make_unique to make MSVC happy.

llvm-svn: 282662