summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [InstCombine] Simplify (x >> y) <= xDavid Majnemer2016-01-212-2/+20
| | | | | | | | | | | | This commit extends the patterns recognised by InstSimplify to also handle (x >> y) <= x in the same way as (x /u y) <= x. The missing optimisation was found investigating why LLVM did not optimise away bound checks in a binary search: https://github.com/rust-lang/rust/pull/30917 Patch by Andrea Canciani! Differential Revision: http://reviews.llvm.org/D16402 llvm-svn: 258422
* Partially revert "Add command line options to force function/loop alignments."Chad Rosier2016-01-211-10/+0
| | | | | | This partially reverts r256571 in favor of the solution in r258409. llvm-svn: 258421
* [PGO] Passmanagerbuilder change that enable IR level PGO instrumentationRong Xu2016-01-213-1/+36
| | | | | | | | | | This patch includes the passmanagerbuilder change that enables IR level PGO instrumentation. It adds two passmanagerbuilder options: -profile-generate=<profile_filename> and -profile-use=<profile_filename>. The new options are primarily for debug purpose. Reviewers: davidxl, silvas Differential Revision: http://reviews.llvm.org/D15828 llvm-svn: 258420
* [TTI] Add getCacheLineSizeAdam Nemet2016-01-216-5/+29
| | | | | | | | | | | | | | | | | Summary: And use it in PPCLoopDataPrefetch.cpp. @hfinkel, please let me know if your preference would be to preserve the ppc-loop-prefetch-cache-line option in order to be able to override the value of TTI::getCacheLineSize for PPC. Reviewers: hfinkel Subscribers: hulx2000, mcrosier, mssimpso, hfinkel, llvm-commits Differential Revision: http://reviews.llvm.org/D16306 llvm-svn: 258419
* Implement LWG#2101 'Some transformation types can produce impossible types' ↵Marshall Clow2016-01-218-27/+320
| | | | | | Introduced a new (internal) type trait '__is_referenceable' with tests. Use that trait in add_lvalue_reference, add_rvalue_reference and add_pointer. llvm-svn: 258418
* [PGO] IR level instrumentation of indirect call value profilingRong Xu2016-01-212-4/+69
| | | | | | | | | | This patch adds the instrumentation for indirect call value profiling. It finds all the indirect call-sites and generates instrprof_value_profile intrinsic calls. A new opt level option -disable-vp is introduced to disable this instrumentation. Reviewers: davidxl, betulb, vsk Differential Revision: http://reviews.llvm.org/D16016 llvm-svn: 258417
* make helper functions static; NFCISanjay Patel2016-01-212-9/+5
| | | | llvm-svn: 258416
* Add an isVirtualAsWritten AST matcher.Nico Weber2016-01-214-0/+43
| | | | | | http://reviews.llvm.org/D16394 llvm-svn: 258415
* Enable test log collection from remote debug serversPavel Labath2016-01-211-6/+18
| | | | | | | | | | | | | | | | | Summary: We already have the ability to collect the server logs when doing local debugging. This enables the collection of remote logs as well. This relies on specifying a relative path "server.log" for LLDB_DEBUGSERVER_LOG_FILE when starting remote platform. Since we always set the platform working directory to a fresh folder to avoid conflicts, the actual file path will always be different and we can pick the logs up from there. Reviewers: tfiala Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D16322 llvm-svn: 258414
* [MSan] Add a test case for r258339.Alexey Samsonov2016-01-211-2/+12
| | | | llvm-svn: 258413
* Undo r258163 "Move part of an if condition into an assertion. NFC."Manuel Jacob2016-01-211-2/+2
| | | | | | | | This undoes the change made in r258163. The assertion fails if `Ptr` is of a vector type. The previous code doesn't look completely correct either, so I'll investigate this more. llvm-svn: 258411
* Fix a type in a commentPhilip Reames2016-01-211-1/+1
| | | | | | Thanks to Sean Silva for pointing it out. llvm-svn: 258410
* [BlockPlacement] Add option to align all non-fall-through blocks.Geoff Berry2016-01-211-0/+16
| | | | | | | | | | | | Summary: This option is being added for testing purposes. Reviewers: mcrosier Subscribers: mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D16410 llvm-svn: 258409
* Revert "[SLP] Truncate expressions to minimum required bit width"Matthew Simpson2016-01-212-161/+24
| | | | | | This reverts commit r258404. llvm-svn: 258408
* Use early return to simplify code (NFC)Teresa Johnson2016-01-211-22/+21
| | | | | | Follow on to r258405. llvm-svn: 258407
* [GCOV] Avoid emitting profile arcs for module and skeleton CUsVedant Kumar2016-01-212-0/+22
| | | | | | | | | | | | | | | | | | | Do not emit profile arc files and note files for module and skeleton CU's. Our users report seeing unexpected *.gcda and *.gcno files in their projects when using gcov-style profiling with modules or frameworks. The unwanted files come from these modules. This is not very helpful for end-users. Further, we've seen reports of instrumented programs crashing while writing these files out (due to I/O failures). rdar://problem/22838296 Reviewed-by: aprantl Differential Revision: http://reviews.llvm.org/D15997 llvm-svn: 258406
* [ThinLTO] Avoid unnecesary hash lookups during metadata linking (NFC)Teresa Johnson2016-01-212-19/+20
| | | | | | | Replace sequences of count() followed by operator[] with either find() or insert(), depending on the context. llvm-svn: 258405
* [SLP] Truncate expressions to minimum required bit widthMatthew Simpson2016-01-212-24/+161
| | | | | | | | | | | | | | | This change attempts to produce vectorized integer expressions in bit widths that are narrower than their scalar counterparts. The need for demotion arises especially on architectures in which the small integer types (e.g., i8 and i16) are not legal for scalar operations but can still be used in vectors. Like similar work done within the loop vectorizer, we rely on InstCombine to perform the actual type-shrinking. We use the DemandedBits analysis and ComputeNumSignBits from ValueTracking to determine the minimum required bit width of an expression. Differential revision: http://reviews.llvm.org/D15815 llvm-svn: 258404
* [libcxx] Add appropriate 'REQUIRE' directives to tests that require en_US.UTF-8.Daniel Sanders2016-01-2124-1/+48
| | | | | | | | | | Reviewers: mclow.lists, hans Subscribers: bcraig, cfe-commits Differential Revision: http://reviews.llvm.org/D16406 llvm-svn: 258403
* When dumping documentation for AST matchers, do something more useful with ↵Aaron Ballman2016-01-212-16/+22
| | | | | | | | \see doxygen commands. Ideally this would link to the target of \see, but for now it translates \see into "See also: " Regenerate the AST documentation for this new functionality. llvm-svn: 258401
* [mips] Allowed dla instructions on 32-bit architectures.Scott Egerton2016-01-213-5/+248
| | | | | | | | | | | | | | | Summary: This is now the same as the behaviour of the GNU assembler. This was done as it is required in order to build the Linux kernel with the integrated assembler enabled. Reviewers: dsanders, vkalintiris Subscribers: dsanders, llvm-commits Differential Revision: http://reviews.llvm.org/D13594 llvm-svn: 258400
* Revert obsolete llvm-link -preserve-modules option/testTeresa Johnson2016-01-212-18/+0
| | | | | | | This testing mode is now obsolete with the change to linkInModule to take a std::unique_ptr to Module. llvm-svn: 258399
* AVX512: Masked move intrinsic implementation.Igor Breger2016-01-2113-35/+430
| | | | | | | | Implemented intrinsic for the follow instructions (reg move) : VMOVDQU8/16, VMOVDQA32/64, VMOVAPS/PD. Differential Revision: http://reviews.llvm.org/D16316 llvm-svn: 258398
* [AVX512] Adding VPERMT2B and VPERMI2B Intrinsics Michael Zuckerman2016-01-214-0/+242
| | | | | | Differential Revision: http://reviews.llvm.org/D16398 llvm-svn: 258397
* Fix crash for typedefs for arrays of runtime bounds in Lambdas/Captured ↵Alexey Bataev2016-01-212-134/+170
| | | | | | Statements, used in sizeof() expression only. llvm-svn: 258396
* PR26172: unnecessary indirection in HexagonCopyToCombine.cppKrzysztof Parzyszek2016-01-211-1/+1
| | | | llvm-svn: 258395
* [OPENMP] Fix crash on reduction for complex variables.Alexey Bataev2016-01-214-17/+25
| | | | | | reworked codegen for reduction operation for complex types to avoid crash llvm-svn: 258394
* [X86] - Removing warning on legal cases caused by commit r258132Marina Yatsina2016-01-212-5/+29
| | | | | | | | | | | | | There's an overloading of the "movsd" and "cmpsd" instructions, e.g. movsd can be either "Move Data from String to String" or "Move or Merge Scalar Double-Precision Floating-Point Value". The former should produce warnings when parsing a memory operand that is not ESI/EDI, but the latter should not. Fixed the code to produce warnings only after making sure we're dealing with the first case. Expanded the tests of the produced warnings + fixed RUN line of the test so that it would check both stdout and stderr Differential Revision: http://reviews.llvm.org/D16359 llvm-svn: 258393
* [ELF] - Refactoring of Writer<ELFT>::scanRelocs()George Rimar2016-01-211-21/+29
| | | | | | | | | Code for handling TLS relocations was moved out scanRelocs() to new function handleTlsRelocations(). That is because scanRelocs already too large to put more TLS code into it. Differential revision: http://reviews.llvm.org/D16354 llvm-svn: 258392
* Change ConstantFoldInstOperands to take Instruction instead of opcode and ↵Manuel Jacob2016-01-216-59/+62
| | | | | | | | | | | | | | | | | | | | | type. NFC. Summary: The previous form, taking opcode and type, is moved to an internal helper and the new form, taking an instruction, is a wrapper around this helper. Although this is a slight cleanup on its own, the main motivation is to refactor the constant folding API to ease migration to opaque pointers. This will be follow-up work. Reviewers: eddyb Subscribers: dblaikie, llvm-commits Differential Revision: http://reviews.llvm.org/D16383 llvm-svn: 258391
* Introduce ConstantFoldCastOperand function and migrate some callers of ↵Manuel Jacob2016-01-214-61/+78
| | | | | | | | | | | | | | | | | ConstantFoldInstOperands to use it. NFC. Summary: Although this is a slight cleanup on its own, the main motivation is to refactor the constant folding API to ease migration to opaque pointers. This will be follow-up work. Reviewers: eddyb Subscribers: zzheng, dblaikie, llvm-commits Differential Revision: http://reviews.llvm.org/D16380 llvm-svn: 258390
* Introduce ConstantFoldBinaryOpOperands function and migrate some callers of ↵Manuel Jacob2016-01-213-78/+48
| | | | | | | | | | | | | | | | | ConstantFoldInstOperands to use it. NFC. Summary: Although this is a slight cleanup on its own, the main motivation is to refactor the constant folding API to ease migration to opaque pointers. This will be follow-up work. Reviewers: eddyb Subscribers: dblaikie, llvm-commits Differential Revision: http://reviews.llvm.org/D16378 llvm-svn: 258389
* [ELF][MIPS] Initial support of MIPS local GOT entriesSimon Atanasyan2016-01-217-16/+196
| | | | | | | | | | | | | | | | | | | | | | | | Some MIPS relocation (for now R_MIPS_GOT16) requires creation of GOT entries for symbol not included in the dynamic symbol table. They are local symbols and non-local symbols with 'local' visibility. Local GOT entries occupy continuous block between GOT header and regular GOT entries. The patch adds initial support for handling local GOT entries. The main problem is allocating local GOT entries for local symbols. Such entries should be initialized by high 16-bit of the symbol value. In ideal world there should be no duplicated entries with the same values. But at the moment of the `Writer::scanRelocs` call we do not know a value of the symbol. In this patch we create new local GOT entry for each relocation against local symbol, though we can exhaust GOT quickly. That needs to be optimized later. When we calculate relocation we know a final symbol value and request local GOT entry index. To do that we maintain map between addresses and local GOT entry indexes. If we start to calculate relocations in parallel we will have to serialize access to this map. Differential Revision: http://reviews.llvm.org/D16324 llvm-svn: 258388
* When ObjectFileMachO reads a Mach-O file for a 32-bit arm cpu,Jason Molenda2016-01-211-3/+16
| | | | | | | | | | | | | | | | | | | | | | set the triple's "vendor" field to Apple. We don't want to assume a vendor of Apple for all Mach-O files - this breaks x86_64 EFI debugging where they put non-Apple binaries in a Mach-O format for ease of handling. But on armv7, Apple's ABI always uses r7 as the frame pointer register; if we don't set the Vendor field to Apple, we can pick up a generic armv7 ABI where the fp is r11 (or r7 for thumb) which breaks backtracing altogether. Greg is reluctant for us to make any assumptions about the Vendor here, but we'll see how this shakes out. It's such a big problem on armv7 if we don't know this is using the Apple ABI that it's worth trying this approach. <rdar://problem/22137561> llvm-svn: 258387
* AMDGPU/SI: Pass whether to use the SI scheduler via Target AttributeTom Stellard2016-01-214-1/+13
| | | | | | | | | | | | | | | | Summary: Currently the SI scheduler can be selected via command line option, but it turned out it would be better if it was selectable via a Target Attribute. This patch adds "si-scheduler" attribute to the backend. Reviewers: tstellarAMD, echristo Subscribers: echristo, arsenm Differential Revision: http://reviews.llvm.org/D16192 llvm-svn: 258386
* Return early before iterating over local symbols. NFC.Rui Ueyama2016-01-211-2/+3
| | | | llvm-svn: 258385
* re-submit test case (withright format-version)Xinliang David Li2016-01-214-0/+29
| | | | llvm-svn: 258384
* llvm-go: call llvm-config with componentsAndrew Wilkins2016-01-211-1/+2
| | | | | | | | | | | | | | Summary: Add components back into calls to llvm-config, which was accidentally removed in r258283. Reviewers: pcc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16392 llvm-svn: 258383
* Simplify function signature. NFC.Rui Ueyama2016-01-212-5/+4
| | | | | | StringTable is a member variable, so we don't need to pass it around. llvm-svn: 258382
* Rename MCLineEntry to MCDwarfLineEntryDavid Majnemer2016-01-213-21/+21
| | | | | | | MCLineEntry gives the impression that it is generic MC machinery. However, it is specific to DWARF. llvm-svn: 258381
* [libFuzzer] don't use std::vector in one more hot pathKostya Serebryany2016-01-211-6/+29
| | | | llvm-svn: 258380
* [GlobalISel] make library an optional componentAndrew Wilkins2016-01-211-1/+1
| | | | | | | | | | | | | | | | | | | Summary: Mark the LLVMGlobalISel library as optional in LLVMBuild.txt, since the library is only built if LLVM_BUILD_GLOBAL_ISEL is set. Without doing this, llvm-config includes the library in the list of components regardless of whether it's built, and then will error out when asked for the library names/paths. Reviewers: qcolombet Subscribers: joker.eph, llvm-commits, vkalintiris Differential Revision: http://reviews.llvm.org/D16386 llvm-svn: 258379
* [GlobalISel] Move generic opcodes description to their own file.Quentin Colombet2016-01-212-10/+26
| | | | | | Differential Revision: http://reviews.llvm.org/D16384 llvm-svn: 258378
* Revert 258376 -- wrong versionXinliang David Li2016-01-214-29/+0
| | | | llvm-svn: 258377
* [Coverage] Add a test case for comdatXinliang David Li2016-01-214-0/+29
| | | | | | | | | | | The binary contains two (merged) covmap sections which have duplicate CovMapRecords from comdat (template instantation). This test makes sure the reader reads it properly. It also tests that the coverage data from different instantiations of the same template function are properly merged in show output. llvm-svn: 258376
* Fix indentation.Rui Ueyama2016-01-211-1/+1
| | | | llvm-svn: 258374
* [libfuzzer] use %p for printing addressesMike Aizatsky2016-01-211-1/+1
| | | | llvm-svn: 258370
* Remove redundant argument.Rafael Espindola2016-01-211-3/+3
| | | | | | It is already a member variable. llvm-svn: 258369
* [readobj] Print CodeOffset first, it's easier to readReid Kleckner2016-01-201-5/+5
| | | | llvm-svn: 258368
* Fix a problem where we were not calling fcntl() with the correct arguments ↵Enrico Granata2016-01-201-2/+2
| | | | | | | | | | | for F_DUPFD On Mac OS X, this was working just fine in debug builds (presumably, because the right value ended up being at the right location for the variadic ABI), but not in Release builds As a result, we were seeing failures with commands that set their own immediate output stream - only in Release builds, which always makes for a fun little investigation I have removed those fcntl() calls and replaced them with dup() calls. This fixes the issue in both Debug and Release builds llvm-svn: 258367
OpenPOWER on IntegriCloud