summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* APInt: Slightly simplify countLeadingZerosSlowCase()Matthias Braun2016-02-151-19/+8
| | | | | | | | | We always clear the unused bits in the most signifant word so there is no need to mask them out in countLeadingZerosSlowCase(). Differential Revision: http://reviews.llvm.org/D16621 llvm-svn: 260911
* APInt: Further simplify APInt::EqualSlowCase as suggested by DuncanMatthias Braun2016-02-151-4/+1
| | | | llvm-svn: 260910
* Refinement of r260624. It is possible somebody might try to add to the mapJim Ingham2016-02-152-6/+24
| | | | | | | | while we are finalizing its elements. Prevent that. <rdar://problem/24554920> llvm-svn: 260909
* [X86] Remove now-dead variable and redundant assert. NFC.Ahmed Bougacha2016-02-151-2/+0
| | | | | | | The variable was made dead in NDEBUG by r260901, but the assert was redundant anyway: get rid of both. llvm-svn: 260908
* Fix typo in LiveIntervalTestMatthias Braun2016-02-151-1/+1
| | | | llvm-svn: 260907
* LiveIntervalAnalysis: Support moving of subregister defs in handleMoveMatthias Braun2016-02-151-34/+153
| | | | | | | | | | | | | | | | | | | This is an updated version which fixes a bug that happened with uses tied to an earlyclobber operand which end at an unusual slotindex. If two definitions write to independent subregisters then they can be put in any order. LiveIntervalAnalysis::handleMove() did not support this previously because it looks like moving a definition of a vreg past another one. This is a modified version of a patch proposed (two years ago) by Vincent Lejeune! This version does not touch the read-undef flags and is extended for the case of moving a subregister def behind all uses - this can happen for subregister defs that are completely unused. Differential Revision: http://reviews.llvm.org/D9067 llvm-svn: 260906
* Add unittest for LiveIntervalAnalysis::handleMove()Matthias Braun2016-02-153-0/+319
| | | | llvm-svn: 260905
* MachineVerifier: Add parameter to choose if MachineFunction::verify() abortsMatthias Braun2016-02-152-13/+18
| | | | | | | The abort on error behaviour is unpractical for debugger and unittest usage. llvm-svn: 260904
* [NFC] Fixing naming convention, lowercase start of function name.Colin LeMahieu2016-02-156-33/+33
| | | | llvm-svn: 260903
* [Hexagon] Wrapping all MCExprs inside MCOperands within HexagonMCExpr to ↵Colin LeMahieu2016-02-158-92/+169
| | | | | | simplify handling and allow flags on the expression. llvm-svn: 260902
* [CodeGen] Document and use getConstant's splat-building feature. NFC.Ahmed Bougacha2016-02-156-98/+55
| | | | | | Differential Revision: http://reviews.llvm.org/D17229 llvm-svn: 260901
* [X86][SSE2] Regenerated sse2 testsSimon Pilgrim2016-02-151-2/+2
| | | | llvm-svn: 260900
* [ScheduleDAGInstrs] isUnsafeMemoryObject() removedJonas Paulsson2016-02-151-36/+5
| | | | | | | | | | | This function was basically useless, since volatile memacesses or MIs with unmodelled sideffects become global memory objects, and the other little checks are also done elsewhere. Reviewed by Andy Trick http://reviews.llvm.org/D16881 llvm-svn: 260899
* Darwin: fix stdlib handling when CLANG_DEFAULT_STDLIB is setTim Northover2016-02-152-1/+1
| | | | | | | | | I'd accidentally skipped the CMake check in a premature optimisation. I'd also put the original test in completely the wrong place. Thanks Jonas Hahnfeld! llvm-svn: 260898
* [Hexagon] Missed testcase update in r260895Krzysztof Parzyszek2016-02-151-1/+1
| | | | llvm-svn: 260897
* [mips] Implemented the .hword directive.Scott Egerton2016-02-153-3/+14
| | | | | | | | | | | | | | Summary: In order to pass the tests, this required marking R_MIPS_16 relocations as needing to point to the symbol and not the section. Reviewers: vkalintiris, dsanders Subscribers: dsanders, llvm-commits Differential Revision: http://reviews.llvm.org/D17200 llvm-svn: 260896
* [Hexagon] Use zero-extending loads for anyextKrzysztof Parzyszek2016-02-152-7/+7
| | | | llvm-svn: 260895
* [LV] Add support for insertelt/extractelt processing during type truncationSilviu Baranga2016-02-152-0/+61
| | | | | | | | | | | | | | | | | | Summary: While shrinking types according to the required bits, we can encounter insert/extract element instructions. This will cause us to reach an llvm_unreachable statement. This change adds support for truncating insert/extract element operations, and adds a regression test. Reviewers: jmolloy Subscribers: mzolotukhin, llvm-commits Differential Revision: http://reviews.llvm.org/D17078 llvm-svn: 260893
* Tweak the LICM code to reuse the first sub-loop instead of creating a new oneRoman Gareev2016-02-151-14/+32
| | | | | | | | | | | | | LICM starts with an *empty* AST, and then merges in each sub-loop. While the add code is appropriate for sub-loop 2 and up, it's utterly unnecessary for sub-loop 1. If the AST starts off empty, we can just clone/move the contents of the subloop into the containing AST. Reviewed-by: Philip Reames <listmail@philipreames.com> Differential Revision: http://reviews.llvm.org/D16753 llvm-svn: 260892
* [X86] More thorough partial-register division checksSimon Pilgrim2016-02-151-1/+34
| | | | | | For when grep counts are just not enough... llvm-svn: 260891
* [X86] Regenerated 64/128 bit multiply testsSimon Pilgrim2016-02-152-3/+35
| | | | llvm-svn: 260890
* [X86][SSE] More thorough testing of all-ones vectors re-materializationSimon Pilgrim2016-02-151-5/+134
| | | | llvm-svn: 260889
* [X86][SSE] Regenerated uint2fp special case testsSimon Pilgrim2016-02-152-16/+30
| | | | llvm-svn: 260888
* Make llvm/test/tools/llvm-symbolizer/pdb/pdb.test Py3-compatible.NAKAMURA Takumi2016-02-151-1/+1
| | | | llvm-svn: 260887
* [FIX] Check the next base pointer for possible invariant loadsJohannes Doerfert2016-02-153-5/+166
| | | | | | | | | | A load can only be invariant if its base pointer is invariant too. To this end, we check if the base pointer is defined inside the region or outside. In the former case we recursively check if we can (and therefore will) hoist the base pointer too. Only if that happends we can hoist the load. llvm-svn: 260886
* [X86][SSE] Regenerated fast isel intrinsics testsSimon Pilgrim2016-02-153-10/+11
| | | | llvm-svn: 260885
* Revert "[FIX] Hoist accesses if AA stated they are invariant"Johannes Doerfert2016-02-153-161/+0
| | | | | | | | | This reverts commit 98efa006c96ac981c00d2e386ec1102bce9f549a. The fix was broken since we do not use AA in the ScopDetection anymore to check for invariant accesses. llvm-svn: 260884
* [compiler-rt] Fix test failures when switching default C++ libraryJonas Hahnfeld2016-02-153-2/+3
| | | | | | | | | | 1. Add two explicit -stdlib=libstdc++ in conjunction with -static-libstdc++ 2. Pass -nostdinc++ when adding include paths for libc++ built for tsan. This prevents clang finding the headers twice which would confuse #include_next Differential Revision: http://reviews.llvm.org/D17189 llvm-svn: 260883
* PR26449: Tests for builtin_classify_type fixAndrey Bokhanko2016-02-152-0/+96
| | | | | | | | | In my previous commit (rL260881) I forget to svn add tests. This commit adds them. Differential Revision: http://reviews.llvm.org/D16846 llvm-svn: 260882
* PR26449: Fixes for bugs in __builtin_classify_type implementationAndrey Bokhanko2016-02-151-30/+126
| | | | | | | | | | | | | | | This patch fixes the following bugs in __builtin_classify_type implementation: 1) Support for member functions and fields 2) Same behavior as GCC in C mode (specifically, return integer_type_class for enums and pointer_type_class for function pointers and arrays). Behavior in C++ mode didn't changed. Also, it refactors the whole implementation, by replacing a sequence of if-else-if with a couple of switches. Differential Revision: http://reviews.llvm.org/D16846 llvm-svn: 260881
* Reverted r260879 as it caused test failures in lld.Scott Egerton2016-02-152-3/+3
| | | | llvm-svn: 260880
* [mips] Removed the SHF_ALLOC flag from the .pdr section.Scott Egerton2016-02-152-3/+3
| | | | | | | | | | | | | | | | | Summary: This section is used for debug information and has no need to be in memory at runtime. With this patch, LLVM now emits the same flags as the GNU assembler. This patch also fixes an error when compiling the Linux kernel, The error is that there are relocations within the .pdr section in a VDSO. Reviewers: vkalintiris, dsanders Subscribers: llvm-commits, dsanders Differential Revision: http://reviews.llvm.org/D17199 llvm-svn: 260879
* AVX512: Change store size of kmask. Store size of v8i1, v4i1 , v2i1 and i1 ↵Igor Breger2016-02-155-24/+170
| | | | | | | | | | are changed to 16 bits. If KMOVB not supported (require AVX512DQ) only KMOVW can be used so store size should be 2 bytes. Differential Revision: http://reviews.llvm.org/D17138 llvm-svn: 260878
* [OPENMP] Remove extra sync barriers for 'firstprivate' clause.Alexey Bataev2016-02-155-43/+40
| | | | | | | Sync barrier will be emitted after generation of firstprivate variables only if one of the firstprivate vars is used in lastprivate clause. llvm-svn: 260877
* Fixed non-NULL terminating array bug in SanitizerCommon.StartSubprocessTest ↵Zia Ansari2016-02-151-1/+1
| | | | | | | | that caused them to fail sometimes and act flaky. Differential Revision: http://reviews.llvm.org/D17228 llvm-svn: 260876
* Minor code cleanups. NFC.Junmo Park2016-02-151-1/+1
| | | | llvm-svn: 260875
* clangIndex requires LLVMIR as Core, since r260858 uses llvm/IR.NAKAMURA Takumi2016-02-151-0/+1
| | | | llvm-svn: 260874
* [clang-tidy] ClangTidy check to flag uninitialized builtin and pointer fields.Felix Berger2016-02-158-0/+475
| | | | | | | | | | | | | | | | | | | | | Summary: This patch is a continuation of http://reviews.llvm.org/D10553 by Jonathan B Coe. The main additions are: 1. For C++11 the check suggests in-class field initialization as fix. This makes the fields future proof towards the addition of new constructors. 2 For older language versions the fields are added in the right position in the initializer list with more tests. 3. User documentation. Reviewers: alexfh, jbcoe Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D16517 llvm-svn: 260873
* Add isAnyPointer() matchers. Register missing matchers.Felix Berger2016-02-153-0/+23
| | | | | | | | | | | | | Summary: The isAnyPointer() matcher is useful for http://reviews.llvm.org/D15623. Reviewers: alexfh, klimek Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D15819 llvm-svn: 260872
* ELF: silence -Wcast-qual warnings from GCCSaleem Abdulrasool2016-02-151-2/+2
| | | | | | Silence 4 -Wcast-qual warnings from GCC 5.1. NFC. llvm-svn: 260871
* [clang-tidy] Only invoke ForRangeCopyCheck on expensive-to-copy types.Felix Berger2016-02-152-3/+31
| | | | | | | | | | | | | | Summary: Fix oversight not checking the value of the Optional<bool> returned by isExpensiveToCopy(). Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D17064 llvm-svn: 260870
* Improve documentationFelix Berger2016-02-151-2/+2
| | | | llvm-svn: 260869
* ExpressionParser: silence some GCC warningsSaleem Abdulrasool2016-02-152-2/+2
| | | | | | | Silence a -Wreorder warning about order of member initialization and a -Wqual-cast warning about casting away constness. NFC. llvm-svn: 260868
* Sema: prevent assertion on stack return checkingSaleem Abdulrasool2016-02-152-2/+26
| | | | | | | | | | | | | | In the case that the array indexing itself is within a type dependent context, bail out of the evaluation. We would previously try to symbolically evaluate the expression which would then try to evaluate a non-address expression as an address, triggering an assertion in Asserts builds. We only need to consider the array subscript expression itself as in the case that the base itself being type dependent is handled appropriately in EvalAddr. Resolves PR26599. llvm-svn: 260867
* [AST/index] Introduce an option 'SuppressTemplateArgsInCXXConstructors' in ↵Argyrios Kyrtzidis2016-02-157-7/+53
| | | | | | | | | | printing policy. Enable it for USRs and names when indexing. Forward references can have different template argument names; including them makes USRs and names unstable, since the name depends on whether we saw a forward reference or not. llvm-svn: 260866
* silence -Wreturn-type warningsSaleem Abdulrasool2016-02-153-0/+7
| | | | | | | | These codepaths would generate warnings with GCC on linux even though the switch was covered. Add llvm_unreachable markers to indicate that the switch should be covered. NFC. llvm-svn: 260865
* Sema: constify EvalAddr, EvalValSaleem Abdulrasool2016-02-151-139/+146
| | | | | | | Propagate const throughout these methods as they are non-mutating analyzers of state. NFC. llvm-svn: 260864
* [Refactor] Eliminate the global variable "InsnToMemAcc".Hongbin Zheng2016-02-154-21/+43
| | | | | | | | | Eliminate the global variable "InsnToMemAcc" to make Scop/ScopInfo become more protable, such that we can safely use them in a CallGraphSCC pass. Differential Revision: http://reviews.llvm.org/D17238 llvm-svn: 260863
* [FIX] Hoist accesses if AA stated they are invariantJohannes Doerfert2016-02-143-0/+161
| | | | | | | | | | Before this patch it could happen that we did not hoist a load that was a base pointer of another load even though AA already declared the first one as invariant (during ScopDetection). If this case arises we will now skipt the "can be overwriten" check because in this case the over-approximating nature causes us to generate broken code. llvm-svn: 260862
* [test/Index] Set a specific target for the test.Argyrios Kyrtzidis2016-02-141-1/+1
| | | | llvm-svn: 260861
OpenPOWER on IntegriCloud