- May 03, 2014
-
-
Reid Kleckner authored
Passing objects directly (in registers or memory) creates a second copy of the object in the callee. The callee always destroys its copy, but we also have to destroy any temporary created in the caller. In other words, copy elision of these kinds of objects is impossible. Objects larger than 8 bytes with non-trivial dtors and trivial copy ctors are still passed indirectly, and we can still elide copies of them. Fixes PR19640. llvm-svn: 207889
-
Chandler Carruth authored
condition to a constant and emit only the relevant statement. In that case, we were previously creating the epilog jump destination, a cleanup scope, and emitting any condition variable into it. Instead, we can emit the condition variable (if we have one) into the cleanup scope used for the entire folded case sequence. We avoid creating a jump dest, a basic block, and an extra cleanup scope. Win! llvm-svn: 207888
-
Adam Nemet authored
See PR19608 for the details but to summarize it was easy to modify the .ll file to get the desired def-use ordering. llvm-svn: 207887
-
Rui Ueyama authored
This reverts commit r207884 which was prematurely committed by accident. llvm-svn: 207886
-
Rui Ueyama authored
llvm-svn: 207885
-
Rui Ueyama authored
isAlias always returns false and no one is using it. It was originally added Atom to query if an atom is an alias for another atom, assuming that alias atoms are different from normal atoms. We now support atom aliasing, but the way that's implemented is in a different way than what isAlias assumed. An alias atom is just a regular defined atom with no content, and it has a layout- before edge to alias-to atom so that they are layed out at the same location in the result. So this is dead code, and it doesn't make much sense to keep it. llvm-svn: 207884
-
Richard Trieu authored
llvm-svn: 207883
-
Chandler Carruth authored
this is wasteful, blah blah, but this is a test utility only. It turns out that without doing this, libxml2 will always leak a bunch of the XML data, and that is causing failures with LSan. This is also quite a bit simpler and I don't think it is slow enough to really be a show stopper. If someone yells about the runtime of c-index-test, we can do other things to try to mitigate it, but the current strategy wasn't working well. llvm-svn: 207882
-
Hans Wennborg authored
We were synthesizing new arguments from e.g. '/Tcfile.c' arguments, but didn't handle ownership correctly. llvm-svn: 207880
-
Justin Bogner authored
llvm-svn: 207879
-
Rui Ueyama authored
llvm-svn: 207878
-
Greg Clayton authored
<rdar://problem/16732178> llvm-svn: 207877
-
David Blaikie authored
Committed initially in r207724-r207726 and reverted due to compiler-rt crashes in r207732. Instead, fix this harder with unordered_map and store the LexicalScopes by value in the map. This did necessitate moving the definition of LexicalScope above the definition of LexicalScopes. Let's see how the buildbots/compilers tolerate unordered_map::emplace + std::piecewise_construct + std::forward_as_tuple... llvm-svn: 207876
-
Rui Ueyama authored
llvm-svn: 207875
-
Chandler Carruth authored
This makes it *really* easy to debug leaks FYI: ASAN_OPTIONS=detect_leaks=1 ./bin/llvm-lit -v <path to test> llvm-svn: 207874
-
Chandler Carruth authored
This makes it *really* easy to debug leaks FYI: ASAN_OPTIONS=detect_leaks=1 ./bin/llvm-lit -v <path to test> llvm-svn: 207873
-
Chandler Carruth authored
whole code would be better with std::unique_ptr managing the lifetimes of the handlers, but I wanted to make a targeted fix to the leaks first. With this change, all of the Clang preprocessor tests are leak free with LSan. llvm-svn: 207872
-
Benjamin Kramer authored
llvm-svn: 207871
-
Nico Weber authored
llvm-svn: 207870
-
Rafael Espindola authored
llvm-svn: 207869
-
Eric Christopher authored
There are public functions that mutate various members as well as another private member already, so make all the members private to avoid the discontinuity and add accessors for the values. Should be no functional change. llvm-svn: 207868
-
Alex McCarthy authored
llvm-svn: 207867
-
Justin Bogner authored
Reading line tables in llvm-cov was pretty broken, but would happen to work as long as no line in the table was 0. It's not clear to me whether a line of zero *should* show up in these tables, but deciding to read a string in the middle of the line table is certainly the wrong thing to do if it does. I've also added some comments, as trying to figure out what this block of code was doing was fairly unpleasant. llvm-svn: 207866
-
Daniel Sanders authored
Summary: * Updated the documentation * Added a test for >2 arguments * Added a check for the lexical concatenation * Made the existing test a bit stricter. Reviewers: t.p.northover Reviewed By: t.p.northover Subscribers: t.p.northover, llvm-commits Differential Revision: http://reviews.llvm.org/D3485 llvm-svn: 207865
-
Joerg Sonnenberger authored
llvm-svn: 207864
-
Joerg Sonnenberger authored
llvm-svn: 207863
-
Joerg Sonnenberger authored
llvm-svn: 207862
-
Joerg Sonnenberger authored
llvm-svn: 207861
-
Joerg Sonnenberger authored
first. llvm-svn: 207860
-
Joerg Sonnenberger authored
char like ARM. Check for EOF explicitly. llvm-svn: 207859
-
Chad Rosier authored
PR19568 llvm-svn: 207858
-
Rafael Espindola authored
llvm-svn: 207857
-
Nico Weber authored
This moves most of GlobalOpt's constructor optimization code out of GlobalOpt into Transforms/Utils/CDtorUtils.{h,cpp}. The public interface is a single function OptimizeGlobalCtorsList() that takes a predicate returning which constructors to remove. GlobalOpt calls this with a function that statically evaluates all constructors, just like it did before. This part of the change is behavior-preserving. Also add a call to this from GlobalDCE with a filter that removes global constructors that contain a "ret" instruction and nothing else – this fixes PR19590. llvm-svn: 207856 -
Joerg Sonnenberger authored
SIZE_MAX here. llvm-svn: 207855
-
Hans Wennborg authored
llvm-svn: 207854
-
Akira Hatanaka authored
address to AnalyzeLoadFromClobberingLoad. This fixes a bug in load-PRE where PRE is applied to a load that is not partially redundant. <rdar://problem/16638765>. llvm-svn: 207853
-
Eric Christopher authored
llvm-svn: 207852
-
Saleem Abdulrasool authored
.file records are supposed to have a section identifier of 65534 (IMAGE_SCN_DEBUG) rather than 0. This is spelt out clearly within the PE/COFF specification. Fix this minor oversight with the implementation for support for .file records. llvm-svn: 207851
-
Tim Northover authored
llvm-svn: 207850
-
Dinesh Dwivedi authored
Before: @interface BSApplicationController () { @private id _extraIvar; } @end After: @interface BSApplicationController () { @private id _extraIvar; } @end llvm-svn: 207849
-