summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [MC/COFF] Fix a test to actually check the relocation.Davide Italiano2017-01-041-1/+1
| | | | | | Inspired by r290953 + grep -R 'CHCEK'. llvm-svn: 290958
* Add a debuginfo version check for RenderScript modulesLuke Drummond2017-01-042-1/+53
| | | | | | | | | | Added an extra field parser to the `RSModuleDescriptor` class enabling us to check whether the versions of LLVM used to generated the debug symbols match across the RenderScript compiler frontend (llvm-rs-cc) and backend (bcc); if they do not, we warn the user that the debugging experience may be suboptimal as LLVM IR debug information has no compatibility guarantees. llvm-svn: 290957
* [X86] Merged Reverse/Alternate shuffle cost tables. NFCI.Simon Pilgrim2017-01-041-141/+81
| | | | | | As discussed on D27811, merged the shuffle cost LUTs and use the shuffle kind to perform the lookup instead of the ISD opcode. llvm-svn: 290956
* [framelowering] Skip dbg values when getting next/previous instruction.Florian Hahn2017-01-044-16/+158
| | | | | | | | | | | | | | | | | | | Summary: In mergeSPUpdates, debug values need to be ignored when getting the previous element, otherwise debug data could have an impact on codegen. In eliminateCallFramePseudoInstr, debug values after the erased element could have an impact on codegen and should be skipped. Closes PR31319 (https://llvm.org/bugs/show_bug.cgi?id=31319) Reviewers: aprantl, MatzeB, mkuper Subscribers: gbedwell, llvm-commits Differential Revision: https://reviews.llvm.org/D27688 llvm-svn: 290955
* [ADT] Speculative attempt to fix build bot issues with r290952.Chandler Carruth2017-01-042-1/+13
| | | | | | | | | | | | This just removes the usage of llvm::reverse and llvm::seq. That makes it harder to handle the empty case correctly and so I've also added a test there. This is just a shot in the dark at what might be behind the buildbot failures. I can't reproduce any issues locally including with ASan... I feel like I'm missing something... llvm-svn: 290954
* [Inliner] Fix a test where I typo'ed 'CHECK' as 'CHCEK' when convertingChandler Carruth2017-01-041-1/+1
| | | | | | | | | | to FileCheck. Fortunately, it passes. =] Spotted in review by Bob Wilson! llvm-svn: 290953
* [ADT] Enhance the PriorityWorklist to support bulk insertion.Chandler Carruth2017-01-042-0/+74
| | | | | | | | | | | This is both convenient and more efficient as we can skip any intermediate reallocation of the vector. This usage pattern came up in a subsequent patch on the pass manager, but it seems generically useful so I factored it out and added unittests here. llvm-svn: 290952
* [ELF] Add support for thunks to undefined non-weak symbolsPeter Smith2017-01-049-16/+85
| | | | | | | | | | | | In a shared library an undefined symbol is implicitly imported. If the symbol is called as a function a PLT entry is generated for it. When the caller is a Thumb b.w a thunk to the PLT entry is needed as all PLT entries are in ARM state. This change allows undefined symbols to have thunks in the same way that shared symbols may have thunks. llvm-svn: 290951
* Fix for InlineSpiller accessing not updated dom tree base information.Bjorn Pettersson2017-01-042-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The InlineSpiller was accessing the DominatorTreeBase directly through the public data member DT in the MachineDominatorTree. This is not a good idea as the "cached" information in SplitCriticalEdges is not applied before the access. The DominatorTreeBase must be accessed through the member function getBase() in MachineDominatorTree. The fault was introduced in r266162. I think the public data member DT in the MachineDominatorTree should have been made private in the original code (r215576) that introduced the concept of lazily updating the MachineDominatorTree information from MachineBasicBlock::SplitCriticalEdge(). Patch by Karl-Johan Karlsson <karl-johan.karlsson@ericsson.com> Reviewers: wmi, qcolombet Subscribers: llvm-commits, bjope, uabelho Differential Revision: https://reviews.llvm.org/D27983 llvm-svn: 290950
* [LLC][MIPS] Fix crash after enabling LLVM_ENABLE_EXPENSIVE_CHECKSNitesh Jain2017-01-042-0/+8
| | | | | | | | | Reviewers: sdardis, vkalintiris Subscribers: jaydeep, slthakur, RKSimon, llvm-commits Differential Revision: https://reviews.llvm.org/D27841 llvm-svn: 290949
* [X86][AVX512] Passing the appropriate memory operand class to ↵Ayman Musa2017-01-042-26/+43
| | | | | | | | | | INT_{U}COMIS{S|D} instructions Replacing the memory operand in the intrinsic versions of the comis/ucomis instrucions from f128mem to ssmem/sdmem accordingly. Differential Revision: https://reviews.llvm.org/D28138 llvm-svn: 290948
* [X86] Attempt to pre-truncate arithmetic operations if usefulSimon Pilgrim2017-01-044-1004/+504
| | | | | | | | | | | | | | In some cases its more efficient to combine TRUNC( BINOP( X, Y ) ) --> BINOP( TRUNC( X ), TRUNC( Y ) ) if the binop is legal for the truncated types. This is true for vector integer multiplication (especially vXi64), as well as ADD/AND/XOR/OR in cases where we only need to truncate one of the inputs at runtime (e.g. a duplicated input or an one use constant we can fold). Further work could be done here - scalar cases (especially i64) could often benefit (if we avoid partial registers etc.), other opcodes, and better analysis of when truncating the inputs reduces costs. I have considered implementing this for all targets within the DAGCombiner but wasn't sure we could devise a suitable cost model system that would give us the range we need. Differential Revision: https://reviews.llvm.org/D28219 llvm-svn: 290947
* [AVX-512] Add support for detecting 512-bit shuffles that contain a 128-bit ↵Craig Topper2017-01-045-65/+71
| | | | | | | | subvector insertion from the lowest subvector of one of the sources. These are best handled with a vinsert32x4 or vinsert64x2 instruction. llvm-svn: 290946
* [AVX-512] Add more test cases for shuffles that should be handled with ↵Craig Topper2017-01-042-0/+266
| | | | | | subvector insert instructions. llvm-svn: 290945
* [AVX-512] Fix a typo in a couple case names to match their behavior.Craig Topper2017-01-041-4/+4
| | | | llvm-svn: 290944
* [AVX-512] Add avx512dq to the vector-shuffle-512-v16.ll test command lines ↵Craig Topper2017-01-041-6/+6
| | | | | | in preparation for a future change that needs these features. llvm-svn: 290943
* [AVX-512] Simplify code for creating 512-bit SHUF128 operations.Craig Topper2017-01-041-18/+11
| | | | | | We don't need two loops and we can safely assume assume and hardcode the size of the widened mask. llvm-svn: 290942
* fix elast configuration on Windows targetsSaleem Abdulrasool2017-01-041-1/+3
| | | | | | | A typo and missing header inclusion was obscured by the litany of user defined literal warnings. This fixes the detection of ELAST on windows. llvm-svn: 290941
* config: MSVC 19+ has unicode charsSaleem Abdulrasool2017-01-041-0/+2
| | | | | | | MSVC 19+ and clang-cl with emulation version >= 19.00 will provide char{16,32}_t as builtin types. Adjust the configuration accordingly. llvm-svn: 290940
* build: use the platform dependent library prefix/suffixSaleem Abdulrasool2017-01-041-1/+2
| | | | | | | | Use the cmake variables to get the platform dependent values for the static library prefix and suffix, which can be different from the Unix preference for "lib", ".a" (e.g. Windows uses "", ".lib" respectively). llvm-svn: 290939
* build: use more portable spelling for flagSaleem Abdulrasool2017-01-041-2/+3
| | | | | | | Use `CMAKE_LIBRARY_PATH_FLAG` instead of hard-coding it to -L. This silences a warning with cl which expects `/LIBPATH` instead. llvm-svn: 290938
* tweak definition to avoid GCC warningSaleem Abdulrasool2017-01-041-1/+3
| | | | | | | | Use an `extern "C" { }` block around the definition rather than doing the inline definition. This avoids a GCC warning about a declaration being extern and having a definition. NFC. llvm-svn: 290937
* [clang] Update lit config in utils/perf-trainingAlexander Shaposhnikov2017-01-042-4/+3
| | | | | | | | | | | | This diff replaces --driver-mode=cpp in utils/perf-training/order-files.lit.cfg and utils/perf-training/lit.cfg with --driver-mode=g++. clang --driver-mode=cpp will call the preprocessor and will not trigger compilation. Differential revision: https://reviews.llvm.org/D28269 llvm-svn: 290936
* Support: Add YAML I/O support for custom mappings.Peter Collingbourne2017-01-043-3/+175
| | | | | | | | This will be used to YAMLify parts of the module summary. Differential Revision: https://reviews.llvm.org/D28014 llvm-svn: 290935
* [CMake] Fix install rules for tools included in the frameworkChris Bieneman2017-01-041-1/+1
| | | | | | The logic for install rules was wrong for tools included in the framework if the framework build is disabled. llvm-svn: 290934
* Fix deduction of pack elements after a braced-init-list.Richard Smith2017-01-042-6/+16
| | | | | | | | | | Previously, if the arguments for a parameter pack contained a braced-init-list, we would abort deduction (keeping the pack deductions from prior arguments) at the point when we reached the braced-init-list, resulting in wrong deductions and rejects-valids. We now just leave a "hole" in the pack for such an argument, which needs to be filled by another deduction of the same pack. llvm-svn: 290933
* ELF: Simplify; addOptionalSynthetic() does not need to return a value. NFC.Peter Collingbourne2017-01-041-9/+6
| | | | llvm-svn: 290932
* On a 64-bit system, the DWARFDebugLine::Row struct is 32 bytes. Each field ↵Eric Christopher2017-01-041-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | has the following byte offsets: 0-7: Address 8-11: Line 12-13: Column 14-15: File 16-19: Isa 20-23: Discriminator 24+: bit fields The packing is fine until the "Isa" field, which is an 8-bit int that occupies 4 bytes. We can instead move Discriminator into the 16-19 slot, and pack Isa into the 20-23 range along with the bit fields: 0-7: Address 8-11: Line 12-13: Column 14-15: File 16-19: Discriminator 20-23: Isa + bit fields This layout is only 24 bytes. This 25% reduction in size may seem small but a large binary can have line tables with thousands of rows stored in a vector. Patch by Simon Que! Differential Revision: https://reviews.llvm.org/D27961 llvm-svn: 290931
* Change clang-format's Chromium JavaScript defaultsNico Weber2017-01-041-0/+3
| | | | | | | | | | | | | | Chromium is starting to use clang-format on more JavaScript. In doing this, we discovered that our defaults were not doing a good job differentiating between JS and C++. This change moves some defaults to only apply to C++. https://reviews.llvm.org/D28165 Patch from Dan Beam <dbeam@chromium.org>! llvm-svn: 290930
* [InstCombine] Add a test for r290733David Majnemer2017-01-041-0/+71
| | | | llvm-svn: 290929
* [InstCombine] Move casts around shift operationsDavid Majnemer2017-01-043-5/+36
| | | | | | | It is possible to perform a left shift before zero extending if the shift would only shift out zeros. llvm-svn: 290928
* [InstCombine] Combine adds across a zextDavid Majnemer2017-01-042-0/+24
| | | | | | | | | We can perform the following: (add (zext (add nuw X, C1)), C2) -> (zext (add nuw X, C1+C2)) This is only possible if C2 is negative and C2 is greater than or equal to negative C1. llvm-svn: 290927
* Remove accidentally-added lines in r290923 test, and add another testcase.Richard Smith2017-01-041-2/+9
| | | | llvm-svn: 290926
* [Hexagon, TableGen] Fix some Clang-tidy modernize and Include What You Use ↵Eugene Zelenko2017-01-0413-392/+313
| | | | | | warnings; other minor fixes (NFC). llvm-svn: 290925
* Refactor bitscan64 checkSaleem Abdulrasool2017-01-042-3/+5
| | | | | | | | Introduce a `_LIBCPP_HAS_BITSCAN64` macro to specify if the 64-bit variant of the bitscan family of APIs is available. This avoids duplicating the check in the support header. llvm-svn: 290924
* Fix template argument deduction when only some of a parameter pack is a ↵Richard Smith2017-01-043-36/+81
| | | | | | | | | | | | | | | | | non-deduced context. When a parameter pack has multiple corresponding arguments, and some subset of them are overloaded functions, it's possible that some subset of the parameters are non-deduced contexts. In such a case, keep deducing from the remainder of the arguments, and resolve the incomplete pack against whatever other deductions we've performed for the pack. GCC, MSVC, and ICC give three different bad behaviors for this case; what we do now (and what we did before) don't exactly match any of them, sadly :( I'm getting a core issue opened to specify more precisely how this should be handled. llvm-svn: 290923
* [libcxx] [test] Strip trailing whitespace.Stephan T. Lavavej2017-01-045-5/+5
| | | | | | Fixes D27786. llvm-svn: 290922
* [libcxx] [test] Fix recently introduced warnings emitted by MSVC.Stephan T. Lavavej2017-01-044-0/+16
| | | | | | | | | | These tests were using malloc()'s return value without checking for null, which MSVC's /analyze rightly warns about. Asserting that the pointer is non-null both expresses the test's intention and silences the warning. Fixes D27785. llvm-svn: 290921
* Extend -Wtautological-overlap-compare to more cases.Richard Trieu2017-01-042-3/+52
| | | | | | | | | | | Previously, -Wtautological-overlap-compare did not warn on cases where the boolean expression was in an assignment or return statement. This patch should cause all boolean statements to be passed to the tautological compare checks in the CFG analysis. This is one of the issues from PR13101 llvm-svn: 290920
* Add -plugin-opt=sample-profile for thinLTO build.Dehao Chen2017-01-042-0/+16
| | | | | | | | | | | | Summary: ThinLTO needs to pass down the sample profile file path to linker. Reviewers: tejohnson, davidxl, mehdi_amini Subscribers: bruno, cfe-commits Differential Revision: https://reviews.llvm.org/D27832 llvm-svn: 290919
* Correct the parent testing to avoid the special case where a DIE has a depth ↵Greg Clayton2017-01-041-29/+46
| | | | | | | | | | of 1 This test was testing that we could correctly find the parent of a DIE, but it was actually just testing the special case where a DIE's depth was 1. This corrects that error by adding an extra level into the the DWARF to ensure that we correctly get the parent by looking for the parent with a depth that is 1 less than the current depth. Differential Revision: https://reviews.llvm.org/D28261 llvm-svn: 290918
* Remove SymbolFilePDBTests.cpp from the list of tests to include in the Jason Molenda2017-01-041-2/+0
| | | | | | | | | | lldb-gtest binary that xcode builds for -scheme lldb-gtest; these tests won't run on macosx systems. Fixes testsuite failures we started seeing after 290819. <rdar://problem/29853778> llvm-svn: 290917
* Re-add objectsize function/incomplete type checks.George Burgess IV2017-01-032-2/+21
| | | | | | | I accidentally omitted these when refactoring this code. This caused problems when building parts of the test-suite on MacOS. llvm-svn: 290916
* [ThinLTO] Import type as decl only when non-null IdentifierTeresa Johnson2017-01-031-1/+1
| | | | | | | | As per post-commit review for r289993 (D27775), we can only safely import a type as a decl if it has an Identifier, as the Name alone is not enough to be unique across modules. llvm-svn: 290915
* Fix the MSVC version check.Zachary Turner2017-01-031-2/+2
| | | | | | | | | | I'm not sure what determines the minor version, but it appears that it's possible for a fully updated, release version of VS2015 with Update 3 can go (at least) as low as 19.00.24213.1. Updating the compiler version check to account for this so we don't generate superfluous warnings. llvm-svn: 290914
* InstCombine: Fold fabs on select of constantsMatt Arsenault2017-01-032-0/+60
| | | | llvm-svn: 290913
* [InstCombine] use 'match' to reduce code bloat; NFCISanjay Patel2017-01-031-15/+11
| | | | | | | | | | | I wrote this patch before seeing the comment in: https://reviews.llvm.org/D27114 ...that suggests we should actually be canonicalizing the other way. So just in case we decide this is the right way, we might as well have a cleaner implementation. llvm-svn: 290912
* clean up use of _WIN32Saleem Abdulrasool2017-01-0310-39/+48
| | | | | | | | | Replace the use of _WIN32 in libc++. Replace most use with a C runtime check _LIBCPP_MSVCRT or the new _LIBCPP_WIN32 to indicate that we are using the Win32 API. Use a new _LIBCPP_WCHAR_IS_UCS2 to indicate that we are on an environment that has a short wchar_t. llvm-svn: 290910
* [CodeGen] Further simplify returned call operand logic. NFC.Ahmed Bougacha2017-01-031-8/+2
| | | | | | As Pete points out in r290905, CallSite lets us avoid duplicating this! llvm-svn: 290909
* [ExecutionEngine] Fix compile errors in OProfileJITEventListener.Lang Hames2017-01-031-8/+8
| | | | | | | | Allows LLVM to build with LLVM_USE_OPROFILE=True. Patch by Mark Dewing. Thanks Mark! llvm-svn: 290908
OpenPOWER on IntegriCloud