summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [X86] Skip over DEBUG_VALUE while looking for start of call sequenceMichael Kuperstein2016-12-072-3/+58
| | | | | | | | | | | If we don't skip over DEBUG_VALUEs, we get differences between -g and non-g code. This fixes PR31242. Differential Revision: https://reviews.llvm.org/D27485 llvm-svn: 288965
* [X86] Do not assume "ri" instructions always have an immediate operandMichael Kuperstein2016-12-073-3/+28
| | | | | | | | | | | The second operand of an "ri" instruction may be an immediate, but it may also be a globalvariable, so we should make any assumptions. This fixes PR31271. Differential Revision: https://reviews.llvm.org/D27481 llvm-svn: 288964
* Fix the apple build issue caused by r288956Chris Bieneman2016-12-071-1/+1
| | | | | | Should be checking if HAVE_CRASHREPORTERCLIENT_H is defined not relying on it having a value. llvm-svn: 288963
* [CUDA] Improve target attribute checking for function templates.Artem Belevich2016-12-0710-70/+247
| | | | | | | | | | | | * __host__ __device__ functions are no longer considered to be redeclarations of __host__ or __device__ functions. This prevents unintentional merging of target attributes across them. * Function target attributes are not considered (and must match) during explicit instantiation and specialization of function templates. Differential Revision: https://reviews.llvm.org/D25809 llvm-svn: 288962
* Revert "[CMake] Use cmakedefine01 instead of cmakedefine"Chris Bieneman2016-12-071-1/+1
| | | | | | | | This reverts commit r288959. Apparently using cmakedefine01 explodes. llvm-svn: 288961
* [builtin] Add Thumb1 implementation for idivsi3 and aeabi_idivmodWeiming Zhao2016-12-072-0/+29
| | | | | | | | | | | | | | Summary: For idivsi3, convert the Thumb2 only instruction to thumb1. For aeabi_idivmod, using __divsi3. Reviewers: rengolin, compnerd Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D27472 llvm-svn: 288960
* [CMake] Use cmakedefine01 instead of cmakedefineChris Bieneman2016-12-071-1/+1
| | | | | | Looks like we need a 01 value for HAVE_CRASHREPORTERCLIENT_H. llvm-svn: 288959
* [InstCombine] add tests for smin+icmp; NFCSanjay Patel2016-12-071-0/+357
| | | | | | | | The tests that already work are folded in InstSimplify, so those tests should be redundant and we can remove them if they don't seem worthwhile for completeness. llvm-svn: 288957
* [CMake] Add a check for HAVE_CRASHREPORTERCLIENT_HChris Bieneman2016-12-072-1/+2
| | | | | | The CMake build has been hardcoding this to undef forever, we shouldn't have been doing that. llvm-svn: 288956
* [ObjectYAML] Support for DWARF __debug_abbrev sectionChris Bieneman2016-12-076-3/+571
| | | | | | This patch adds support for round-tripping DWARF debug abbreviations through the obj<->yaml tools. llvm-svn: 288955
* [builtin] for the condition for check __ARM_FEATURE_CLZWeiming Zhao2016-12-071-3/+2
| | | | | | | | | | | | Summary: Since CLZ is not available for Thumb1, we use __ARM_ARCH_ISA_THUMB != 1 as one of the conditions. Reviewers: rnk, compnerd, rengolin Subscribers: aemerson, rengolin, llvm-commits Differential Revision: https://reviews.llvm.org/D27530 llvm-svn: 288954
* [asan] Disable yet another unstable test under AArch64Renato Golin2016-12-071-0/+1
| | | | llvm-svn: 288953
* [SelectionDAG] Add knownbits support for vector demandedelts in ↵Simon Pilgrim2016-12-072-12/+6
| | | | | | SMAX/SMIN/UMAX/UMIN opcodes llvm-svn: 288926
* Add unittests for foreach(Elt|Piece). NFC.Michael Kruse2016-12-071-0/+107
| | | | llvm-svn: 288925
* Add more ISL foreachElt functions. NFC.Michael Kruse2016-12-072-0/+62
| | | | | | | Add and implement foreachElt for isl_map, isl_set and isl_union_set. These are used by an out-of-tree patch which is in process of being upstreamed. llvm-svn: 288924
* [RecursiveASTVisitor] Fix post-order traversal of UnaryOperatorMalcolm Parsons2016-12-072-3/+9
| | | | | | | | | | Reviewers: aaron.ballman, klimek, doug.gregor, teemperor, rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26742 llvm-svn: 288923
* [analyzer] Fix typo in nullability checker diagnosticDevin Coughlin2016-12-071-1/+1
| | | | | | 'infered' --> 'inferred' llvm-svn: 288922
* ELF/AArch64: Refactor R_AARCH64_LDST{8,15,32,64,128}_ABS_LO12_NC RelocationsAdhemerval Zanella2016-12-071-12/+20
| | | | | | | | | | | | | | This patch refactor how to apply the R_AARCH64_LDST{8,16,32,64,128}_ABS_NC relocations by adding a new function to correct extract the bits expected by each relocation. This make is explicit which are the bits range expected and simplify the code to mask and shift the deriable values. It also fixes the R_AARCH64_LDST128_ABS_LO12_NC mask, although in pratice the mask/shift always returns a 16 bytes aligned value. Checked on AArch64 and with test-suite. llvm-svn: 288921
* [X86] Add knownbits vector UMAX testSimon Pilgrim2016-12-071-0/+31
| | | | | | In preparation for demandedelts support llvm-svn: 288920
* [change-namespace] don't fix using shadow decls in classes.Eric Liu2016-12-072-10/+54
| | | | | | | | | | | | | | Summary: Using shadow declarations in classes always refers to base class, which does not need to be fixed/qualified since it can be inferred from inheritance. Reviewers: bkramer Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D27523 llvm-svn: 288919
* [X86][SSE] Remove AND -> VZEXT combineSimon Pilgrim2016-12-071-92/+0
| | | | | | | | | | This is now performed more generally by the target shuffle combine code. Already covered by tests that were originally added in D7666/rL229480 to support combineVectorZext (or VectorZextCombine as it was known then....). Differential Revision: https://reviews.llvm.org/D27510 llvm-svn: 288918
* [analyzer] Remove an unused enum value in RetainCountChecker.Artem Dergachev2016-12-072-16/+11
| | | | | | | | No functional change intended. Differential Revision: https://reviews.llvm.org/D27408 llvm-svn: 288917
* [SelectionDAG] Add knownbits support for EXTRACT_VECTOR_ELT opcodesSimon Pilgrim2016-12-072-10/+38
| | | | llvm-svn: 288916
* Add IslPtr type traits. NFC.Michael Kruse2016-12-072-1/+5
| | | | | | | | | | Add traits for isl_id and isl_multi_aff, required by out-of-tree patches currently in progress of upstreaming. isl_union_pw_aff_dump has been added to ISL during one of the last ISL updates, such that we can also enable its dump() trait. llvm-svn: 288915
* [analyzer] pr31226: Disable CastSizeChecker in C++ because it's not quite ready.Artem Dergachev2016-12-072-3/+27
| | | | | | | | Avoids a crash and a related false positive. Investigation by Daniel Krupp! llvm-svn: 288914
* [SelectionDAG] Removed old knownbits TODO comment. NFCI.Simon Pilgrim2016-12-071-3/+0
| | | | | | EXTRACT_VECTOR_ELT does support demanded elts if the element index is known and in range. llvm-svn: 288913
* [X86] Add test to show missed opportunities to calculate knownbits in ↵Simon Pilgrim2016-12-071-0/+37
| | | | | | INSERT_VECTOR_ELT llvm-svn: 288912
* [X86][SSE] Fix vpextrd/vpextrq checksSimon Pilgrim2016-12-071-2/+2
| | | | | | They were testing for the pre-vex versions llvm-svn: 288911
* [X86][SSE] Force execution domain of 32-bit extractps/pextrd in the stack ↵Simon Pilgrim2016-12-074-14/+22
| | | | | | folding tests llvm-svn: 288910
* [LV] Scalarize operands of predicated instructionsMatthew Simpson2016-12-076-14/+539
| | | | | | | | | | | | | | | | | | | | | | This patch attempts to scalarize the operand expressions of predicated instructions if they were conditionally executed in the original loop. After scalarization, the expressions will be sunk inside the blocks created for the predicated instructions. The transformation essentially performs un-if-conversion on the operands. The cost model has been updated to determine if scalarization is profitable. It compares the cost of a vectorized instruction, assuming it will be if-converted, to the cost of the scalarized instruction, assuming that the instructions corresponding to each vector lane will be sunk inside a predicated block, possibly avoiding execution. If it's more profitable to scalarize the entire expression tree feeding the predicated instruction, the expression will be scalarized; otherwise, it will be vectorized. We only consider the cost of the entire expression to accurately estimate the cost of the required insertelement and extractelement instructions. Differential Revision: https://reviews.llvm.org/D26083 llvm-svn: 288909
* [change-namespace] move template class forward-declarations and don't move ↵Eric Liu2016-12-073-7/+73
| | | | | | | | | | | | | | | | | | fwd-decls in classes. Summary: Forward declarations in moved namespaces should be moved back to the old namespaces. We should also move template class forward declarations. Also fix a bug that moves forward declarations of nested classes. Reviewers: bkramer Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D27515 llvm-svn: 288908
* Try unbreaking the MSVC build.Benjamin Kramer2016-12-071-1/+1
| | | | llvm-svn: 288907
* [X86][SSE] Regenerate test.Simon Pilgrim2016-12-071-3/+13
| | | | llvm-svn: 288906
* [AVR] Expand 'SELECT_CC' nodes whereever possibleDylan McKay2016-12-072-4/+2
| | | | llvm-svn: 288905
* [LowerTypeTests] Use the TrailingObjects infrastructure for trailing objects.Benjamin Kramer2016-12-071-6/+10
| | | | | | Also avoid allocating ~3x as much memory as needed. llvm-svn: 288904
* When GVN removes a redundant load, it should not modify the debug location ↵Andrea Di Biagio2016-12-072-1/+56
| | | | | | | | | | | | | | | of the dominating load. In the case of a fully redundant load LI dominated by an equivalent load V, GVN should always preserve the original debug location of V. Otherwise, we risk to introduce an incorrect stepping. If V has debug info, then clearly it should not be modified. If V has a null debugloc, then it is still potentially incorrect to propagate LI's debugloc because LI may not post-dominate V. Differential Revision: https://reviews.llvm.org/D27468 llvm-svn: 288903
* [X86][SSE] Consistently set MOVD/MOVQ load/store/move instructions to ↵Simon Pilgrim2016-12-0715-124/+140
| | | | | | | | | | integer domain We are being inconsistent with these instructions (and all their variants.....) with a random mix of them using the default float domain. Differential Revision: https://reviews.llvm.org/D27419 llvm-svn: 288902
* [InlineFunction] Refactor code in function `fixupLineNumbers' as suggested ↵Andrea Di Biagio2016-12-071-16/+18
| | | | | | by David in D27462. NFC llvm-svn: 288901
* [mips][rtdyld] Merge code to write relocated values to the section. NFCSimon Dardis2016-12-072-126/+111
| | | | | | | | | | | | Preparation work for implementing N32 support. Patch By: Daniel Sanders Reviewers: vkalintiris, atanasyan Differential Revision: https://reviews.llvm.org/D27460 llvm-svn: 288900
* [AVR] Move a pseudo expansion test into a folderDylan McKay2016-12-071-0/+0
| | | | llvm-svn: 288899
* [X86][XOP] Fix VPERMIL2 non-constant pool shuffle decoding (PR31296)Simon Pilgrim2016-12-072-8/+16
| | | | | | | | The non-constant pool version of DecodeVPERMIL2PMask was not offsetting correctly for the second input. I've updated the code to match the implementation in the constant-pool version. Annoyingly this bug was hidden for so long as it's tricky to combine to useful variable shuffle masks that don't become constant-pool entries. llvm-svn: 288898
* [AVR] Allow loading from stack slots where src and dest registers are identicalDylan McKay2016-12-076-64/+81
| | | | | | Fixes PR 31256 llvm-svn: 288897
* Implement the -Wstrict-prototypes warningAlex Lorenz2016-12-075-0/+114
| | | | | | | | | | | | | | | This commit fixes PR20796. It implements the C only -Wstrict-prototypes warning. Clang now emits a warning for function declarations which have no parameters specified and for K&R function definitions with more than 0 parameters that are not preceded by a previous prototype declaration. The patch was originally submitted by Paul Titei! rdar://15060615 Differential Revision: https://reviews.llvm.org/D16533 llvm-svn: 288896
* [InlineFunction] Do not propagate the callsite debug location to ↵Andrea Di Biagio2016-12-072-3/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | instructions inlined from functions with debug info. When a function F is inlined, InlineFunction extends the debug location of every instruction inlined from F by adding an InlinedAt. However, if an instruction has a 'null' debug location, InlineFunction would propagate the callsite debug location to it. This behavior existed since revision 210459. Revision 210459 was originally committed specifically to workaround the lack of debug information for instructions inlined from intrinsic functions (which are usually declared with attributes `__always_inline__, __nodebug__`). The problem with revision 210459 is that it doesn't make any sort of distinction between instructions inlined from a 'nodebug' function and instructions which are inlined from a function built with debug info. This issue may lead to incorrect stepping in the debugger. This patch works under the assumption that a nodebug function does not have a DISubprogram. When a function F is inlined into another function G, InlineFunction checks if F has debug info associated with it. For nodebug functions, the InlineFunction logic is unchanged (i.e. it would still propagate the callsite debugloc to the inlined instructions). Otherwise, InlineFunction no longer propagates the callsite debug location. Differential Revision: https://reviews.llvm.org/D27462 llvm-svn: 288895
* [PM] Add some more logging to make it more clear when the CGSCCChandler Carruth2016-12-071-2/+14
| | | | | | infrastrucutre is skipping SCCs and RefSCCs. llvm-svn: 288894
* [ObjC++] Don't enter a C++ declarator scope when the current context isAlex Lorenz2016-12-073-0/+48
| | | | | | | | | | | | | | | an Objective-C declaration This commit ensures that Sema won't enter a C++ declarator scope when the current context is an Objective-C declaration. This prevents an assertion failure in EnterDeclaratorContext that's used to ensure that current context will be restored correctly after exiting the declarator context. rdar://20560175 Differential Revision: https://reviews.llvm.org/D26922 llvm-svn: 288893
* Compilation database test: don't try to output to CWDSam McCall2016-12-071-4/+5
| | | | | | | | | | | | | | | Summary: Write output from compilation database test to %T rather than the working dir. Sometimes CWD isn't writable! Also specify no-canonical-prefixes so that clang has 'clang' in the name. Reviewers: bkramer Subscribers: joerg, cfe-commits Differential Revision: https://reviews.llvm.org/D27504 llvm-svn: 288892
* [OpenCL] Added a LIT test for ensuring address space mangling is done the ↵Alexey Bader2016-12-071-0/+14
| | | | | | | | | | | | | | same both in OpenCL1.2 and OpenCL2.0. Patch by Egor Churaev (echuraev). Reviewers: Anastasia Subscribers: yaxunl, cfe-commits, bader Differential Revision: https://reviews.llvm.org/D27403 llvm-svn: 288891
* [OpenCL] Fix SPIR version generation.Alexey Bader2016-12-072-11/+16
| | | | | | | | | | | | Patch by Egor Churaev (echuraev). Reviewers: Anastasia Subscribers: bader, yaxunl, cfe-commits Differential Revision: https://reviews.llvm.org/D27300 llvm-svn: 288890
* Reintroduce a check accidentally removed in 288873 to fix clang botsPhilip Reames2016-12-071-4/+12
| | | | | | I believe this is the cause of the failure, but have not been able to confirm. Note that this is a speculative fix; I'm still waiting for a full build to finish as I synced and ended up doing a clean build which takes 20+ minutes on my machine. llvm-svn: 288886
OpenPOWER on IntegriCloud