summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add AST dumping support for _Generic expressions.Richard Smith2018-01-051-0/+32
| | | | llvm-svn: 321899
* [X86] Stop printing moves between VR64 and GR64 with 'movd' mnemonic. Use ↵Craig Topper2018-01-0514-876/+902
| | | | | | | | 'movq' instead. This behavior existed to work with an old version of the gnu assembler on MacOS that only accepted this form. Newer versions of GNU assembler and the current LLVM derived version of the assembler on MacOS support movq as well. llvm-svn: 321898
* [Hexagon] Even simpler patterns for sign- and zero-extending HVX vectorsKrzysztof Parzyszek2018-01-051-16/+4
| | | | llvm-svn: 321897
* [cmake] Add a config option LIBCXX_HAS_WIN32_THREAD_API for enforcing win32 ↵Martin Storsjo2018-01-053-0/+24
| | | | | | | | | | | | | | | | threads This allows keeping libcxx using win32 threads even if a version of pthread.h is installed. This matches the existing cmake option LIBCXX_HAS_PTHREAD_API. Also add missing documentation about the internal define _LIBCPP_HAS_THREAD_API_WIN32. Differential Revision: https://reviews.llvm.org/D41764 llvm-svn: 321896
* [Hexagon] Add patterns for truncating HVX vector typesKrzysztof Parzyszek2018-01-052-0/+23
| | | | | | Only non-bool vectors. llvm-svn: 321895
* [Hexagon] Add patterns for sext_inreg of HVX vector typesKrzysztof Parzyszek2018-01-052-0/+73
| | | | llvm-svn: 321894
* [Hexagon] Add a bitcast to required type in LowerHvxMulKrzysztof Parzyszek2018-01-052-1/+31
| | | | llvm-svn: 321893
* [Hexagon] Add pattern for vsplat to v8i8Krzysztof Parzyszek2018-01-052-0/+45
| | | | llvm-svn: 321892
* [Hexagon] Set boolean contents in HexagonISelLoweringKrzysztof Parzyszek2018-01-051-0/+2
| | | | llvm-svn: 321891
* Fix TLS support check for Darwin 32-bit simulator targets.Volodymyr Sapsai2018-01-052-9/+21
| | | | | | | | | | | | | | | | | Also instead of checking architecture explicitly, use recently added "simulator" environment in the triple. rdar://problem/35083787 Reviewers: arphaman, bob.wilson Reviewed By: arphaman Subscribers: gparker42, cfe-commits Differential Revision: https://reviews.llvm.org/D41750 llvm-svn: 321890
* Centralize Config->IsRela handling.Rafael Espindola2018-01-053-19/+20
| | | | | | | This merges the two places were we check Config->IsRela to decide how to write a relocation addend. llvm-svn: 321889
* [llvm-cov] Change test to use FileCheck instead of grep.Douglas Yung2018-01-051-4/+6
| | | | | | Reviewed by Paul Robinson llvm-svn: 321888
* Fix -Wsign-compare warnings on WindowsReid Kleckner2018-01-054-8/+9
| | | | | | These arise because enums are 'int' by default. llvm-svn: 321887
* Limit size of non-GlobalValue nameSerge Guelton2018-01-052-0/+27
| | | | | | | | | | | | | Otherwise, in some extreme test case, very long names are created and the compiler consumes large amount of memory. Size limit is set to a relatively high value not to disturb debugging. Compiler flag -non-global-value-max-name-size=<value> can be used to customize the size. Differential Revision: https://reviews.llvm.org/D41296 llvm-svn: 321886
* Fix unhandled switch values.Zachary Turner2018-01-051-0/+2
| | | | llvm-svn: 321885
* [llvm-objcopy] Add --localize-hidden optionJake Ehrlich2018-01-054-1/+197
| | | | | | | This change adds support in llvm-objcopy for GNU objcopy's --localize-hidden option. This option changes every hidden or internal symbol into a local symbol. llvm-svn: 321884
* [PDB] Correctly link S_FILESTATIC records.Zachary Turner2018-01-059-39/+3557
| | | | | | | | | | | | | | | | | This is not a record type that clang currently generates, but it is a record that is encountered in object files generated by cl. This record is unusual in that it refers directly to the string table instead of indirectly to the string table via the FileChecksums table. Because of this, it was previously overlooked and we weren't remapping the string indices at all. This would lead to crashes in MSVC when trying to display a variable whose debug info involved an S_FILESTATIC. Original bug report by Alexander Ganea Differential Revision: https://reviews.llvm.org/D41718 llvm-svn: 321883
* [InstCombine] add folds for min(~a, b) --> ~max(a, b)Sanjay Patel2018-01-052-22/+40
| | | | | | | | | | | | | | | | | Besides the bug of omitting the inverse transform of max(~a, ~b) --> ~min(a, b), the use checking and operand creation were off. We were potentially creating repeated identical instructions of existing values. This led to infinite looping after I added the extra folds. By using the simpler m_Not matcher and not creating new 'not' ops for a and b, we avoid that problem. It's possible that not using IsFreeToInvert() here is more limiting than the simpler matcher, but there are no tests for anything more exotic. It's also possible that we should relax the use checking further to handle a case like PR35834: https://bugs.llvm.org/show_bug.cgi?id=35834 ...but we can make that a follow-up if it is needed. llvm-svn: 321882
* [llvm-mt] Remove platform-specific path in testBrian Gesiak2018-01-051-1/+1
| | | | | | | | | | Summary: Remove a platform-specific path separator added to the llvm-mt help text test in https://reviews.llvm.org/D41732. Test Plan: `check-llvm` llvm-svn: 321881
* [MSF] Fix FPM interval calcluationZachary Turner2018-01-053-18/+87
| | | | | | | | | | | | | We have some code to try to determine how many pieces an MSF Free Page Map is split into, and this code had an off by one error which would cause the calculation to be incorrect when there were exactly 4096*k + 1 blocks in an MSF file. Original investigation and patch outline by Colden Cullen. Differential Revision: https://reviews.llvm.org/D41742 llvm-svn: 321880
* [ArchSpec] Add a unittest to complement the change in r321856.Davide Italiano2018-01-051-0/+19
| | | | | | <rdar://problem/35778442> llvm-svn: 321879
* RegionInfo: Use report_fatal_error instead of llvm_unreachableMatt Arsenault2018-01-051-6/+6
| | | | | | | Otherwise when using -verify-region-info in a release build the error won't be emitted. llvm-svn: 321878
* [Option] Add 'findNearest' method to catch typosBrian Gesiak2018-01-056-3/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Add a method `OptTable::findNearest`, which allows users of OptTable to check user input for misspelled options. In addition, have llvm-mt check for misspelled options. For example, if a user invokes `llvm-mt /oyt:foo`, the error message will indicate that while an option named `/oyt:` does not exist, `/out:` does. The method ports the functionality of the `LookupNearestOption` method from LLVM CommandLine to libLLVMOption. This allows tools like Clang and Swift, which do not use CommandLine, to use this functionality to suggest similarly spelled options. As room for future improvement, the new method as-is cannot yet properly suggest nearby "joined" options -- that is, for an option string "-FozBar", where "-Foo" is the correct option name and "Bar" is the value being passed along with the misspelled option, this method will calculate an edit distance of 4, by deleting "Bar" and changing "z" to "o". It should instead calculate an edit distance of just 1, by changing "z" to "o" and recognizing "Bar" as a value. This commit includes a disabled test that expresses this limitation. Test Plan: `check-llvm` Reviewers: yamaguchi, v.g.vassilev, teemperor, ruiu, jroelofs Reviewed By: jroelofs Subscribers: jroelofs, llvm-commits Differential Revision: https://reviews.llvm.org/D41732 llvm-svn: 321877
* [llvm-cov] Temporarily disable multithreaded-report.test on Windows.Max Moroz2018-01-051-0/+4
| | | | | | | | | | | | Summary: The test is failing because Windows do not support "diff -r". Reviewers: Dor1s Reviewed By: Dor1s Differential Revision: https://reviews.llvm.org/D41768 llvm-svn: 321876
* add 'REQUIRES: object-emission' to testAdrian Prantl2018-01-051-0/+1
| | | | llvm-svn: 321875
* remove unnecessary target triple from generic testAdrian Prantl2018-01-051-4/+0
| | | | llvm-svn: 321874
* [BasicAA] Fix linearization of shifts beyond the bitwidth.Davide Italiano2018-01-052-0/+24
| | | | | | | Thanks to Simon Pilgrim for the reduced testcase. Fixes PR35821. llvm-svn: 321873
* [SLP] Update more test checks, NFC.Alexey Bataev2018-01-052-111/+143
| | | | llvm-svn: 321872
* [llvm-cov] Multi-threaded implementation of prepareFileReports method.Max Moroz2018-01-0515-33/+251
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Local testing has demonstrated a great speed improvement, compare the following: 1) Existing version: ``` $ time llvm-cov show -format=html -output-dir=report -instr-profile=... ... The tool has been launched: 00:00:00 Loading coverage data: 00:00:00 Get unique source files: 00:00:33 Creating an index out of the source files: 00:00:34 Going into prepareFileReports: 00:00:34 Going to emit summary information for each file: 00:28:55 <-- 28:21 min! Going to emit links to files with no function: 00:28:55 Launching 32 threads for generating HTML files: 00:28:55 real 37m43.651s user 112m5.540s sys 7m39.872s ``` 2) Multi-threaded version with 32 CPUs: ``` $ time llvm-cov show -format=html -output-dir=report -instr-profile=... ... The tool has been launched: 00:00:00 Loading coverage data: 00:00:00 Get unique source files: 00:00:38 Creating an index out of the source files: 00:00:40 Going into prepareFileReports: 00:00:40 Preparing file reports using 32 threads: 00:00:40 # Creating thread tasks for the following number of files: 16422 Going to emit summary information for each file: 00:01:57 <-- 1:17 min! Going to emit links to files with no function: 00:01:58 Launching 32 threads for generating HTML files: 00:01:58 real 11m2.044s user 134m48.124s sys 7m53.388s ``` Reviewers: vsk, morehouse Reviewed By: vsk Subscribers: Dor1s, llvm-commits, kcc Differential Revision: https://reviews.llvm.org/D41206 llvm-svn: 321871
* [SLP] Update test checks, NFC.Alexey Bataev2018-01-051-22/+140
| | | | llvm-svn: 321870
* [SLP] Update tests checks, NFC.Alexey Bataev2018-01-052-9/+18
| | | | llvm-svn: 321869
* [X86] Regenerate illegal move testSimon Pilgrim2018-01-051-4/+17
| | | | | | Recommitting after fixing case-sensitive issue in the RUN command llvm-svn: 321868
* [clangd] Fix memory leak in code completionIlya Biryukov2018-01-051-0/+1
| | | | llvm-svn: 321867
* [ARM] Issue an erorr when non-general-purpose registers are used in address ↵Momchil Velikov2018-01-052-8/+81
| | | | | | | | | | | | operands Currently the assembler would accept, e.g. `ldr r0, [s0, #12]` and similar. This patch add checks that only general-purpose registers are used in address operands, shifted registers, and shift amounts. Differential revision: https://reviews.llvm.org/D39910 llvm-svn: 321866
* [AArch64] Fix -mcpu option in aarch64-combine-fmul-fsub.mir (NFC)Florian Hahn2018-01-051-1/+1
| | | | llvm-svn: 321865
* Add a tool executor that runs actions on all TUs in the compilation database.Eric Liu2018-01-055-2/+314
| | | | | | | | | | | | Summary: Tool results are deduplicated by the result key. Reviewers: hokein Subscribers: klimek, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D41729 llvm-svn: 321864
* [DebugInfo] Don't crash when given invalid DWARFv5 line table prologue.Jonas Devlieghere2018-01-055-7/+17
| | | | | | | | | | | | | This patch replaces an assertion with an explicit check for the validity of the FORM parameters. The assertion was triggered when the DWARFv5 line table contained a zero address size. This fixes OSS-Fuzz Issue 4644 https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4644 Differential revision: https://reviews.llvm.org/D41615 llvm-svn: 321863
* [DAGCombine] Fix for PR37563Sam Parker2018-01-053-14/+21
| | | | | | | | | | | | While searching for loads to be narrowed, equal sized loads were not added to the list, resulting in anyext loads not being converted to zext loads. https://bugs.llvm.org/show_bug.cgi?id=35763 Differential Revision: https://reviews.llvm.org/D41628 llvm-svn: 321862
* Commit new test file forgotten in previous commitStephan Bergmann2018-01-051-0/+15
| | | | llvm-svn: 321861
* o -fsanitize=function warning when calling noexcept function through ↵Stephan Bergmann2018-01-051-1/+41
| | | | | | | | | | | | | | | | | | | | | | non-noexcept pointer in C++17 As discussed in the mail thread <https://groups.google.com/a/isocpp.org/forum/ #!topic/std-discussion/T64_dW3WKUk> "Calling noexcept function throug non- noexcept pointer is undefined behavior?", such a call should not be UB. However, Clang currently warns about it. This change removes exception specifications from the function types recorded for -fsanitize=function, both in the functions themselves and at the call sites. That means that calling a non-noexcept function through a noexcept pointer will also not be flagged as UB. In the review of this change, that was deemed acceptable, at least for now. (See the "TODO" in compiler-rt test/ubsan/TestCases/TypeCheck/Function/function.cpp.) This is the compiler-rt part of a patch covering both cfe and compiler-rt. Differential Revision: https://reviews.llvm.org/D40720 llvm-svn: 321860
* No -fsanitize=function warning when calling noexcept function through ↵Stephan Bergmann2018-01-056-25/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | non-noexcept pointer in C++17 As discussed in the mail thread <https://groups.google.com/a/isocpp.org/forum/ #!topic/std-discussion/T64_dW3WKUk> "Calling noexcept function throug non- noexcept pointer is undefined behavior?", such a call should not be UB. However, Clang currently warns about it. This change removes exception specifications from the function types recorded for -fsanitize=function, both in the functions themselves and at the call sites. That means that calling a non-noexcept function through a noexcept pointer will also not be flagged as UB. In the review of this change, that was deemed acceptable, at least for now. (See the "TODO" in compiler-rt test/ubsan/TestCases/TypeCheck/Function/function.cpp.) To remove exception specifications from types, the existing internal ASTContext::getFunctionTypeWithExceptionSpec was made public, and some places otherwise unrelated to this change have been adapted to call it, too. This is the cfe part of a patch covering both cfe and compiler-rt. Differential Revision: https://reviews.llvm.org/D40720 llvm-svn: 321859
* [ORC] Re-revert r321838: Tests are still failing.Lang Hames2018-01-058-832/+4
| | | | llvm-svn: 321858
* [GISel]: Don't create G_MUL with 1 during translation of GEPAditya Nandakumar2018-01-052-7/+21
| | | | | | | When element size is 1, it's just wasteful to create MUL with 1. https://reviews.llvm.org/D41738 llvm-svn: 321857
* [ArchSpec] Don't consider Unknown MachO64 as invalid.Davide Italiano2018-01-051-1/+6
| | | | | | | | Even without a proper arch we can access line tables, etc.. <rdar://problem/35778442> llvm-svn: 321856
* Reapply r321781: [Modules] Allow modules specified by -fmodule-map-file to ↵Bruno Cardoso Lopes2018-01-0523-52/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | | | shadow implicitly found ones When modules come from module map files explicitly specified by -fmodule-map-file= arguments, allow those to override/shadow modules with the same name that are found implicitly by header search. If such a module is looked up by name (e.g. @import), we will always find the one from -fmodule-map-file. If we try to use a shadowed module by including one of its headers report an error. This enables developers to force use of a specific copy of their module to be used if there are multiple copies that would otherwise be visible, for example if they develop modules that are installed in the default search paths. Patch originally by Ben Langmuir, http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20151116/143425.html Based on cfe-dev discussion: http://lists.llvm.org/pipermail/cfe-dev/2015-November/046164.html Differential Revision: https://reviews.llvm.org/D31269 rdar://problem/23612102 llvm-svn: 321855
* NFC.Evgeny Stupachenko2018-01-051-0/+1
| | | | | | | | | The patch fixes r321395, that cuased -Werror=unused-but-set-variable issue for Diagnosed var on prod build. From: Evgeny Stupachenko <evstupac@gmail.com> llvm-svn: 321854
* [ORC] Re-apply r321838 - Addition of new ORC core APIs.Lang Hames2018-01-058-4/+832
| | | | | | | | The original commit broke the builders due to a think-o in an assertion: AsynchronousSymbolQuery's constructor needs to check the callback member variables, not the constructor arguments. llvm-svn: 321853
* Move + and * operators of MoveOnly into MoveOnly.h.Billy Robert O'Neal III2018-01-052-11/+2
| | | | llvm-svn: 321852
* Fix incorrect handling of move-only types in transform_reduce iter iter iter ↵Billy Robert O'Neal III2018-01-052-1/+23
| | | | | | init, and add test. llvm-svn: 321851
* Automated trailing whitespace removal by VS Code.Billy Robert O'Neal III2018-01-051-18/+18
| | | | llvm-svn: 321850
OpenPOWER on IntegriCloud