- Nov 20, 2013
-
-
Chandler Carruth authored
The FunctionPassManager is now itself a function pass. When run over a function, it runs all N of its passes over that function. This is the 1:N mapping in the pass dimension only. This allows it to be used in either a ModulePassManager or potentially some other manager that works on IR units which are supersets of Functions. This commit also adds the obvious adaptor to map from a module pass to a function pass, running the function pass across every function in the module. The test has been updated to use this new pattern. llvm-svn: 195192
-
Yuchen Wu authored
Instead of permanently outputting "MVLL" as the file checksum, clang will create gcno and gcda checksums by hashing the destination block numbers of every arc. This allows for llvm-cov to check if the two gcov files are synchronized. Regenerated the test files so they contain the checksum. Also added negative test to ensure error when the checksums don't match. llvm-svn: 195191
-
Yuchen Wu authored
Takes file checksum as an argument to write to .gcda file. llvm-svn: 195190
-
Chandler Carruth authored
a module-specific interface. This is the first of many steps necessary to generalize the infrastructure such that we can support both a Module-to-Function and Module-to-SCC-to-Function pass manager nestings. After a *lot* of attempts that never worked and didn't even make it to a committable state, it became clear that I had gotten the layering design of analyses flat out wrong. Four days later, I think I have most of the plan for how to correct this, and I'm starting to reshape the code into it. This is just a baby step I'm afraid, but starts separating the fundamentally distinct concepts of function analysis passes and module analysis passes so that in subsequent steps we can effectively layer them, and have a consistent design for the eventual SCC layer. As part of this, I've started some interface changes to make passes more regular. The module pass accepts the module in the run method, and some of the constructor parameters are gone. I'm still working out exactly where constructor parameters vs. method parameters will be used, so I expect this to fluctuate a bit. This actually makes the invalidation less "correct" at this phase, because now function passes don't invalidate module analysis passes, but that was actually somewhat of a misfeature. It will return in a better factored form which can scale to other units of IR. The documentation has gotten less verbose and helpful. llvm-svn: 195189
-
Aaron Ballman authored
Removing a custom error diagnostic and replacing it with a stock one. Added a test case to ensure the diagnostic was firing properly. llvm-svn: 195188
-
Dmitri Gribenko authored
llvm-svn: 195187
-
Aaron Ballman authored
llvm-svn: 195186
-
Hal Finkel authored
Masking operations (where only some number of the low bits are being kept) are selected to rldicl(x, 0, mb). If x is a logical right shift (which would become rldicl(y, 64-n, n)), we might be able to fold the two instructions together: rldicl(rldicl(x, 64-n, n), 0, mb) -> rldicl(x, 64-n, mb) for n <= mb The right shift is really a left rotate followed by a mask, and if the explicit mask is a more-restrictive sub-mask of the mask implied by the shift, only one rldicl is needed. llvm-svn: 195185
-
Dmitri Gribenko authored
llvm-svn: 195184
-
Eric Christopher authored
and not polymorphically deleted and they are the only thing that derive from DIE. llvm-svn: 195183
-
Eric Christopher authored
and LexicalScopes, we're not using it. llvm-svn: 195182
-
Eric Christopher authored
llvm-svn: 195181
-
Eric Christopher authored
llvm-svn: 195180
-
Jack Carter authored
llvm-svn: 195179
-
Fariborz Jahanian authored
to or from 'id' and qualified-id types. // rdar://15454846 llvm-svn: 195178
-
Jason Molenda authored
natural stop id is updated. <rdar://problem/15496603> llvm-svn: 195177
-
Dmitri Gribenko authored
llvm-svn: 195176
-
Jack Carter authored
llvm-svn: 195175
-
Anna Zaks authored
[analyzer] Fix an infinite recursion in region invalidation by adding block count to the BlockDataRegion. llvm-svn: 195174
-
Filip Pizlo authored
llvm-svn: 195173
-
Sean Callanan authored
to determine the number of available processors. llvm-svn: 195172
-
Aditya Nandakumar authored
llvm-svn: 195171
-
Jack Carter authored
llvm-svn: 195170
-
Rui Ueyama authored
llvm-svn: 195169
-
Reid Kleckner authored
Summary: RTTI is not yet implemented for the Microsoft C++ ABI and isn't expected soon. We could easily add the mangling, but the error is what prevents us from silently miscompiling code that expects RTTI. Instead, add a new mangleTypeName entry point that simply forwards to mangleName or mangleType to produce a string that isn't part of the ABI. Itanium can continue to use RTTI names to avoid unecessary test breakage. This also seems like the right design. The fact that TBAA names happen to be RTTI names is now an implementation detail of the mangler, rather than part of TBAA. Differential Revision: http://llvm-reviews.chandlerc.com/D2153 llvm-svn: 195168
-
David Blaikie authored
Emit DW_TAG_type_units into the debug_info section using compile unit headers. This is bogus/unusable by debuggers, but testable and provides more isolated review. Subsequent patches will include support for type unit headers and emission into the debug_types section, as well as comdat grouping the types based on their hash. Also the CompileUnit type will be renamed 'Unit' and relevant portions pulled out into respective CompileUnit and TypeUnit types. llvm-svn: 195166
-
- Nov 19, 2013
-
-
David Blaikie authored
DebugInfo: Constify accelerator table handling, and separate type accelarator insertion in preparation for a second use of this code from type units. llvm-svn: 195164
-
Richard Smith authored
and we see an ill-formed declarator that would probably be well-formed if the tag definition were just missing a semicolon, use that as the diagnostic instead of producing some other mysterious error. llvm-svn: 195163
-
Arnold Schwaighofer authored
We are slicing an array of Value pointers and process those slices in a loop. The problem is that we might invalidate a later slice by vectorizing a former slice. Use a WeakVH to track the pointer. If the pointer is deleted or RAUW'ed we can tell. The test case will only fail when running with libgmalloc. radar://15498655 llvm-svn: 195162
-
Arnold Schwaighofer authored
llvm-svn: 195161
-
Aaron Ballman authored
llvm-svn: 195160
-
Rui Ueyama authored
This should improve code readability as the class definitions are now more readable than before. llvm-svn: 195159
-
Warren Hunt authored
Microsoft adds an extra byte of padding before laying out zero sized non-virtual bases if the non-virtual base before it contains a vbptr. This patch adds the same behavior to clang. Differential Revision: http://llvm-reviews.chandlerc.com/D2106 llvm-svn: 195158
-
Petar Jovanovic authored
Instead of processing relocation for branch to stubs right away, emit a modified relocation and add it to queue to be resolved later when final load address is known. This resolves seven MIPS MCJIT issues that were caused by missing relocation fixups at the end. llvm-svn: 195157
-
Juergen Ributzka authored
Reviewed by Tom llvm-svn: 195156
-
Rafael Espindola authored
The object files we support use null terminated strings, so there is no way to support these. This patch adds an assert to catch bad API use and an error check in the .ll parser. llvm-svn: 195155
-
Rafael Espindola authored
The previous patches tried to deduce the correct function type. I now realize this is not possible in general. Consider class foo { template <typename T> static void bar(T v); }; extern template void foo::bar(const void *); We will only know that bar is static after a lookup, so we have to handle this in the template instantiation code. This patch reverts my previous two changes (but not the tests) and instead handles the issue in DeduceTemplateArguments. llvm-svn: 195154
-
Yuchen Wu authored
llvm-svn: 195153
-
Jack Carter authored
llvm-svn: 195152
-
Yuchen Wu authored
Added constness to methods that shouldn't modify objects. Replaced operator[] lookup in maps with find() instead. llvm-svn: 195151
-