summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [Hexagon] Re-enable machine verifier after codegen passesKrzysztof Parzyszek2017-06-081-17/+17
| | | | | | | Remove "false" from the arguments to "addPass" in Hexagon's target pass config. llvm-svn: 305015
* [Hexagon] Skip mux generation when predicate register is undefinedKrzysztof Parzyszek2017-06-082-1/+31
| | | | llvm-svn: 305014
* [Sema] Refactor OverloadCandidate::BuiltinTypes. NFC.George Burgess IV2017-06-083-26/+22
| | | | | | As promised in r304996. llvm-svn: 305013
* [MachO] Fix codegen of alias of alias.Evgeniy Stepanov2017-06-083-4/+20
| | | | | | Fixes PR33316. llvm-svn: 305012
* [CGP, x86] add tests for potential memcmp expansion; NFCSanjay Patel2017-06-081-0/+337
| | | | | | | | | | | | No IR tests were added with rL304313 ( https://reviews.llvm.org/D28637 ), so I want these for extra coverage if we enable memcmp expansion for x86. As shown, nothing is expanded for x86 in CGP yet. Also fundamentally, we're doing an IR transform, so we should have IR tests for just that part. If something goes wrong, we need to know if the bug is in CGP or later lowering. llvm-svn: 305011
* Use LLVM_FALLTHROUGH.Rui Ueyama2017-06-082-4/+5
| | | | llvm-svn: 305010
* Do not early-inline recursive calls in sample profile loader.Dehao Chen2017-06-083-0/+23
| | | | | | | | | | | | | | Summary: Early-inlining of recursive call makes the code size bloat exponentially. We should not disable it. Reviewers: davidxl, dnovillo, iteratee Reviewed By: iteratee Subscribers: iteratee, llvm-commits, sanjoy Differential Revision: https://reviews.llvm.org/D34017 llvm-svn: 305009
* fix formatting; NFCSanjay Patel2017-06-082-7/+7
| | | | llvm-svn: 305008
* [CGP] don't expand a memcmp with nobuiltin attributeSanjay Patel2017-06-083-12/+27
| | | | | | | | | | | | | | | | This matches the behavior used in the SDAG when expanding memcmp. For reference, we're intentionally treating the earlier fortified call transforms differently after: https://bugs.llvm.org/show_bug.cgi?id=23093 https://reviews.llvm.org/rL233776 One motivation for not transforming nobuiltin calls is that it can interfere with sanitizers: https://reviews.llvm.org/D19781 https://reviews.llvm.org/D19801 Differential Revision: https://reviews.llvm.org/D34043 llvm-svn: 305007
* Fix a bug in output section directive.Rui Ueyama2017-06-082-16/+33
| | | | | | | | | | Previously, it couldn't parse SECTIONS .text (0x1000) : { *(.text) } because "(" was interpreted as the begining of the "(NOLOAD)" directive. llvm-svn: 305006
* AMDGPU: Work around build special casing .inc filesMatt Arsenault2017-06-083-1/+7
| | | | | | | It complains because it assumes these were autogenerated files in the source directory. llvm-svn: 305005
* AMDGPU: Use correct register names in inline assemblyMatt Arsenault2017-06-0817-401/+811
| | | | | | Fixes using physical registers in inline asm from clang. llvm-svn: 305004
* [Hexagon] Speedup NumNodesBlocking calculation. NFCI.Nirav Dave2017-06-081-32/+25
| | | | llvm-svn: 305003
* Revert "Frontend support for Nios2 target"Nikolai Bozhenov2017-06-085-270/+0
| | | | | | As it breaks many buildbots. llvm-svn: 305002
* [PPC] In PPCBoolRetToInt change the bool value to i64 if the target is ppc64Guozhi Wei2017-06-083-26/+59
| | | | | | | | | | In PPCBoolRetToInt bool value is changed to i32 type. On ppc64 it may introduce an extra zero extension for the return value. This patch changes the integer type to i64 to avoid the zero extension on ppc64. This patch fixed PR32442. Differential Revision: https://reviews.llvm.org/D31407 llvm-svn: 305001
* [libcxx] [test] Update locale names for Windows.Stephan T. Lavavej2017-06-083-15/+15
| | | | | | | | | | | | | | | | | locale.codecvt.byname/ctor_char.pass.cpp: This test used to use "en_US" as a plain string instead of using platform_support. Need to fix this because MS STL expects "en-US" instead. platform_support.h: These are the legacy Windows locale names. Should use IETF tags instead. I've also added en_US, since a test was using that as a locale string as well. msvc_stdlib_force_include.hpp: Remove _MSVC_STL_VER. The libraries will directly define _MSVC_STL_VERSION in the future. Fixes D29351. llvm-svn: 305000
* [libcxx] [test] Remove a Clang/C2 workaround.Stephan T. Lavavej2017-06-081-2/+0
| | | | | | | | Clang/LLVM doesn't need this workaround. Fixes D33955. llvm-svn: 304999
* [AMDGPU] Force qsads instrs to use different dest register than source registersMark Searles2017-06-084-37/+73
| | | | | | | | The V_MQSAD_PK_U16_U8, V_QSAD_PK_U16_U8, and V_MQSAD_U32_U8 take more than 1 pass in hardware. For these three instructions, the destination registers must be different than all sources, so that the first pass does not overwrite sources for the following passes. Differential Revision: https://reviews.llvm.org/D33783 llvm-svn: 304998
* Added llvm_unreachable to make sure the switch is always exhaustive.Galina Kistanova2017-06-081-0/+1
| | | | llvm-svn: 304997
* [Sema] Remove unused field from OverloadCandidate.George Burgess IV2017-06-083-149/+53
| | | | | | | | | | | | | | | | | | The only use in-tree I can find for BuiltinTypes.ResultTy is a single store to it. We otherwise just recompute what it should be later on (and sometimes do things like argument conversions in the process of recomputing it). Since it's impossible to test if the value stored there is sane, and we don't use it anyway, we should probably just drop the field. I'll do a follow-up patch to rename BuiltinTypes.ParamTypes -> BuiltinParamTypes in a bit. Wanted to keep this patch relatively minimal. Thanks to Petr Kudryavtsev for bringing this up! llvm-svn: 304996
* Update release notes for BinaryFormat library.Zachary Turner2017-06-081-0/+7
| | | | | | Differential Revision: https://reviews.llvm.org/D34001 llvm-svn: 304995
* Frontend support for Nios2 target.Nikolai Bozhenov2017-06-085-0/+270
| | | | | | | | | | | | | | Summary: - Implements TargetInfo class for Nios2 target. - Enables handling of -march and -mcpu options for Nios2 target. - Definition of Nios2 builtin functions. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D33356 Author: belickim <mateusz.belicki@intel.com> llvm-svn: 304994
* Changed a comparison operator for std::stable_sort to implement strict weak ↵Galina Kistanova2017-06-082-30/+33
| | | | | | | | | ordering. This is a temporarily fix which needs additional work, as it triggers a test3 failure. test3 is commented out till then. llvm-svn: 304993
* [Power9] Exploit vector integer extend instructionsZaara Syeda2017-06-082-0/+141
| | | | | | | | | | | | | | This patch adds build vector patterns to exploit the vector integer extend instructions: vextsb2w - Vector Extend Sign Byte To Word vextsb2d - Vector Extend Sign Byte To Doubleword vextsh2w - Vector Extend Sign Halfword To Word vextsh2d - Vector Extend Sign Halfword To Doubleword vextsw2d - Vector Extend Sign Word To Doubleword Differential Revision: https://reviews.llvm.org/D33510 llvm-svn: 304992
* [PowerPC] add memcmp test with nobuiltin attr; NFCSanjay Patel2017-06-081-0/+15
| | | | | | | | | | | In SDAG, we don't expand libcalls with a nobuiltin attribute. It's not clear if that's correct from the existing code comment: "Don't do the check if marked as nobuiltin for some reason." ...adding a test here either way to show that there is currently a different behavior implemented in the CGP-based expansion. llvm-svn: 304991
* [LazyValueInfo] Make LVILatticeVal intersect method take arguments by ↵Craig Topper2017-06-081-1/+1
| | | | | | reference so we don't copy ConstantRanges unless we need to. llvm-svn: 304990
* [x86] remove unused param from tests; NFCSanjay Patel2017-06-081-10/+10
| | | | llvm-svn: 304989
* Wdocumentation fix.Simon Pilgrim2017-06-081-1/+1
| | | | llvm-svn: 304988
* [CGP / PowerPC] avoid multi-block overhead for simple memcmp expansionSanjay Patel2017-06-082-26/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test diff for PowerPC shows we can better optimize if this case is one block. For x86, there's would be a substantial difference if CGP expansion was enabled because branches are assumed cheap and SDAG can't optimize across blocks. Instead of this: _cmp_eq8: movq (%rdi), %rax cmpq (%rsi), %rax je LBB23_1 ## BB#2: ## %res_block movl $1, %ecx jmp LBB23_3 LBB23_1: xorl %ecx, %ecx LBB23_3: ## %endblock xorl %eax, %eax testl %ecx, %ecx sete %al retq We get this: cmp_eq8: movq (%rdi), %rcx xorl %eax, %eax cmpq (%rsi), %rcx sete %al retq And that matches the optimal codegen that we get from the current expansion in SelectionDAGBuilder::visitMemCmpCall(). If this looks right, then I just need to confirm that vector-sized expansion will work from here, and we can enable CGP memcmp() expansion for x86. Ie, we'll bypass the power-of-2 special cases currently optimized in SDAG because we can lower the IR produced here optimally. Differential Revision: https://reviews.llvm.org/D34005 llvm-svn: 304987
* Add scheduler classes to integer/float horizontal operations.Andrew V. Tischenko2017-06-087-21/+142
| | | | | | | This patch will close PR32801. Differential Revision: https://reviews.llvm.org/D33203 llvm-svn: 304986
* [SLP] More comments fix, NFC.Alexey Bataev2017-06-081-3/+3
| | | | | | Fixed spelling errors on function description. llvm-svn: 304985
* [sanitizer-coverage] Allow using KASAN instrumentation with sancovAlexander Potapenko2017-06-082-2/+3
| | | | llvm-svn: 304984
* [clangd] extend completion testKrasimir Georgiev2017-06-081-2/+28
| | | | llvm-svn: 304983
* [PDB] Don't crash on /debug:fastlink PDBs.Zachary Turner2017-06-083-66/+77
| | | | | | | | | | Apparently support for /debug:fastlink PDBs isn't part of the DIA SDK (!), and it was causing llvm-pdbdump to crash because we weren't checking for a null pointer return value. This manifests when calling findChildren on the IDiaSymbol, and it returns E_NOTIMPL. llvm-svn: 304982
* [clangd] Separate authority less uris from completion testsKrasimir Georgiev2017-06-082-18/+33
| | | | llvm-svn: 304981
* [clangd] Add parameter and return type information to completion resultsKrasimir Georgiev2017-06-082-12/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds information about the parameters and return types of completion candidates. Previously, for the following code: ``` struct S { int func(int a, double b) const; }; ``` the completer would only return the label of the candidate `func`. Now it will also return the return type `int` and will format the label for the candidate as `func(int a, double b) const`. Reviewers: bkramer, ilya-biryukov Reviewed By: ilya-biryukov Subscribers: cfe-commits Tags: #clang-tools-extra Differential Revision: https://reviews.llvm.org/D34033 llvm-svn: 304980
* [x86] add tests for memcmp expansion; NFCSanjay Patel2017-06-081-37/+293
| | | | | | | | | | | | We already had a test to demonstrate PR33325: https://bugs.llvm.org/show_bug.cgi?id=33325 I'm adding tests for general memcmp expansion (see D34005 / D33963) and: https://bugs.llvm.org/show_bug.cgi?id=33329 ...plus non-power-of-2 sizes, so we can see what that looks like currently or if expanded. llvm-svn: 304979
* [libclang] Expose typedef and address space functionsSven van Haastregt2017-06-085-1/+63
| | | | | | | | | | | | Expose the following functions: - clang_getTypedefName - clang_getAddressSpace Patch by Simon Perretta. Differential Revision: https://reviews.llvm.org/D33598 llvm-svn: 304978
* [clang-tidy] New checker to replace dynamic exception specificationsAlexander Kornienko2017-06-0810-0/+490
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: New checker to replace dynamic exception specifications This is an alternative to D18575 which relied on reparsing the decl to find the location of dynamic exception specifications, but couldn't deal with preprocessor conditionals correctly without reparsing the entire file. This approach uses D20428 to find dynamic exception specification locations and handles all cases correctly. Reviewers: aaron.ballman, alexfh Reviewed By: aaron.ballman, alexfh Subscribers: xazax.hun, mgehre, malcolm.parsons, mgorny, JDevlieghere, cfe-commits, Eugene.Zelenko, etienneb Patch by Don Hinton! Differential Revision: https://reviews.llvm.org/D20693 llvm-svn: 304977
* Fix backtrace of noreturn functions situated at the end of a modulePavel Labath2017-06-0814-36/+136
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: When a call instruction is the last instruction in a function, the backtrace PC will point past the end of the function. We already had special code to handle that, but we did not handle the case where the PC ends up outside of the bounds of the module containing the function, which is a situation that occured in TestNoreturnUnwind on android for some arch/compiler combinations. I fix this by adding an argument to Address resolution code which states that we are ok with addresses pointing to the end of a module/section to resolve to that module/section. I create a reproducible test case for this situation by hand-crafting an executable which has a noreturn function at the end of a module. Reviewers: jasonmolenda, jingham Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D32022 llvm-svn: 304976
* InferAddressSpaces: Avoid assertion failure with replacing identicalNirav Dave2017-06-082-0/+43
| | | | | | | | | | | | | | | cloned constexpr Have cloneConstantExprWithNewAddressSpaces return nullptr when returning initial ConstantExpr. Reviewers: arsenm Subscribers: jholewinski, wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D33995 llvm-svn: 304975
* Fix a lot of typos. NFC.Michael Kruse2017-06-0829-83/+83
| | | | llvm-svn: 304974
* Regenerate testSimon Pilgrim2017-06-081-24/+24
| | | | llvm-svn: 304973
* This patch closes PR28513: an optimization of multiplication by different ↵Andrew V. Tischenko2017-06-085-361/+4334
| | | | | | | | constants. The initial patch was rejected: I fixed the issue and re-apply it. llvm-svn: 304972
* [ARM] GlobalISel: Add more tests. NFCDiana Picus2017-06-081-0/+149
| | | | | | | | Add a couple of tests to increase coverage for the TableGen'erated code, in particular for rules where 2 generic instructions may be combined into a single machine instruction. llvm-svn: 304971
* [BPI] Don't assume that strcmp returning >0 is more likely than <0John Brawn2017-06-086-16/+327
| | | | | | | | | | | | | | | | | | | | The zero heuristic assumes that integers are more likely positive than negative, but this also has the effect of assuming that strcmp return values are more likely positive than negative. Given that for nonzero strcmp return values it's the ordering of arguments that determines the sign of the result there's no reason to assume that's true. Fix this by inspecting the LHS of the compare and using TargetLibraryInfo to decide if it's strcmp-like, and if so only assume that nonzero is more likely than zero i.e. strings are more often different than the same. This causes a slight code generation change in the spec2006 benchmark 403.gcc, but with no noticeable performance impact. The intent of this patch is to allow better optimisation of dhrystone on Cortex-M cpus, but currently it won't as there are also some changes that need to be made to if-conversion. Differential Revision: https://reviews.llvm.org/D33934 llvm-svn: 304970
* XFAIL tuple deduction guide test on GCCEric Fiselier2017-06-081-0/+5
| | | | llvm-svn: 304969
* [Go] Subtypes functionAndrew Wilkins2017-06-082-0/+32
| | | | | | | | | | This patch adds LLVMGetSubtypes to Go API (as Type.Subtypes), tests included. Patch by Ekaterina Vaartis! Differential Revision: https://reviews.llvm.org/D33901 llvm-svn: 304968
* Add tests for class template deduction on std::tuple.Eric Fiselier2017-06-082-0/+160
| | | | llvm-svn: 304967
* Revert r304955 - Fix class template deduction for scoped_lock.Eric Fiselier2017-06-081-5/+0
| | | | | | | | Richard decided to fix these cases in Clang, even though they are representative of a larger problem for more complex cases. llvm-svn: 304966
OpenPOWER on IntegriCloud