summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [clang-diff] Add initial implementationAlex Lorenz2017-07-219-0/+1426
| | | | | | | | | | | | | | This is the first commit for the "Clang-based C/C++ diff tool" GSoC project. ASTDiff is a new library that computes a structural AST diff between two ASTs using the gumtree algorithm. Clang-diff is a new Clang tool that will show the structural code changes between different ASTs. Patch by Johannes Altmanninger! Differential Revision: https://reviews.llvm.org/D34329 llvm-svn: 308731
* [SystemZ, LoopStrengthReduce]Jonas Paulsson2017-07-2135-77/+301
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes LSR generate better code for SystemZ in the cases of memory intrinsics, Load->Store pairs or comparison of immediate with memory. In order to achieve this, the following common code changes were made: * New TTI hook: LSRWithInstrQueries(), which defaults to false. Controls if LSR should do instruction-based addressing evaluations by calling isLegalAddressingMode() with the Instruction pointers. * In LoopStrengthReduce: handle address operands of memset, memmove and memcpy as address uses, and call isFoldableMemAccessOffset() for any LSRUse::Address, not just loads or stores. SystemZ changes: * isLSRCostLess() implemented with Insns first, and without ImmCost. * New function supportedAddressingMode() that is a helper for TTI methods looking at Instructions passed via pointers. Review: Ulrich Weigand, Quentin Colombet https://reviews.llvm.org/D35262 https://reviews.llvm.org/D35049 llvm-svn: 308729
* [ELF] Avoid data race in ObjectFile<ELFT>::getDILineInfo().Igor Kudrin2017-07-212-2/+3
| | | | | | Differential Revision: https://reviews.llvm.org/D35537 llvm-svn: 308728
* [NFC] [PPCGCodeGeneration] Print `verifyModule` failure to debug stream.Siddharth Bhat2017-07-211-0/+2
| | | | | | | If verifyModule fails, it is helpful to know why it failed. Add a log to the debug stream that prints the failure. llvm-svn: 308727
* [clang-tidy] Add option to export fixes to run-clang-tidy.pyAlexander Kornienko2017-07-211-8/+46
| | | | | | | | | | | | | | | This patch adds the option to keep the list of proposed fixes even though they should not be applied. This allows to detect possible fixes using the parallelised run-clang-tidy.py and apply them using clang-apply-replacements at a later time. Essentially the patch causes the individual temporary yaml files by the parallel clang-tidy instances to be merged into one user-defined file. Patch by Michael F. Herbst! Differential revision: https://reviews.llvm.org/D31326 llvm-svn: 308726
* [clang-format] Fix comment levels between '}' and PPDirectiveKrasimir Georgiev2017-07-212-1/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This fixes a regression exposed by r307795 in which the level of a comment line between '}' and a preprocessor directive is incorrectly set as the level of the line before the '}'. In effect, this: ``` int f(int i) { int j = i; return i + j; } // comment #ifdef A #endif ``` was formatted as: ``` int f(int i) { int j = i; return i + j; } // comment #ifdef A #endif ``` Reviewers: djasper Reviewed By: djasper Subscribers: cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D35485 llvm-svn: 308725
* [X86][SSE] Add extra (sra (sra x, c1), c2) -> (sra x, (add c1, c2)) test caseSimon Pilgrim2017-07-211-0/+30
| | | | | | We should be able to handle the case where some c1+c2 elements exceed max shift and some don't by performing a clamp after the sum llvm-svn: 308724
* [X86][SSE] Add pre-AVX2 support for (i32 bitcast(v32i1)) -> 2xMOVMSKSimon Pilgrim2017-07-215-874/+103
| | | | | | | | | | | | Currently we only support (i32 bitcast(v32i1)) using the AVX2 VPMOVMSKB ymm instruction. This patch adds support for splitting pre-AVX2 targets into 2 x (V)PMOVMSKB xmm instructions and merging the integer results. In future we could probably generalize this to handle more cases. Differential Revision: https://reviews.llvm.org/D35303 llvm-svn: 308723
* Fixed failing assert in code completion.Ilya Biryukov2017-07-212-4/+14
| | | | | | | | | | | | | | | | Summary: The code was accessing uninstantiated default argument. This resulted in failing assertion at ParmVarDecl::getDefaultArg(). Reviewers: erikjv, klimek, bkramer, krasimir Reviewed By: krasimir Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D35682 llvm-svn: 308722
* [clangd] Specified --gcc-toolchain explicitly in VFS test.Ilya Biryukov2017-07-211-5/+5
| | | | | | | In order to avoid platform-specific configuration quirks. (Possible fix for https://bugs.llvm.org/show_bug.cgi?id=33842) llvm-svn: 308721
* [mips] Add `short_call` to the set of `long_call/far/near` attributesSimon Atanasyan2017-07-214-9/+20
| | | | | | | | MIPS gcc supports `long_call/far/near` attributes only, but other targets have the `short_call` attribut, so let's support it for MIPS for consistency. llvm-svn: 308719
* Fix typo in error message in 'platform status'.Bruce Mitchener2017-07-211-1/+1
| | | | llvm-svn: 308716
* Fix typo in function name Bllock -> BlockTobias Grosser2017-07-211-3/+3
| | | | llvm-svn: 308715
* Fix tblgen error.Richard Trieu2017-07-212-3/+24
| | | | | | | | tblgen couldn't determing a unique name between "long_call" and "far", so it errored out when generating documentation. Copy the documentation, and give an explicit header for "long_call". llvm-svn: 308714
* Commit access testPhilipp Schaad2017-07-211-1/+1
| | | | llvm-svn: 308712
* Only use xml if iconv is found, which is a prerequisite.Eric Beckmann2017-07-211-1/+2
| | | | llvm-svn: 308711
* dsymutil: strip unused types from imported DW_TAG_modulesAdrian Prantl2017-07-214-18/+53
| | | | | | | | | | | This patch teaches dsymutil to strip types from the imported DW_TAG_module inside of an object file (not inside the PCM) if they can be resolved to the full definition inside the PCM. This reduces the size of the .dSYM from WebCore from webkit.org by almost 2/3. <rdar://problem/33047213> llvm-svn: 308710
* Debug Info: Don't strip clang module skeleton CUs.Adrian Prantl2017-07-212-1/+33
| | | | | | | | This corrects a (hopefully :-) accidental side-effect of r304020. rdar://problem/33442618 llvm-svn: 308708
* [Driver] Consider -fno-sanitize=... state when filtering out ↵Petr Hosek2017-07-212-1/+13
| | | | | | | | | | | | | | | | -fsanitize-coverage=... The driver ignores -fsanitize-coverage=... flags when also given -fsanitize=... flags for sanitizer flavors that don't support the coverage runtime. This logic failed to account for subsequent -fno-sanitize=... flags that disable the sanitizer flavors that conflict with -fsanitize-coverage=... flags. Patch by Roland McGrath Differential Revision: https://reviews.llvm.org/D35603 llvm-svn: 308707
* [ELF] Remove processNonSectionCommandsPetr Hosek2017-07-212-10/+0
| | | | | | | | This method is no longer being used anywhere. Differential Revision: https://reviews.llvm.org/D35706 llvm-svn: 308706
* [CMake] Use ABI version 2 for C++ library in FuchsiaPetr Hosek2017-07-211-0/+1
| | | | | | | | | Fuchsia has always been using ABI version 2 but I forgot this option when setting up the cache file for runtimes build. Differential Revision: https://reviews.llvm.org/D35705 llvm-svn: 308705
* [DWARF] Generalized verification of .debug_abbrev to be applicable to both ↵Spyridoula Gravani2017-07-214-23/+90
| | | | | | | | .debug_abbrev and .debug_abbrev.dwo sections. Differential Revision: https://reviews.llvm.org/D35698 llvm-svn: 308703
* [AVX-512] Fix a bug that prevented some non-temporal loads from using the ↵Craig Topper2017-07-212-33/+12
| | | | | | | | movntdqa instruction. The bitconverts here had an input type of 128-bits and an output type of 256 bits. The input type should also have been 256 bits. llvm-svn: 308702
* [XRay][compiler-rt] Update test to account for change in logging format.Dean Michael Berris2017-07-211-1/+1
| | | | | | | Fixes build breakage for some bots after we've started logging both the process id and the thread id. llvm-svn: 308701
* Explicitly disable libxml2 on android.Eric Beckmann2017-07-201-1/+1
| | | | llvm-svn: 308699
* Generate a compile_commands.json DB for external projects.George Karpenkov2017-07-201-0/+1
| | | | | | | | | | | compile_commands.json file is very useful both for tooling and for reproducible builds. For files generated from recursive CMake invocation this information was not previously generated. Differential Review: https://reviews.llvm.org/D35219 llvm-svn: 308698
* [AArch64] Adjust the cost model for Exynos M1 and M2Evandro Menezes2017-07-201-10/+16
| | | | | | | Add the cost for the EXT instructions and explicitly add the cost for a few instructions that were implied by the coarse model. llvm-svn: 308697
* Only defined CombinedRoot if libxml2 is used.Eric Beckmann2017-07-201-0/+2
| | | | llvm-svn: 308694
* Whitespace.NAKAMURA Takumi2017-07-201-8/+7
| | | | llvm-svn: 308693
* [ELF] Align the value if needed when computing the expressionPetr Hosek2017-07-203-2/+31
| | | | | | | | | Also add the test cases for the addition and subtraction both for the relative and absolute case. Differential Revision: https://reviews.llvm.org/D35346 llvm-svn: 308692
* lld matching change for llvm change r308690 to add error handling toKevin Enderby2017-07-201-1/+4
| | | | | | the dyld compact export entries in libObject. llvm-svn: 308691
* Add error handling to the dyld compact export entries in libObject.Kevin Enderby2017-07-2017-31/+218
| | | | | | | | | | | | | | | | | | | | | lld needs a matching change for this will be my next commit. Expect it to fail build until that matching commit is picked up by the bots. Like the changes in r296527 for dyld bind entires and the changes in r298883 for lazy bind, weak bind and rebase entries the export entries are the last of the dyld compact info to have error handling added. This follows the model of iterators that can fail that Lang Hanes designed when fixing the problem for bad archives r275316 (or r275361). So that iterating through the exports now terminates if there is an error and returns an llvm::Error with an error message in all cases for malformed input. This change provides the plumbing for the error handling, all the needed testing of error conditions and test cases for all of the unique error messages. llvm-svn: 308690
* Only enable libxml2 on linux, because systems like android lack libiconvEric Beckmann2017-07-201-1/+1
| | | | llvm-svn: 308689
* Recommit: GlobalISel: select G_EXTRACT and G_INSERT instructions on AArch64.Tim Northover2017-07-202-1/+103
| | | | | | | | It revealed a bug in the Localizer pass which has now been fixed. This includes the fix for SUBREG_TO_REG committed separately last time. llvm-svn: 308688
* GlobalISel: stop localizer putting constants before EH_LABELsTim Northover2017-07-202-1/+50
| | | | | | | | If the localizer pass puts one of its constants before the label that tells the unwinder "jump here to handle your exception" then control-flow will skip it, leaving uninitialized registers at runtime. That's bad. llvm-svn: 308687
* Add a missing tool dependency.Rui Ueyama2017-07-201-1/+1
| | | | | | This dependency was introduced in r308681. llvm-svn: 308686
* Make a file end with n and remove trailing whitespace.Rui Ueyama2017-07-201-1/+0
| | | | llvm-svn: 308685
* [clang-format] Put '/**' and '*/' on own lines in multiline jsdocsKrasimir Georgiev2017-07-205-3/+205
| | | | | | | | | | | | Reviewers: mprobst Reviewed By: mprobst Subscribers: cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D35683 llvm-svn: 308684
* [mips] Add support for -m(no-)local-sdataSimon Dardis2017-07-203-0/+32
| | | | | | | | | | | Teach the driver to support -mlocal-sdata. The backend already matches GCC's default behaviour. Reviewers: atanasyan, slthakur Differential Revision: https://reviews.llvm.org/D35549 llvm-svn: 308683
* Make tests always depend on llvm-mt, because some tests are run even w/oEric Beckmann2017-07-201-6/+1
| | | | | | xml2. llvm-svn: 308682
* Fix symbol type with icf.Rafael Espindola2017-07-203-2/+22
| | | | | | | | | | We were not looking at Repl and so thinking there was no output section associated with the merged symbol. Because of that it was produced as absolute. This was found by an internal round of testing. llvm-svn: 308681
* Do not strip SHF_GROUP in elf::decompressAndMergeSections().Rui Ueyama2017-07-201-4/+3
| | | | | | | | SHF_GROUP flag should have been removed when the control reaches here because InputSectionBase turns the flag off. So this code should be redundant. llvm-svn: 308680
* Implement parsing and writing of a single xml manifest file.Eric Beckmann2017-07-2016-6/+251
| | | | | | | | | | Summary: Implement parsing and writing of a single xml manifest file. Subscribers: mgorny, llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D35425 llvm-svn: 308679
* [clang-tools-extra] Add support for plain C structs in clang-reorder-fieldsAlexander Shaposhnikov2017-07-202-13/+32
| | | | | | | | | | | This diff updates the tool clang-reorder-fields to enable reordering of fields of plain C structs. Test plan: make check-all Differential revision: https://reviews.llvm.org/D35329 llvm-svn: 308678
* Add end-to-end tests for overflows of byval arguments.Vitaly Buka2017-07-203-0/+97
| | | | | | | | | | | | | | | | | | Summary: Included is one test for passing structs by value and one test for passing C++ objects by value. Submitted on behalf of Matt Morehouse. Reviewers: eugenis, vitalybuka Reviewed By: eugenis Subscribers: srhines, kubamracek, llvm-commits Differential Revision: https://reviews.llvm.org/D34827 llvm-svn: 308677
* Revert "Add MemoryMappedSection struct for two-level memory map iteration"Francis Ricci2017-07-202-57/+9
| | | | | | | | This probably broke lib0 tsan unit test on 10.11 buildbots This reverts commit 35ad307c385e384f47a7fb348c14b3602d3a33c4. llvm-svn: 308676
* [NVPTX] Add lowering of i128 params.Artem Belevich2017-07-208-15/+129
| | | | | | | | | | | | | | | | | The patch adds support of i128 params lowering. The changes are quite trivial to support i128 as a "special case" of integer type. With this patch, we lower i128 params the same way as aggregates of size 16 bytes: .param .b8 _ [16]. Currently, NVPTX can't deal with the 128 bit integers: * in some cases because of failed assertions like ValVTs.size() == OutVals.size() && "Bad return value decomposition" * in other cases emitting PTX with .i128 or .u128 types (which are not valid [1]) [1] http://docs.nvidia.com/cuda/parallel-thread-execution/index.html#fundamental-types Differential Revision: https://reviews.llvm.org/D34555 Patch by: Denys Zariaiev (denys.zariaiev@gmail.com) llvm-svn: 308675
* AMDGPU: Rename _RTN atomic instructionsMatt Arsenault2017-07-202-26/+26
| | | | | | | | | | | Move the _RTN to the end of the name. It reads better if the other addressing mode components line up with the non-RTN version. It is also more convenient to define saddr variants of FLAT atomics to have the RTN last, and it is good to have a consistent naming scheme. llvm-svn: 308674
* Add an ID field to StackObjectsMatt Arsenault2017-07-2020-77/+271
| | | | | | | | | | | | | | | | | | | | | On AMDGPU SGPR spills are really spilled to another register. The spiller creates the spills to new frame index objects, which is used as a placeholder. This will eventually be replaced with a reference to a position in a VGPR to write to and the frame index deleted. It is most likely not a real stack location that can be shared with another stack object. This is a problem when StackSlotColoring decides it should combine a frame index used for a normal VGPR spill with a real stack location and a frame index used for an SGPR. Add an ID field so that StackSlotColoring has a way of knowing the different frame index types are incompatible. llvm-svn: 308673
* [X86] Adding ISel tests for strided-shuffles with non-zero offset. NFC.Zvi Rackover2017-07-203-0/+3641
| | | | llvm-svn: 308672
OpenPOWER on IntegriCloud