- Jul 22, 2013
-
-
Shuxin Yang authored
There already have two "dead" functions, initialize{IPO|IPA}, defined for similar purpose. I decide not to call these two functions for two reasons: o. they don't cover all LTO passes (which will soon be separated into IPO and post-IPO passes) o. We have not yet figured out the right passes and the ordering for IPO and post-IPO stages, meaning this change is only for the time being. Since LTO passes are registered, we are now able to print IR before and after particular point. For OSX users: -------------- "...-Wl,-mllvm -Wl,-print-after=<pass-name>" will print IR after the specified pass. For Other UNIX with GNU gold linker: ------------------------------------ "-Wl,-plugin-opt=-print-after=<pass-name>" should work. (NOTE: no need for "-Wl,-mllvm") Strip "-Wl," if flags are fed directly to linker instead of clang/clang++. llvm-svn: 186853
-
Eric Christopher authored
llvm-svn: 186852
-
Eric Christopher authored
llvm-svn: 186851
-
Argyrios Kyrtzidis authored
[arcmt] Only disable ARC in the second compilation if there were actually ARC errors in the checking phase. rdar://14490204 llvm-svn: 186850
-
Richard Smith authored
llvm-svn: 186849
-
Richard Smith authored
llvm-svn: 186848
-
Aaron Ballman authored
llvm-svn: 186847
-
Jim Grosbach authored
Variadic MC instructions don't note whether the variable operands are uses or defs, so mayAffectControlFlow() must conservatively assume they are defs and return true if the PC is in the operand list. rdar://14488628 llvm-svn: 186846
-
Nadav Rotem authored
Fix an obvious typo in the loop vectorizer where the cost model uses the wrong variable. The variable BlockCost is ignored. We don't have tests for the effect of if-conversion loops because it requires a big test (that includes if-converted loops) and it is difficult to find and balance a loop to do the right thing. llvm-svn: 186845
-
Justin Holewinski authored
llvm-svn: 186844
-
Rui Ueyama authored
llvm-svn: 186843
-
Edwin Vane authored
This change makes it easier for new unit tests to create virtual files. Author: Guillaume Papin <guillaume.papin@epitech.eu> llvm-svn: 186842
-
Daniel Jasper authored
After the first operation, the buffer contents has changed and thus all other operations would be invalid. Executing the operations in reversed order should fix this. llvm-svn: 186840
-
Hans Wennborg authored
Option aliases in option groups were previously disallowed by an assert. As far as I can tell, there was no technical reason for this, and I would like to be able to put cl.exe compatible options in their own group for Clang, so let's change the assert. llvm-svn: 186838
-
Sergey Matveev authored
Previously (in tools other than TSan) the entire prefix of the path had to mach the argument. With this change, only some suffix of the prefix has to match. This is the same way this flag works in TSan. llvm-svn: 186837
-
Samuel Benzaquen authored
Summary: Add support for overloaded matchers. This composes with other features, like supporting polymorphic matchers. Reviewers: klimek CC: cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D1188 llvm-svn: 186836
-
Marshall Clow authored
Make tuple's constructor and std::get<>(tuple) constexpr. Final stage of fixing bug #16599. Thanks to Howard for the review and updates. llvm-svn: 186834
-
NAKAMURA Takumi authored
warning: initializer for aggregate is not a compile-time constant [-Wc99-extensions] llvm-svn: 186833
-
Mihai Popa authored
instructions. With this patch: 1. ldr.n is recognized as mnemonic for the short encoding 2. ldr.w is recognized as menmonic for the long encoding 3. ldr will map to either short or long encodings depending on the size of the offset llvm-svn: 186831
-
Rafael Espindola authored
This matches gnu archive behavior and since archive member order can change which member is used, not changing the order on replacement looks like the right thing to do. This patch also refactors the logic for which archive member to keep and whether to move it to a helper function (computeInsertAction). The nesting in computeNewArchiveMembers was getting a bit confusing. llvm-svn: 186829
-
Reid Kleckner authored
Based on Peter Collingbourne's destructor patches. Prior to this change, clang was considering ?1 to be the complete destructor and the base destructor, which was wrong. This lead to crashes when clang tried to emit two LLVM functions with the same name. In this ABI, TUs with non-inline dtors might not emit a complete destructor. They are emitted as inline thunks in TUs that need them, and they always delegate to the base dtors of the complete class and its virtual bases. This change uses the DeferredDecls machinery to emit complete dtors as needed. Currently in clang try body destructors can catch exceptions thrown by virtual base destructors. In the Microsoft C++ ABI, clang may not have the destructor definition, in which case clang won't wrap the virtual virtual base destructor calls in a try-catch. Diagnosing this in user code is TODO. Finally, for classes that don't use virtual inheritance, MSVC always calls the base destructor (?1) directly. This is a useful code size optimization that avoids emitting lots of extra thunks or aliases. Implementing it also means our existing tests continue to pass, and is consistent with MSVC's output. We can do the same for Itanium by tweaking GetAddrOfCXXDestructor, but it will require further testing. Reviewers: rjmccall CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1066 llvm-svn: 186828
-
Reid Kleckner authored
Now we can save GD.getDecl() in D and shorten some casts. llvm-svn: 186826
-
Daniel Jasper authored
llvm-svn: 186825
-
Reid Kleckner authored
llvm-svn: 186824
-
Rafael Espindola authored
GNU ar when not given the a or b modifiers replaces archive members in the same location of the old ones. I am about to implement that in llvm-ar. For now, just don't depend on the current llvm-ar behavior on this test. llvm-svn: 186823
-
Ed Maste authored
llvm-svn: 186822
-
Sergey Matveev authored
Also move detect_leaks to common flags. llvm-svn: 186821
-
Justin Holewinski authored
.ftz to instructions if the nvptx-f32ftz attribute is set to "true" llvm-svn: 186820
-
Sergey Matveev authored
Direct leaks are higher priority, so it makes sense to have them on top. llvm-svn: 186819
-
Tim Northover authored
This reverts commit r186813, which broke the bots. llvm-svn: 186818
-
Enea Zaffanella authored
when initializing aggregate/union types, no matter if static or not. llvm-svn: 186817
-
Enea Zaffanella authored
No functionality change. In Sema helper functions: * renamed isTypeName as HasTypenameKeyword In UsingDecl: * renamed get/setUsingLocation to get/setUsingLoc * renamed is/setTypeName as has/setTypename llvm-svn: 186816
-
Craig Topper authored
llvm-svn: 186815
-
Craig Topper authored
llvm-svn: 186814
-
Craig Topper authored
llvm-svn: 186813
-
Craig Topper authored
llvm-svn: 186812
-
Craig Topper authored
llvm-svn: 186811
-
Tim Northover authored
After Ulrich's r180677 (thanks!) TableGen is intelligent enough to handle tied constraints involving complex operands properly, so virtually all of the ARM custom converters are now unnecessary. llvm-svn: 186810
-
Craig Topper authored
llvm-svn: 186809
-
Nadav Rotem authored
llvm-svn: 186808
-