summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [ARM] AArch32 v8 NEON is still not IEEE-754 compliantRenato Golin2016-04-182-15/+12
| | | | llvm-svn: 266603
* [mips][ias] Stream macro expansions to output instead of buffering them. NFC.Daniel Sanders2016-04-183-353/+336
| | | | | | | | | | | | | | | | | | | Summary: This will allows us to eliminate some magic numbers from the offset operand of branch instructions in favour of symbols and makes it possible to avoid double-filling delay slots when clang is given -save-temps. parseDirectiveCpRestore() is calling isIntegratedAssemblerRequired() for the moment since correctly pushing the generation of these instructions into the ELF target streamer is tricky enough to warrant a separate patch. Reviewers: sdardis, vkalintiris Subscribers: dsanders, llvm-commits, sdardis Differential Revision: http://reviews.llvm.org/D19164 llvm-svn: 266602
* Merge duplicated cases. NFC.Rafael Espindola2016-04-181-8/+2
| | | | llvm-svn: 266601
* [PowerPC] add comment to testStrahinja Petrovic2016-04-181-0/+2
| | | | | | | Added comment in test for soft-float operations on ppc architecture. Test commit. llvm-svn: 266600
* clang-format: Improve heuristics to detect function declarations/definitions.Daniel Jasper2016-04-182-4/+22
| | | | | | | Specifically understand ellipses in parameter lists and treat trailing reference qualifiers and the "{" as signals. llvm-svn: 266599
* Fixup r266327Pavel Labath2016-04-181-2/+2
| | | | | | Fix XFAILed tests in TestThreadStates for the new signature of wait_for_running_event. llvm-svn: 266598
* Add missing header (NFC)Mehdi Amini2016-04-181-1/+2
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266597
* Add missing header (NFC)Mehdi Amini2016-04-181-0/+1
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266596
* [NFC] Header cleanupMehdi Amini2016-04-18360-546/+197
| | | | | | | | | | | | | | Removed some unused headers, replaced some headers with forward class declarations. Found using simple scripts like this one: clear && ack --cpp -l '#include "llvm/ADT/IndexedMap.h"' | xargs grep -L 'IndexedMap[<]' | xargs grep -n --color=auto 'IndexedMap' Patch by Eugene Kosov <claprix@yandex.ru> Differential Revision: http://reviews.llvm.org/D19219 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266595
* Add missing include for StringRef (NFC)Mehdi Amini2016-04-181-0/+1
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 266594
* [asan] [SystemZ] Add slop for stack address detection.Marcin Koscielnicki2016-04-181-0/+8
| | | | | | | | | On s390, siginfo reports the faulting address with page granularity - we need to mask off the low bits of sp before comparison. Differential Revision: http://reviews.llvm.org/D19112 llvm-svn: 266593
* Mark P0152R1 as complete.Eric Fiselier2016-04-181-1/+1
| | | | llvm-svn: 266592
* Mark LWG issue 2469 as done. Also simplify try_emplace and insert_or_assign ↵Eric Fiselier2016-04-182-64/+32
| | | | | | implementations in unordered_map llvm-svn: 266591
* Implement LWG issue 2219 - support reference_wrapper in INVOKEEric Fiselier2016-04-1811-62/+409
| | | | llvm-svn: 266590
* [LLDB][MIPS] Fix TestConcurrentEventsMohit K. Bhakkad2016-04-181-35/+35
| | | | | | | | | | Patch by Nitesh Jain Reviewers: clayborg Subscribers: jaydeep, bhushan, mohit.bhakkad, sagar Differential Revision: http://reviews.llvm.org/D18389 llvm-svn: 266589
* [Orc] Tweak some of the new RPC code to silence a warning (extraneous ';') andLang Hames2016-04-181-4/+4
| | | | | | MSVC errors related to constexpr. llvm-svn: 266588
* Add hash specializations for __int128_t. Fixes LWG issue 2119Eric Fiselier2016-04-183-4/+25
| | | | llvm-svn: 266587
* Add tests for LWG issue 2361Eric Fiselier2016-04-1816-9/+263
| | | | llvm-svn: 266586
* Fix LWG issue 2345 - Add insert(value_type&&)Eric Fiselier2016-04-1821-616/+764
| | | | llvm-svn: 266585
* Delete the now redundant pointsToLocalDynamicGotEntry.Rafael Espindola2016-04-183-16/+1
| | | | llvm-svn: 266584
* Have getRelExpr return the final values for tls gd.Rafael Espindola2016-04-182-3/+6
| | | | llvm-svn: 266583
* BitcodeWriter: WorkList => Worklist, NFCDuncan P. N. Exon Smith2016-04-181-5/+5
| | | | | | | | I have no idea how I chose two different spellings in the space of a couple of weeks, but now I can't remember what to use where. Choose "Worklist". llvm-svn: 266582
* [ORC] Generalize the ORC RPC utils to support RPC function return values andLang Hames2016-04-1812-460/+877
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | asynchronous call/handle. Also updates the ORC remote JIT API to use the new scheme. The previous version of the RPC tools only supported void functions, and required the user to manually call a paired function to return results. This patch replaces the Procedure typedef (which only supported void functions) with the Function typedef which supports return values, e.g.: Function<FooId, int32_t(std::string)> Foo; The RPC primitives and channel operations are also expanded. RPC channels must support four new operations: startSendMessage, endSendMessage, startRecieveMessage and endRecieveMessage, to handle channel locking. In addition, serialization support for tuples to RPCChannels is added to enable multiple return values. The RPC primitives are expanded from callAppend, call, expect and handle, to: appendCallAsync - Make an asynchronous call to the given function. callAsync - The same as appendCallAsync, but calls send on the channel when done. callSTHandling - Blocking call for single-threaded code. Wraps a call to callAsync then waits on the result, using a user-supplied handler to handle any callbacks from the remote. callST - The same as callSTHandling, except that it doesn't handle callbacks - it expects the result to be the first return. expect and handle - as before. handleResponse - Handle a response from the remote. waitForResult - Wait for the response with the given sequence number to arrive. llvm-svn: 266581
* Change getRelExpr to return the final value for TLSLD. NFC.Rafael Espindola2016-04-182-2/+4
| | | | llvm-svn: 266580
* Linker: Share a single Metadata map for the lifetime of IRMoverDuncan P. N. Exon Smith2016-04-172-5/+20
| | | | | | | | | | Cache the result of mapping metadata nodes between instances of IRLinker (i.e., for the lifetime of IRMover). There shouldn't be any real functional change here, but this should give a major speedup. I had loaned this to Mehdi when he tested performance of r266446, and the two patches together gave a 10x speedup in metadata mapping. llvm-svn: 266579
* Make CreateTargetMachine as small as possible.Rafael Espindola2016-04-172-14/+15
| | | | | | | It is a pity that we have to create a TargetMachine once per thread, so at least make that code as small as possible. llvm-svn: 266578
* [X86] Be explicit about calls to setOperationAction for AVX2 and AVX512 ↵Craig Topper2016-04-171-45/+42
| | | | | | rather than just looping over all vector types and conditinally matching them. NFC llvm-svn: 266577
* Revert "NFC: unify clang / LLVM atomic ordering"JF Bastien2016-04-173-159/+118
| | | | | | | | | | | | | | | | This reverts commit 537951f2f16d6a8542571c7722fcbae07d4e62c2. Causes an assert in: test/Transforms/AtomicExpand/SPARC/libcalls.ll (Ordering2 != AtomicOrdering::NotAtomic && "expect atomic MO") Bot: http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/21724/testReport/junit/LLVM/Transforms_AtomicExpand_SPARC/libcalls_ll/ I'm not getting this assert on my local debug build, but I'll revert just to be sure. llvm-svn: 266576
* Revert "NFC: unify clang / LLVM atomic ordering"JF Bastien2016-04-173-81/+110
| | | | | | | | This reverts commit b0495df9eae2824bee830cc4c94f5441f0d4cbc9. Same as for the corresponding LLVM revert, an assert seems to fire. llvm-svn: 266575
* NFC: unify clang / LLVM atomic orderingJF Bastien2016-04-173-110/+81
| | | | | | | | | | | | | | | Summary: Depends on http://reviews.llvm.org/D18875 This makes the C11 / C++11 *ABI* atomic ordering accessible from LLVM, as discussed in http://reviews.llvm.org/D18200#inline-151433 Reviewers: jyknight, reames Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D18876 llvm-svn: 266574
* NFC: unify clang / LLVM atomic orderingJF Bastien2016-04-173-118/+159
| | | | | | | | | | | | Summary: This makes the C11 / C++11 *ABI* atomic ordering accessible from LLVM, as discussed in http://reviews.llvm.org/D18200#inline-151433 Reviewers: jyknight, reames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D18875 llvm-svn: 266573
* When building with LLVM_ENABLE_MODULES, put the module cache into the buildRichard Smith2016-04-171-19/+18
| | | | | | directory. This is important for build bots to avoid filling up /tmp. llvm-svn: 266571
* Transforms: Try harder to fix bootstrap after r266565Duncan P. N. Exon Smith2016-04-171-2/+2
| | | | | | | | | This catches two nullptr insertions into the ValueMap I missed in r266567. I missed CloneFunction becuase it never calls RemapInstruction directly. Here's one of the still-failing bots: http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/11496 llvm-svn: 266570
* Linker: Don't double-schedule appending variablesDuncan P. N. Exon Smith2016-04-172-1/+10
| | | | | | | | | | | | | Add an assertion to ValueMapper that prevents double-scheduling of GlobalValues to remap, and fix the one place it happened. There are tons of tests that fail with this assertion in place and without the code change, so I'm not adding another. Although it looks related, r266563 was, indeed, removing dead code. AFAICT, this cross-file double-scheduling started in r266510 when the cross-file recursion was removed. llvm-svn: 266569
* [ParallelCG] SmallVector<char> -> SmallString.Davide Italiano2016-04-171-2/+2
| | | | llvm-svn: 266568
* Transforms: Fix bootstrap after r266565Duncan P. N. Exon Smith2016-04-172-5/+5
| | | | | | | | | | | | Apparently there isn't test coverage for all of these. I'd appreciate if someone with could reproduce and send me something to reduce, but for now I've just looked for users of RemapInstruction and MapValue and ensured they don't accidentally insert nullptr. Here is one of the bootstraps that caught: http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/11494 llvm-svn: 266567
* Fix a use after move.Rafael Espindola2016-04-171-2/+2
| | | | llvm-svn: 266566
* ValueMapper: Don't allow explicit null mappings of Values, NFCDuncan P. N. Exon Smith2016-04-172-3/+5
| | | | | | | | | As a follow-up to r123058, assert that there are no null mappings in the ValueMap instead of just ignoring them when they are there. There were a couple of accidental insertions in CloneFunction so I cleaned those up (caught by testcases). llvm-svn: 266565
* Keep only the splitCodegen version that takes a factory.Rafael Espindola2016-04-175-61/+40
| | | | | | | This makes it much easier to see that all created TargetMachines are equivalent. llvm-svn: 266564
* IRMover: Remove dead code, NFCDuncan P. N. Exon Smith2016-04-171-3/+0
| | | | llvm-svn: 266563
* Declare MVT::SimpleValueType as an int8_t sized enum. This removes 400 bytes ↵Craig Topper2016-04-177-24/+26
| | | | | | | | | | from TargetLoweringBase and probably other places. This required changing several places to print VT enums as strings instead of raw ints since the proper method to use to print became ambiguous. This is probably an improvement anyway. This also appears to save ~8K from an x86 self host build of llc. llvm-svn: 266562
* Implement CWG 941 - explicit specializations of deleted function templatesFaisal Vali2016-04-173-0/+137
| | | | | | | | | | | | | | | | | | | template<class T> void f(T) = delete; template<> void f(int); // OK. f(3); // OK Implementation strategy: When an explicit specialization of a function template, a member function template or a member function of a class template is declared, clang first implicitly instantiates the declaration of a specialization from the templated-entity being explicitly specialized (since their signatures must be the same) and then links the explicit specialization being declared as a redeclaration of the aforementioned specialization. The problem was that when clang 'implicitly instantiates' the initial specialization, it marks the corresponding FunctionDecl as deleted if the corresponding templated-entity was deleted, rather than waiting to see whether the explicit specialization being declared provides a non-deleted body. (The eager marking of delete has advantages during overload resolution I suppose, where we don't have to try and instantiate a definition of the function to see if it is deleted). The present fix entails recognizing that when clang knows that an explicit specialization is being declared (for whichever templated-entity), the prior implicit instantiation should not inherit the 'deleted' status, and so we reset it to false. I suppose an alternative fix (amongst others) could consider creating a new context (ExplicitSpecializationDeclarationSubstitution or some such) that is checked during template-argument-deduction and final substitution, and avoid inheriting the deleted status during declaration substitution. But while conceptually cleaner, that would be a slightly more involved change (as could be some of the other alternatives: such as avoid tagging implicit specializations as deleted, and check their primary templates for the deleted status where needed), and so I chose a different path. Hopefully it'll prove to not be a bad choice. llvm-svn: 266561
* [X86][SSE] Added 16i8 -> 8i64 sext testSimon Pilgrim2016-04-171-1/+125
| | | | | | Shows poor codegen for AVX2 llvm-svn: 266560
* [X86] Added TODO comment for target shuffle mask decoding of bitcasted masksSimon Pilgrim2016-04-171-0/+1
| | | | llvm-svn: 266559
* Fix shared build after r266484Ismail Donmez2016-04-171-0/+1
| | | | llvm-svn: 266558
* [X86] Remove unneeded variablesAsaf Badouh2016-04-171-12/+8
| | | | | | | | | no functional change. ExtraLoad and WrapperKind are been used only if (OpFlags == X86II::MO_GOTPCREL). Differential Revision: http://reviews.llvm.org/D18942 llvm-svn: 266557
* DebugInfo: Make DICompositeTypes distinct most of the timeDuncan P. N. Exon Smith2016-04-1712-22/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since elements of most kinds of DICompositeType have back references, most are involved in uniquing cycles. Except via the ODR 'identifier:' field, which doesn't care about the storage type (see r266549), they have no hope of being uniqued. Distinct nodes are far more efficient, so use them for most kinds of DICompositeType definitions (i.e., when DIType::isForwardDecl is false). The exceptions: - DW_TAG_array_type, since their elements never have back-references and they never have ODR 'identifier:' fields; - DW_TAG_enumeration_type when there is no ODR 'identifier:' field, since their elements usually don't have back-references. This breaks the last major uniquing cycle I'm aware of in the debug info graph. The impact won't be enormous for C++ because references to ODR-uniqued nodes still use string-based DITypeRefs; but this should prevent a regression in C++ when we drop the string-based references. This wouldn't have been reasonable until r266549, when composite types stopped relying on being uniqued by structural equivalence to prevent blow-ups at LTO time. llvm-svn: 266556
* LTO: Merge debug info types when linking bitcodeDuncan P. N. Exon Smith2016-04-172-1/+4
| | | | | | | Make sure lld enables ODR type uniquing for debug info when invoking LTO, as a follow-up to LLVM r266549. llvm-svn: 266555
* [AVX512] ISD::MUL v2i64/v4i64 should only be legal if DQI and VLX features ↵Craig Topper2016-04-172-2/+126
| | | | | | are enabled. llvm-svn: 266554
* IR: Fix type-refs in testcase from r266548Duncan P. N. Exon Smith2016-04-171-11/+11
| | | | | | | | | | | | | | | | | There's a hole in the verifier right now: if a module has no compile units, it never checks that all the string-based DITypeRefs get resolved. As a result, this testcase didn't fail the verifier, even there were references to `!"has-uuid"` instead of `!"uuid"` (the former was a composite type's 'name:' field, the latter its 'identifier:' field). I'm currently working on removing string-based type refs entirely, and this testcase started failing (because the upgrade script can't resolve the type refs). Rather than fixing the (about-to-be-removed) hole in the verifier, I'm just going to fix the test so that my upgrade script handles it. llvm-svn: 266553
OpenPOWER on IntegriCloud