- Nov 23, 2013
-
-
Chandler Carruth authored
for a TestModuleAnalysis. llvm-svn: 195537
-
David Blaikie authored
This avoids the need for an extra list of SkeletonCUs and associated cleanup while staging things to be cleaner for further type unit improvements. Also hopefully fixes a memory leak introduced in r195166. llvm-svn: 195536
-
Manman Ren authored
We are going to drop debug info without a version number or with a different version number, to make sure we don't crash when we see bitcode files with different debug info metadata format. Make tests more robust by removing hard-coded metadata numbers in CHECK lines. llvm-svn: 195535
-
Peter Collingbourne authored
The looked-up matchers will be used during code completion. Differential Revision: http://llvm-reviews.chandlerc.com/D2207 llvm-svn: 195534
-
Ted Kremenek authored
This is still an experimental attribute, but I wanted it in tree for review. It may still get yanked. This attribute can only be applied to a class @interface, not a class extension or category. It does not change the type system rules for Objective-C, but rather the implementation checking for Objective-C classes that explicitly conform to a protocol. During protocol conformance checking, clang recursively searches up the class hierarchy for the set of methods that compose a protocol. This attribute will cause the compiler to not consider the methods contributed by a super class, its categories, and those from its ancestor classes. Thus this attribute is used to force subclasses to redeclare (and hopefully re-implement) methods if they decide to explicitly conform to a protocol where some of those methods may be provided by a super class. This attribute intentionally leaves out properties, which are associated with state. This attribute only considers methods (at least right now) that are non-property accessors. These represent methods that "do something" as dictated by the protocol. This may be further refined, and this should be considered a WIP until documentation gets written or this gets removed. llvm-svn: 195533
-
Ted Kremenek authored
This enables a micro-optimization in protocol conformance checking to not examine the class hierarchy twice per method. As part of this change, remove the default arguments from lookupInstanceMethod() and lookupClassMethod(). It was becoming very redundant. For clients needing the default arguments, have them use the full API instead of these convenience methods. llvm-svn: 195532
-
Peter Collingbourne authored
It apparently causes some versions of GCC to segfault. http://bb.pgr.jp/builders/cmake-clang-x86_64-linux/builds/17175/steps/build_clang/logs/stdio llvm-svn: 195529
-
Chandler Carruth authored
SLP vectorization. Based on the code in BBVectorizer. Fixes PR17741. Patch by Raul Silvera, reviewed by Hal and Nadav. Reformatted by my driving of clang-format. =] llvm-svn: 195528
-
Peter Collingbourne authored
Patch by Kim Gräsman! Laszlo Nagy and me both ran into the same issue with SpecIterator from DeclTemplate.h causing an error: tools/clang/include/clang/AST/DeclTemplate.h:560:22: error: no matching constructor for initialization of 'SetIteratorType' (aka 'FoldingSetVectorIterator<clang::FunctionTemplateSpecializationInfo, typename SmallVector<FunctionTemplateSpecializationInfo *, 8>::iterator>') SpecIterator() : SetIter() {} (see e.g. http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-November/033642.html) The problem is the SpecIterator default constructor which needs a non-existent SetIter default constructor. SpecIterator's default constructor is evidently dead code as any call to it would fail with the above error. This patch removes it. Differential Revision: http://llvm-reviews.chandlerc.com/D2246 llvm-svn: 195526
-
Chandler Carruth authored
results. This is the last piece of infrastructure needed to effectively support querying *up* the analysis layers. The next step will be to introduce a proxy which provides access to those layers with appropriate use of const to direct queries to the safe interface. llvm-svn: 195525
-
Fariborz Jahanian authored
attribute on method declaration and implementation match. This makes no sense. Most annotations are meant for declarations only and one is for implementation. This has been constant source of regresions and hackery to get around special cases. I am removing this check. Such checks must be done on a case by case basis and when it makes sense. For example, it makes sense for availability/deprecated and I will file a radar for that. // rdar://15531984 llvm-svn: 195524
-
Eric Christopher authored
a non-relocatable number offset. One fixme to make the ranges as discrete data structures and have range lists explicitly represented rather than as a list of symbols. llvm-svn: 195523
-
Eric Christopher authored
llvm-svn: 195522
-
Tobias Grosser authored
llvm-svn: 195521
-
Tobias Grosser authored
We still have troubles as clang is not properly built yet. I messed up a path in the PollyBuilder and am waiting for another buildmaster restart. llvm-svn: 195520
-
Chandler Carruth authored
one function's analyses are invalidated at a time. Also switch the preservation of the proxy to *fully* preserve the lower (function) analyses. Combined, this gets both upward and downward analysis invalidation to a point I'm happy with: - A function pass invalidates its function analyses, and its parent's module analyses. - A module pass invalidates all of its functions' analyses including the set of which functions are in the module. - A function pass can preserve a module analysis pass. - If all function passes preserve a module analysis pass, that preservation persists. If any doesn't the module analysis is invalidated. - A module pass can opt into managing *all* function analysis invalidation itself or *none*. - The conservative default is none, and the proxy takes the maximally conservative approach that works even if the set of functions has changed. - If a module pass opts into managing function analysis invalidation it has to propagate the invalidation itself, the proxy just does nothing. The only thing really missing is a way to query for a cached analysis or nothing at all. With this, function passes can more safely request a cached module analysis pass without fear of it accidentally running part way through. llvm-svn: 195519
-
Chandler Carruth authored
now the access to the manager is via the proxy that ensures it behaves correctly. llvm-svn: 195518
-
rdar://problem/15540233Greg Clayton authored
SBPlatform.h was missing from built LLDB.framework, now it is fixed. llvm-svn: 195517
-
Shankar Easwaran authored
Hidden nodes could be a result of expansion, where a flavor might decide to keep the node that we want to expand but discard it from being processed by the resolver. Verifies with unittests. llvm-svn: 195516
-
Shankar Easwaran authored
Flavors may like to expand InputGraph nodes, when a filenode after parsing results in more elements. One such example is while parsing GNU linker scripts. The linker scripts after parsing would result in a lot of filenodes and probably controlnodes too. Adds unittests to verify functionality. llvm-svn: 195515
-
Tom Stellard authored
We were ignoring the ordered/onordered bits and also the signed/unsigned bits of condition codes when lowering the DAG to MachineInstrs. NOTE: This is a candidate for the 3.4 branch. llvm-svn: 195514
-
Yuchen Wu authored
gcov expects every function to contain an entry block that unconditionally branches into the next block. clang does not implement basic blocks in this manner, so gcov did not output correct branch info if the entry block branched to multiple blocks. This change splits every function's entry block into an empty block and a block with the rest of the instructions. The instrumentation code will take care of the rest. llvm-svn: 195513
-
Samuel Benzaquen authored
Summary: Make the negative test more specific. Otherwise it can accidentally match injected code. Reviewers: aaron.ballman CC: klimek, cfe-commits, revane Differential Revision: http://llvm-reviews.chandlerc.com/D2257 llvm-svn: 195512
-
- Nov 22, 2013
-
-
Rui Ueyama authored
This is the first step towards DLL creation support. Resource-only DLLs don't have entry point address. llvm-svn: 195510
-
Aaron Ballman authored
Updating Subjects definitions for attributes based on semantic handling. Removes Subjects for things we cannot currently check, adds Subjects for things we can, and rectifies most discrepancies. Since Subjects are not currently handled in tablegen, there are no functional changes with this patch. llvm-svn: 195508
-
Tobias Grosser authored
This will now also enable the automatic formatting checks in the Polly buildbot. llvm-svn: 195507
-
Manman Ren authored
We can share the implementation between StripSymbols and dropping debug info for metadata versions that do not match. Also update the comments to match the implementation. A follow-on patch will drop the "Debug Info Version" module flag in StripDebugInfo. llvm-svn: 195505
-
Manman Ren authored
We are going to drop debug info without a version number or with a different version number, to make sure we don't crash when we see bitcode files with different debug info metadata format. llvm-svn: 195504
-
Aaron Ballman authored
llvm-svn: 195503
-
Yaron Keren authored
type_info* will work for typeids from the same compiled file but fail for typeids from a DLL and an executable. Among other things, exceptions are not caught by handlers since can_catch() returns false. Defining _LIBCXX_DYNAMIC_FALLBACK does not help since can_catch() calls is_equal() with use_strcmp=false so the string names are not compared. This patch compares typeids first (cheap) and only they are different calls strcmp. llvm-svn: 195502
-
Joerg Sonnenberger authored
available always-inline functions. This breaks libc++'s locale implementation. Code generation for this case should be fixed, but this is a stop gap fix for clang 3.4. llvm-svn: 195501
-
-
Greg Clayton authored
Patch from Todd Fiala: lldb will seg fault if for some reason there is no unwinder when StackFrameList::GetFramesUpTo() is called. Mainly patched to stop LLDB from crashing. This can easily happen if you debug to a remote gdbserver that doesn't have any dynamic register info and you don't have a target definition file specified. llvm-svn: 195499
-
Jim Grosbach authored
Utilizing the 8 and 16 bit comparison instructions, even when an input can be folded into the comparison instruction itself, is typically not worth it. There are too many partial register stalls as a result, leading to significant slowdowns. By always performing comparisons on at least 32-bit registers, performance of the calculation chain leading to the comparison improves. Continue to use the smaller comparisons when minimizing size, as that allows better folding of loads into the comparison instructions. rdar://15386341 llvm-svn: 195496
-
Manman Ren authored
info version number. Will error out when modules have different version numbers. llvm-svn: 195495
-
Manman Ren authored
This will be used to output the debug info version number as a module flag. llvm-svn: 195494
-
Matt Arsenault authored
If the beginning of the loop was also the entry block of the function, branches were inserted to the entry block which isn't allowed. If this occurs, create a new dummy function entry block that branches to the start of the loop. llvm-svn: 195493
-
Matt Arsenault authored
llvm-svn: 195492
-
Paul Robinson authored
Improvements over r195317: - Set/restore EnableFastISel flag instead of just running FastISel within SelectAllBasicBlocks; the flag is checked in various places, and FastISel won't run properly if those places don't do the right thing. - Test looks for normal ISel versus FastISel behavior, and not something more subtle that doesn't work everywhere. Based on work by Andrea Di Biagio. llvm-svn: 195491
-
Andrew Trick authored
llvm-svn: 195490
-