summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [InstCombine] use m_OneUse to reduce code; NFCISanjay Patel2017-05-151-6/+7
| | | | llvm-svn: 303090
* ELF: --gdb-index: Change findSection to return an InputSection.Peter Collingbourne2017-05-153-8/+125
| | | | | | | | | | | | | | | | | | | | We should only ever expect this function to return a regular InputSection; I would not expect a function definition to be in a MergeInputSection or EhInputSection. We were previously crashing in writeTo if this function returned a section that was not an InputSection because we do not set OutSec for such sections. This can happen in practice if a function is defined in an empty section which shares its offset-in-file with a MergeInputSection, as in the provided test case. A better fix for this bug would be to fix the DWARFUnit::collectAddressRanges() interface to provide section information (see D33183), but this at least fixes the crash. Differential Revision: https://reviews.llvm.org/D33176 llvm-svn: 303089
* ELF: --gdb-index: Do not add dead sections to the address area.Peter Collingbourne2017-05-152-1/+158
| | | | | | | | Fixes PR33032. Differential Revision: https://reviews.llvm.org/D33175 llvm-svn: 303088
* [libFuzzer] fix a warning from Wunreachable-code-loop-increment reported by ↵Kostya Serebryany2017-05-151-1/+1
| | | | | | Christian Holler. This also fixes a logical bug, which however does not affect the libFuzzer's ability too much (I wasn't able to create a differentiating test) llvm-svn: 303087
* Remove some outdated commentsJonathan Peyton2017-05-151-11/+0
| | | | llvm-svn: 303086
* Make google-build-using-namespace skip std::.*literalsAlexander Kornienko2017-05-153-0/+67
| | | | | | | | | | | | | | | | | | | | Summary: C++14 added a couple of user-defined literals in the standard library. E.g. std::chrono_literals and std::literals::chrono_literals . Using them requires a using directive so do not warn in google-build-using-namespace if namespace name starts with "std::" and ends with "literals". Reviewers: alexfh Reviewed By: alexfh Subscribers: cfe-commits Patch by Martin Ejdestig! Differential Revision: https://reviews.llvm.org/D33010 llvm-svn: 303085
* CodeGen: BlockPlacement: Increase tail duplication size for O3.Kyle Butt2017-05-153-12/+131
| | | | | | | | | | | | | | | | | | | | At O3 we are more willing to increase size if we believe it will improve performance. The current threshold for tail-duplication of 2 instructions is conservative, and can be relaxed at O3. Benchmark results: llvm test-suite: 6% improvement in aha, due to duplication of loop latch 3% improvement in hexxagon 2% slowdown in lpbench. Seems related, but couldn't completely diagnose. Internal google benchmark: Produces 4% improvement on internal google protocol buffer serialization benchmarks. Differential-Revision: https://reviews.llvm.org/D32324 llvm-svn: 303084
* [ubsan] Don't enable debug info in all testsReid Kleckner2017-05-153-3/+4
| | | | | | | | | | | Add a lit substitution (I chose %gmlt) so that only stack trace tests get debug info. We need a lit substition so that this expands to -gline-tables-only -gcodeview on Windows. I think in the future we should reconsider the need for -gcodeview from the GCC driver, but for now, this is necessary. llvm-svn: 303083
* [NVPTX] Don't flag StoreParam/LoadParam memory chain operands as ↵Simon Pilgrim2017-05-1510-3619/+3621
| | | | | | | | | | | | | | ReadMem/WriteMem (PR32146) Follow up to D33147 NVPTXTargetLowering::LowerCall was trusting the default argument values. Fixes another 17 of the NVPTX '-verify-machineinstrs with EXPENSIVE_CHECKS' errors in PR32146. Differential Revision: https://reviews.llvm.org/D33189 llvm-svn: 303082
* [clang-tidy] Partly rewrite readability-simplify-boolean-expr using RAVAlexander Kornienko2017-05-152-120/+101
| | | | | | | | | | The check was using AST matchers in a very inefficient manner. By rewriting the BinaryOperator-related parts using RAV, the check was sped up by a factor of up to 10000 on some files (mostly, generated code using binary operators in tables), but also significantly sped up for regular large files. As a side effect, the code became clearer and more readable. llvm-svn: 303081
* build_llvm_package.bat: Minor updatesHans Wennborg2017-05-151-4/+4
| | | | llvm-svn: 303080
* Add the .clang-format file which the formatting was based onJonathan Peyton2017-05-151-0/+91
| | | | llvm-svn: 303079
* Fix windows buildbots - missing include and namespaceSimon Pilgrim2017-05-153-2/+3
| | | | llvm-svn: 303078
* [OPENMP] Check DSA for variables captured by value.Alexey Bataev2017-05-152-1/+19
| | | | | | | | Currently clang checks for default data sharing attributes only for variables captured in OpenMP regions by reference. Patch adds checks for variables captured by value. llvm-svn: 303077
* Disable a test in TestReturnValue on arm64 linuxPavel Labath2017-05-151-1/+6
| | | | | | | | | | as described in pr33042, we cannot reliably retrieve the return value on arm64 in cases it is returned via x8 pointer. I tried to do this as surgically as possible and disabled it only on targets I know to be affected, as the code is still useful, even though it can only work on best-effort basis. llvm-svn: 303076
* Add an extra test for archive symbol tables.Rafael Espindola2017-05-151-0/+19
| | | | | | The table should include only defined symbols. llvm-svn: 303075
* [SLPVectorizer][X86] Add vectorization tests for vXi64/vXi32/vXi16/VXi8 ↵Simon Pilgrim2017-05-153-0/+1998
| | | | | | add/sub/mul llvm-svn: 303074
* [AArch64] Enable FeatureFuseAES on Cortex-A72.Florian Hahn2017-05-152-0/+34
| | | | | | | | This patch enables fusing dependent AESE/AESMC and AESD/AESIMC instruction pairs on Cortex-A72, as recommended in the Software Optimization Guide, section 4.10. llvm-svn: 303073
* [OpenCL] Emit function-scope variable in constant address space as static ↵Yaxun Liu2017-05-157-45/+81
| | | | | | | | variable Differential Revision: https://reviews.llvm.org/D32977 llvm-svn: 303072
* [sanitizer] Change SizeClassAllocator32 to accept just one templateKostya Kortchinsky2017-05-158-58/+127
| | | | | | | | | | | | | | | | | | | | | Summary: With rL279771, SizeClassAllocator64 was changed to accept only one template instead of 5, for the following reasons: "First, this will make the mangled names shorter. Second, this will make adding more parameters simpler". This patch mirrors that work for SizeClassAllocator32. This is in preparation for introducing the randomization of chunks in the 32-bit SizeClassAllocator in a later patch. Reviewers: kcc, alekseyshl, dvyukov Reviewed By: alekseyshl Subscribers: llvm-commits, kubamracek Differential Revision: https://reviews.llvm.org/D33141 llvm-svn: 303071
* [AMDGPU][MC] Corrected several VI opcodes to avoid printing _e64Dmitry Preobrazhensky2017-05-159-105/+116
| | | | | | | | | | See bug 32936: https://bugs.llvm.org//show_bug.cgi?id=32936 Reviewers: artem.tamazov, vpykhtin Differential Revision: https://reviews.llvm.org/D33123 llvm-svn: 303070
* [SLPVectorizer][X86] Add vectorization tests for vXi64/vXi32/vXi16/VXi8 shiftsSimon Pilgrim2017-05-153-0/+2589
| | | | llvm-svn: 303069
* [index] References to fields from template instantiations should refer toAlex Lorenz2017-05-152-0/+54
| | | | | | | | fields in base templates rdar://32197158 llvm-svn: 303068
* [ClangD] Refactor clangd into separate componentsIlya Biryukov2017-05-1520-737/+1199
| | | | | | | | | | | | | | | | Summary: Major refactoring to split LSP implementation, Clang API calls and threading(mostly synchronization) Reviewers: bkramer, krasimir Reviewed By: bkramer Subscribers: cfe-commits, mgorny, klimek Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D33047 llvm-svn: 303067
* Drop nonexisting ScopPassManager directoryTobias Grosser2017-05-151-1/+0
| | | | llvm-svn: 303066
* Adjust formattingTobias Grosser2017-05-151-1/+1
| | | | llvm-svn: 303065
* [Polly][NewPM] Add missing UnittestsPhilip Pfaffe2017-05-152-0/+69
| | | | llvm-svn: 303064
* Test commit(changed comment)Ilya Biryukov2017-05-151-1/+1
| | | | llvm-svn: 303063
* [Polly][NewPM][WIP] Add a ScopPassManagerPhilip Pfaffe2017-05-155-1/+255
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds both a ScopAnalysisManager and a ScopPassManager. The ScopAnalysisManager is itself a Function-Analysis, and manages analyses on Scops. The ScopPassManager takes care of building Scop pass pipelines. This patch is marked WIP because I've left two FIXMEs which I need to think about some more. Both of these deal with invalidation: Deferred invalidation is currently not implemented. Deferred invalidation deals with analyses which cache references to other analysis results. If these results are invalidated, invalidation needs to be propagated into the caching analyses. The ScopPassManager as implemented assumes that ScopPasses do not affect other Scops in any way. There has been some discussion about this on other patch threads, however it makes sense to reiterate this for this specific patch. I'm uploading this patch even though it's incomplete to encourage discussion and give you an impression of how this is going to work. Differential Revision: https://reviews.llvm.org/D33192 llvm-svn: 303062
* Fix darwin build for r303058Pavel Labath2017-05-151-2/+5
| | | | llvm-svn: 303061
* [Polly][CMake] Exclude isl_config from the polly-check-format target.Philip Pfaffe2017-05-151-1/+1
| | | | | | | | | | | | | | | | | | | Summary: The custom `polly-check-format` target runs clang-format over all source files in the directory tree excluding lib/External. `isl_config.h` is a header file that is generated by CMake in the build directory, and it's not correctly formatted (which I also wouldn't consider necessary, as it is a generated file). If the build directory is actually inside the Polly source directory (which it might be if you're building Polly out-of-tree), that check always fails. Hence this patch excludes this file from the check-format target. Reviewers: Meinersbur, grosser Reviewed By: grosser Subscribers: mgorny, llvm-commits, pollydev Tags: #polly Differential Revision: https://reviews.llvm.org/D33192 llvm-svn: 303060
* Test commit.Dinar Temirbulatov2017-05-151-0/+1
| | | | llvm-svn: 303059
* Remove an expensive lock from TimerPavel Labath2017-05-1528-128/+184
| | | | | | | | | | | | | The Timer destructor would grab a global mutex in order to update execution time. Add a class to define a category once, statically; the class adds itself to an atomic singly linked list, and thus subsequent updates only need to use an atomic rather than grab a lock and perform a hashtable lookup. Differential Revision: https://reviews.llvm.org/D32823 Patch by Scott Smith <scott.smith@purestorage.com>. llvm-svn: 303058
* [Polly][Fortran Support] Fix two testcases for the loadable-library use-casePhilip Pfaffe2017-05-152-2/+2
| | | | llvm-svn: 303057
* [Polly][NewPM] Port ScopInfo to the new PassManagerPhilip Pfaffe2017-05-155-37/+90
| | | | llvm-svn: 303056
* [AMDGPU][MC] Removed V_MQSAD_U16_U8Dmitry Preobrazhensky2017-05-152-3/+18
| | | | | | | | | | | | This instruction does not really exist See Bug 33018: https://bugs.llvm.org//show_bug.cgi?id=33018 Reviewers: vpykhtin, artem.tamazov Differential Revision: https://reviews.llvm.org/D33126 llvm-svn: 303055
* [ARM] Mark LEApcrel instructions as isAsCheapAsAMoveJohn Brawn2017-05-155-4/+33
| | | | | | | | | | | Doing this means that if an LEApcrel is used in two places we will rematerialize instead of generating two MOVs. This is particularly useful for printfs using the same format string, where we want to generate an address into a register that's going to get corrupted by the call. Differential Revision: https://reviews.llvm.org/D32858 llvm-svn: 303054
* [ARM] Mark LEApcrel as not having side effectsJohn Brawn2017-05-152-2/+33
| | | | | | | | | | | | | | | Doing this lets us hoist it out of loops, and I've also marked it as rematerializable the same as the thumb1 and thumb2 counterparts. It looks like it being marked as such was just a mistake, as the commit that made that change only mentions LEApcrelJT and in thumb1 and thumb2 only the LEApcrelJT instructions were marked as having side-effects, so it looks like the intent was to only mark LEApcrelJT as having side-effects but LEApcrel was accidentally marked as such also. Differential Revision: https://reviews.llvm.org/D32857 llvm-svn: 303053
* [NFC] [Fortran Support] Fix findFADGlobalNonAlloc pattern match commentSiddharth Bhat2017-05-151-7/+9
| | | | llvm-svn: 303052
* [DWARF] - Speedup handling of relocations in DWARFContextInMemory.George Rimar2017-05-151-4/+17
| | | | | | | | | | | | | | | | | | | I am working on a speedup of building .gdb_index in LLD and noticed that relocations that are proccessed in DWARFContextInMemory often uses the same symbol in a row. This patch introduces caching to reduce the relocations proccessing time. For benchmark, I took debug LLC binary objects configured with -ggnu-pubnames and linked it using LLD. Link time without --gdb-index is about 4,45s. Link time with --gdb-index: a) Without patch: 19,16s b) With patch: 15,52s That means time spent on --gdb-index in this configuration is 19,16s - 4,45s = 14,71s (without patch) vs 15,52s - 4,45s = 11,07s (with patch). Differential revision: https://reviews.llvm.org/D31136 llvm-svn: 303051
* [X86] Relocate code of replacement of subtarget unsupported masked memory ↵Ayman Musa2017-05-1513-547/+714
| | | | | | | | | | | | | | intrinsics to run also on -O0 option. Currently, when masked load, store, gather or scatter intrinsics are used, we check in CodeGenPrepare pass if the subtarget support these intrinsics, if not we replace them with scalar code - this is a functional transformation not an optimization (not optional). CodeGenPrepare pass does not run when the optimization level is set to CodeGenOpt::None (-O0). Functional transformation should run with all optimization levels, so here I created a new pass which runs on all optimization levels and does no more than this transformation. Differential Revision: https://reviews.llvm.org/D32487 llvm-svn: 303050
* JavaScript allows parameter lists to include trailing commas:Martin Probst2017-05-154-12/+52
| | | | | | | | | | | | | | | | | | | myFunction(param1, param2,); For symmetry with other parenthesized lists ([...], {...}), clang-format should wrap parenthesized lists one-per-line if they contain a trailing comma: myFunction( param1, param2, ); This is particularly useful in function declarations or calls with many arguments, e.g. commonly in constructors. Differential Revision: https://reviews.llvm.org/D33023 llvm-svn: 303049
* [index] Visit and store information about namespace alias declarationsAlex Lorenz2017-05-152-0/+15
| | | | | | rdar://32195226 llvm-svn: 303048
* [NVPTX] Don't rely on default arguments to ↵Simon Pilgrim2017-05-151-3/+8
| | | | | | | | SelectionDAG::getMemIntrinsicNode. NFC. NFC followup to D33147, this explicitly sets all the arguments (instead of relying on the defaults) to SelectionDAG::getMemIntrinsicNode to help identify -verify-machineinstrs issues. llvm-svn: 303047
* [index] Store correct location for namespace nested name qualifiersAlex Lorenz2017-05-152-1/+19
| | | | | | rdar://32195200 llvm-svn: 303046
* [index] Avoid a crash that happens when looking up a dependent nameAlex Lorenz2017-05-153-0/+15
| | | | | | | | in a record that has no definition rdar://32194921 llvm-svn: 303045
* [TableGen] Add EncoderMethod to RegisterOperandSam Kolton2017-05-154-1/+42
| | | | | | | | Reviewers: stoklund, grosbach, vpykhtin Differential Revision: https://reviews.llvm.org/D32493 llvm-svn: 303044
* [RegisterBankInfo] Remove overly-agressive assertsTom Stellard2017-05-151-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | Summary: We were asserting in RegisterBankInfo if RBI.copyCost() returns UINT_MAX. This is OK for RegBankSelect::Mode::Fast since we only try one instruction mapping and can't recover from this, but for RegBankSelect::Mode::Greedy we will be considering multiple instruction mappings, so we can recover if we see a UNIT_MAX copy cost. The copy cost for one pair of register banks in the AMDGPU backend will be UNIT_MAX, so this patch will prevent AMDGPU tests from breaking. Reviewers: ab, qcolombet, t.p.northover, dsanders Reviewed By: qcolombet Subscribers: tpr, llvm-commits Differential Revision: https://reviews.llvm.org/D33144 llvm-svn: 303043
* CMake: Fix docs-llvm-man target when clang+llvm is in the same source treeTom Stellard2017-05-151-2/+2
| | | | | | | | | | | | | | | | Summary: This was broken by r302499. Configuring with -DLLVM_BUILD_DOCS=ON would cause the docs-llvm-man target not to be created. Reviewers: anemet, beanz Reviewed By: anemet Subscribers: llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D33146 llvm-svn: 303042
* MCObjectStreamer : fail with a diagnostic when emitting an out of range value.Arnaud A. de Grandmaison2017-05-152-0/+14
| | | | | | | | | We were previously silently emitting bogus data in release mode, making it very hard to diagnose the error, or crashing with an assert in debug mode. A proper diagnostic is now always emitted when the value to be emitted is out of range. llvm-svn: 303041
OpenPOWER on IntegriCloud