summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Delete a really large test output.Rafael Espindola2017-12-151-0/+3
| | | | llvm-svn: 320818
* Handle a VersymIndex of 0 as an error.Rafael Espindola2017-12-152-5/+5
| | | | | | | | | I noticed that the continue this patch deletes was not tested. Trying to add a test I realized that we never put a VER_NDX_LOCAL symbol in the dynamic symbol table. There doesn't seem to be any reason for a linker to use VER_NDX_LOCAL for a defined shared symbol. llvm-svn: 320817
* Fix 32-bit builds broken by 320813Pavel Labath2017-12-151-2/+2
| | | | | | cast to size_t to avoid narrowing error. llvm-svn: 320816
* [X86] Add RTM schedule testsSimon Pilgrim2017-12-151-0/+61
| | | | llvm-svn: 320815
* [InlineCost] Find repeated loads in the calleeHaicheng Wu2017-12-154-6/+242
| | | | | | | | | | | SROA analysis of InlineCost can figure out that some stores can be removed after inlining and then the repeated loads clobbered by these stores are also free. This patch finds these clobbered loads and adjust the inline cost accordingly. Differential Revision: https://reviews.llvm.org/D33946 llvm-svn: 320814
* ObjectFileELF: Add support for compressed sectionsPavel Labath2017-12-1510-3/+116
| | | | | | | | | | | | | | | | Summary: We use the llvm decompressor to decompress SHF_COMPRESSED sections. This enables us to read data from debug info sections, which are sometimes compressed, particuarly in the split-dwarf case. This functionality is only available if llvm is compiled with zlib support. Reviewers: clayborg, zturner Subscribers: emaste, mgorny, aprantl, lldb-commits Differential Revision: https://reviews.llvm.org/D40616 llvm-svn: 320813
* [X86] Add MWAITX/MONITORX schedule testsSimon Pilgrim2017-12-151-0/+65
| | | | llvm-svn: 320812
* Fix the second build bot break introduced by r320791.Nemanja Ivanovic2017-12-151-0/+7
| | | | llvm-svn: 320811
* [X86] Add XOP schedule testsSimon Pilgrim2017-12-151-0/+998
| | | | llvm-svn: 320810
* llgs-tests: Make addition of new tests easierPavel Labath2017-12-158-100/+189
| | | | | | | | | | | | | | | | | | | Summary: Adding a new test would require one to duplicate a significant part of the existing test that we have. This attempts to reduce that by moving some part of that code to the test fixture. The StandardStartupTest fixture automatically starts up the server and connects it to the client. I also add a more low-level TestBase fixture, which allows one to start up the client and server in a custom way (I am going to need this for the test I am writing). Reviewers: eugene, zturner Subscribers: lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D41066 llvm-svn: 320809
* Added a separate install target for compilert-rt-headersIlya Biryukov2017-12-151-1/+19
| | | | | | | | | | | | | | | | | | | Summary: This patch adds a new install target `install-compilert-rt-headers`, that is similar to `install-clang-headers`. It allows to install the headers without installing all of compiler-rt. Reviewers: alekseyshl, beanz Reviewed By: beanz Subscribers: smeenai, beanz, mgorny, #sanitizers, kcc, llvm-commits Differential Revision: https://reviews.llvm.org/D41244 llvm-svn: 320808
* [clangd] Build in-memory index on symbols in files.Eric Liu2017-12-156-102/+260
| | | | | | | | | | | | Reviewers: sammccall Reviewed By: sammccall Subscribers: klimek, mgorny, ilya-biryukov, cfe-commits Differential Revision: https://reviews.llvm.org/D41276 llvm-svn: 320807
* Fix code causing fallthrough warnings in the PPC back end.Nemanja Ivanovic2017-12-154-1/+7
| | | | llvm-svn: 320806
* [X86] Add AVX512 VPOPCNTDQ schedule testsSimon Pilgrim2017-12-151-0/+79
| | | | | | Demonstrates how to perform full coverage avx512 schedule tests llvm-svn: 320805
* [clang] Add PPCallbacks list to preprocessor when building a preacompiled ↵Ilya Biryukov2017-12-153-25/+13
| | | | | | | | | | | | | | | | | | | | preamble. Summary: Revision D38639 needs this commit in order to properly make open definition calls on include statements work. Patch by William Enright. Reviewers: malaperle, krasimir, bkramer, ilya-biryukov Reviewed By: malaperle, ilya-biryukov Subscribers: cfe-commits, arphaman, ilya-biryukov Differential Revision: https://reviews.llvm.org/D39375 llvm-svn: 320804
* [ELF] Remove Duplicate .ARM.exidx sectionsPeter Smith2017-12-1510-6/+223
| | | | | | | | | | | | | | | | | | | | | | | | | | | The ARM.exidx section contains a table of 8-byte entries with the first word of each entry an offset to the function it describes and the second word instructions for unwinding if an exception is thrown from that function. The SHF_LINK_ORDER processing will order the table in ascending order of the functions described by the exception table entries. As the address range of an exception table entry is terminated by the next table entry, it is possible to merge consecutive table entries that have identical unwind instructions. For this implementation we define a table entry to be identical if: - Both entries are the special EXIDX_CANTUNWIND. - Both entries have the same inline unwind instructions. We do not attempt to establish if table entries that are references to .ARM.extab sections are identical. This implementation works at a granularity of a single .ARM.exidx InputSection. If all entries in the InputSection are identical to the previous table entry we can remove the InputSection. A more sophisticated but more complex implementation would rewrite InputSection contents so that duplicates within a .ARM.exidx InputSection can be merged. Differential Revision: https://reviews.llvm.org/D40967 llvm-svn: 320803
* [ELF] Add missing test from r320800Peter Smith2017-12-151-0/+115
| | | | | | Forgot to svn add the additional test for the commit. Adding with this one. llvm-svn: 320802
* [ELF] Fix buildbot warning error.Peter Smith2017-12-151-1/+1
| | | | | | Forward declare InputSectionDescription as struct not class. llvm-svn: 320801
* [ELF] Complete implementation of --fix-cortex-a53-843419Peter Smith2017-12-156-85/+552
| | | | | | | | | | | | | | | | | | This patch provides the mechanism to fix instances of the instruction sequence that may trigger the cortex-a53 843419 erratum. The fix is provided by an alternative instruction sequence to remove one of the erratum conditions. To reach this alternative instruction sequence we replace the original instruction with a branch to the alternative sequence. The alternative sequence is responsible for branching back to the original. As there is only erratum to fix the implementation is specific to AArch64 and the specific erratum conditions. It should be generalizable to other targets and erratum if needed. Differential Revision: https://reviews.llvm.org/D36749 llvm-svn: 320800
* [RISCV] Change shift amount operand of RVC shift instructions to ↵Alex Bradbury2017-12-155-10/+49
| | | | | | | | | | | | | | uimmlog2xlennonzero c.slli/c.srli/c.srai allow a 5-bit shift in RV32C and a 6-bit shift in RV64C. This patch adds uimmlog2xlennonzero to reflect this constraint as well as tests. Differential Revision: https://reviews.llvm.org/D41216 Patch by Shiva Chen. llvm-svn: 320799
* Fix the build bot break introduced by r320791.Nemanja Ivanovic2017-12-151-1/+6
| | | | llvm-svn: 320798
* [RISCV] Enable emission of alias instructions by defaultAlex Bradbury2017-12-1554-549/+717
| | | | | | | | | | | | | | | | | | This patch switches the default for -riscv-no-aliases to false and updates all affected MC and CodeGen tests. As recommended in D41071, MC tests use the canonical instructions and the CodeGen tests use the aliases. Additionally, for the f and d instructions with rounding mode, the tests for the aliased versions are moved and tightened such that they can actually detect if alias emission is enabled. (see D40902 for context) Differential Revision: https://reviews.llvm.org/D41225 Patch by Mario Werner. llvm-svn: 320797
* [PM] port Rewrite Statepoints For GC to the new pass manager.Fedor Sergeev2017-12-1550-64/+189
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The port is nearly straightforward. The only complication is related to the analyses handling, since one of the analyses used in this module pass is domtree, which is a function analysis. That requires asking for the results of each function and disallows a single interface for run-on-module pass action. Decided to copy-paste the main body of this pass. Most of its code is requesting analyses anyway, so not that much of a copy-paste. The rest of the code movement is to transform all the implementation helper functions like stripNonValidData into non-member statics. Extended all the related LLVM tests with new-pass-manager use. No failures. Reviewers: sanjoy, anna, reames Reviewed By: anna Subscribers: skatkov, llvm-commits Differential Revision: https://reviews.llvm.org/D41162 llvm-svn: 320796
* [ARM] Add tests for D34515Roger Ferrer Ibanez2017-12-154-11/+411
| | | | | | | | This is NFC and a preparatory step for D34515. Differential Revision: https://reviews.llvm.org/D41122 llvm-svn: 320795
* [LLVMgold] Don't set undefined symbol as prevailingEugene Leviant2017-12-154-7/+14
| | | | | | Differential revision: https://reviews.llvm.org/D41113 llvm-svn: 320794
* Repair Windows buildbots after r320792Shoaib Meenai2017-12-152-3/+3
| | | | | | | | Windows paths have colons in them, so the regex will fail there. Just match for any character; the rest of the message will restrict the match to the path anyway. llvm-svn: 320793
* [COFF] Warn for locally imported symbolsShoaib Meenai2017-12-155-6/+41
| | | | | | | | | Locally imported symbols are a very surprising linker feature. link.exe warns for them, and we should warn too. Differential Revision: https://reviews.llvm.org/D41269 llvm-svn: 320792
* [PowerPC] Convert r+r instructions to r+i (pre and post RA)Nemanja Ivanovic2017-12-1517-90/+7699
| | | | | | | | | | | | | | | | | | | | | | This patch adds the necessary infrastructure to convert instructions that take two register operands to those that take a register and immediate if the necessary operand is produced by a load-immediate. Furthermore, it uses this infrastructure to perform such conversions twice - first at MachineSSA and then pre-emit. There are a number of reasons we may end up with opportunities for this transformation, including but not limited to: - X-Form instructions chosen since the exact offset isn't available at ISEL time - Atomic instructions with constant operands (we will add patterns for this in the future) - Tail duplication may duplicate code where one block contains this redundancy - When emitting compare-free code in PPCDAGToDAGISel, we don't handle constant comparands specially Furthermore, this patch moves the initialization of PPCMIPeepholePass so that it can be used for MIR tests. llvm-svn: 320791
* [X86] Fix a couple bugs in my recent changes to vXi1 insert_subvector lowering.Craig Topper2017-12-152-9/+62
| | | | | | | | A couple places didn't use the same SDValue variables to connect everything all the way through. I don't have a test case for a bug in insert into the lower bits of a non-zero, non-undef vector. Not sure the best way to create that. We don't create the case when lowering concat_vectors which is the main way to get insert_subvectors. llvm-svn: 320790
* [SCEV] Fix the movement of insertion point in expander. PR35406.Serguei Katkov2017-12-152-1/+107
| | | | | | | | | | | | We cannot move the insertion point to header if SCEV contains div/rem operations due to they may go over check for zero denominator. Reviewers: sanjoy, mkazantsev, sebpop Reviewed By: sebpop Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D41229 llvm-svn: 320789
* Recommit CodeGen: Fix assertion in machine inst sheduler due to llvm.dbg.valueYaxun Liu2017-12-154-11/+125
| | | | | | The regression on ppc64 was not due to this commit. llvm-svn: 320788
* [libFuzzer] make the tests depend on ubsanKostya Serebryany2017-12-151-1/+1
| | | | llvm-svn: 320787
* Disabling r312514 as it causes miscompiles that show up on bootstrapNemanja Ivanovic2017-12-152-1/+2
| | | | | | | | | | | | The compare elimination peephole introduced in https://reviews.llvm.org/rL312514 causes a miscompile in AMDGPUInstrInfo.cpp which in turn causes some AMDGPU test case failures in stage2 bootstrap testing. This miscompile didn't cause any test case failures until https://reviews.llvm.org/rL320614, so it appeared as if that patch caused these failures. Disabling this transformation for now to bring the build bots back to green and the author of the patch will investigate the miscompile. llvm-svn: 320786
* [cmake] Fix clang-cl cross-compilation on macOSShoaib Meenai2017-12-152-0/+12
| | | | | | | | | | | | | | macOS paths usually start with /Users, which clang-cl interprets as a macro undefine, leading to pretty much everything failing to compile. CMake should be taught to put a -- in its compilation rules for clang-cl (and I've been meaning to submit that upstream for a while). In the meantime, however, and to support older CMake versions, we can just create a custom make rules override to fix the compilation rules. Differential Revision: https://reviews.llvm.org/D41219 llvm-svn: 320785
* [X86] Add a TODO about v8i1 CONCAT_VECTORS.Craig Topper2017-12-151-0/+3
| | | | llvm-svn: 320784
* [SelectionDAG] Make getNode calls that take an ArrayRef of SDValue for ↵Craig Topper2017-12-151-4/+7
| | | | | | | | | | operands call NewSDValueDbgMsg. This makes it work better with some build_vector and concat_vectors creations. Adjust the NewSDValueDbgMsg in getConstant to avoid duplicating the print when it calls getSplatBuildVector since getSplatBuildVector didn't trigger a print before. llvm-svn: 320783
* [X86] Further rearrange the setOperationAction calls to separate the ones ↵Craig Topper2017-12-151-66/+83
| | | | | | | | | | | | that require 512-bit registers OR VLX into separate sections. NFCI We have several instructions that were introduced in AVX512F that are only available in 512-bit form on KNL. We still make use of them for 128/256 by artificially widening and extracting during isel. This commit separates these operations from the true 512-bit operations. This way we can qualify the normal 512-bit operations with needing 512-bit register support. And these special operations will get qualified with needing 512-bit registers OR VLX. The 512-bit register qualification will be introduced in a future patch this just gets everything grouped to minimize deltas on that patch. llvm-svn: 320782
* [X86] Group setOperationActions related to vXi1 masks together. NFCICraig Topper2017-12-151-74/+71
| | | | | | | | Previously they were sort of interleaved in with XMM/YMM/ZMM action related code. Trying to separate things so its easier to split 512-bit vectors later. llvm-svn: 320781
* [X86] Make ISD::INSERT_SUBVECTOR v8i1 legal with AVX512F because we should ↵Craig Topper2017-12-151-1/+1
| | | | | | | | be custom lowering inserting v1i1 into v8i1 under this. I don't have a test case at the moment. Just noticed while auditing things. llvm-svn: 320780
* [X86] Move some of the hasVLX qualified code out of the main hasAVX512 block ↵Craig Topper2017-12-151-34/+51
| | | | | | | | | | in the X86ISelLowering constructor. NFCI Move it into the separate hasVLX block later in the constructor. I'm trying to separate 128/256 and 512-bit related code so we can eventually qualify the hasAVX512 block with support for 512-bit vectors required by the prefer-vector-width feature support being talked about in D41096. llvm-svn: 320779
* [ExpressionParser] Fix evaluation failures due to mismatch in C++ versions.Davide Italiano2017-12-151-0/+8
| | | | | | | | | | | | | | | | | | | | | | | Clang recently switched to C++14 (with GNU extensions) as the default dialect, but LLDB didn't catch up. This causes failures as LLDB still evaluates ObjectiveC expressions as Objective C++ using C++98 as standard. There are things not available in C++98, including, e.g. nullptr. In some cases Objective-C `nil` is defined as `nullptr` so this causes an evaluation failure. Switch the default to overcome this issue (actually, currently lldb evaluates both C++11 and C++14 as C++11, but that seems a larger change and definitely could be re-evaluated in the future). No test as this is currently failing on the LLDB bots after the clang switch (so, de facto, there's a test already for it). This is a recommit, with a thinko fixed (the code was previously placed incorrectly). <rdar://problem/36011995> llvm-svn: 320778
* [WebAssembly] Remove extra semicolon. NFC.Sam Clegg2017-12-151-1/+0
| | | | llvm-svn: 320777
* FastISel: support no-PLT PIC calls on ELF x86_64Saleem Abdulrasool2017-12-152-4/+18
| | | | | | | | | | Add support for properly handling PIC code with no-PLT. This equates to `-fpic -fno-plt -O0` with the clang frontend. External functions are marked with nonlazybind, which must then be indirected through the GOT. This allows code to be built without optimizations in PIC mode without going through the PLT. Addresses PR35653! llvm-svn: 320776
* Don't crash in llvm-pdbutil when dumping TypeIndexes with high bit set.Zachary Turner2017-12-152-1/+3
| | | | | | | | | This is a special code that indicates that it's a function id. While I'm still not certain how to interpret these, we definitely should *not* be using these values as indices into an array directly. For now, when we encounter one of these, just print the numeric value. llvm-svn: 320775
* [WebAssembly] Implement @llvm.global_ctors and @llvm.global_dtorsSam Clegg2017-12-159-45/+540
| | | | | | | | | | | | | | | Summary: - lowers @llvm.global_dtors by adding @llvm.global_ctors functions which register the destructors with `__cxa_atexit`. - impements @llvm.global_ctors with wasm start functions and linker metadata See [here](https://github.com/WebAssembly/tool-conventions/issues/25) for more background. Subscribers: jfb, dschuff, mgorny, jgravelle-google, aheejin, sunfish Differential Revision: https://reviews.llvm.org/D41211 llvm-svn: 320774
* Do not create an unnecessary object file in a test.Rui Ueyama2017-12-151-4/+3
| | | | llvm-svn: 320773
* Fix error messages.Rui Ueyama2017-12-153-3/+3
| | | | llvm-svn: 320772
* [debuginfo] Remove obsolete test_debuginfo.pl that was moved to debuginfo-tests.Don Hinton2017-12-151-80/+0
| | | | | | | | | | | | | | | | | Summary: Now that r320495, "[debuginfo-tests] Support moving debuginfo-tests to llvm/projects," has landed, which includes a local copy of test_debuginfo.pl, remove the obsolete copy. Reviewers: zturner, aprantl Reviewed By: aprantl Subscribers: llvm-commits, JDevlieghere Differential Revision: https://reviews.llvm.org/D41260 llvm-svn: 320771
* Use warn() instead of error() to report a bad symbol in a DSO.Rui Ueyama2017-12-153-8/+19
| | | | | | | | | | Specifically, libwidevinecdm.so in Chrome has such bad symbol. It seems the BFD linker handles them as local symbols, so instead of inserting them to the symbol table, we should skip them too. Differential Revision: https://reviews.llvm.org/D41257 llvm-svn: 320770
* [ExpressionParser] Rollback C++98 as the standard for evaluating.Davide Italiano2017-12-151-8/+0
| | | | | | | Some ubuntu bots are failing with this patch in, let me unblock while I investigate. llvm-svn: 320769
OpenPOWER on IntegriCloud