summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86][SSE] Add sdiv by nonuniform constant vector test containing -1/+1 and ↵Simon Pilgrim2018-08-161-0/+125
| | | | | | all-bits style constants llvm-svn: 339901
* [NFC] Fix typo in test casesEvandro Menezes2018-08-162-4/+3
| | | | llvm-svn: 339900
* NFC: Test commit accessJordan Rupprecht2018-08-161-1/+0
| | | | | | Testing commit access from a new machine, so using this as an opportunity to revert my old test access commit (r336006) that I never cleaned up. llvm-svn: 339899
* [TargetLowering] Refactor BuildSDIV in preparation for D50765. NFCI.Simon Pilgrim2018-08-161-24/+36
| | | | | | Pull out magic factor calculators into a helper function, use 0/+1/-1 multiplication factor to (optionally) add/sub the numerator. llvm-svn: 339898
* unittests: Don't install TestPlugin.soTom Stellard2018-08-161-1/+1
| | | | | | | | | | | | | | Summary: add_llvm_loadable_module adds an install target by default, but this module is only used for a unit test, so we don't need to install it. Reviewers: philip.pfaffe, thakis Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D50668 llvm-svn: 339897
* [MC] Remove unused variableBenjamin Kramer2018-08-161-1/+0
| | | | llvm-svn: 339896
* [MC][X86] Enhance X86 Register expression handling to more closely match GCC.Nirav Dave2018-08-168-32/+56
| | | | | | | | | | | | | | | | Allow the comparison of x86 registers in the evaluation of assembler directives. This generalizes and simplifies the extension from r334022 to catch another case found in the Linux kernel. Reviewers: rnk, void Reviewed By: rnk Subscribers: hiraditya, nickdesaulniers, llvm-commits Differential Revision: https://reviews.llvm.org/D50795 llvm-svn: 339895
* Fix -Wmicrosoft-goto warnings.Zachary Turner2018-08-161-7/+13
| | | | llvm-svn: 339894
* Add support for AVX-512 CodeView registers.Zachary Turner2018-08-162-114/+229
| | | | | | | | | | | When compiling with /arch:AVX512 and optimizations turned on, we could crash while emitting debug info because we did not have CodeView register constants for the AVX 512 register set defined. This patch defines them. Differential Revision: https://reviews.llvm.org/D50819 llvm-svn: 339893
* [MS Demangler] Demangle string literals.Zachary Turner2018-08-162-3/+1156
| | | | | | | | | | | | | | | | | | | | When demangling string literals, Microsoft's undname simply prints 'string'. This patch implements string literal demangling while doing a bit better than this by decoding as much of the string as possible and trying to faithfully reproduce the original string literal definition. This is a bit tricky because the different character types char, char16_t, and char32_t are not uniquely identified by the mangling, so we have to use a heuristic to try to guess the character type. But it works pretty well, and many tests are added to illustrate the behavior. Differential Revision: https://reviews.llvm.org/D50806 llvm-svn: 339892
* [MS Demangler] Don't fail on MD5-mangled names.Zachary Turner2018-08-162-1/+25
| | | | | | | | When we have an MD5 mangled name, we shouldn't choke and say that it's an invalid name. Even though it's impossible to demangle, we should just output the original name. llvm-svn: 339891
* [TableGen] TypeSetByHwMode::operator== optimizationSimon Pilgrim2018-08-161-8/+10
| | | | | | | | | | | | | | This operator is called a great deal, by checking for the cheap isSimple equality cases first (a common occurrence) we can improve performance as we avoid a lot of std::map find/iteration in hasDefault. isSimple also means that a default value is present, so we can avoid some hasDefault calls. This also avoids a rather dodgy piece of logic that was checking for isSimple() && !VTS.isSimple() but not the inverse - it now uses the general hasDefault mode comparison test instead. Saves around 15secs in debug builds of x86 -gen-dag-isel. Differential Revision: https://reviews.llvm.org/D50841 llvm-svn: 339890
* [ConstantFolding] add tests for funnel shift intrinsics; NFCSanjay Patel2018-08-161-0/+89
| | | | | | No functionality for this yet. llvm-svn: 339889
* [TableGen] Avoid self getPredicates() != comparison. NFCI.Simon Pilgrim2018-08-161-2/+2
| | | | | | We were performing a completely unnecessary full comparison of the same std::vector<Predicate>. llvm-svn: 339888
* [InstCombine] Expand the simplification of pow(x, 0.5) to sqrt(x)Evandro Menezes2018-08-163-97/+102
| | | | | | | | | Expand the number of cases when `pow(x, 0.5)` is simplified into `sqrt(x)` by considering the math semantics with more granularity. Differential revision: https://reviews.llvm.org/D50036 llvm-svn: 339887
* [Sanitizer] Fix build openbsdDavid Carlier2018-08-161-1/+10
| | | | | | | | | | | | | | - The alternative syscall exists only on FreeBSD. - Adding OpenBSD's equivalent and while at it other remaining oses ones. Reviewers: vitalybuka, krytarowsky, hiraditya Reviewed By: hiraditya Differential Revision: https://reviews.llvm.org/D50760 llvm-svn: 339886
* [llvm-mca] Small refactoring in preparation for another patch that will ↵Andrea Di Biagio2018-08-1612-45/+67
| | | | | | | | | | | | improve the modularity of the Pipeline. NFCI The main difference is that now `cycleStart()` and `cycleEnd()` return an llvm::Error. This patch implements a few minor style changes, and adds missing 'const' to some methods. llvm-svn: 339885
* [TableGen] Return ValueTypeByHwMode by const reference from ↵Simon Pilgrim2018-08-162-4/+4
| | | | | | | | CodeGenRegisterClass::getValueTypeNum Avoids costly std::map copies inside ValueTypeByHwMode constructor llvm-svn: 339884
* [cmake] Prevent LLVMgold.so from being unloaded on LinuxHans Wennborg2018-08-161-0/+1
| | | | | | | | | | | | | Extend the fix from D40459 to also apply to modules such as the LLVM gold plugin. This is needed because current binutils master (and future binutils 2.32) calls dlclose() on bfd plugins as part of a recent fix for https://sourceware.org/bugzilla/show_bug.cgi?id=23460. Patch by Evangelos Foutras! Differential Revision: https://reviews.llvm.org/D50416 llvm-svn: 339883
* [LLD][ELF] - Add a test case for DT_SONAME entry reading.George Rimar2018-08-161-0/+18
| | | | | | | This covers a following line with a test: https://github.com/llvm-mirror/lld/blob/master/ELF/InputFiles.cpp#L899 llvm-svn: 339880
* Fixed unused variable warning. NFCI.Simon Pilgrim2018-08-161-1/+2
| | | | llvm-svn: 339879
* [libunwind][mips] Include gcc_s for linkageStefan Maksimovic2018-08-161-0/+1
| | | | | | | | | When compiling with optimizations, mips requires various helper routines(__ashldi3 and the like) contained in libgcc_s. Conditionally include libgcc_s in the set of libraries to be linked to. Differential Revision: https://reviews.llvm.org/D50243 llvm-svn: 339878
* [clangd] NFC: Improve Dex Iterators debugging traitsKirill Bobyrev2018-08-163-5/+17
| | | | | | | | | | | | This patch improves `dex::Iterator` string representation by incorporating the information about the element which is currently being pointed to by the `DocumentIterator`. Reviewed by: ioeric Differential Revision: https://reviews.llvm.org/D50689 llvm-svn: 339877
* [LLD][ELF] - Add a test case.George Rimar2018-08-161-0/+16
| | | | | | | This covers the following line with a test: https://github.com/llvm-mirror/lld/blob/master/ELF/InputFiles.cpp#L487 llvm-svn: 339876
* [InstCombine] move vector compare before same-shuffled opsSanjay Patel2018-08-162-11/+36
| | | | | | | This is a step towards fixing PR37463: https://bugs.llvm.org/show_bug.cgi?id=37463 llvm-svn: 339875
* [libcxx] By default, do not use internal_linkage to hide symbols from the ABILouis Dionne2018-08-166-5/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: https://reviews.llvm.org/D49240 led to symbol size problems in Chromium, and we expect this may be the case in other projects built in debug mode too. Instead, unless users explicitly ask for internal_linkage, we use always_inline like we used to. In the future, when we have a solution that allows us to drop always_inline without falling back on internal_linkage, we can replace always_inline by that. Note that this commit introduces a change in contract for existing libc++ users: by default, libc++ used to guarantee that TUs built with different versions of libc++ could be linked together. With the introduction of the _LIBCPP_HIDE_FROM_ABI_PER_TU macro, the default behavior is that TUs built with different libc++ versions are not guaranteed to link. This is a change in contract but not a change in behavior, since the current implementation still allows linking TUs built with different libc++ versions together. Reviewers: EricWF, mclow.lists, dexonsmith, hans, rnk Subscribers: christof, cfe-commits Differential Revision: https://reviews.llvm.org/D50652 llvm-svn: 339874
* [yaml2obj] - Allow to use numeric sh_link (Link) value for sections.George Rimar2018-08-162-1/+26
| | | | | | | That change allows using numeric values for Link field. It is consistent with the code for another fields in this method. llvm-svn: 339873
* [yaml2elf] - Use check-next in test.George Rimar2018-08-161-9/+9
| | | | | | Its a follow up for rL339870. llvm-svn: 339872
* [ARM] Ignore GEPs in ARMCodeGenPrepareSam Parker2018-08-162-0/+56
| | | | | | | | | | | While searching through the use-def tree, ignore GetElementPtrInst instructions because they don't need promoting and neither do their indices. Otherwise, the wide indices prevent the transformation from happening. Differential Revision: https://reviews.llvm.org/D50762 llvm-svn: 339871
* [yaml2elf] - Simplify code, add a test. NFC.George Rimar2018-08-162-6/+29
| | | | | | | This simplifies the code allowing to set the sh_info for relocations sections. And adds a missing test. llvm-svn: 339870
* [XRay][compiler-rt] Remove MAP_NORESERVE from XRay allocationsDean Michael Berris2018-08-162-27/+3
| | | | | | | | | | | | | | | | | | | Summary: This reverses an earlier decision to allow seg-faulting from the XRay-allocated memory if it turns out that the system cannot provide physical memory backing that cannot be swapped in/out on Linux. This addresses http://llvm.org/PR38588. Reviewers: eizan Reviewed By: eizan Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D50831 llvm-svn: 339869
* [ARM] Allow zext in ARMCodeGenPrepareSam Parker2018-08-163-16/+26
| | | | | | | | Treat zext instructions as roots, like we do for truncs. Differential Revision: https://reviews.llvm.org/D50759 llvm-svn: 339868
* [LLD][ELF] - Add test case.George Rimar2018-08-161-0/+22
| | | | | | | To cover the following error message: https://github.com/llvm-mirror/lld/blob/master/ELF/InputFiles.cpp#L463 llvm-svn: 339867
* Attempt to fix clangd tests on older compilersSimon Pilgrim2018-08-161-12/+16
| | | | | | | | Old gcc versions of gcc struggle with raw string literals inside macros. Inspired by rL339759 llvm-svn: 339866
* [libcxxabi] Fix test_exception_address_alignment test for ARMYvan Roux2018-08-161-1/+2
| | | | | | | | | | Check _LIBCXXABI_ARM_EHABI macro instead of libunwind version. Fixes PR34182 Differential revision: https://reviews.llvm.org/D50170 llvm-svn: 339865
* [RISCV][MC] Don't fold symbol differences if ↵Alex Bradbury2018-08-163-5/+56
| | | | | | | | | | | | | | | | | | | | | | requiresDiffExpressionRelocations is true When emitting the difference between two symbols, the standard behavior is that the difference will be resolved to an absolute value if both of the symbols are offsets from the same data fragment. This is undesirable on architectures such as RISC-V where relaxation in the linker may cause the computed difference to become invalid. This caused an issue when compiling to object code, where the size of a function in the debug information was already calculated even though it could change as a consequence of relaxation in the subsequent linking stage. This patch inhibits the resolution of symbol differences to absolute values where the target's AsmBackend has declared that it does not want these to be folded. Differential Revision: https://reviews.llvm.org/D45773 Patch by Edward Jones. llvm-svn: 339864
* [ADT] Replace APInt::WORD_MAX with APInt::WORDTYPE_MAXSimon Pilgrim2018-08-162-18/+18
| | | | | | | | | | | | The windows SDK defines WORD_MAX, so any poor soul that wants to use LLVM in a project that depends on the windows SDK gets a build error. Given that it actually describes the maximal value of WordType, it actually fits even better than WORD_MAX Patch by: @miscco Differential Revision: https://reviews.llvm.org/D50777 llvm-svn: 339863
* [AST] Store the OwnedTagDecl as a trailing object in ElaboratedType.Bruno Ricci2018-08-162-20/+44
| | | | | | | | | | | | | | The TagDecl *OwnedTagDecl in ElaboratedType is quite commonly null (at least when parsing all of Boost, it is non-null for only about 600 of the 66k ElaboratedType). Therefore we can save a pointer in the common case by storing it as a trailing object, and storing a bit in the bit-fields of Type indicating when the pointer is null. Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D50715 llvm-svn: 339862
* [AST] Pack the unsigned of SubstTemplateTypeParmPackType into TypeBruno Ricci2018-08-162-6/+27
| | | | | | | | | | | The bit-fields of Type have enough space for the member unsigned NumArgs of SubstTemplateTypeParmPackType. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D50713 llvm-svn: 339861
* [AST] Pack the unsigned of DependentTemplateSpecializationType into TypeBruno Ricci2018-08-162-8/+30
| | | | | | | | | | | The bit-fields of `Type` have enough space for the member `unsigned NumArgs` of `DependentTemplateSpecializationType`. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D50712 llvm-svn: 339860
* [ARM] Allow signed icmps in ARMCodeGenPrepareSam Parker2018-08-163-31/+145
| | | | | | | | | | | | | | | | | Originally committed in r339755 which was reverted in r339806 due to an asan issue. The issue was caused by my assumption that operands to a CallInst mapped to the FunctionType Params. CallInsts are now handled by iterating over their ArgOperands instead of Operands. Original Message: Treat signed icmps as 'sinks', allowing them to be in the use-def tree, enabling more promotions to be performed. As a sink, any promoted incoming values need to be truncated before being used by the signed icmp. Differential Revision: https://reviews.llvm.org/D50067 llvm-svn: 339858
* [libunwind][mips] Guard accumulator registersStefan Maksimovic2018-08-161-0/+4
| | | | | | | | Mipsr6 does not possess HI and LO accumulator registers, adjust validRegister functions to respect that. Differential Revision: https://reviews.llvm.org/D50244 llvm-svn: 339849
* [libunwind][mips] Modify the __mips_fpr macro checkStefan Maksimovic2018-08-162-2/+2
| | | | | | | | The __mips_fpr macro can take the value of 0 as well, change to account for that case. Differential Revision: https://reviews.llvm.org/D50245 llvm-svn: 339848
* [mips] Remove dead code from MipsPassConfigSimon Atanasyan2018-08-161-4/+0
| | | | | | | | | | Found by GCC's -Wunused-function. Patch by Kim Gräsman. Differential revision: https://reviews.llvm.org/D50612 llvm-svn: 339847
* [NFC] Remove const modifier to allow further development in LICMMax Kazantsev2018-08-161-3/+2
| | | | llvm-svn: 339846
* [X86] Remove masking from the 512-bit paddus/psubus builtins. Use a select ↵Craig Topper2018-08-163-70/+40
| | | | | | builtin instead. llvm-svn: 339845
* [NFC] Add missing const modifierMax Kazantsev2018-08-161-1/+1
| | | | llvm-svn: 339844
* [X86] Remove masking from the 512-bit padds and psubs builtins. Use select ↵Craig Topper2018-08-163-72/+56
| | | | | | builtin instead. llvm-svn: 339843
* [X86] Remove masking from the 512-bit padds and psubs intrinsics. Use select ↵Craig Topper2018-08-166-107/+485
| | | | | | in IR instead. llvm-svn: 339842
* [X86] Remove the unused masked 128 and 256-bit masked padds/psubs intrinsics.Craig Topper2018-08-165-313/+989
| | | | | | Still need to remove masking from the 512-bit versions. llvm-svn: 339841
OpenPOWER on IntegriCloud