summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [X86] Add a couple more unary shuffles to the sse1 shuffle test.Craig Topper2017-09-171-0/+18
| | | | | | These can be implemented with movlhps and movhlps. llvm-svn: 313503
* Fix two failing -verify tests to tolerate old and new clang versionsEric Fiselier2017-09-172-5/+5
| | | | llvm-svn: 313502
* Update changelog revisionEric Fiselier2017-09-171-1/+1
| | | | llvm-svn: 313501
* ABI: Fix for undefined "___cxa_deleted_virtual" symbol in MacOSXEric Fiselier2017-09-176-0/+30
| | | | | | | | | | | | | | | | | | | | | | Patch from Eddie Elizondo. Reviewed as D37830 (https://reviews.llvm.org/D37830). On MacOSX the following program: struct S { virtual void f() = delete; }; int main() { new S; } Fails with the following error: Undefined symbols for architecture x86_64: "___cxa_deleted_virtual" This adds a fix to export the needed symbols. Test: > lit -sv test/libcxx/language.support/cxa_deleted_virtual.pass.cpp > Testing Time: 0.21s > Expected Passes : 1 llvm-svn: 313500
* Fix failing -verify tests due to change in Clangs static_assert message.Eric Fiselier2017-09-1712-41/+41
| | | | | | | | Clang recently changed the way it outputs static assert diagnostics. This patch fixes libc++'s -verify tests so they tolerate both the old and new message format. llvm-svn: 313499
* Mark various failing tests with "UNSUPPORTED: ios".Kuba Mracek2017-09-1711-0/+26
| | | | llvm-svn: 313498
* [X86] Move even more of our CPU to feature mapping switch to use fallthroughsCraig Topper2017-09-171-44/+40
| | | | | | | | This arranges more of the Intel and AMD CPUs into fallthrough positions based on their features. We may be able to merge this new AMD set with the BTVER or BDVER sets but I didn't look that closely. Differential Revision: https://reviews.llvm.org/D37941 llvm-svn: 313497
* [X86] Synchronize a pattern between SSE1 and AVX/AVX512.Craig Topper2017-09-172-2/+2
| | | | | | | | For some reason the SSE1 pattern expected a X86Movlhps pattern to have a v4f32 type, but AVX and AVX512 expected it to have a v4i32 type. I'm not even sure this pattern is even reachable post SSE1, but I'm starting with fixing this obvious bug. llvm-svn: 313495
* [X86] Colocate all of the X86VBroadcast patterns for v2i64 and v2f64. NFCCraig Topper2017-09-171-7/+4
| | | | | | The memory patterns were near the MOVDDUP definition, but the non-memory patterns were near the broadcast instructions. llvm-svn: 313494
* [X86] Remove patterns for X86Movddup with v4i64 type. Lowering doesn't emit ↵Craig Topper2017-09-171-6/+0
| | | | | | these. llvm-svn: 313493
* [X86] Remove isel patterns for X86Movhlps and X86Movlhps with integer types. ↵Craig Topper2017-09-172-36/+0
| | | | | | Lowering doesn't emit these. llvm-svn: 313492
* [X86] Remove isel patterns for movlpd/movlps with integer types. Lowering ↵Craig Topper2017-09-172-37/+0
| | | | | | doesn't emit these. llvm-svn: 313491
* Adding test cases for PR34629 & PR34634.Jatin Bhateja2017-09-172-0/+119
| | | | | | Differential Revision: https://reviews.llvm.org/D37962 llvm-svn: 313490
* Revert "[ThinLTO] Avoid archive member collisions with old API"Johan Engelen2017-09-171-3/+1
| | | | | | This reverts commit r313488, because it breaks compilation on Android and breaks llvm-lto. llvm-svn: 313489
* [ThinLTO] Avoid archive member collisions with old APIJohan Engelen2017-09-171-1/+3
| | | | | | | | | | | | | | | | | | Summary: ld64 on OSX uses the old ThinLTOCodegenerator API. When two modules have the same name in an archive (valid archive), a name collision happens for the modules' buffer identifiers. This PR resolves this, by suffixing the module name with an increasing number such that the identifiers are guaranteed to be unique. For a similar fix in LLD, see https://reviews.llvm.org/D25495 Reviewers: mehdi_amini, tejohnson Reviewed By: mehdi_amini Subscribers: inglorion, eraman, llvm-commits Differential Revision: https://reviews.llvm.org/D37961 llvm-svn: 313488
* Fix the second half of PR34266: Don't implicitly capture '*this' if the ↵Faisal Vali2017-09-173-47/+229
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | members are found in a class unrelated to the enclosing class. https://bugs.llvm.org/show_bug.cgi?id=34266 For e.g. struct A { void f(int); static void f(char); }; struct B { auto foo() { return [&] (auto a) { A::f(a); // this should not cause a capture of '*this' }; } }; The patch does the following: 1) It moves the check to attempt an implicit capture of '*this' by reference into the more logical location of when the call is actually built within ActOnCallExpr (as opposed to when the unresolved-member-lookup node is created). - Reminder: A capture of '*this' by value has to always be an explicit capture. 2) It additionally checks whether the naming class of the UnresolvedMemberExpr ('A' in the example above) is related to the enclosing class ('B' above). P.S. If you have access to ISO-C++'s CWG reflector, see this thread for some potentially related discussion: http://lists.isocpp.org/core/2017/08/2851.php llvm-svn: 313487
* [RISCV] Add support for disassemblyAlex Bradbury2017-09-1711-1/+211
| | | | | | | | | This Disassembly support allows for 'round-trip' testing, and rv32i-valid.s has been updated appropriately. Differential Revision: https://reviews.llvm.org/D23567 llvm-svn: 313486
* [RISCV] Add support for all RV32I instructionsAlex Bradbury2017-09-178-17/+575
| | | | | | | | | | This patch supports all RV32I instructions as described in the RISC-V manual. A future patch will add support for pseudoinstructions and other instruction expansions (e.g. 0-arg fence -> fence iorw, iorw). Differential Revision: https://reviews.llvm.org/D23566 llvm-svn: 313485
* [GlobalISel][X86] refactoring X86InstructionSelector.cpp .NFC.Igor Breger2017-09-171-69/+76
| | | | llvm-svn: 313484
* [GlobalISel][X86] Legalize i1 G_ADD/G_SUB/G_MUL/G_XOR/G_OR/G_AND instructions.Igor Breger2017-09-1712-16/+297
| | | | llvm-svn: 313483
* Remove uses of deprecated std::not1.Benjamin Kramer2017-09-171-3/+3
| | | | | | | Lambdas are slightly more verbose, but also more readable. No functionality change intended. llvm-svn: 313482
* Remove uses of deprecated std::pointer_to_unary_function.Benjamin Kramer2017-09-171-3/+2
| | | | | | It's removed in C++17. No functionality change intended. llvm-svn: 313481
* [compiler-rt] Fix build break after r313277 on s390xUlrich Weigand2017-09-171-1/+1
| | | | | | | Commit r313277 moved IsStackOverflow to inside the SignalContext class, but didn't update a code block in #ifdef s390x accordingly. llvm-svn: 313480
* [GlobalISel][X86] Use correct physical register in mir tests.NFC.Igor Breger2017-09-1719-124/+122
| | | | llvm-svn: 313479
* [GlobalISel][X86] G_FCONSTANT support.Igor Breger2017-09-177-13/+259
| | | | | | | | | | | | | | Summary: G_FCONSTANT support, port the implementation from X86FastIsel. Reviewers: zvi, delena, guyblank Reviewed By: delena Subscribers: rovka, llvm-commits, kristof.beyls Differential Revision: https://reviews.llvm.org/D37734 llvm-svn: 313478
* [X86] Remove integer X86ISD::SHUFP patterns. Lowering doesn't emit these.Craig Topper2017-09-171-44/+0
| | | | llvm-svn: 313477
* [X86] Add patterns to make blends with immediate control commutable during ↵Craig Topper2017-09-171-41/+106
| | | | | | isel for load folding. llvm-svn: 313476
* [X86] Remove some unused defaults from some multiclass parameters.Craig Topper2017-09-171-5/+5
| | | | llvm-svn: 313475
* [ORC] Hook up the LLVMOrcAddObjectFile function in the Orc C Bindings.Lang Hames2017-09-174-46/+138
| | | | | | This can be used to add a relocatable object to the JIT session. llvm-svn: 313474
* [ORC][Kaleidoscope] Update ORCJit tutorial.Don Hinton2017-09-175-102/+101
| | | | | | | | Summary: Fix a few typos and update names to match current source. Differential Revision: https://reviews.llvm.org/D37948 llvm-svn: 313473
* [X86] Make PLCMULQDQ instructions commutable during isel to fold loads.Craig Topper2017-09-161-0/+21
| | | | | | This adds new patterns and SDNodeXForm to enable the immediate to commuted. llvm-svn: 313472
* [X86] Add NoAVX predicates to the patterns for the legacy encoded PCLMUL and ↵Craig Topper2017-09-162-3/+4
| | | | | | | | AES instructions. Previously we were just relying on pattern order to define precedence. Which works, but isn't the best way. llvm-svn: 313471
* Fix a typo in the documentation. NFC.Martin Storsjo2017-09-161-1/+1
| | | | llvm-svn: 313470
* Try to fix some failing bots.Zachary Turner2017-09-161-6/+8
| | | | | | | | | It doesn't make sense to me why these bots are failing as the traceback does not agree with the source code. It's possible something is stale or there is some other mysterious error, but in any case hopefully this fixes it. llvm-svn: 313469
* [llvm-symbolizer] Fix coff-dwarf.testZachary Turner2017-09-161-1/+1
| | | | | | | | | | | | | | | | | | This was a bug in the test that was only exposed as a result of refactoring some code in lit configuration files. Previously, llvm's lit configuration would only set the target-windows feature if the system was also windows. Since cross-compilation is a thing, this isn't correct. target-windows should be set independently of system-windows. Adding to that bug, this particular test then checked for target-windows when it really meant "can I call a certain API on the host machine", which is what system-windows is for. Ultimately, this test only works if *both* the target and host are Windows, so I've updated the test to reflect that. llvm-svn: 313468
* Resubmit "Add a shared llvm.lit module that all test suites can use."Zachary Turner2017-09-166-157/+171
| | | | | | | | There were some issues surrounding Py2 / Py3 compatibility, but I've now tested with both Py2 and Py3 and everything seems to work. llvm-svn: 313467
* [lit] Fix some Python 3 compatibility issues.Zachary Turner2017-09-161-7/+12
| | | | llvm-svn: 313466
* [X86] Remove some extra code that snuck into r313450.Craig Topper2017-09-161-4/+0
| | | | | | The same code appears earlier in the function. This represents an earlier version of what became r313373 that I still had sitting in my local repo. llvm-svn: 313465
* llvm-dwarfdump: support a --show-children optionAdrian Prantl2017-09-165-3/+34
| | | | | | | This will print all children of a DIE when selectively printing only one DIE at a given offset. llvm-svn: 313464
* llvm-dwarfdump: Add support for -debug-types=<offset>.Adrian Prantl2017-09-162-12/+23
| | | | llvm-svn: 313463
* [X86] Remove unnecessary extra encodings from the CPU name enum in clangCraig Topper2017-09-162-72/+14
| | | | | | | | | | | | | | | | | Summary: For a lot of older CPUs we have a 1:1 mapping between CPU name and enum name. But many of them are effectively aliases of each other and as a result are always repeated together at every usage This patch removes most of the duplication. It also uses StringSwitch::Cases to make the many to one mapping in the StringSwitch more obvious. Reviewers: RKSimon, spatel, zvi, igorb Reviewed By: RKSimon Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D37938 llvm-svn: 313462
* [lit] Fix the lit unit tests.Zachary Turner2017-09-162-0/+2
| | | | | | | | A few tests were manually constructing a LitConfig object, since I added a new argument to it this was triggering some failures I didn't detect. `ninja check-lit` passes now. llvm-svn: 313461
* [lit] Add a single process mode.Zachary Turner2017-09-163-45/+58
| | | | | | | | | This is helpful for debugging test failures since it removes the multiprocessing pool from the picture. This will obviously slow down the test suite by a few orders of magnitude, so it should only be used for debugging specific failures. llvm-svn: 313460
* [llvm-readobj] - Teach tool to report error if some section is in multiple ↵George Rimar2017-09-162-2/+115
| | | | | | | | | | | | COMDAT groups at once. readelf tool reports an error when output contains the same section in multiple COMDAT groups. That can be useful. Path teaches llvm-readobj to do the same. Differential revision: https://reviews.llvm.org/D37567 llvm-svn: 313459
* [x86] enable storeOfVectorConstantIsCheap() target hookSanjay Patel2017-09-163-65/+66
| | | | | | | | | | | | | | This allows vector-sized store merging of constants in DAGCombiner using the existing code in MergeConsecutiveStores(). All of the twisted logic that decides exactly what vector operations are legal and fast for each particular CPU are handled separately in there using the appropriate hooks. For the motivating tests in merge-store-constants.ll, we already produce the same vector code in IR via the SLP vectorizer. So this is just providing a backend backstop for code that doesn't go through that pass (-O1). More details in PR24449: https://bugs.llvm.org/show_bug.cgi?id=24449 (this change should be the last step to resolve that bug) Differential Revision: https://reviews.llvm.org/D37451 llvm-svn: 313458
* Reformat.NAKAMURA Takumi2017-09-161-1/+1
| | | | llvm-svn: 313457
* llvm/IR/DiagnosticHandler.h: Add include guard, or -fmodules would be confused.NAKAMURA Takumi2017-09-161-0/+5
| | | | llvm-svn: 313456
* [X86] Add isel patterns to be able to fold loads into VPERM2F128 even when ↵Craig Topper2017-09-162-2/+23
| | | | | | | | | | the load is on the first input to the SDNode. We just need to toggle bits 1 and 5 of the immediate and swap the sources. The peephole pass could trigger commuting/folding for this later, but its easy enough to fix in isel. Disable the peephole pass on the main vperm2x128 test so we know we're doing this through isel. llvm-svn: 313455
* [X86] Remove unused check lines that got left behind when I moved tests to ↵Craig Topper2017-09-161-15/+0
| | | | | | the instrinsic upgrade file and regenerated. llvm-svn: 313454
* [X86] Remove VPERM2X128 isel patterns with 32-bit elements.Craig Topper2017-09-161-25/+2
| | | | | | Now that the intrinsics are gone we only need 64-bit elements since that's what shuffle lowering uses. llvm-svn: 313453
OpenPOWER on IntegriCloud