summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Always try to read DW_TAG_typedef types from DWO files first if we can. Greg Clayton2016-01-211-1/+24
| | | | | | | | | | | | | | | A lot of C code uses code like: typedef struct { int a; } FooType; This creates debug info with an anonymous struct (a DW_TAG_structure_type with no DW_AT_name) and then a DW_TAG_typedef that points to the anonymous structure type. When a typedef is from a module and clang uses -gmodules and -fmodules, then we can end up trying to resolve an anonymous structure type in a DWO symbol file. This doesn't work very well when the structuture has no name, so we now check if a typedef comes from a module, and we directly resolve the typedef type in the module and copy it over. The version we copy from the module of course is correctly able to find the structure in the DWO symbol file, so this fixes the issues we run into. <rdar://problem/24092915> llvm-svn: 258443
* Avoid unnecessary stack realignment in musttail thunks with SSE2 enabledReid Kleckner2016-01-213-2/+12
| | | | | | | | | | | The X86 musttail implementation finds register parameters to forward by running the calling convention algorithm until a non-register location is returned. However, assigning a vector memory location has the side effect of increasing the function's stack alignment. We shouldn't increase the stack alignment when we are only looking for register parameters, so this change conditionalizes it. llvm-svn: 258442
* [OpenMP] Parsing + Sema for nowait clause on target directiveArpith Chacko Jacob2016-01-213-0/+31
| | | | | | | | | | | Summary: Allow nowait clause on target directive in sema and add test cases. Reviewers: ABataev Differential Revision: http://reviews.llvm.org/D16358 llvm-svn: 258441
* [X86][SSE] Improve i16 splatting shufflesSimon Pilgrim2016-01-2110-212/+189
| | | | | | | | | | | | Better handling of the annoying pshuflw/pshufhw ops which only shuffle lower/upper halves of a vector. Added vXi16 unary shuffle support for cases where i16 elements (from the same half of the source) are being splatted to the whole of one of the halves. This avoids the general lowering case which must shuffle the 32-bit elements first - meaning that we used to end up with unnecessary duplicate pshuflw/pshufhw shuffles. Note this has the side effect of a lot of SSSE3 test cases no longer needing to use PSHUFB, as it falls below the 3 op combine threshold for when PSHUFB is typically worth it. I've raised PR26183 to discuss if the threshold should be changed and whether we need to make it more specific to the target CPU. Differential Revision: http://reviews.llvm.org/D14901 llvm-svn: 258440
* In test-release.sh, only run `uname -s` once. NFC.Dimitry Andric2016-01-211-3/+4
| | | | llvm-svn: 258439
* [RuntimeDyld][AArch64] Add support for the MachO ARM64_RELOC_SUBTRACTOR reloc.Lang Hames2016-01-212-1/+58
| | | | llvm-svn: 258438
* Resubmit test case with more restrictionXinliang David Li2016-01-214-0/+58
| | | | | | | | The original submittion triggered a BFD linker bug (2.24) on Aarch64 only. Before the build bot is upgraded to more recent linker, restrict the test to be executed only with gold linker. llvm-svn: 258437
* Let test-release.sh checkout subprojects directly into the target tree,Dimitry Andric2016-01-211-43/+23
| | | | | | | | | | | | | | | | | | | | | instead of using symlinks Summary: In the past I have run into several problems with the way `test-release.sh` creates all the subproject directories as siblings, and then uses symlinks to stitch them all together. In some scenarios this leads to clang not being able to find header files, etc. This patch changes the script so it directly exports into the correct target locations for each subproject. Reviewers: hans Subscribers: emaste, llvm-commits Differential Revision: http://reviews.llvm.org/D16420 llvm-svn: 258436
* Fix for two constant propagation problems in GVN with the assume intrinsicDavid L Kreitzer2016-01-214-5/+46
| | | | | | | | | | instruction. Patch by Yuanrui Zhang. Differential Revision: http://reviews.llvm.org/D16100 llvm-svn: 258435
* Fix MachOObjectFile::getSymbolSection() to not call report_fatal_error()Kevin Enderby2016-01-213-5/+20
| | | | | | | | | but to return object_error::parse_failed.  Then made the code in llvm-nm do for Mach-O files what is done in the darwin native tools which is to print "(?,?)" or just "s" for bad section indexes. Also added a test to show it prints the bad section index of "42" when printing the fields as raw hex. llvm-svn: 258434
* NFC. Corrects name of test class and a comment.Adrian McCarthy2016-01-211-2/+2
| | | | llvm-svn: 258433
* Remove assumptions that thread 0 is always the main thread.Zachary Turner2016-01-2118-147/+72
| | | | | | | | | | | | | | | | | Starting with Windows 10, the Windows loader is itself multi-threaded, meaning that the loader spins up a few threads to do process initialization before it executes main. Windows delivers these notifications asynchronously and they can come out of order, so we can't be sure that the first thread we get a notification about is actually the zero'th thread. This patch fixes this by requesting the thread stopped at the breakpoint that was specified, rather than getting thread 0 and verifying that it is stopped at a breakpoint. Differential Revision: http://reviews.llvm.org/D16247 llvm-svn: 258432
* ELF: Move code to emit copyrel to one place. NFC.Rui Ueyama2016-01-211-9/+11
| | | | | | | | | In this code, we avoid calling needsCopyRel in writeTo because we called that function already in scanRelocs. Making the same decision twice is a waste and has a risk of a bug that we get inconsistent resuts. llvm-svn: 258430
* Add CalculateSymbolSizes in ObjectFilePECOFF::GetSymtab to ensure that ↵Adrian McCarthy2016-01-211-0/+1
| | | | | | | | | | (nearly) all the symbols have sizes. This fixes the `thread step-over` regression exposed by http://reviews.llvm.org/D16186 , which depends on the symbols having actual sizes. Nine tests on Windows had started failing as a result. They all work again with this fix. Differential Revision: http://reviews.llvm.org/D16415 llvm-svn: 258429
* [LibCallSimplifier] don't get fooled by a fake fmin()Sanjay Patel2016-01-212-9/+45
| | | | | | | | | | | | | | | | This is similar to the bug/fix: https://llvm.org/bugs/show_bug.cgi?id=26211 http://reviews.llvm.org/rL258325 The fmin() test case reveals another bug caused by sloppy code duplication. It will crash without this patch because fp128 is a valid floating-point type, but we would think that we had matched a function that used doubles. The new helper function can be used to replace similar checks that are used in several other places in this file. llvm-svn: 258428
* Style change. NFC.Rui Ueyama2016-01-211-28/+24
| | | | llvm-svn: 258427
* [driver] Enable some static analyzer "unix" checkers on Windows.Devin Coughlin2016-01-211-2/+11
| | | | | | | | | | | | Many of the "unix" checkers are not actually unix-specific and would be valuable to run on Windows. This commit explicitly enables those checkers on Windows. A patch by Alexander Riccio! Differential Revision: http://reviews.llvm.org/D16245 llvm-svn: 258426
* [OpenMP] Check for at least one map clause on target data directive.Arpith Chacko Jacob2016-01-215-49/+62
| | | | | | | | | | | | | | Summary: Adds the following restriction in the OpenMP specifications. OpenMP [2.10.1, Restrictions, p. 97] At least one map clause must appear on the directive. Reviewers: ABataev Differential Revision: http://reviews.llvm.org/D16341 llvm-svn: 258425
* [Coverage] Reduce complexity of adding function mapping recordsVedant Kumar2016-01-212-4/+7
| | | | | | | | | | Replace a string append operation in addFunctionMappingRecord with a vector append. The existing behavior is quadratic in the worst case: this patch makes it linear. Differential Revision: http://reviews.llvm.org/D16395 llvm-svn: 258424
* Fix buildbot failure due to r258420Rong Xu2016-01-211-0/+1
| | | | | | Include the needed headfile to fix the buildbot failure due to r258420 [PGO] Passmanagerbuilder change that enable IR level PGO instrumentation. llvm-svn: 258423
* [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
OpenPOWER on IntegriCloud