summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86][AVX512] Add support for VBMI VPERMV3 target shuffle combinesSimon Pilgrim2016-11-202-1/+35
| | | | llvm-svn: 287496
* [X86][AVX512] Add support for VBMI VPERMV target shuffle combinesSimon Pilgrim2016-11-202-13/+11
| | | | llvm-svn: 287495
* [X86][AVX512] Add some initial VBMI target shuffle combine testsSimon Pilgrim2016-11-201-0/+131
| | | | llvm-svn: 287494
* [X86][AVX512VL] Removed duplicate operation actionSimon Pilgrim2016-11-201-2/+1
| | | | | | Basic AVX512F already declared uint_to_fp v4i32 as legal llvm-svn: 287493
* Strip trailing whitespaceSimon Pilgrim2016-11-201-9/+9
| | | | llvm-svn: 287492
* [X86][AVX512F] Add support for uint_to_fp v2i32 to v2f64 on AVX512F-only targetsSimon Pilgrim2016-11-203-13/+12
| | | | | | Use 512-bit instructions (we already do something similar for uint_to_fp v4i32 to v4f64) llvm-svn: 287491
* Fix comment typos. NFC.Simon Pilgrim2016-11-2021-24/+24
| | | | | | Identified by Pedro Giffuni in PR27636. llvm-svn: 287490
* Fix spelling mistakes in Tools/Tests comments. NFC.Simon Pilgrim2016-11-206-7/+7
| | | | | | Identified by Pedro Giffuni in PR27636. llvm-svn: 287489
* Fix spelling mistakes in Transforms comments. NFC.Simon Pilgrim2016-11-209-10/+10
| | | | | | Identified by Pedro Giffuni in PR27636. llvm-svn: 287488
* Fix spelling mistakes in SelectionDAG comments. NFC.Simon Pilgrim2016-11-204-5/+5
| | | | | | Identified by Pedro Giffuni in PR27636. llvm-svn: 287487
* Fix comment typos. NFC.Simon Pilgrim2016-11-201-2/+2
| | | | | | Identified by Pedro Giffuni in PR27636. llvm-svn: 287486
* [X86] RegCall - Handling long double argumentsOren Ben Simhon2016-11-204-10/+87
| | | | | | | | | | The change is part of RegCall calling convention support for LLVM. Long double (f80) requires special treatment as the first f80 parameter is saved in FP0 (floating point stack). This review present the change and the corresponding tests. Differential Revision: https://reviews.llvm.org/D26151 llvm-svn: 287485
* [X86][InlineAsm]Test commit.Coby Tayree2016-11-201-1/+1
| | | | | | | | Fixing a wrong comment on X86AsmParser.cpp::ParseZ: "true" --> "false" Differential Revision: https://reviews.llvm.org/D26797 llvm-svn: 287484
* Add doxygen comments to immintrin.h's intrinsics.Ekaterina Romanova2016-11-201-0/+35
| | | | | | | | | | The doxygen comments are automatically generated based on Sony's intrinsics docu ment. I got an OK from Eric Christopher to commit doxygen comments without prior code review upstream. This patch was internally reviewed by Charles Li. llvm-svn: 287483
* Fix file name resolution in nested response filesSerge Pavlov2016-11-201-0/+6
| | | | | | | | | | If a response file in construct `@file` was specified by relative name, constructs `@file` nested within it were resolved incorrectly if the flag RelativeNames in call to ExpandResponseFile was set to true. This feature is used in configuration files, tests for it are in respective change (see D24933). llvm-svn: 287482
* Use auto for obvious types.Rui Ueyama2016-11-201-2/+2
| | | | llvm-svn: 287481
* Do not expose ICF class from the file.Rui Ueyama2016-11-202-88/+40
| | | | | | | | | | Also this patch uses file-scope functions instead of class member function. Now that ICF class is not visible from outside, InputSection class can no longer be "friend" of it. So I removed the friend relation and just make it expose the features to public. llvm-svn: 287480
* ExceptionDemo: remove some undefined behaviourSaleem Abdulrasool2016-11-201-14/+17
| | | | | | | | The casting based reading of the LSDA could attempt to read unsuitably aligned data. Avoid that case by explicitly using a memcpy. A similar approach is used in libc++abi to address the same UB. llvm-svn: 287479
* ExceptionDemo: prefer headers over redeclarationsSaleem Abdulrasool2016-11-201-63/+9
| | | | | | | | | | | Rather than redeclaring the interfaces for exceptions, prefer using the `unwind.h` header. This is vended by at least gcc and clang, and can also be found by an external unwinding library (e.g. libunwind). Doing this simplifies the example to the exception handling itself. Minor tweaks are the result of _Unwind_Context_t not being defined, which is just a typedef for struct _Unwind_Context *. NFC. llvm-svn: 287478
* [bpf] add BPF disassemblerAlexei Starovoitov2016-11-2010-7/+325
| | | | | | | | | | | | | | | | | | | | | | | | | | add BPF disassembler, so tools like llvm-objdump can be used: $ llvm-objdump -d -no-show-raw-insn ./sockex1_kern.o ./sockex1_kern.o: file format ELF64-BPF Disassembly of section socket1: bpf_prog1: 0: r6 = r1 8: r0 = *(u8 *)skb[23] 10: *(u32 *)(r10 - 4) = r0 18: r1 = *(u32 *)(r6 + 4) 20: if r1 != 4 goto 8 28: r2 = r10 30: r2 += -4 ld_imm64 (the only 16-byte insn) and special ld_abs/ld_ind instructions had to be treated in a special way. The decoders for the rest of the insns are automatically generated. Add tests to cover new functionality. Signed-off-by: Alexei Starovoitov <ast@kernel.org> llvm-svn: 287477
* Attempt to fix big-endian buildbots.Rui Ueyama2016-11-201-7/+0
| | | | llvm-svn: 287476
* Style fix. NFC.Rui Ueyama2016-11-201-7/+7
| | | | llvm-svn: 287475
* Fix buildbot.Rui Ueyama2016-11-201-2/+2
| | | | llvm-svn: 287474
* SHA1: unroll loop in hashBlock.Rui Ueyama2016-11-202-45/+156
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code is taken from public domain. https://github.com/jsonn/src/blob/trunk/common/lib/libc/hash/sha1/sha1.c I wrote a sha1 command and ran it on my Xeon E5-2680 v2 2.80GHz machine. Here is a result. The new hash function is 37% faster than before. Performance counter stats for './llvm-sha1-old /ssd/build/bin/lld' (10 runs): 6640.503687 task-clock (msec) # 1.001 CPUs utilized ( +- 0.03% ) 54 context-switches # 0.008 K/sec ( +- 5.03% ) 5 cpu-migrations # 0.001 K/sec ( +- 31.73% ) 183,803 page-faults # 0.028 M/sec ( +- 0.00% ) 18,527,954,113 cycles # 2.790 GHz ( +- 0.03% ) 4,993,237,485 stalled-cycles-frontend # 26.95% frontend cycles idle ( +- 0.11% ) <not supported> stalled-cycles-backend 50,217,149,423 instructions # 2.71 insns per cycle # 0.10 stalled cycles per insn ( +- 0.00% ) 6,094,322,337 branches # 917.750 M/sec ( +- 0.00% ) 11,778,239 branch-misses # 0.19% of all branches ( +- 0.01% ) 6.634017401 seconds time elapsed ( +- 0.03% ) Performance counter stats for './llvm-sha1-new /ssd/build/bin/lld' (10 runs): 4167.062720 task-clock (msec) # 1.001 CPUs utilized ( +- 0.02% ) 52 context-switches # 0.012 K/sec ( +- 16.45% ) 7 cpu-migrations # 0.002 K/sec ( +- 32.20% ) 183,804 page-faults # 0.044 M/sec ( +- 0.00% ) 11,626,611,958 cycles # 2.790 GHz ( +- 0.02% ) 4,491,897,976 stalled-cycles-frontend # 38.63% frontend cycles idle ( +- 0.05% ) <not supported> stalled-cycles-backend 24,320,180,617 instructions # 2.09 insns per cycle # 0.18 stalled cycles per insn ( +- 0.00% ) 1,574,674,576 branches # 377.886 M/sec ( +- 0.00% ) 11,769,693 branch-misses # 0.75% of all branches ( +- 0.00% ) 4.163251552 seconds time elapsed ( +- 0.02% ) Differential Revision: https://reviews.llvm.org/D26890 llvm-svn: 287473
* Demangle: remove references to allocator for default allocatorSaleem Abdulrasool2016-11-201-50/+29
| | | | | | | | | The demangler had stopped using a custom allocator but had not been updated to remove the use of the explicit allocator passing. This removes that as we do not need to do anything special here anymore. This just makes the code more compact. NFC. llvm-svn: 287472
* Demangle: remove unnecessary typedef for std::vectorSaleem Abdulrasool2016-11-201-5/+3
| | | | | | | We could create a local typedef for std::vector called Vector. Inline the use of std::vector rather than use the typedef. NFC. llvm-svn: 287471
* Demangle: replace custom typedef for std::string with std::stringSaleem Abdulrasool2016-11-201-41/+37
| | | | | | | | We created a local typedef for `std::basic_string<char, std::char_traits<char>>` which is just `std::string`. Remove the local typedef and propagate the type information through the rest of the demangler. NFC. llvm-svn: 287470
* Demangle: use direct member initialization (NFC)Saleem Abdulrasool2016-11-201-14/+7
| | | | | | | Prefer direct member initialization over the explicit out-of-line initialization for the construction of the local type. NFC. llvm-svn: 287469
* Remove a file that is too short to be an independent file.Rui Ueyama2016-11-196-84/+30
| | | | | | | We have a .cpp and a .h for parseDynamicList(). This patch moves the function to DriverUtil.cpp. llvm-svn: 287468
* Remove unused #include.Rui Ueyama2016-11-192-2/+0
| | | | llvm-svn: 287467
* Refactor ICF.Rui Ueyama2016-11-191-25/+25
| | | | | | | In order to use forEachGroup in the final loop in ICF::run, I changed some function parameter types. llvm-svn: 287466
* builtins: Allow building windows arm functions for mingwMartin Storsjo2016-11-196-1/+103
| | | | | | | | | | | | | | | | | When building with clang/LLVM in MSVC mode, the msvcrt libraries contain these functions. When building in a mingw environment, we need to provide them somehow, e.g. via compiler-rt. The aeabi divmod functions work in the same way as the corresponding __rt_*div* functions for windows, but their parameters are swapped. The functions for converting float to integer and vice versa are the same as their aeabi equivalents, only with different function names. Differential Revision: https://reviews.llvm.org/D26183 llvm-svn: 287465
* [ARM|ASAN] Disabling more unstable ASAN testsRenato Golin2016-11-1912-25/+12
| | | | | | | | | | | We're seeying these errors with GCC and Clang on different systems, while some other identical OSs on different boards fail. Like many other ASAN tests, there seem to be no easy way to investigate this other than someone familiar with the sanitizer code and the ARM libraries. At least, for now, we'll silence the bots. I'll create a bugzilla entry. llvm-svn: 287464
* [CMake] Fixing clang standalone buildChris Bieneman2016-11-192-2/+10
| | | | | | I broke this in r287406 and r287407. llvm-svn: 287463
* Give some helper classes/functions internal linkage. NFC.Benjamin Kramer2016-11-194-8/+14
| | | | llvm-svn: 287462
* [X86][SSE] Improve PSHUFB lowering from either inputSimon Pilgrim2016-11-192-14/+12
| | | | | | Canonicalization may leave the zeroable vector in the first input. llvm-svn: 287461
* Use std::equal instead of hand-written loops.Rui Ueyama2016-11-191-34/+24
| | | | llvm-svn: 287460
* [X86][AVX512] Add VPERMV/VPERMV3 v64i8 byte shuffles on avx512vbmi targetsSimon Pilgrim2016-11-192-31/+13
| | | | llvm-svn: 287459
* Remove alignment from ctors/dtors lists in an attempt to placate LTO.John McCall2016-11-191-3/+9
| | | | llvm-svn: 287458
* Restore a comment that was accidentally changed.Rui Ueyama2016-11-191-2/+3
| | | | llvm-svn: 287457
* Use Optional<std::string> instead of "" to represent a failure.Rui Ueyama2016-11-194-19/+17
| | | | llvm-svn: 287456
* Make buildSysrootedPath file-scoped.Rui Ueyama2016-11-192-31/+28
| | | | | | This patch also changes its return type to simplify callers. llvm-svn: 287455
* Simplify "missing argument" error message.Rui Ueyama2016-11-193-5/+3
| | | | | | | We do not have an option taking more than one arguments, so we can just say "missing argument" instead of "missing argument(s)". llvm-svn: 287454
* [ThinLTO] Fix crash when importing an opaque typeMehdi Amini2016-11-193-1/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | It seems that because ThinLTO does not import the full module, some invariant of the type mapper are broken. In Monolithic LTO, we import every globals: when calling IRLinker::copyFunctionProto() on @foo(), we end-up calling TypeMapTy::get(FTy) on the type of @foo(), which will map %0 and record the destination as opaque. ThinLTO skips this because @foo is not imported and goes directly to the next stage. Next we call computeTypeMapping() that map the types for each globals, and ends up checking for type isomorphism, and may add type mapping. However it doesn't record if there was an opaque destination type that was resolved. Instead of lazily "discovering" opaque type in the destination module on the go, we change the TypeFinder to eagerly record all types and not only the named ones. Differential Revision: https://reviews.llvm.org/D26840 llvm-svn: 287453
* Split getFdeEncoding.Rui Ueyama2016-11-191-10/+15
| | | | llvm-svn: 287452
* Fix typo in error message.Rui Ueyama2016-11-193-3/+3
| | | | llvm-svn: 287451
* [ThinLTO] Implement -pass-remarks-output in ThinLTOCodeGeneratorMehdi Amini2016-11-194-7/+95
| | | | | | | | | | | | | | Summary: This will also be added to the LTO API, right now this will bring ThinLTO on par with Monolithic LTO on Darwin. Reviewers: anemet Subscribers: tejohnson, llvm-commits Differential Revision: https://reviews.llvm.org/D26886 llvm-svn: 287450
* Change setDiagnosticsOutputFile to take a unique_ptr from a raw pointer (NFC)Mehdi Amini2016-11-195-6/+8
| | | | | | | | | | | | | | Summary: This makes it explicit that ownership is taken. Also replace all `new` with make_unique<> at call sites. Reviewers: anemet Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D26884 llvm-svn: 287449
* [ELF] - Exit on --version call.George Rimar2016-11-193-4/+14
| | | | | | | | | | | | | GNU linkers disagree here. Though both -version and -v are mentioned in help to print the version information, GNU ld just normally exits, while gold can continue linking. We are compatible with ld.bfd here. This fixes PR31057. Differential revision: https://reviews.llvm.org/D26865 llvm-svn: 287448
* [X86][AVX512] Add avx512vbmi testsSimon Pilgrim2016-11-191-0/+108
| | | | llvm-svn: 287447
OpenPOWER on IntegriCloud