summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Try to fix failing tests when running remote test suite.Zachary Turner2016-10-041-1/+1
| | | | llvm-svn: 283168
* Fix the data formatter for std::multiset in libc++ - this is a trivial ↵Enrico Granata2016-10-041-25/+45
| | | | | | | | amount of extra change on top of multimap Also, proper formatting.. llvm-svn: 283167
* Support configurable path to LLVM srcVitaly Buka2016-10-041-4/+3
| | | | llvm-svn: 283166
* Make GlobalsAA ignore dead constant expressions.Eli Friedman2016-10-042-0/+56
| | | | | | | | | Slightly improves the precision of GlobalsAA in certain situations, and makes the behavior of optimization passes more predictable. Differential Revision: https://reviews.llvm.org/D24104 llvm-svn: 283165
* Codegen: Tail-duplicate during placement.Kyle Butt2016-10-0421-93/+613
| | | | | | | | | | | | | | | | | | | | | The tail duplication pass uses an assumed layout when making duplication decisions. This is fine, but passes up duplication opportunities that may arise when blocks are outlined. Because we want the updated CFG to affect subsequent placement decisions, this change must occur during placement. In order to achieve this goal, TailDuplicationPass is split into a utility class, TailDuplicator, and the pass itself. The pass delegates nearly everything to the TailDuplicator object, except for looping over the blocks in a function. This allows the same code to be used for tail duplication in both places. This change, in concert with outlining optional branches, allows triangle shaped code to perform much better, esepecially when the taken/untaken branches are correlated, as it creates a second spine when the tests are small enough. llvm-svn: 283164
* Mark a couple more Issaquah issues as done: 2578 and 2738Marshall Clow2016-10-031-4/+4
| | | | llvm-svn: 283163
* Change a couple of 'template <typename's to 'template <class' which is what ↵Marshall Clow2016-10-031-3/+3
| | | | | | we use in the rest of the library. llvm-svn: 283162
* Add tests to make sure that is_constructible<cv-void> is false. We already ↵Marshall Clow2016-10-031-0/+3
| | | | | | checked 'unqualified void'. This was brought up by LWG#2738 llvm-svn: 283161
* Changes to the std::multimap formatter to make it work against trunk libc++ Enrico Granata2016-10-031-10/+50
| | | | | | Fixes rdar://28237486 llvm-svn: 283160
* Modernize some code related to Args usage / implementation.Zachary Turner2016-10-034-225/+206
| | | | | | | Mostly this involves simplifying some logical constructs and using some ranges instead of index-based iteration. NFC llvm-svn: 283159
* [MSSA] Allow unittests to use BasicAA when building.George Burgess IV2016-10-031-12/+37
| | | | | | | | | | | | We now build MemorySSA in its ctor, instead of waiting until the user calls MemorySSA::getWalker. This silently changed our unittests, since we add BasicAA to AAResults *after* constructing MemorySSA (...but before calling MemorySSA::getWalker). None of them broke because we do most of our "did this get optimized correctly?" tests in .ll files. llvm-svn: 283158
* Refactor the Args class.Zachary Turner2016-10-035-380/+345
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were a number of issues with the Args class preventing efficient use of strings and incoporating LLVM's StringRef class. The two biggest were: 1. Backing memory stored in a std::string, so we would frequently have to use const_cast to get a mutable buffer for passing to various low level APIs. 2. backing std::strings stored in a std::list, which doesn't provide random access. I wanted to solve these two issues so that we could provide StringRef access to the underlying arguments, and also a way to provide range-based access to the underlying argument array while still providing convenient c-style access via an argv style const char**. The solution here is to store arguments in a single "entry" class which contains the backing memory, a StringRef with precomputed length, and the quote char. The backing memory is a manually allocated const char* so that it is not invalidated when the container is resized, and there is a separate argv array provided for c-style access. Differential revision: https://reviews.llvm.org/D25099 llvm-svn: 283157
* add a simple test case to validate test id()Todd Fiala2016-10-031-0/+17
| | | | | | | Since we count on it in a few places, the test verifies that the test instance has an id() method that returns something non-None. llvm-svn: 283156
* [coroutines] Adding builtins for coroutine intrinsics and backendutil support.Gor Nishanov2016-10-039-0/+310
| | | | | | | | | | | | | Summary: With this commit simple coroutines can be created in plain C using coroutine builtins. Reviewers: rnk, EricWF, rsmith Subscribers: modocache, mgorny, mehdi_amini, beanz, cfe-commits Differential Revision: https://reviews.llvm.org/D24373 llvm-svn: 283155
* [WebAssembly] Update to more stack-machine-oriented terminology.Dan Gohman2016-10-038-28/+36
| | | | | | | | WebAssembly has officially switched from being an AST to being a stack machine. Update various bits of terminology and README.md entries accordingly. llvm-svn: 283154
* [WebAssemby] Clean up an obsolete comment.Dan Gohman2016-10-031-2/+1
| | | | | | The comment is present inside the body of GetVRegDef. llvm-svn: 283153
* [lit] Use argparse instead of optparseChris Bieneman2016-10-032-46/+45
| | | | | | | | | | | | | | | | | | | | | | | | Summary: optparse is deprecated in Python 2.7, which is the minimum version of Python required to run the LLVM test suite. Replace its usage in lit with argparse, optparse's 2.7 replacement module. argparse has several benefits over optparse, but this commit does not make use of those benefits yet. Instead, it simply uses the new API, and attempts to keep the number of changes to a minimum. Confirmed that lit's test suite, as well as LLVM's regression test suite, still pass with these changes. Patch By Brian Gesiak! Reviewers: ddunbar, echristo, beanz, delcypher Subscribers: llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D25173 llvm-svn: 283152
* TargetMachine: Make the win32-macho workaround more specific.Matthias Braun2016-10-031-1/+1
| | | | | | | | | This is to avoid problems with win32 + ELF which surprisingly happens a lot in practice: If a user just specifies -march on the commandline the object format changes along with the architecture to ELF in many instances while the OS stays with the default/host OS. llvm-svn: 283151
* [WebAssembly] Delete an unused function. NFC.Dan Gohman2016-10-031-5/+0
| | | | llvm-svn: 283150
* Set some tests to an unknown vendor and OSMatthias Braun2016-10-038-11/+11
| | | | | | | | This avoids llc using the hosts OS/vendor as defaults and triggering unwanted behaviour in the tests. This should deal with the buildbot breakages on windows after r283140. llvm-svn: 283149
* [LTO] Fix test to not depend on the exact address of symbols, just their linkageMehdi Amini2016-10-031-4/+4
| | | | llvm-svn: 283148
* [WebAssembly] Fix indentation. NFC.Dan Gohman2016-10-031-1/+4
| | | | llvm-svn: 283147
* [WebAssembly] Rename OPERAND_FP32IMM to OPERAND_F32IMM.Dan Gohman2016-10-034-8/+8
| | | | | | | WebAssembly documentation consistently says "f32" rather than "fp32" to describe 32-bit floating-point. llvm-svn: 283146
* ObjectiveC: fix a seg fault when deserialing redeclaration of ObjCMethodDecl.Manman Ren2016-10-033-3/+19
| | | | | | | | | | | | | | | The deserialization of redeclartion can cause seg fault since getCanonicalDecl of the redeclaration returns the lookup result on the ObjCContainerDecl, which can be null if FindExternalVisibleDeclsByName is not done updating the lookup results. The fix is to return the redeclaration itself as the canonical decl. Note that the handling for redeclaration of ObjCMethodDecl is not in line with other redeclarables. rdar://28488466 llvm-svn: 283145
* [AArch64][RegisterBankInfo] Add getSameKindofOperandsMapping.Quentin Colombet2016-10-032-26/+54
| | | | | | | | | | Refactor the code so that the same function can be used for all instructions with all the same operands for up to 3 operands. This is going to be useful for cast instructions. NFC. llvm-svn: 283144
* [RDF] Fix liveness propagation through shadowsKrzysztof Parzyszek2016-10-032-29/+80
| | | | | | | | Each shadow only represents data flow that is restricted to its reaching def. Propagating more than that could lead to spurious register liveness, resulting in extra (incorrectly) block live-ins. llvm-svn: 283143
* AArch64Subtarget: Remove unused CPUString fieldMatthias Braun2016-10-032-7/+6
| | | | llvm-svn: 283142
* [analyzer] A blind attempt to fix a buildbot after r283092.Artem Dergachev2016-10-031-1/+1
| | | | | | The msvc compiler seems to crash compiling the BugReport class. llvm-svn: 283141
* X86: Do not produce GOT relocations on windowsMatthias Braun2016-10-032-2/+32
| | | | | | | | | | Windows has no GOT relocations the way elf/darwin has. Some people use x86_64-pc-win32-macho to build EFI firmware; Do not produce GOT relocations for this target. Differential Revision: https://reviews.llvm.org/D24627 llvm-svn: 283140
* [esan] Fix ESan test failure on Debian Sid botQin Zhao2016-10-031-14/+28
| | | | | | | | | | | | | | Summary: Handles early allocation from dlsym by allocating memory from a local static buffer. Reviewers: bruening Subscribers: kubabrecka Differential Revision: https://reviews.llvm.org/D25193 llvm-svn: 283139
* Add unit tests for StringSwitch.Zachary Turner2016-10-032-0/+108
| | | | | | Differential revision: https://reviews.llvm.org/D25205 llvm-svn: 283138
* [PruneEH] Be correct in the face IPOSanjoy Das2016-10-032-4/+44
| | | | | | | This fixes one spot I had missed in r265762. Credit goes to Philip Reames for spotting this one! llvm-svn: 283137
* [sancov] using env for better portabilityMike Aizatsky2016-10-031-1/+1
| | | | llvm-svn: 283136
* Added more comments to tooling::Replacements.Eric Liu2016-10-031-0/+4
| | | | | | | | | | Summary: Also test phabricator commit processing. Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D25207 llvm-svn: 283135
* Refactor LICM pass in preparation for LoopSink pass.Dehao Chen2016-10-031-8/+17
| | | | | | | | | | | | Summary: LoopSink pass uses some common function in LICM. This patch refactor the LICM code to make it usable by LoopSink pass (https://reviews.llvm.org/D22778). Reviewers: davidxl, danielcdh, hfinkel, chandlerc Subscribers: hfinkel, llvm-commits Differential Revision: https://reviews.llvm.org/D24168 llvm-svn: 283134
* [AMDGPU] Pass optimization level to SelectionDAGISelKonstantin Zhuravlyov2016-10-033-8/+11
| | | | llvm-svn: 283133
* Factor out a diagnostic kind enum for use in two %select expressionsReid Kleckner2016-10-034-25/+40
| | | | | | NFC llvm-svn: 283131
* [AMDGPU] Sign extend AShr when promoting (instead of zero extending)Konstantin Zhuravlyov2016-10-032-10/+10
| | | | llvm-svn: 283130
* Jump threading: avoid trying to split edge into landingpad block (PR27840)Hans Wennborg2016-10-032-0/+37
| | | | | | | | | Splitting the edge is nontrivial because of the landing pad, and we would currently assert trying to do it. Differential Revision: https://reviews.llvm.org/D24680 llvm-svn: 283129
* Rename Error -> ReportError.Zachary Turner2016-10-031-15/+15
| | | | | | | Error conflicts with the llvm::Error datatype, creating ambiguities. llvm-svn: 283128
* Revert "Use getSize instead of data().size(). NFC."Rafael Espindola2016-10-034-8/+3
| | | | | | | | This reverts commit r283125. lld needs to be updated. llvm-svn: 283127
* [RDF] Further improve readability of the graphKrzysztof Parzyszek2016-10-031-11/+14
| | | | | | Print target basic block for a branch. llvm-svn: 283126
* Use getSize instead of data().size(). NFC.Rafael Espindola2016-10-034-3/+8
| | | | | | | Also assert isFinalized in getSize(). This just reduces the noise from another patch. llvm-svn: 283125
* Mark a couple issues as done (2742 and 2760)Marshall Clow2016-10-031-4/+4
| | | | llvm-svn: 283124
* [RTDyld] Fix a bug in RTDyldMemoryManager::deregisterEHFrames.Lang Hames2016-10-031-1/+1
| | | | | | | | | | It should forward to deregisterEHFramesInProcess by default, not registerEHFramesInProcess. No test case: I haven't come up with a good way to unit test EH frame registration yet. llvm-svn: 283123
* [RDF] Replace RegisterAliasInfo with target-independent code using lane masksKrzysztof Parzyszek2016-10-0310-430/+369
| | | | llvm-svn: 283122
* [CUDA] Clean up some comments in Sema::IsOverload. NFCJustin Lebar2016-10-031-7/+7
| | | | llvm-svn: 283121
* [CUDA] Disallow overloading destructors.Justin Lebar2016-10-035-58/+38
| | | | | | | | | | | | | | | | | | | | | | Summary: We'd attempted to allow this, but turns out we were doing a very bad job. :) Making this work properly would be a giant change in clang. For example, we'd need to make CXXRecordDecl::getDestructor() context-sensitive, because the destructor you end up with depends on where you're calling it from. For now (and hopefully for ever), just disallow overloading of destructors in CUDA. Reviewers: rsmith Subscribers: cfe-commits, tra Differential Revision: https://reviews.llvm.org/D24571 llvm-svn: 283120
* [x86, SSE/AVX] allow 128/256-bit lowering for copysign vector intrinsics ↵Sanjay Patel2016-10-034-451/+260
| | | | | | | | | | | | | | | | (PR30433) This should fix: https://llvm.org/bugs/show_bug.cgi?id=30433 There are a couple of open questions about the codegen: 1. Should we let scalar ops be scalars and avoid vector constant loads/splats? 2. Should we have a pass to combine constants such as the inverted pair that we have here? Differential Revision: https://reviews.llvm.org/D25165 llvm-svn: 283119
* [lit] Allow more file extensions for test cases.Logan Chien2016-10-031-1/+3
| | | | | | | This commit splits the file extensions before determining the test format. This allows libc++abi to add assembly-based test cases. llvm-svn: 283118
OpenPOWER on IntegriCloud