- Jan 08, 2009
-
-
Dan Gohman authored
llvm-svn: 61950
-
Dan Gohman authored
llvm-svn: 61949
-
Dan Gohman authored
llvm-svn: 61948
-
Dan Gohman authored
llvm-svn: 61947
-
Dale Johannesen authored
functions that don't already have a (dynamic) alloca. Dynamic allocas cause inefficient codegen and we shouldn't propagate this (behavior follows gcc). Two existing tests assumed such inlining would be done; they are hacked by adding an alloca in the caller, preserving the point of the tests. llvm-svn: 61946
-
Duncan Sands authored
day when more linkage types will be handled. llvm-svn: 61944
-
Ted Kremenek authored
Fix ObjCInterfaceDecl::Destroy and ObjCProtocolDecl::Destroy to iterate and destroy all contained ObjCMethodDecls in one sweep. This fixes a use-after-free error found by valgrind. llvm-svn: 61943
-
Douglas Gregor authored
llvm-svn: 61942
-
Ted Kremenek authored
Added iterator mechanism to ObjCContainerDecl to iterate over both class and instance methods at the same time. llvm-svn: 61941
-
Douglas Gregor authored
introduce a Scope for the body of a tag. This reduces the number of semantic differences between C and C++ structs and unions, and will help with other features (e.g., anonymous unions) in C. Some important points: - Fields are now in the "member" namespace (IDNS_Member), to keep them separate from tags and ordinary names in C. See the new test in Sema/member-reference.c for an example of why this matters. In C++, ordinary and member name lookup will find members in both the ordinary and member namespace, so the difference between IDNS_Member and IDNS_Ordinary is erased by Sema::LookupDecl (but only in C++!). - We always introduce a Scope and push a DeclContext when we're defining a tag, in both C and C++. Previously, we had different actions and different Scope/CurContext behavior for enums, C structs/unions, and C++ structs/unions/classes. Now, it's one pair of actions. (Yay!) There's still some fuzziness in the handling of struct/union/enum definitions within other struct/union/enum definitions in C. We'll need to do some more cleanup to eliminate some reliance on CurContext before we can solve this issue for real. What we want is for something like this: struct X { struct T { int x; } t; }; to introduce T into translation unit scope (placing it at the appropriate point in the IdentifierResolver chain, too), but it should still have struct X as its lexical declaration context. PushOnScopeChains isn't smart enough to do that yet, though, so there's a FIXME test in nested-redef.c llvm-svn: 61940
-
Steve Naroff authored
llvm-svn: 61939
-
Steve Naroff authored
llvm-svn: 61938
-
Steve Naroff authored
llvm-svn: 61937
-
Steve Naroff authored
Moved logic to Sema::ProcessPropertyDecl(). llvm-svn: 61936
-
Steve Naroff authored
Convert clients to use the standard getDeclContext() API. Doug, thanks for the review! llvm-svn: 61935
-
Chris Lattner authored
will get its preferred alignment. It has to be careful and cautiously assume it will just get the ABI alignment. This prevents instcombine from rounding up the alignment of a load/store without adjusting the alignment of the alloca. llvm-svn: 61934
-
Chris Lattner authored
llvm-as: t.ll:2:39: function may not return opaque type %"bwmoyl" = tail call coldcc opaque @g() ^ llvm-svn: 61933
-
Chris Lattner authored
llvm-svn: 61932
-
Chris Lattner authored
llvm-svn: 61931
-
Ted Kremenek authored
llvm-svn: 61930
-
Steve Naroff authored
- ObjCContainerDecl's (ObjCInterfaceDecl/ObjCCategoryDecl/ObjCProtocolDecl), ObjCCategoryImpl, & ObjCImplementation are all DeclContexts. - ObjCMethodDecl is now a ScopedDecl (so it can play nicely with DeclContext). - ObjCContainerDecl now does iteration/lookup using DeclContext infrastructure (no more linear search:-) - Removed ASTContext argument to DeclContext::lookup(). It wasn't being used and complicated it's use from an ObjC AST perspective. - Added Sema::ProcessPropertyDecl() and removed Sema::diagnosePropertySetterGetterMismatch(). - Simplified Sema::ActOnAtEnd() considerably. Still more work to do. - Fixed an incorrect casting assumption in Sema::getCurFunctionOrMethodDecl(), now that ObjCMethodDecl is a ScopedDecl. - Removed addPropertyMethods from ObjCInterfaceDecl/ObjCCategoryDecl/ObjCProtocolDecl. This passes all the tests on my machine. Since many of the changes are central to the way ObjC finds it's methods, I expect some fallout (and there are still a handful of FIXME's). Nevertheless, this should be a step in the right direction. llvm-svn: 61929
-
Devang Patel authored
llvm-svn: 61928
-
Misha Brukman authored
* Removed trailing whitespace llvm-svn: 61927
-
Misha Brukman authored
* Removed trailing whitespace llvm-svn: 61926
-
Zhongxing Xu authored
llvm-svn: 61924
-
Bill Wendling authored
Some generic clean-ups. Also make the StringMapEntryInitializer specialization apply only to the tests that are actually testing it. llvm-svn: 61923
-
Bill Wendling authored
StringMapEntryInitializer classes. Leave it for the compiler to figure out what the type is and what "0" should be transformed into. * Un-disable the unit tests which test the StringMapEntryInitializer class. llvm-svn: 61922
-
Chris Lattner authored
check242, which invalidates this test. This test is an x86-32 ABI test that is trying to be run in a target-independent way, which is not going to work very well. Just remove the test. llvm-svn: 61921
-
Zhongxing Xu authored
the same name. llvm-svn: 61920
-
Bill Wendling authored
llvm-svn: 61919
-
Chris Lattner authored
llvm-svn: 61918
-
Chris Lattner authored
llvm-svn: 61917
-
Misha Brukman authored
llvm-svn: 61916
-
Chris Lattner authored
loads from allocas that cover the entire aggregate. This handles some memcpy/byval cases that are produced by llvm-gcc. This triggers a few times in kc++ (with std::pair<std::_Rb_tree_const_iterator <kc::impl_abstract_phylum*>,bool>) and once in 176.gcc (with %struct..0anon). llvm-svn: 61915
-
Misha Brukman authored
* Fixed but in StringMap::clear() * Removed trailing whitespace Original patch by Talin. llvm-svn: 61914
-
Ted Kremenek authored
performance gain. Here's what we see for -Eonly on Cocoa.h (using PTH): - wall time decreases by 21% (26% speedup overall) - system time decreases by 35% - user time decreases by 6% These reductions are due to not paging source files just to get spellings for literals. The solution in place doesn't appear to be 100% yet, as we still see some of the pages for source files getting mapped in. Using -print-stats, we see that SourceManager maps in 7179K less bytes of source text (reduction of 75%). Will investigate why the remaining 25% are getting paged in. With these changes, here's how PTH compares to non-PTH on Cocoa.h: -Eonly: PTH takes 64% of the time as non-PTH (54% speedup) -fsyntax-only: PTH takes 89% of the time as non-PTH (11% speedup) llvm-svn: 61913
-
Devang Patel authored
Again, shamelessly copied from MMI. llvm-svn: 61912
-
Ted Kremenek authored
- Added stub PTHLexer::getSpelling() that will be used for fetching cached spellings from the PTH file. This doesn't do anything yet. - Added a hook in Preprocessor::getSpelling() to call PTHLexer::getSpelling() when using a PTHLexer. - Updated PTHLexer to read the offsets of spelling tables in the PTH file. llvm-svn: 61911
-
Ted Kremenek authored
llvm-svn: 61910
-
Ted Kremenek authored
file. For Cocoa.h, this enlarges the PTH file by 310K (4%). llvm-svn: 61909
-