summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* [LSR] Don't force bases of foldable formulae to the final type.Mikael Holmen2018-02-013-43/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Before emitting code for scaled registers, we prevent SCEVExpander from hoisting any scaled addressing mode by emitting all the bases first. However, these bases are being forced to the final type, resulting in some odd code. For example, if the type of the base is an integer and the final type is a pointer, we will emit an inttoptr for the base, a ptrtoint for the scale, and then a 'reverse' GEP where the GEP pointer is actually the base integer and the index is the pointer. It's more intuitive to use the pointer as a pointer and the integer as index. Patch by: Bevin Hansson Reviewers: atrick, qcolombet, sanjoy Reviewed By: qcolombet Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D42103 llvm-svn: 323946
* Add static_asserts to basic_ios and basic_stream_buf to ensure that that the ↵Marshall Clow2018-02-017-0/+139
| | | | | | traits match the character type. This is a requirement on the user - now we get consistent failures at compile time instead of incomprehensible error messages or runtime failures. This is also LWG#2994 - not yet adopted. llvm-svn: 323945
* Simplify by sorting relocations before writing them.Rafael Espindola2018-02-011-17/+7
| | | | llvm-svn: 323944
* [CodeGen] Fix an assertion failure in CGRecordLowering.Akira Hatanaka2018-02-012-2/+50
| | | | | | | | | | | | | | This patch fixes a bug in CGRecordLowering::accumulateBitFields where it unconditionally starts a new run and emits a storage field when it sees a zero-sized bitfield, which causes an assertion in insertPadding to fail when -fno-bitfield-type-align is used. It shouldn't emit new storage if UseZeroLengthBitfieldAlignment and UseBitFieldTypeAlignment are both false. rdar://problem/36762205 llvm-svn: 323943
* half_powr: Implement using powrJan Vesely2018-02-014-0/+15
| | | | | | | | v2: Use full precision implementation Reviewer: Jeroen Ketema <j.ketema@xs4all.nl> Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 323942
* [analyzer] [tests] Show the number of removed/added bug reportsGeorge Karpenkov2018-02-011-0/+9
| | | | | | Differential Revision: https://reviews.llvm.org/D42718 llvm-svn: 323941
* [XRay][compiler-rt+llvm] Update XRay register stashing semanticsDean Michael Berris2018-02-015-43/+71
| | | | | | | | | | | | | | | | | | | | | | Summary: This change expands the amount of registers stashed by the entry and `__xray_CustomEvent` trampolines. We've found that since the `__xray_CustomEvent` trampoline calls can show up in situations where the scratch registers are being used, and since we don't typically want to affect the code-gen around the disabled `__xray_customevent(...)` intrinsic calls, that we need to save and restore the state of even the scratch registers in the handling of these custom events. Reviewers: pcc, pelikan, dblaikie, eizan, kpw, echristo, chandlerc Reviewed By: echristo Subscribers: chandlerc, echristo, hiraditya, davide, dblaikie, llvm-commits Differential Revision: https://reviews.llvm.org/D40894 llvm-svn: 323940
* PR36181: Teach CodeGen to properly ignore requests to emit dependent entities.Richard Smith2018-02-014-17/+29
| | | | | | | Previously, friend function definitions within class templates slipped through the gaps and caused the MS mangler to assert. llvm-svn: 323935
* [MC] Fix assembler infinite loop on EH table using LEB padding.Rafael Espindola2018-02-012-2/+34
| | | | | | | | | | | | | Fix the infinite loop reported in PR35809. It can occur with GCC-style EH table assembly, where the compiler relies on the assembler to calculate the offsets in the EH table. Also see https://sourceware.org/bugzilla/show_bug.cgi?id=4029 for the equivalent issue in the GNU assembler. Patch by Ryan Prichard! llvm-svn: 323934
* [GlobalOpt] Improve common case efficiency of static global initializer ↵Amara Emerson2018-01-311-2/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | evaluation For very, very large global initializers which can be statically evaluated, the code would create vectors of temporary Constants, modifying them in place, before committing the resulting Constant aggregate to the global's initializer value. This had effectively O(n^2) complexity in the size of the global initializer and would cause memory and non-termination issues compiling some workloads. This change performs the static initializer evaluation and creation in batches, once for each global in the evaluated IR memory. The existing code is maintained as a last resort when the initializers are more complex than simple values in a large aggregate. This should theoretically by NFC, no test as the example case is massive. The existing test cases pass with this, as well as the llvm test suite. To give an example, consider the following C++ code adapted from the clang regression tests: struct S { int n = 10; int m = 2 * n; S(int a) : n(a) {} }; template<typename T> struct U { T *r = &q; T q = 42; U *p = this; }; U<S> e; The global static constructor for 'e' will need to initialize 'r' and 'p' of the outer struct, while also initializing the inner 'q' structs 'n' and 'm' members. This batch algorithm will simply use general CommitValueTo() method to handle the complex nested S struct initialization of 'q', before processing the outermost members in a single batch. Using CommitValueTo() to handle member in the outer struct is inefficient when the struct/array is very large as we end up creating and destroy constant arrays for each initialization. For the above case, we expect the following IR to be generated: %struct.U = type { %struct.S*, %struct.S, %struct.U* } %struct.S = type { i32, i32 } @e = global %struct.U { %struct.S* gep inbounds (%struct.U, %struct.U* @e, i64 0, i32 1), %struct.S { i32 42, i32 84 }, %struct.U* @e } The %struct.S { i32 42, i32 84 } inner initializer is treated as a complex constant expression, while the other two elements of @e are "simple". Differential Revision: https://reviews.llvm.org/D42612 llvm-svn: 323933
* DAG: Fix not truncating when promoting bswap/bitreverseMatt Arsenault2018-01-313-57/+84
| | | | | | | These need to convert back to the original type, like any other promotion. llvm-svn: 323932
* [WebAssembly] Write minimal types sectionSam Clegg2018-01-317-46/+89
| | | | | | | | | | | | | | | | | | Don't include type signatures that are not referenced by some relocation. We don't include this in the -gc-sections settings since we are always building the type section from scratch, just like we do the table elements. In the future we might want to unify the relocation processing which is currently done once for gc-sections and then again for building the sympathetic type and table sections. Differential Revision: https://reviews.llvm.org/D42747 llvm-svn: 323931
* [COFF] make /incremental control overwriting unchanged import librariesBob Haarman2018-01-315-9/+97
| | | | | | | | | | | | | | | | | | | | | | Summary: r323164 made lld-link not overwrite import libraries when their contents haven't changed. MSVC's link.exe does this only when performing incremental linking. This change makes lld-link's import library overwriting similarly dependent on whether or not incremental linking is being performed. This is controlled by the /incremental or /incremental:no options. In addition, /opt:icf, /opt:ref, and /order turn off /incremental and issue a warning if /incremental was specified on the command line. Reviewers: rnk, ruiu, zturner Reviewed By: ruiu Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D42716 llvm-svn: 323930
* Revert "[ARM] Lower lower saturate to 0 and lower saturate to -1 using ↵Evgeniy Stepanov2018-01-315-158/+5
| | | | | | | | | | bit-operations" Miscompiles code. Testcase pending. This reverts commit r323869. llvm-svn: 323929
* Utils: Fix DomTree update for entry blockMatt Arsenault2018-01-314-6/+68
| | | | | | | If SplitBlockPredecessors was used on a function entry block, it wouldn't update the dominator tree. llvm-svn: 323928
* AMDGPU: Fix missing SCC def from s_xor_b64_termMatt Arsenault2018-01-311-0/+1
| | | | llvm-svn: 323927
* [AggressiveInstCombine] Fixed TruncCombine class to handle TruncInst leaf ↵Amjad Aboud2018-01-313-4/+99
| | | | | | | | | | | node correctly. This covers the case where TruncInst leaf node is a constant expression. See PR36121 for more details. Differential Revision: https://reviews.llvm.org/D42622 llvm-svn: 323926
* [X86] Make the type checks in detectAVX512USatPattern more robustCraig Topper2018-01-311-7/+9
| | | | | | | | | | This code currently uses isSimple and getSizeInBits in an attempt to prune types. But isSimple will return true for any type that any target supports natively. I don't think that's a good way to prune types. I also don't think the dest element type checks are very robust since we didn't do an isSimple check on the dest type. This patch adds a check for the input type being legal to the one caller that didn't already check that. Then we explicitly check the element types for the destination are i8, i16, or i32 Differential Revision: https://reviews.llvm.org/D42706 llvm-svn: 323924
* [llvm-cov] Fix incorrect usage of .precision specifier in format() call.Max Moroz2018-01-311-1/+1
| | | | | | | | | | | | | | Summary: Existing version doesn't work on Windows as it always prints 0.00. Reviewers: Dor1s Reviewed By: Dor1s Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D42767 llvm-svn: 323923
* Followup on Proposal to move MIR physical register namespace to '$' sigil.Puyan Lotfi2018-01-31970-29350/+29359
| | | | | | | | | | | | Discussed here: http://lists.llvm.org/pipermail/llvm-dev/2018-January/120320.html In preparation for adding support for named vregs we are changing the sigil for physical registers in MIR to '$' from '%'. This will prevent name clashes of named physical register with named vregs. llvm-svn: 323922
* [PR32482] Fix bitfield layout for -mms-bitfield and pragma packAlex Lorenz2018-01-313-3/+62
| | | | | | | | | | | The patch ensures that a new storage unit is created when the new bitfield's size is wider than the available bits. rdar://36343145 Differential Revision: https://reviews.llvm.org/D42660 llvm-svn: 323921
* math.h: Use logical operations instead of bit operations for readabilityJan Vesely2018-01-311-1/+1
| | | | | | | | Trivial. Reported-by: Roman Lebedev <lebedev.ri@gmail.com> Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 323920
* [clang-tidy] New argument --language to add_new_check.pyBen Hamilton2018-01-311-16/+33
| | | | | | | | | | | | | | | | | | | | | | Summary: Currently, add_new_check.py assumes all checks are for C++ code. This adds a new argument --language=[LANG] to add_new_check.py so authors of new checks can specify that the test file should be in a different language. For example, authors can pass --language=objc for Objective-C clang-tidy checks. Reviewers: hokein, alexfh Reviewed By: alexfh Subscribers: Wizard, xazax.hun Differential Revision: https://reviews.llvm.org/D39141 llvm-svn: 323919
* Implement LWG2870: Default value of parameter theta of polar should be dependentMarshall Clow2018-01-313-5/+5
| | | | llvm-svn: 323918
* replace os.mkdirs with lldbutil.mkdir_p (NFC)Adrian Prantl2018-01-312-4/+2
| | | | llvm-svn: 323917
* [Hexagon] Rename HexagonISelLowering::getNode to getInstr, NFCKrzysztof Parzyszek2018-01-313-56/+56
| | | | llvm-svn: 323916
* [x86] Make the retpoline thunk insertion a machine function pass.Chandler Carruth2018-01-313-53/+87
| | | | | | | | | | | | | | | | | | | | Summary: This removes the need for a machine module pass using some deeply questionable hacks. This should address PR36123 which is a case where in full LTO the memory usage of a machine module pass actually ended up being significant. We should revert this on trunk as soon as we understand and fix the memory usage issue, but we should include this in any backports of retpolines themselves. Reviewers: echristo, MatzeB Subscribers: sanjoy, mcrosier, mehdi_amini, hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D42726 llvm-svn: 323915
* [Hexagon] Implement HVX codegen for vector shiftsKrzysztof Parzyszek2018-01-317-68/+663
| | | | llvm-svn: 323914
* [SeparateConstOffsetFromGEP] Fix up addrspace in the AMDGPU testMarek Olsak2018-01-311-6/+6
| | | | llvm-svn: 323913
OpenPOWER on IntegriCloud