summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Change 'apropos' such that it doesn't look into the "long help/syntax" ↵Enrico Granata2016-03-237-79/+82
| | | | | | | | | | strings for commands This solves issues such as 'apropos foo' returning valid matches just because syntax examples happen to use 'foo' as a placeholder token Fixes rdar://9043025 llvm-svn: 264123
* [ModuleUtils] Use range-based loop. NFC.Davide Italiano2016-03-231-2/+1
| | | | llvm-svn: 264122
* [docs] Use reST link.Sean Silva2016-03-231-1/+1
| | | | llvm-svn: 264121
* Bring back Makefile.sphinxSean Silva2016-03-231-0/+155
| | | | | | It is not part of autoconf and should not have been removed in r258861. llvm-svn: 264120
* [docs] Clarify the sense of --compile-commandSean Silva2016-03-231-1/+6
| | | | | | | | In retrospect, it seems "obvious" that the sense of the return code is the same as if it crashed on "interesting" inputs. But that didn't stop me from spending more time than I care to admit verifying this. llvm-svn: 264119
* [ScopInfo] Fix domains after loops.Michael Kruse2016-03-2211-66/+131
| | | | | | | | | | | | | | | | | ISL can conclude additional conditions on parameters from restrictions on loop variables. Such conditions persist when leaving the loop and the loop variable is projected out. This results in a narrower domain for exiting the loop than entering it and is logically impossible for non-infinite loops. We fix this by not adding a lower bound i>=0 when constructing BB domains, but defer it to when also the upper bound it computed, which was done redundantly even before this patch. This reduces the number of LNT fails with -polly-process-unprofitable -polly-position=before-vectorizer from 8 to 6. llvm-svn: 264118
* Tidy up this test a bit.Sean Silva2016-03-221-2/+3
| | | | llvm-svn: 264117
* Move empty atom check to target independent code. NFC.Pete Cooper2016-03-222-5/+5
| | | | | | | | | | Turns out that checking only x86 for empty atoms to fix UBSan then requires the same code in the other targets too. Better to just check this in the main run loop instead of in each target. Should be NFC, other than fixing UBSan failures. llvm-svn: 264116
* Avoid memcpy from nullptr. NFC.Pete Cooper2016-03-221-0/+5
| | | | | | | | | | This was caught by the UBSan bot. When the atom has no size, we would issue a memcpy with size0 and a nullptr for the source. Also, this code should never have references inside an empty atom so add an assert for that while we're here. llvm-svn: 264115
* Don't memcpy from a null source. Found by UBSanPete Cooper2016-03-221-0/+2
| | | | llvm-svn: 264114
* Reverted a change in r264074 that made lldb-mi use lldb_private APIs.Sean Callanan2016-03-221-1/+2
| | | | | | | | FileSystem::Fopen is a lldb_private API, but lldb-mi uses only the public API. Depending on lldb_private APIs makes Xcode builds fail. I reverted the portion of r264074 that added such a dependency. llvm-svn: 264113
* Test commit to verify repository access and fix a typo.Derek Bruening2016-03-221-1/+1
| | | | llvm-svn: 264112
* [LTO] Keep linkonce_odr symbols when appropriate.Davide Italiano2016-03-223-1/+36
| | | | | | | | | | | Ensure we keep the symbol we need to before it reaches the Writer (and hit an assertion), changing its linkage from linkonce_odr to weak. For a more detailed description of the problem, see PR19901 where a similar problem was fixed for the gold plugin. Thanks to Rafael for providing a testcase. llvm-svn: 264111
* TypoJoerg Sonnenberger2016-03-221-1/+1
| | | | llvm-svn: 264110
* MC: Don't access the filesystem in MCContext's constructorJustin Bogner2016-03-223-10/+8
| | | | | | | | | | | | | | MCContext shouldn't be accessing the filesystem - that's a gross layering violation and makes it awkward to use as a library or in a daemon where it may not even be allowed filesystem access. The CWD lookup here is normally redundant anyway, since the calling context either also looks up the CWD or sets this to something more specific. Here, we fix up the one caller that doesn't already set up a debug compilation dir and make it clear that the responsibility for such set up is in the users of MCContext. llvm-svn: 264109
* Make it so that a command alias can actually remove the help/long help from ↵Enrico Granata2016-03-226-48/+67
| | | | | | its parent command by setting itself to an empty help string llvm-svn: 264108
* [NVVM] Remove noduplicate attribute from synchronizing intrinsics.Justin Lebar2016-03-222-11/+7
| | | | | | | | | | | | | | | Summary: I've completed my audit of all the code that looks at noduplicate and added handling of convergent where appropriate, so we no longer need noduplicate on these intrinsics. Reviewers: jholewinski Subscribers: llvm-commits, jholewinski Differential Revision: http://reviews.llvm.org/D18168 llvm-svn: 264107
* [CUDA] Don't allow templated variadic functions.Justin Lebar2016-03-222-22/+28
| | | | | | | | | | Reviewers: tra Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D18373 llvm-svn: 264106
* Invalidate scop on encountering a complex control flowTobias Grosser2016-03-223-3/+547
| | | | | | | | | | | | We bail out if current scop has a complex control flow as this could lead to building of large domain conditions. This is to reduce compile time. This addresses r26382. Contributed-by: Chris Jenneisch <chrisj@codeaurora.org> Differential Revision: http://reviews.llvm.org/D18362 llvm-svn: 264105
* [lldb-mi] Uncomment a line in CMakeLists.txt to make linux build happy.Siva Chandra2016-03-221-1/+1
| | | | | | | | | | Reviewers: zturner Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D18377 llvm-svn: 264104
* Drop comdats from the dst module if they are not selected.Rafael Espindola2016-03-223-1/+110
| | | | | | | | | | | | | | | | | | | | | | | A really unfortunate design of llvm-link and related libraries is that they operate one module at a time. This means they can copy a GV to the destination module that should not be there in the final result because a later bitcode file takes precedence. We already handled cases like a strong GV replacing a weak for example. One case that is not currently handled is a comdat replacing another. This doesn't happen in ELF, but with COFF largest selection kind it is possible. In "llvm-link a.ll b.ll" if the selected comdat was from a.ll, everything will work and we will not copy the comdat from b.ll. But if we run "llvm-link b.ll a.ll", we fail to delete the already copied comdat from b.ll. This patch fixes that. llvm-svn: 264103
* Keep CodeGenPrepare from preserving the domtree.George Burgess IV2016-03-222-1/+43
| | | | | | | | | | CGP modifies the domtree in some cases, so saying that it preserves the domtree is a lie. We'll be able to selectively preserve it with the new pass manager. Differential Revision: http://reviews.llvm.org/D16893 llvm-svn: 264099
* Update cxx-features test to C++1zJF Bastien2016-03-221-34/+38
| | | | | | | Forked from the following patch: http://reviews.llvm.org/D17950 llvm-svn: 264098
* Fix operator= on OwningAtomPtr to call destructor when needed.Pete Cooper2016-03-221-0/+2
| | | | | | | | | | | | | If the LHS of 'a = b' already had an atom in it then we wouldn't call the destructor. This happens when we use something like std::remove_if which is done in the CompactUnwindPass. Should fix the leaks on the mach-o/unwind-info-simple-x86_64.yaml test case. Lang and I are going to take a look at removing OwningAtomPtr in favour of a std::unique_ptr but just trying to get the bots green so we have a good baseline first. llvm-svn: 264097
* Fix a bug caused by my alias refactoring where, if an alias was defined in ↵Enrico Granata2016-03-226-2/+116
| | | | | | terms of another alias, trying to run the nested command would actually cause a crash in the command interpreter llvm-svn: 264096
* Backend support for top-level Clang epxressionsSean Callanan2016-03-229-212/+375
| | | | | | | | | | | | | | | | | | This patch adds a new ExecutionPolicy, eExecutionPolicyTopLevel, which tells the expression parser that the expression should be JITted as top level code but nothing (except static initializers) should be run. I have modified the Clang expression parser to recognize this execution policy. On top of the existing patches that support storing IR and maintaining a map of arbitrary Decls, this is mainly just patching up a few places in the expression parser. I intend to submit a patch for review that exposes this functionality through the "expression" command and through the SB API. That patch also includes a testcase for all of this. <rdar://problem/22864976> llvm-svn: 264095
* Mark SymbolBody::getSymbol as `const`.Sean Silva2016-03-221-1/+1
| | | | llvm-svn: 264094
* We do not use libLTO, so fix the error.Rui Ueyama2016-03-221-1/+1
| | | | llvm-svn: 264093
* D18325: Added mm_malloc module export.John Thompson2016-03-222-0/+5
| | | | llvm-svn: 264092
* ELF: Create LTO.{cpp,h} and move LTO-related code to that file.Rui Ueyama2016-03-225-132/+204
| | | | | | | | | | | The code for LTO has been growing, so now is probably a good time to move it to its own file. SymbolTable.cpp is for symbol table, and because compiling bitcode files are semantically not a part of symbol table, this is I think a good thing to do. http://reviews.llvm.org/D18370 llvm-svn: 264091
* [lto] Provide a file name for the combined LTO object.Sean Silva2016-03-222-1/+16
| | | | | | | | | | Otherwise, we get diagnostics like: undefined symbol: foo in Which isn't particularly useful. llvm-svn: 264089
* Revert "Support arbitrary addrspace pointers in masked load/store intrinsics"Matthias Braun2016-03-2212-342/+207
| | | | | | | | | | | This commit broke LTO builds. Reverting it to unbreak the bots while the issue is investigated. See also: http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20160321/341002.html This reverts r263158 llvm-svn: 264088
* Changes to the Xcode project file to make LLDB build again after ↵Enrico Granata2016-03-221-6/+4
| | | | | | llvm/Support/ConvertUTF.h was brought into the driver llvm-svn: 264087
* [X86][AVX] Added AVX1 tests for 256-bit vector idiv-by-constant Simon Pilgrim2016-03-222-1742/+4482
| | | | | | Prep work based on feedback for D18307 llvm-svn: 264086
* [SelectionDAG] Ensure constant folded legalized vector element types are ↵Simon Pilgrim2016-03-222-1/+22
| | | | | | | | compatible with the BUILD_VECTOR type Found during fuzz testing - 32-bit x86 targets were legalizing a <2 x i1> compare result to <2 x i32> when <2 x i64> was expected. llvm-svn: 264085
* CodeGen: check return types match when emitting tail call to builtin.Tim Northover2016-03-223-3/+43
| | | | | | | | | | | We were just completely ignoring the types when determining whether we could safely emit a libcall as a tail call. This is clearly wrong. Theoretically, we could dig deeper looking for incidental matches (much like the generic code in Analysis.cpp does), but it's probably not worth it for the few libcalls that exist. llvm-svn: 264084
* Remove unnecessary branch from testSanjoy Das2016-03-221-3/+0
| | | | | | (Addresses post commit review by Reid Kleckner) llvm-svn: 264083
* [LoopVersioning] Relax an assert for LCSSA PHIsAdam Nemet2016-03-222-3/+39
| | | | | | | | | | | | | When you have multiple LCSSA (single-operand) PHIs that are converted into two-operand PHIs due to versioning, only assert that the PHI currently being converted has a single operand. I.e. we don't want to check PHIs that were converted earlier in the loop. Fixes PR27023. Thanks to Karl-Johan Karlsson for the minimized testcase! llvm-svn: 264081
* [clang-tidy] Fix broken test with redundant string init (msvc).Etienne Bergeron2016-03-221-61/+0
| | | | | | | | | | | | | | | | Summary: There is a silly bug that got introduced after fixing incorrect paths with this patch: http://reviews.llvm.org/D18293 The tests was present twice in the file. Reviewers: alexfh, rnk Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D18365 llvm-svn: 264080
* [tsan] Fix check-tsan build by using CHECK_NE.Yabin Cui2016-03-221-1/+1
| | | | | | | | | | Reviewers: llvm-commits, srhines, dvyukov Subscribers: srhines Differential Revision: http://reviews.llvm.org/D18361 llvm-svn: 264079
* Allow lowering call sites with both funclets and deopt stateSanjoy Das2016-03-222-5/+30
| | | | | | | Lowering funclets is a no-op, so we can just go ahead and lower the deopt state. llvm-svn: 264078
* More MSVC bot appeasement. Explicitly define rvalue methods on SortKey.Pete Cooper2016-03-221-0/+19
| | | | | | | | | | | | | | OwningAtomPtr does not have OwningAtomPtr(OwningAtomPtr&) or the equivalent operator= as we only want to use rvalue references in it. SortKey didn't like this on MSVC as it was synthesizing SortKey(SortKey&) and trying to use the OwningAtomPtr(OwningAtomPtr&) method which was private an unimplemented. Now we explicitly have the methods on SortKey so hopefully the bot will be happier. llvm-svn: 264077
* [WebAssembly] Implement the rotate instructions.Dan Gohman2016-03-224-1/+117
| | | | llvm-svn: 264076
* [clang-tidy] Fix redundant-string-cstr check with msvc 14 headers.Etienne Bergeron2016-03-222-19/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The string constructors are not defined using optional parameters and are not recognize by the checker. The constructor defined in the MSVC header is defined with 1 parameter. Therefore, patterns are not recognized by the checker. The current patch add support to accept constructor with only one parameter. Repro on a Visual Studio 14 installation with the following code: ``` void f1(const std::string &s) { f1(s.c_str()); } ``` In the xstring.h header, the constructors are defined this way: ``` basic_string(const _Myt& _Right) [...] basic_string(const _Myt& _Right, const _Alloc& _Al) [...] ``` The CXXConstructExpr to recognize only contains 1 parameter. ``` CXXConstructExpr 0x3f1a070 <C:\src\llvm\examples\test.cc:6:6, col:14> 'const std::string':'const class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char> >' 'void (const char *) __attribute__((thiscall))' `-CXXMemberCallExpr 0x3f1a008 <col:6, col:14> 'const char *' `-MemberExpr 0x3f19fe0 <col:6, col:8> '<bound member function type>' .c_str 0x3cc22f8 `-DeclRefExpr 0x3f19fc8 <col:6> 'const std::string':'const class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char> >' lvalue ParmVar 0x3f19c80 's' 'const std::string &' ``` Reviewers: aaron.ballman, alexfh Subscribers: aemerson Differential Revision: http://reviews.llvm.org/D18285 llvm-svn: 264075
* Unicode support on Win32.Zachary Turner2016-03-2229-226/+530
| | | | | | | | | | | | | Win32 API calls that are Unicode aware require wide character strings, but LLDB uses UTF8 everywhere. This patch does conversions wherever necessary when passing strings into and out of Win32 API calls. Patch by Cameron Differential Revision: http://reviews.llvm.org/D17107 Reviewed By: zturner, amccarth llvm-svn: 264074
* [clang-tidy] Skip reporting of not applicable fixes.Etienne Bergeron2016-03-222-7/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Invalid source location are causing clang-tidy to crash when manipulating an invalid file. Macro definitions on the command line have locations in a virtual buffer and therefore don't have a corresponding valid FilePath. A recent patch added path conversion to absolute path. As the FilePath may now be empty, the result of makeAbsolutePath may incorrectly be the folder WorkingDir. The crash occurs in getLocation which is not able to find the appropriate FileEntry (null pointer). ``` SmallString<128> FixAbsoluteFilePath = Fix.getFilePath(); Files.makeAbsolutePath(FixAbsoluteFilePath); FixLoc = getLocation(FixAbsoluteFilePath, Fix.getOffset()); ``` With relative path, the code was not crashing because getLocation was skipping empty path. Example of code: ``` int main() { return X; } ``` With the given command-line: ``` clang-tidy test.cc --checks=misc-macro-* -- -DX=0+0 ``` Reviewers: alexfh, aaron.ballman Subscribers: aaron.ballman, cfe-commits Differential Revision: http://reviews.llvm.org/D18262 llvm-svn: 264073
* Add a hasOperandBundlesOtherThan helper, and use it; NFCSanjoy Das2016-03-222-12/+17
| | | | llvm-svn: 264072
* StaticAnalyzer: Avoid an unintentional copyJustin Bogner2016-03-221-1/+1
| | | | | | | | | | The range here isn't over references, so using `auto &` here incites a copy. Switching to `auto *` would do, but we might as well list an explicit type for clarity. Found by -Wrange-loop-analysis. llvm-svn: 264071
* Appease MSVC bots by changing visibility of AtomVector.Pete Cooper2016-03-221-4/+3
| | | | | | | | | The AtomVector class is an internal detail of File so I moved it to be protected in r264067. However, the MSVC bots don't like the global declarations of type File::AtomVector in File.cpp so it needs to go back to being public for now. llvm-svn: 264070
* [clang-tidy] Fix redundant-string-init check with msvc 14 headers.Etienne Bergeron2016-03-223-15/+201
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The string constructors are not defined using optional parameters and are not recognized by the redundant-string-init checker. The following patch fixes the redundant-string-init checker for the Visual Studio 14 headers file. The matcher now accept both variant (with 1 and 2 parameters). Also added new unittests. Similar issue than: [[ http://reviews.llvm.org/D18285 | review ]] In the xstring.h header, the constructors are defined this way: ``` basic_string(const _Myt& _Right) [...] basic_string(const _Myt& _Right, const _Alloc& _Al) [...] ``` Reviewers: alexfh, hokein Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D18293 llvm-svn: 264069
OpenPOWER on IntegriCloud