summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Attempt to workaround MSVC build issue where I suspect an enum class ↵David Blaikie2017-01-161-1/+2
| | | | | | | | | constant 0 is considered a possible null pointer I can't reproduce this so far with web compilers, so throwing this at the bots to see if it sticks. llvm-svn: 292155
* [PowerPC] Expand ISEL instruction into if-then-else sequence.Tony Jiang2017-01-1632-39/+1618
| | | | | | | | | Generally, the ISEL is expanded into if-then-else sequence, in some cases (like when the destination register is the same with the true or false value register), it may just be expanded into just the if or else sequence. llvm-svn: 292154
* [InstCombine] fix names in canEvaluateShiftedShift(); NFCSanjay Patel2017-01-161-27/+26
| | | | | | | | It's not clear what 'First' and 'Second' mean, so use 'Inner' and 'Outer' to match foldShiftedShift() and add comments with formulas, so it's easier to see what's going on. llvm-svn: 292153
* Make sym_check python 3 compatibleEric Fiselier2017-01-161-3/+24
| | | | llvm-svn: 292152
* [InstCombine] use m_APInt to allow shift-shift folds for vectors with splat ↵Sanjay Patel2017-01-163-31/+25
| | | | | | | | constants Some existing 'FIXME' tests are still not folded because of splat holes in value tracking. llvm-svn: 292151
* [InstCombine] add tests to show missed vector folds; NFCSanjay Patel2017-01-161-7/+82
| | | | | | | The shift-shift possibilities became easier to see after: https://reviews.llvm.org/rL292145 llvm-svn: 292150
* PR31650: Refer to enum constant when initializing llvm::None constantDavid Blaikie2017-01-161-1/+1
| | | | llvm-svn: 292149
* [NVPTX] Add blank line to NVPTXUsage.rst to appease the Sphinx.Justin Lebar2017-01-161-0/+1
| | | | | | | | | | | Fixes: Warning, treated as error: /home/buildbot/llvm-build-dir/llvm-sphinx-docs/llvm/src/docs/NVPTXUsage.rst:333: ERROR: Error in "code-block" directive: maximum 1 argument(s) allowed, 17 supplied. llvm-svn: 292148
* Add test showing the update of access functions with in-scop defined base ptrsTobias Grosser2017-01-162-0/+95
| | | | | | | | | This feature is currently not supported and an explicit assert to prevent the introduction of such accesses has been added in r282893. This test case allows to reproduce the assert (and without the assert the miscompile) added in r282893. It will help when adding such support at some point. llvm-svn: 292147
* Give priority to linker scripts over preemption.Rafael Espindola2017-01-164-15/+31
| | | | | | | | | | | | LLD exports symbols that are also present in used shared libraries to make sure they are preempted at runtime. That is a reasonable default, but we must allow for it to be overwritten with linker script. If we don't, libraries that expect to be able to hide a c++ delete operator will fail. This should fix the firebird build. llvm-svn: 292146
* [InstCombine] refactor shift-of-shift folds; NFCISanjay Patel2017-01-161-83/+66
| | | | | | Reduces code duplication and makes it easier to extend these folds for vectors. llvm-svn: 292145
* [InstCombine][SSE] Tests showing missed opportunities to pass demanded elts ↵Simon Pilgrim2017-01-161-0/+129
| | | | | | through a packss/packus truncation llvm-svn: 292144
* [llvm-xray] Fix android buildPavel Labath2017-01-161-1/+2
| | | | | | | | | std::to_string is not available in the android ndk. Using llvm::to_string instead. Committing as obvious. llvm-svn: 292143
* [AArch64] Falkor supports Rounding Double Multiply Add/Subtract instructions.Chad Rosier2017-01-165-4/+13
| | | | | | | | | | Falkor only partially implements the ARMv8.1a extensions, so this patch refactors the support for the SQRDML[A|S]H instruction into a separate feature. Differential Revision: https://reviews.llvm.org/D28681 llvm-svn: 292142
* [StaticAnalyzer] Fix android buildPavel Labath2017-01-161-1/+2
| | | | | | | | std::to_string is not available in the android NDK. Use llvm::to_string instead. Committing as obvious. llvm-svn: 292141
* ScopInfo: document base pointers in alias-checks must be invariant [NFC]Tobias Grosser2017-01-161-0/+5
| | | | | | | | | Before this change, this code has been mixed with a check for non-affine loops (and when originally introduce was also duplicated). By creating a separate loop and explicitly documenting this property, the current behavior becomes a lot more clear. llvm-svn: 292140
* ScopInfo: Improve comments in buildAliasGroup [NFC]Tobias Grosser2017-01-161-9/+9
| | | | llvm-svn: 292139
* ScopInfo: split out construction of a single alias group [NFC]Tobias Grosser2017-01-162-56/+77
| | | | | | | The loop body in buildAliasGroups is still too large to easily scan it. Hence, we split the loop body out into a separate function to improve readability. llvm-svn: 292138
* ScopInfo: Do not modify the original alias group [NFC]Tobias Grosser2017-01-161-37/+23
| | | | | | | | | | | Instead of modifying the original alias group and repurposing it as read-write access group when splitting accesses in read-only and read-write accesses, we just keep all three groups: the original alias group, the set of read-only accesses and the set of read-write accesses. This allows us to remove some complicated iterator handling and also allows for more code-reuse in calculateMinMaxAccess. llvm-svn: 292137
* Revert r292132: [globalisel] Tablegen-erate current Register Bank ↵Daniel Sanders2017-01-1616-437/+193
| | | | | | | | | Information'... Several buildbots encountered a crash in tablegen when building this commit. Reverting while I investigate the cause. llvm-svn: 292136
* Mark the dynamic-exception tests as unsupported under C++17, since it has no ↵Marshall Clow2017-01-165-4/+4
| | | | | | dynamic-exception specs. Also, remove a FIXME workaround from the config that allowed these tests to work under C++17. This addresses PR#31621. llvm-svn: 292135
* [OpenMP] Refactor code that calls codegen for target regions on the device.Arpith Chacko Jacob2017-01-163-54/+69
| | | | | | | | | | | | This patch refactors code that calls codegen for target regions. Currently the codebase only supports the 'target' directive. The patch pulls out common target processing code into a static function that can be called by codegen for any target directive. Reviewers: ABataev Differential Revision: https://reviews.llvm.org/D28752 llvm-svn: 292134
* Fix use-after-free bug in AffectedValueCallbackVH::allUsesReplacedWithHal Finkel2017-01-162-11/+21
| | | | | | | | | | | | | When transferring affected values in the cache from an old value, identified by the value of the current callback, to the specified new value we might need to insert a new entry into the DenseMap which constitutes the cache. Doing so might delete the current callback object. Move the copying logic into a new function, a member of the assumption cache itself, so that we don't run into UB should the callback handle itself be removed mid-copy. Differential Revision: https://reviews.llvm.org/D28749 llvm-svn: 292133
* [globalisel] Tablegen-erate current Register Bank InformationDaniel Sanders2017-01-1616-193/+437
| | | | | | | | | | | | | | Summary: Adds a RegisterBank tablegen class that can be used to declare the register banks and an associated tablegen pass to generate the necessary code. Reviewers: t.p.northover, ab, rovka, qcolombet Subscribers: aditya_nandakumar, rengolin, kristof.beyls, vkalintiris, mgorny, dberris, llvm-commits, rovka Differential Revision: https://reviews.llvm.org/D27338 llvm-svn: 292132
* Revert "[PowerPC] Expand ISEL instruction into if-then-else sequence."Tony Jiang2017-01-1632-1507/+39
| | | | | | This reverts commit 1d0e0374438ca6e153844c683826ba9b82486bb1. llvm-svn: 292131
* [SelectionDAG] Add knownbits support for BITREVERSE Simon Pilgrim2017-01-162-24/+9
| | | | llvm-svn: 292130
* [PowerPC] Expand ISEL instruction into if-then-else sequence.Tony Jiang2017-01-1632-39/+1507
| | | | | | | | | Generally, the ISEL is expanded into if-then-else sequence, in some cases (like when the destination register is the same with the true or false value register), it may just be expanded into just the if or else sequence. llvm-svn: 292128
* DWARFDebugInfoTest.cpp: Don't use ArrayRef with initializer. It was ↵NAKAMURA Takumi2017-01-161-3/+3
| | | | | | allocated locally. llvm-svn: 292127
* ScopInfo: No need to keep ReadOnlyAccesses in an additional map [NFC]Tobias Grosser2017-01-161-19/+17
| | | | | | | | | It seems over time we added an additional map that maps from the base address of a read-only access to the actual access. However this map is never used. Drop the creation and use of this map to simplify our alias check generation code. llvm-svn: 292126
* ScopInfo: no need to clear alias group explicitlyTobias Grosser2017-01-161-9/+3
| | | | | | | | The alias group will anyhow be cleared at the end of this function and is not used afterwards. We avoid an explicit clear() call at multiple places to improve readability of this code. llvm-svn: 292125
* Un-XFAIL test case after half support was added to PTX backend in r291956Tobias Grosser2017-01-161-2/+0
| | | | llvm-svn: 292124
* Adjust formatting to commit r292110 [NFC]Tobias Grosser2017-01-1610-43/+61
| | | | llvm-svn: 292123
* ScopInfo: Fold SmallVectors used in alias check generation back into loop [NFC]Tobias Grosser2017-01-161-4/+2
| | | | | | | | | | | | | Hoisting small vectors out of a loop seems to be a pure performance optimization, which is unlikely to have great impact in practice. As this hoisting just increases code-complexity, we fold the SmallVectors back into the loop. In subsequent commits, we will further simplify and structure this code, but we committed this change separately to provide an explanation to make clear that we purposefully reverted this optimization. llvm-svn: 292122
* ScopInfo: Extract out splitAliasGroupsByDomain [NFC]Tobias Grosser2017-01-162-16/+24
| | | | | | | The function buildAliasGroups got very large. We extract out the splitting of alias groups to reduce its size and to better document the current behavior. llvm-svn: 292121
* ScopInfo: Extract out buildAliasGroupsForAccesses [NFC]Tobias Grosser2017-01-162-19/+44
| | | | | | | | The function buildAliasGroups got very large. We extract out the actual construction of alias groups to reduce its size and to better document the current behavior. llvm-svn: 292120
* Ensure that clang -pthread creates the right macro. -D_POSIX_THREADSJoerg Sonnenberger2017-01-162-1/+7
| | | | | | seems to have been a C&P error from old GCC specs for OpenBSD. llvm-svn: 292119
* [X86][SSE] Test showing missing BITREVERSE knownbits supportSimon Pilgrim2017-01-161-0/+39
| | | | llvm-svn: 292118
* [mips] Correct c.cond.fmt instruction definition.Simon Dardis2017-01-1642-472/+957
| | | | | | | | | | | | | | | Permit explicit $fcc<X> operand in c.cond.fmt instruction. Add c.cond.fmt to the MIPS to microMIPS instruction mapping table. Check that $fcc1 - $fcc7 are unusable for MIPS-I to MIPS-III for c.cond.fmt, bc1t, bc1f. Reviewers: seanbruno, zoran.jovanovic, vkalintiris Differential Revision: https://reviews.llvm.org/D24510 llvm-svn: 292117
* Fix test failures after recent clang-format format change.Daniel Jasper2017-01-161-2/+2
| | | | llvm-svn: 292116
* Replace non-ASCII ellipsis with "..." to silence Sphinx warnings.Aaron Ballman2017-01-161-2/+2
| | | | llvm-svn: 292115
* [SelectionDAG] Add support for BITREVERSE constant foldingSimon Pilgrim2017-01-164-469/+53
| | | | | | We were relying on constant folding of the legalized instructions to do what constant folding we had previously llvm-svn: 292114
* Add -fstrict-vtable-pointers to UsersManualPiotr Padlewski2017-01-161-0/+7
| | | | | | | | | | | | | Summary: Add missing flag to UsersManual It would be good to merge it to 4.0 branch. Reviewers: hans Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D28727 llvm-svn: 292112
* [X86][SSE] Tests showing missing BITREVERSE constant foldingSimon Pilgrim2017-01-161-0/+512
| | | | llvm-svn: 292111
* clang-format: Always wrap before multi-line parameters/operands.Daniel Jasper2017-01-163-52/+78
| | | | | | | | | | | | | | | | | Before: aaaaaaaaaaaaaaaaaa(aaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaa); After: aaaaaaaaaaaaaaaaaa(aaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa:: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaa); No new test cases, as the existing ones cover this fairly well. llvm-svn: 292110
* [libcxx] Follow-up to r292107Asiri Rathnayake2017-01-161-5/+5
| | | | | | I've missed a couple of updates. NFC. llvm-svn: 292109
* [libcxx] Improve design documentation for the external-thread-libraryAsiri Rathnayake2017-01-161-7/+16
| | | | | | | | | | | configuration NFC. Differential revision: https://reviews.llvm.org/D28610 Reviewers: EricWF llvm-svn: 292108
* [libcxx] Don't assume __libcpp_thread_t is an integral typeAsiri Rathnayake2017-01-162-5/+20
| | | | | | | | | | | | | We have already refactored the underlying platform thread type into __libcpp_thread_t, but there are few places in the source where we still assume it is an integral type. This patch refactores those points back into the threading API. Differential revision: https://reviews.llvm.org/D28608 Reviewers: EricWF llvm-svn: 292107
* Fix windows unit testsPavel Labath2017-01-161-1/+1
| | | | | | | | | The unit test I added in the previous commit discovered a bug in PrependPathComponent on windows -- it was calling SetFile with the host native path syntax, whereas it should be explicitly specifying the path syntax (as AppendPathComponent does). This fixes it. llvm-svn: 292106
* Do not track the isl PDF manual in SVNTobias Grosser2017-01-162-0/+1
| | | | | | | | There is no point in regularly committing a binary file to the repository, as this just unnecessarily increases the repository size. Interested people can find the isl manual for example at isl.gforge.inria.fr/manual.pdf. llvm-svn: 292105
* [COFF] - Fixed format in writeOutSecLine()George Rimar2017-01-161-1/+2
| | | | | | | | | | | | The same as https://reviews.llvm.org/rL292102, fixes next testcases under msvs2015/win32: 25> Failing Tests (3): 25> lld :: COFF/lldmap.test 25> lld :: COFF/weak-external.test 25> lld :: COFF/weak-external3.test llvm-svn: 292104
OpenPOWER on IntegriCloud