138851 Commits

Author SHA1 Message Date
Douglas Katzman
50f86f25c9 Generalize ArgList::AddAllArgs more
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282755 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 19:47:58 +00:00
Adam Nemet
cb40e05c0d [LV] Port OptimizationRemarkAnalysisFPCommute and
OptimizationRemarkAnalysisAliasing to new streaming API for opt remarks

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282742 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 18:04:47 +00:00
Adam Nemet
fdd76dc361 [LV] Convert processLoop to new streaming API for opt remarks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282740 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 17:55:13 +00:00
Reid Kleckner
c51eaa4549 [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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282739 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 17:55:01 +00:00
Sanjay Patel
a18c5f6c3f fix formatting; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282737 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 17:48:19 +00:00
Kevin Enderby
9b04a40821 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282736 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 17:45:23 +00:00
Kostya Serebryany
efa54824a3 [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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282735 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 17:43:24 +00:00
Piotr Padlewski
584dba4143 [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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282733 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 17:32:07 +00:00
Douglas Katzman
9ef51728b6 [X86] Avoid "unused" warnings if no asserts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282732 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 17:26:12 +00:00
Adam Nemet
8a6fcf99da [LV] Move static createMissedAnalysis from anonymous to global namespace
This is an attempt to fix a windows bot.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282730 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 17:25:00 +00:00
Adam Nemet
3f9be702ed [LV] Convert CostModel to use the new streaming opt remark API
Here we can already remove the member function emitAnalysis.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282729 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 17:15:48 +00:00
Adam Nemet
89695c8a44 [LV] Split most of createMissedAnalysis into a static function. NFC
This will be shared between Legality and CostModel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282728 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 17:05:35 +00:00
Adam Nemet
bbb8dac111 [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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282726 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 16:49:42 +00:00
Adam Nemet
9ecbf48ff5 [LV] Convert emitRemark to new opt remark streaming interface
Also renamed the function to emitRemarkWithHints to better reflect what
the function actually does.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282723 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 16:23:12 +00:00
Adam Nemet
9155ed9923 Remove unnecessary explicit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282722 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 16:01:34 +00:00
Kostya Serebryany
7c5de022d5 [libFuzzer] initialize ValueBitMap::NumBits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282721 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 15:51:28 +00:00
Simon Pilgrim
8f1cd7aac1 [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).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282720 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 15:25:48 +00:00
Simon Pilgrim
f2d3a894f3 [X86] Add explicit test triple to make windows/msvc builds happier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282719 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 15:10:09 +00:00
Dylan McKay
2551268cb5 [docs] Fix a broken URL in 'HowToAddABuilder'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282718 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 13:29:49 +00:00
Volkan Keles
e9f2c694e6 Test commit. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282717 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 13:04:37 +00:00
Dylan McKay
267c7c00cb [docs] Fix typo in 'How to add a builder'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282713 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 12:51:26 +00:00
Dylan McKay
22a65ba593 Revert "[AVR] Add instruction selection lowering code"
I accidentally comitted it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282712 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 12:49:18 +00:00
Dylan McKay
da4f4c9f4f [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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282711 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 12:44:38 +00:00
Vassil Vassilev
7ff42239dc [modules] Centralize the module cache.
This reduces the build size from 17G to 1.9G on my machine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282704 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 08:14:06 +00:00
Craig Topper
607b2a36df [X86] Really fix the FileCheck line from r282690.
Why does Folded Spill comments print with a different number of # characters on different systems?

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282693 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 06:49:21 +00:00
Craig Topper
43006cde9e [AVX-512] Fix a check line from r282690.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282691 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 06:37:21 +00:00
Craig Topper
37b4149678 [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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282690 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 06:07:09 +00:00
Craig Topper
3395e355cc [X86] Remove extra FileCheck lines that got left behind in r282688.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282689 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 06:07:07 +00:00
Craig Topper
db79113dbd [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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282688 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 05:54:43 +00:00
Craig Topper
b54d49d9c9 [X86] Add EVEX encoded VBROADCASTSS/SD and VPBROADCASTD/Q to execution domain fixing table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282687 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 05:54:39 +00:00
Craig Topper
943517716c [X86] Remove AddedComplexity adjustments that don't seem to be needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282686 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 05:54:34 +00:00
Craig Topper
08c71c6f2e [X86] Add 512-bit VPBROADCASTB and VPBROADCASTW tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282685 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 05:54:32 +00:00
Craig Topper
4059a7776f [X86] Add VBROADCASTF128/VBROADCASTI128 to execution domain fixing tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282684 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 05:54:28 +00:00
Justin Bogner
e255157a48 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282680 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 03:35:19 +00:00
Peter Collingbourne
8579d6c83c Add explanatory comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282678 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 03:29:28 +00:00
Eric Christopher
66f2dbfec5 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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282675 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 02:03:52 +00:00
Eric Christopher
b660c903c1 Remove the default constructor and count variable from the Mangler since
we can just use the size of the DenseMap as a unique counter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282674 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 02:03:50 +00:00
Eric Christopher
cfc9fcc21b Update comment about initializing TLOF with a pointer at the previous
line or the other commented out place.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282673 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 02:03:47 +00:00
Eric Christopher
32b5cf7a1c Tidy spelling and grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282672 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 02:03:44 +00:00
Matthias Braun
2b727383a8 MachineFunction: Add missing newline in debug print()
Should not be a functional but an aesthetic change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282669 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 01:47:42 +00:00
Matt Arsenault
0461ece2ce 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282667 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 01:44:16 +00:00
Matthias Braun
abc1d2159c ScheduleDAGInstrs: There is no need to set OrigNode for MI SUnits; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282666 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 01:32:31 +00:00
Peter Collingbourne
0b61d07b60 LTO: Fix use-after-scope error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282665 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 01:28:36 +00:00
Lei Liu
846f55c8f3 AArch64: Set shift bit of TLSLE HI12 add instruction
Summary: AArch64 LLVM assembler emits add instruction without shift bit to calculate the higher 12-bit address of TLS variables in local exec model.  This generates wrong code sequence to access TLS variables with thread offset larger than 0x1000.

Reviewers: t.p.northover, peter.smith, rovka

Subscribers: salim.nasser, aemerson, llvm-commits, rengolin

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282661 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 01:05:48 +00:00
Davide Italiano
2f99205bf8 [LTO] Add a FIXME, we shouldn't expose getComdat().
Thanks to Peter for the suggestion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282655 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 00:31:45 +00:00
Davide Italiano
2a49f50e7e [LTO] Expose getComdatSymbolTable() to linkers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282654 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-29 00:29:33 +00:00
Evgeny Stupachenko
6642664652 Wisely choose sext or zext when widening IV.
Summary:
The patch fixes regression caused by two earlier patches D18777 and D18867.

Reviewers: reames, sanjoy

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

From: Li Huang


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282650 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-28 23:39:39 +00:00
Kevin Enderby
dda50f2d84 Next set of additional error checks for invalid Mach-O files for the
load command that uses the Mach::rpath_command type
but not used in llvm libObject code but used in llvm tool code.

This includes just the LC_RPATH load command.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282649 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-28 23:16:01 +00:00
Quentin Colombet
1deea86d16 [RegisterBankInfo] Uniquely generate OperandsMapping.
This is a step toward statically allocate InstructionMapping. Like the
previous few commits, the goal is to move toward a TableGen'ed like
structure with no dynamic allocation at all.

This should already improve compile time by getting rid of a bunch of
memmove of SmallVectors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282643 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-28 22:20:49 +00:00
Quentin Colombet
5c6805e527 [RegisterBankInfo] Rework the APIs of ValueMapping.
This is a preparatory commit for more TableGen-like structure.
NFC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282642 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-28 22:20:24 +00:00