summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Coding Standards: Document library layering requirements & header isolation.David Blaikie2018-02-011-19/+46
| | | | | | | | | | | | | | | | (I suppose these two pieces could be separated - but seemed related enough) As discussed on llvm-dev, this documents the general expectation of how library layering should be handled. There are a few existing cases where these constraints are not met, but as with most style guide things - this is forward looking and provides guidance when cleaning up existing code, it doesn't immediately require that all previous code be cleaned up to match. (see: naming conventions, etc) Differential Revision: https://reviews.llvm.org/D42771 llvm-svn: 324004
* Update polly for r323999.Benjamin Kramer2018-02-013-10/+10
| | | | llvm-svn: 324003
* [DAGCombiner] When folding (insert_subvector undef, (bitcast ↵Craig Topper2018-02-012-1/+25
| | | | | | | | | | | | (extract_subvector N1, Idx)), Idx) -> (bitcast N1) make sure that N1 has the same total size as the original output We were only checking the element count, but not the total width. This could cause illegal bitcasts to be created if for example the output was 512-bits, but N1 is 256 bits, and the extraction size was 128-bits. Fixes PR36199 Differential Revision: https://reviews.llvm.org/D42809 llvm-svn: 324002
* [GlobalISel] Fix assert failure when legalizing non-power-2 loads.Amara Emerson2018-02-012-3/+16
| | | | | | | Until we support extending loads properly we're going to fall back for these. We already handle stores in the same way, so this is just being consistent. llvm-svn: 324001
* [CodeView] Class record member counts should include base classes and ...Brock Wyma2018-02-013-5/+5
| | | | | | | | | Increment the field list member count for base classes and virtual base classes. Differential Revision: https://reviews.llvm.org/D41874 llvm-svn: 324000
* [ADT] Replace sys::MemoryFence with standard atomics.Benjamin Kramer2018-02-012-13/+6
| | | | | | | | This is a bit faster in theory, in practice it's cold code that's only active in !NDEBUG, so it probably doesn't make a difference. This is one of the last users of our homegrown Atomic.h. llvm-svn: 323999
* PR36157: When injecting an implicit function declaration in C89, find the rightRichard Smith2018-02-013-0/+23
| | | | | | | | DeclContext rather than injecting it wherever we happen to be. This avoids creating functions whose DeclContext is a struct or similar. llvm-svn: 323998
* [scudo] Minor Secondary changesKostya Kortchinsky2018-02-011-8/+8
| | | | | | | | | | | | | | | | | | | Summary: Few changes to the secondary: - mark `const` variables as such; - change some `CHECK` to `DCHECK`: I don't feel we need to be as conservative as we were with out checks, as they are the results of our own computation. - mark a condition as `UNLIKELY`. Reviewers: alekseyshl Reviewed By: alekseyshl Subscribers: delcypher, #sanitizers, llvm-commits Differential Revision: https://reviews.llvm.org/D42696 llvm-svn: 323997
* [AArch64] remove bogus comment; NFCSanjay Patel2018-02-011-3/+0
| | | | | | | I added this comment with D42323, but as discussed in D42806, the architecture does the right thing for denorms. We don't even need the select on 0.0 here? llvm-svn: 323996
* Make detect_invalid_pointer_pairs option to be tristate.Alex Shlyapnikov2018-02-018-10/+56
| | | | | | | | | | | | | | | | Summary: With the change, one can choose not to report comparison (or subtraction) of a pointer with nullptr pointer. Reviewers: kcc, jakubjelinek, alekseyshl Reviewed By: alekseyshl Subscribers: kubamracek Differential Revision: https://reviews.llvm.org/D41479 llvm-svn: 323995
* Remove CallGraphTraits and use equivalent methods in GraphTraitsEaswaran Raman2018-02-013-53/+12
| | | | | | | | | | | | | | | | Summary: D42698 adds child_edge_{begin|end} and children_edges to GraphTraits which are used here. The reason for this change is to make it easy to use count propagation on ModulesummaryIndex. As it stands, CallGraphTraits is in Analysis while ModuleSummaryIndex is in IR. Reviewers: davidxl, dberlin Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D42703 llvm-svn: 323994
* Sort each InputSectionDescription individually.Rafael Espindola2018-02-012-3/+9
| | | | | | | | | This fixes pr36190. Thanks to James Henderson for the testcase and for pointing out how to fix this. llvm-svn: 323993
* [clangd] Log dropped diagnostics.Ilya Biryukov2018-02-011-3/+19
| | | | | | | | | | | | | | | | Summary: clangd drops diagnostics coming outside the main file, but it is still useful to see that something went wrong in the logs. Reviewers: hokein, ioeric, sammccall Reviewed By: sammccall Subscribers: klimek, jkorous-apple, cfe-commits Differential Revision: https://reviews.llvm.org/D42803 llvm-svn: 323992
* [MachineCopyPropagation] Extend pass to do COPY source forwardingGeoff Berry2018-02-01119-495/+795
| | | | | | | | | | | | | | | | | | | | | | Summary: This change extends MachineCopyPropagation to do COPY source forwarding and adds an additional run of the pass to the default pass pipeline just after register allocation. This version of this patch uses the newly added MachineOperand::isRenamable bit to avoid forwarding registers is such a way as to violate constraints that aren't captured in the Machine IR (e.g. ABI or ISA constraints). This change is a continuation of the work started in D30751. Reviewers: qcolombet, javed.absar, MatzeB, jonpa, tstellar Subscribers: tpr, mgorny, mcrosier, nhaehnle, nemanjai, jyknight, hfinkel, arsenm, inouehrs, eraman, sdardis, guyblank, fedor.sergeev, aheejin, dschuff, jfb, myatsina, llvm-commits Differential Revision: https://reviews.llvm.org/D41835 llvm-svn: 323991
* [GraphTraits] Add support for iterating over children edges.Easwaran Raman2018-02-011-0/+20
| | | | | | | | | | | | | | | | | | | | | Summary: This change is mostly adding comments to GraphTraits describing interfaces to iterate over children edges of a node. These will have to be implemented by specializations of GraphTraits. The non-comment change is the addition of children_edges template function that returns an iterator range. The motivation for this is to use it in synthetic count propagation algorithm and remove the CallGraphTraits class that provide similar interfaces. Reviewers: dberlin, davidxl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D42698 llvm-svn: 323990
* Put the exception classes for experimental::optional and experimental::any ↵Marshall Clow2018-02-012-0/+39
| | | | | | back in the dylib for binary compatibility llvm-svn: 323989
* AMDGPU/SI: Adjust the encoding family for D16 buffer instructions when the ↵Changpeng Fang2018-02-016-8/+14
| | | | | | | | | | | | target has UnpackedD16VMem feature. Reviewers: Matt and Brian Differential Revision: https://reviews.llvm.org/D42548 llvm-svn: 323988
* [X86][SSE] LowerBUILD_VECTORAsVariablePermute - add support for scaling ↵Simon Pilgrim2018-02-013-337/+194
| | | | | | | | | | index vectors This allows us to use PSHUFB for v8i16/v4i32 and VPERMD/PERMPS for v4i64/v4f64 variable shuffles. Differential Revision: https://reviews.llvm.org/D42487 llvm-svn: 323987
* Mark fallthrough with LLVM_FALLTHROUGHAdrian Prantl2018-02-011-1/+1
| | | | llvm-svn: 323986
* [AArch64] add tests with sqrt estimate and ieee denorms; NFCSanjay Patel2018-02-011-0/+50
| | | | | | As noted in D42323, we're not checking for denorms as we should. llvm-svn: 323985
* [AArch64] auto-generate complete checks; NFCSanjay Patel2018-02-011-210/+319
| | | | llvm-svn: 323984
* [X86] Remove custom lowering vXi1 extending loads and truncating stores.Craig Topper2018-02-011-174/+0
| | | | | | | | | | | | | | Summary: Now that v2i1/v4i1 are legal without VLX. And v32i1 is legalized by splitting rather than widening. And isVectorLoadExtDesirable returns false for vXi1. It appears this handling is dead because the operations simply don't exist. Reviewers: RKSimon, zvi, guyblank, delena, spatel Reviewed By: delena Subscribers: llvm-commits, rengolin Differential Revision: https://reviews.llvm.org/D42781 llvm-svn: 323983
* [X86] Turn X86ISD::AND nodes that have no flag users back into ISD::AND just ↵Craig Topper2018-02-015-7/+18
| | | | | | | | | | | | | | | | | | | | | before isel to enable test instruction matching Summary: EmitTest sometimes creates X86ISD::AND specifically to hide the AND from DAG combine. But this prevents isel patterns that look for (cmp (and X, Y), 0) from being able to see it. So we end up with an AND and a TEST. The TEST gets removed by compare instruction optimization during the peephole pass. This patch attempts to fix this by converting X86ISD::AND with no flag users back into ISD::AND during the DAG preprocessing just before isel. In order to do this correctly I had to make the X86ISD::AND node created by EmitTest in this case really have a flag output. Which arguably it should have had anyway so that the number of operands would be consistent for the opcode in all cases. Then I had to modify the ReplaceAllUsesWith to understand that we might be looking at an instruction with 2 outputs. Though in this case there are no uses to replace since we just created the node, but that's what the code did before so I just made it keep working. Reviewers: spatel, RKSimon, niravd, deadalnix Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D42764 llvm-svn: 323982
* [DAGCombiner] filter out denorm inputs when calculating sqrt estimate (PR34994)Sanjay Patel2018-02-013-27/+47
| | | | | | | | | | | | | | | | | | | | | | | As shown in the example in PR34994: https://bugs.llvm.org/show_bug.cgi?id=34994 ...we can return a very wrong answer (inf instead of 0.0) for square root when using a reciprocal square root estimate instruction. Here, I've conditionalized the filtering out of denorms based on the function having "denormal-fp-math"="ieee" in its attributes. The other options for this attribute are 'preserve-sign' and 'positive-zero'. So we don't generate this extra code by default with just '-ffast-math' (because then there's no denormal attribute string at all), but it works if you specify '-ffast-math -fdenormal-fp-math=ieee' from clang. As noted in the review, there may be other problems in clang that affect the results depending on platform (Linux x86 at least), but this should allow creating the desired codegen. Differential Revision: https://reviews.llvm.org/D42323 llvm-svn: 323981
* [clang-tidy] misc-redundant-expression: fix a crash under ubsanAlexander Kornienko2018-02-012-5/+16
| | | | llvm-svn: 323980
* Remove std::experimental::sample; use std::sample instead. See ↵Marshall Clow2018-02-014-259/+2
| | | | | | https://libcxx.llvm.org/TS_deprecation.html llvm-svn: 323979
* [OpenMP-RT] Fix debug string for NVPTX runtime libraryCarlo Bertolli2018-02-011-1/+1
| | | | | | | | https://reviews.llvm.org/D42757 The method ThreadsInTeam is used to determine the number of threads to be used in a parallel region under SPMD mode (see line 127 of supporti.h in libomptarget/deviceRTLs/nvptx/src/). This patch fixes the corresponding debug print upon initialization of the kernel in SPMD mode. llvm-svn: 323978
* [SelectionDAG] Fix UpdateChains handling of TokenFactorsNirav Dave2018-02-012-1/+115
| | | | | | | | | | | | | | | | | | | Summary: In Instruction Selection UpdateChains replaces all matched Nodes' chain references including interior token factors and deletes them. This may allow nodes which depend on these interior nodes but are not part of the set of matched nodes to be left with a dangling dependence. Avoid this by doing the replacement for matched non-TokenFactor nodes. Fixes PR36164. Reviewers: jonpa, RKSimon, bogner Subscribers: llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D42754 llvm-svn: 323977
* [ELF] Add --print-icf-sections flagJames Henderson2018-02-0121-35/+115
| | | | | | | | | | | | | | | | | | | | | | | | | Currently ICF information is output through stderr if the "--verbose" flag is used. This differs to Gold for example, which uses an explicit flag to output this to stdout. This commit adds the "--print-icf-sections" and "--no-print-icf-sections" flags and changes the output message format for clarity and consistency with "--print-gc-sections". These messages are still output to stderr if using the verbose flag. However to avoid intermingled message output to console, this will not occur when the "--print-icf-sections" flag is used. Existing tests have been modified to expect the new message format from stderr. Patch by Owen Reynolds. Differential Revision: https://reviews.llvm.org/D42375 Reviewers: ruiu, rafael Reviewed by: llvm-svn: 323976
* Remove <experimental/numeric>; use <numeric> instead. See ↵Marshall Clow2018-02-0120-720/+1
| | | | | | https://libcxx.llvm.org/TS_deprecation.html llvm-svn: 323975
* Extend windows->android XFAIL on TestLoadUnloadPavel Labath2018-02-011-2/+0
| | | | | | | This fails regardless of the android architecture or compiler used. The important bit is the mismatch in path separators. llvm-svn: 323974
* [X86][SSE] Add PR26491 horizontal add testSimon Pilgrim2018-02-011-0/+39
| | | | llvm-svn: 323973
* Remove <experimental/any>; use <any> instead. See ↵Marshall Clow2018-02-0128-2575/+1
| | | | | | https://libcxx.llvm.org/TS_deprecation.html llvm-svn: 323972
* Remove <experimental/optional>; use <optional> instead. See ↵Marshall Clow2018-02-0172-5262/+1
| | | | | | https://libcxx.llvm.org/TS_deprecation.html llvm-svn: 323971
* [X86][AVX512DQ] Add DQ var permute 256 tests as requested on D42487Simon Pilgrim2018-02-011-0/+462
| | | | llvm-svn: 323970
* [CMake] Remove -stdlib= which is unused when passing -nostdinc++Jonas Hahnfeld2018-02-012-0/+5
| | | | | | | | | This avoids the warnings when building with LLVM_ENABLE_LIBCXX which automatically adds -stdlib=libc++ to CMAKE_CXX_FLAGS. Differential Revision: https://reviews.llvm.org/D42238 llvm-svn: 323969
* [ARM] FullFP16 LowerReturn FixSjoerd Meijer2018-02-012-10/+23
| | | | | | | | | | Commit r323512 introduced an optimisation in LowerReturn for half-precision return values. A missing check caused a crash when the return value is "undef" (i.e. a node that has no operands). Differential Revision: https://reviews.llvm.org/D42743 llvm-svn: 323968
* [clangd] remove the unused code NFC.Haojian Wu2018-02-011-3/+0
| | | | llvm-svn: 323960
* Revert commit rL323951David Green2018-02-015-142/+117
| | | | | | | Looks like it's causing timeouts out on at least ppc64le buildbots. llvm-svn: 323959
* [mips] Include EVA instructions in Std2MicroMips mapping tablesAleksandar Beserminji2018-02-015-23/+251
| | | | | | | | | This patch includes EVA instructions in the Std2MicroMips mapping tables, which is required for direct object emission. Differential Revision: https://reviews.llvm.org/D41771 llvm-svn: 323958
* [clangd] Fix URI scheme conflict and an unused variable warning in tests. NFCEric Liu2018-02-012-3/+4
| | | | llvm-svn: 323957
* Reverting patch rL323952 due to build errors that ISander de Smalen2018-02-0123-207/+75
| | | | | | haven't encountered in local builds. llvm-svn: 323956
* [AArch64][NFC] Make all ProcResource definitions include their SchedModel.Clement Courbet2018-02-013-42/+35
| | | | | | | This makes targets ExynosM1,ExynosM3,ThunderX2T99 consistent with all other targets. llvm-svn: 323955
* [ARM] Add support for unpredictable MVN instructions.Yvan Roux2018-02-013-2/+53
| | | | | | | | | | | | | | | This fixes bugzilla 33011 https://bugs.llvm.org/show_bug.cgi?id=33011 Defines bits {19-16} as zero or unpredictable as specified by the ARM ARM in sections A8.8.116 and A8.8.117. It fixes also the usage of PC register as destination register for MVN register-shifted register version as specified in A8.8.117. Differential Revision: https://reviews.llvm.org/D41905 llvm-svn: 323954
* mock_gdb_server: rectify ack handling codePavel Labath2018-02-011-11/+3
| | | | | | | | | | | | | | | | | The mock server was sending acks back in response to spurious acks from the client, but the client was not prepared to handle these. Most of the time this would work because the only time the client was sending unsolicited acks is after the initial connection, and there reply-ack would get ignored in the "flush all packets from the server" loop which came after the ack. However, this loop had only a 10ms delay, and sometimes this was not enough to catch the reply (which meant the connection got out of sync, and test failed). Since this behavior not consistent with how lldb-server handles this situation (it just ignores the ack), I fix the mock server to do the same. llvm-svn: 323953
* [DebugInfo] Enable debug information for C99 VLA typesSander de Smalen2018-02-0123-75/+207
| | | | | | | | | | | | | | | | | | | | | Summary: This patch enables debugging of C99 VLA types by generating more precise LLVM Debug metadata, using the extended DISubrange 'count' field that takes a DIVariable. This should implement: Bug 30553: Debug info generated for arrays is not what GDB expects (not as good as GCC's) https://bugs.llvm.org/show_bug.cgi?id=30553 Reviewers: echristo, aprantl, dexonsmith, clayborg, pcc, kristof.beyls, dblaikie Reviewed By: aprantl Subscribers: jholewinski, schweitz, davide, fhahn, JDevlieghere, cfe-commits Differential Revision: https://reviews.llvm.org/D41698 llvm-svn: 323952
* [InstCombine] Allow common type conversions to i8/i16/i32David Green2018-02-015-117/+142
| | | | | | | | | | | This, in instcombine, allows conversions to i8/i16/i32 (very common cases) even if the resulting type is not legal according to the data layout. This can often open up extra combine opportunities. Differential Revision: https://reviews.llvm.org/D42424 llvm-svn: 323951
* [NFC] 'DWARFv5' -> 'DWARF v5'Jonas Devlieghere2018-02-012-2/+2
| | | | llvm-svn: 323950
* [clangd] Use pthread instead of thread_local to support more runtimes.Sam McCall2018-02-011-7/+40
| | | | | | | | | | | | | | | | | | | | | Summary: thread_local has nice syntax and semantics, but requires __cxa_thread_atexit, and some not-ancient runtime libraries don't provide it. The clang-x86_64-linux-selfhost-modules buildbot is one example :-) It works on windows, and the other platforms clang-tools-extra supports should all have the relevant pthread API. So we just use that if it's available, falling back to thread_local (so if a platform has neither, we'll fail to link). The fallback should really be the other way, that would require cmake changes. Reviewers: ilya-biryukov, bkramer Subscribers: klimek, jkorous-apple, ioeric, cfe-commits Differential Revision: https://reviews.llvm.org/D42742 llvm-svn: 323949
* Test commit: Fix a comment.Yvan Roux2018-02-011-1/+1
| | | | llvm-svn: 323947
OpenPOWER on IntegriCloud