summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [ARM] Add ARMv8.2-A FP16 scalar instructionsOliver Stannard2016-01-2518-6/+1976
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was originally committed as r255762, but reverted as it broke windows bots. Re-commitiing the exact same patch, as the underlying cause was fixed by r258677. ARMv8.2-A adds 16-bit floating point versions of all existing VFP floating-point instructions. This is an optional extension, so all of these instructions require the FeatureFullFP16 subtarget feature. The assembly for these instructions uses S registers (AArch32 does not have H registers), but the instructions have ".f16" type specifiers rather than ".f32" or ".f64". The top 16 bits of each source register are ignored, and the top 16 bits of the destination register are set to zero. These instructions are mostly the same as the 32- and 64-bit versions, but they use coprocessor 9 rather than 10 and 11. Two new instructions, VMOVX and VINS, have been added to allow packing and extracting two 16-bit floats stored in the top and bottom halves of an S register. New fixup kinds have been added for the PC-relative load and store instructions, but no ELF relocations have been added as they have a range of 512 bytes. Differential Revision: http://reviews.llvm.org/D15038 llvm-svn: 258678
* [TableGen] Fix sort order of asm operand classesOliver Stannard2016-01-252-21/+86
| | | | | | | | | | | | | | | | | | | | | | This is a fix for https://llvm.org/bugs/show_bug.cgi?id=22796. The previous implementation of ClassInfo::operator< allowed cycles of classes such that x < y < z < x, meaning that a list of them cannot be correctly sorted, and the sort order could differ with different standard libraries. The original implementation sorted classes by ValueName if they were otherwise equal. This isn't strictly necessary, but some backends seem to accidentally rely on it. If I reverse this comparison I get 8 test failures spread across the AArch64, Mips and X86 backends, so I have left it in until those backends can be fixed. There was one case in the X86 backend where the observable behaviour of the assembler is changed by this patch. This was because some of the memory asm operands were not marked as children of X86MemAsmOperand. Differential Revision: http://reviews.llvm.org/D16141 llvm-svn: 258677
* Silence a -Wparentheses warning; NFC.Junmo Park2016-01-251-2/+2
| | | | llvm-svn: 258676
* AVX1 : Enable vector masked_load/store to AVX1.Igor Breger2016-01-254-747/+872
| | | | | | | | Use AVX1 FP instructions (vmaskmovps/pd) in place of the AVX2 int instructions (vpmaskmovd/q). Differential Revision: http://reviews.llvm.org/D16528 llvm-svn: 258675
* [Sema] Improve constnessDaniel Marjamaki2016-01-251-9/+9
| | | | llvm-svn: 258673
* [ELF] - Symbols from object files that override symbols in DSO are added to ↵George Rimar2016-01-254-2/+71
| | | | | | | | | | | .dynsym table. Main executable did not export symbols that exist both in the main executable and in DSOs before this patch. Symbols from object files that override symbols in DSO should be added to .dynsym table. Differential revision: http://reviews.llvm.org/D16405 llvm-svn: 258672
* [AVX512] [CMPPS ][ CMPPD ] Adding full Comparison Predicate names Michael Zuckerman2016-01-252-0/+222
| | | | | | | | | | | X86AsmParser.cpp is missing full comparison predicate names for CMPPD and CMPPS Instructions. X86AsmParser.cpp defines only the short names of the Comparison predicate that you can find in the following pdf: https://software.intel.com/sites/default/files/managed/07/b7/319433-023.pdf Page 5-61 table 5-3 Differential Revision: http://reviews.llvm.org/D16518 llvm-svn: 258671
* Use of assert instead of llvm_unreachable in ↵George Rimar2016-01-251-1/+1
| | | | | | EhFrameHeader<ELFT>::assignEhFrame(). llvm-svn: 258670
* Allow capture typedefs/type aliases for VLAs in lambdas/captured statements ↵Alexey Bataev2016-01-252-7/+21
| | | | | | | | chain. Previous it was allowed to capture VLAs/types with arrays of runtime bounds only inside the first lambda/capture statement in stack. Patch allows to capture these typedefs implicitly in chains of lambdas/captured statements. llvm-svn: 258669
* Fixed processing of GNU extensions to C99 designated initializersAlexey Bataev2016-01-252-6/+17
| | | | | | Clang did not handles correctly inner parts of arrays/structures initializers in GNU extensions to C99 designated initializers. llvm-svn: 258668
* [llvm-size] Use stderr instead of stdout for error messages.Davide Italiano2016-01-251-2/+2
| | | | | | This matches the behavior of other tools: objdump, readobj etc.. llvm-svn: 258667
* [Object][COFF] Revert r258665 - It doesn't do what I had intended.Lang Hames2016-01-251-1/+1
| | | | | | | I'm discussing the right approach for tracking visibility for COFF symbols on the llvm-dev list. llvm-svn: 258666
* [Object][COFF] Set the generic SF_Exported flag on COFF exported symbols.Lang Hames2016-01-241-1/+1
| | | | | | | | | | | | | | The ORC ObjectLinkingLayer uses this flag during symbol lookup. Failure to set it causes all symbols to behave as if they were non-exported, which has caused failures in the kaleidoscope tutorials on Windows. Raising the flag should un-break the tutorials. No test case yet - none of the existing command line tools for printing symbol tables (llvm-nm, llvm-objdump) show the status of this flag, and I don't want to change the format from these tools without consulting their owners. I'll send an email to the dev-list to figure out the right way forward. llvm-svn: 258665
* [COFF] Simplify SetSectionNameDavid Majnemer2016-01-241-12/+10
| | | | | | | | Consolidate the code which handles string table offsets less than 999999 with the code for offsets less than 9999999. While we are here, simplify the code by not using sprintf to generate the string. llvm-svn: 258664
* [LoopSimplify] Reuse changeToUnreachableDavid Majnemer2016-01-241-6/+1
| | | | | | | | | Use existing functionality provided in changeToUnreachable instead of reinventing it in LoopSimplify. No functionality change is intended. llvm-svn: 258663
* test: Name instructions in a test case [NFC]Tobias Grosser2016-01-241-12/+12
| | | | llvm-svn: 258662
* Fix build bot breakageDavid Majnemer2016-01-241-1/+1
| | | | llvm-svn: 258661
* BlockGenerators: Avoid redundant map lookup [NFC]Tobias Grosser2016-01-241-2/+2
| | | | llvm-svn: 258660
* Added Skylake client to X86 targets and featuresElena Demikhovsky2016-01-246-199/+337
| | | | | | | | | | | | | Changes in X86.td: I set features of Intel processors in incremental form: IVB = SNB + X HSW = IVB + X .. I added Skylake client processor and defined it's features FeatureADX was missing on KNL Added some new features to appropriate processors SMAP, IFMA, PREFETCHWT1, VMFUNC and others Differential Revision: http://reviews.llvm.org/D16357 llvm-svn: 258659
* Fixed few comments.Amjad Aboud2016-01-242-4/+4
| | | | llvm-svn: 258658
* AVX512: VMOVDQU8/16/32/64 (load) intrinsic implementation.Igor Breger2016-01-249-15/+335
| | | | | | Differential Revision: http://reviews.llvm.org/D16137 llvm-svn: 258657
* [TableGen] In AsmWriterEmitter unique command search, rather than storing a ↵Craig Topper2016-01-241-43/+32
| | | | | | | | mapping from instruction to unique command, instead store a list of which instructions each unique command corresponds to. This simplifies the complexity of the code that tries to find further operands to merge into the unique command. llvm-svn: 258656
* Fix buildbot failuresDavid Majnemer2016-01-241-1/+1
| | | | llvm-svn: 258655
* [SCCP] Remove duplicate codeDavid Majnemer2016-01-243-22/+16
| | | | | | | | | SCCP has code identical to changeToUnreachable's behavior, switch it over to just call changeToUnreachable. No functionality change intended. llvm-svn: 258654
* [InstCombine, SCCP] Consolidate code used to remove instructionsDavid Majnemer2016-01-244-37/+30
| | | | | | | | | InstCombine and SCCP both want to remove dead code in a very particular way but using identical means to do so. Share the code between the two. No functionality change is intended. llvm-svn: 258653
* [PGO] Windows buildbot failure fix. [NFC]Betul Buyukkurt2016-01-241-2/+3
| | | | llvm-svn: 258652
* [WinEH] Don't miscompile cleanups which conditionally unwind to callerDavid Majnemer2016-01-232-1/+26
| | | | | | | | | | | | | | | | A cleanup can have paths which unwind or end up in unreachable. If there is an unreachable path *and* a path which unwinds to caller, we would mistakenly inject an unwind path to a catchswitch on the unreachable path. This results in a verifier assertion firing because the cleanup unwinds to two different places: to the caller and to the catchswitch. This occured because we used getCleanupRetUnwindDest to determine if the cleanuppad had no cleanuprets. This is incorrect, getCleanupRetUnwindDest returns null for cleanuprets which unwind to caller. llvm-svn: 258651
* Clang changes for value profilingBetul Buyukkurt2016-01-234-6/+109
| | | | | | Differential Revision: http://reviews.llvm.org/D8940 llvm-svn: 258650
* Remove duplicate documentation in ConstantFolding.cpp. NFC.Manuel Jacob2016-01-231-22/+0
| | | | | | The documentation for these functions is already present in the header file. llvm-svn: 258649
* Remove duplicate documentation in Attributes.cpp. NFC.Manuel Jacob2016-01-231-10/+0
| | | | | | The documentation for these methods is already present in the header. llvm-svn: 258648
* Update outdated method documention in Attributes.h. NFC.Manuel Jacob2016-01-231-2/+2
| | | | | | Nowadays the alignment attribute is not the only integer attribute. llvm-svn: 258647
* [SelectionDAG] Generalised the CONCAT_VECTORS creation to support ↵Simon Pilgrim2016-01-232-12/+14
| | | | | | BUILD_VECTOR and UNDEF folding. llvm-svn: 258646
* [X86][SSE] Generalised TRUNC -> PACKSS/PACKUS code. NFC.Simon Pilgrim2016-01-231-16/+11
| | | | | | Generalised mask generation / subvector extraction to use the input/output types directly instead of an if/else through all the currently accepted types. llvm-svn: 258645
* Tidied up TRUNC combine code. NFC.Simon Pilgrim2016-01-231-9/+5
| | | | | | Make use of DAG.getBitcast and use clang-format to reduce number of lines (and make it more readable). llvm-svn: 258644
* [CUDA] Disallow variadic functions other than printf in device code.Justin Lebar2016-01-233-13/+37
| | | | | | | | | | Reviewers: tra Subscribers: cfe-commits, echristo, jhen Differential Revision: http://reviews.llvm.org/D16484 llvm-svn: 258643
* [CUDA] Make printf work.Justin Lebar2016-01-237-0/+197
| | | | | | | | | | | | | | | | | | Summary: The code in CGCUDACall is largely based on a patch written by Eli Bendersky: http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20140324/210218.html That patch implemented an LLVM pass lowering printf to vprintf; this one does something similar, but in Clang codegen. Reviewers: echristo Subscribers: cfe-commits, jhen, tra, majnemer Differential Revision: http://reviews.llvm.org/D16372 llvm-svn: 258642
* [CUDA] Reject the alias attribute in CUDA device code.Justin Lebar2016-01-233-0/+15
| | | | | | | | | | | | Summary: CUDA (well, strictly speaking, NVPTX) doesn't support aliases. Reviewers: echristo Subscribers: cfe-commits, jhen, tra Differential Revision: http://reviews.llvm.org/D16502 llvm-svn: 258641
* [CUDA] Use Triple::isNVPTX() instead of enumerating nvptx && nvptx64.Justin Lebar2016-01-231-4/+2
| | | | | | | | | | Summary: No functional changes. Subscribers: tra, echristo, jhen, cfe-commits Differential Revision: http://reviews.llvm.org/D16495 llvm-svn: 258640
* [CUDA] Add Target::isNVPTX().Justin Lebar2016-01-231-0/+5
| | | | | | | | | | | | Summary: Helper so we don't have to enumerate nvptx && nvptx64 everywhere. Reviewers: echristo Subscribers: llvm-commits, jhen, tra Differential Revision: http://reviews.llvm.org/D16494 llvm-svn: 258639
* [CUDA] Die gracefully when trying to output an LLVM alias.Justin Lebar2016-01-232-0/+12
| | | | | | | | | | | | | | Summary: Previously, we would just output "foo = bar" in the assembly, and then ptxas would choke. Now we die before emitting any invalid code. Reviewers: echristo Subscribers: jholewinski, llvm-commits, jhen, tra Differential Revision: http://reviews.llvm.org/D16490 llvm-svn: 258638
* [CUDA] Make empty parameter lists in nvptx function decls easier to read.Justin Lebar2016-01-231-0/+5
| | | | | | | | | | | | | | | | | | | | | | | Summary: Before: .func (.param .b32 func_retval0) _ZL21__nvvm_reflect_anchorv( ) { After: .func (.param .b32 func_retval0) _ZL21__nvvm_reflect_anchorv() { Reviewers: bkramer Subscribers: llvm-commits, tra, jhen, echristo, jholewinski Differential Revision: http://reviews.llvm.org/D16512 llvm-svn: 258637
* Don't check if a list is empty with ilist::size.Benjamin Kramer2016-01-231-1/+1
| | | | | | ilist::size() is O(n) while ilist::empty() is O(1) llvm-svn: 258636
* ObjectTransformLayerTest.cpp: Rework r258633. [-Winconsistent-missing-override]NAKAMURA Takumi2016-01-231-1/+1
| | | | | | Sorry for the noise. llvm-svn: 258635
* ObjectTransformLayerTest.cpp: Fix a warning. [-Wredundant-move]NAKAMURA Takumi2016-01-231-1/+1
| | | | llvm-svn: 258634
* ObjectTransformLayerTest.cpp: Fix a warning. [-Winconsistent-missing-override]NAKAMURA Takumi2016-01-231-1/+1
| | | | llvm-svn: 258633
* ScopInfo: Simplify code by folding definition into ifTobias Grosser2016-01-231-2/+1
| | | | llvm-svn: 258632
* [libFuzzer] add -abort_on_timeout optionKostya Serebryany2016-01-236-0/+7
| | | | llvm-svn: 258631
* [ORC] Update ObjectTransformLayer signatureJoseph Tremoulet2016-01-232-8/+71
| | | | | | | | | | | | | | | | | | | | Summary: Update ObjectTransformLayer::addObjectSet to take the object set by value rather than reference and pass it to the base layer with move semantics rather than copy, to match r258185's changes to ObjectLinkingLayer. Update the unit test to verify that ObjectTransformLayer's signature stays in sync with ObjectLinkingLayer's. Reviewers: lhames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16414 llvm-svn: 258630
* regenerate checks and note some near-term improvementsSanjay Patel2016-01-231-239/+1100
| | | | | | | | For the moment, this file takes way too long to run (see inline comments), but that should be a temporary problem. The fact that the compile time is so slow for a target that doesn't support maskmov may be a bug worth investigating too. llvm-svn: 258629
* Improving documentation for the isMoveAssignmentOperator AST matcher.Aaron Ballman2016-01-232-10/+14
| | | | | | Patch by Jonathan Coe. llvm-svn: 258628
OpenPOWER on IntegriCloud