- May 15, 2009
-
-
Anders Carlsson authored
A C++ member function always has either weak linkage (if it's inline or defined inline) or strong linkage (other cases). llvm-svn: 71873
-
- May 12, 2009
-
-
Chris Lattner authored
to allow us to support generation of deferred ctors/dtors. It looks like codegen isn't emitting a call to the dtor in member-functions.cpp:test2, but when it does, its body should get emitted. llvm-svn: 71594
-
Chris Lattner authored
functions and methods declared inline, but not ctors/dtors or methods not declared inline (apparently my previous patch wasn't good enough). llvm-svn: 71591
-
Chris Lattner authored
llvm-svn: 71590
-
Chris Lattner authored
llvm-svn: 71585
-
Chris Lattner authored
llvm-svn: 71583
-
- May 05, 2009
-
-
Chris Lattner authored
to go back and clean up existing uses of the bitcasted function. This is not just an optimization: it is required for correctness to get always inline functions to work, see testcases in function-attributes.c. llvm-svn: 70971
-
Anders Carlsson authored
Refactor global decls to hold either a regular Decl or a CXXConstructorDecl + ctor type or a CXXDestructorDecl + dtor type. llvm-svn: 70962
-
- May 03, 2009
-
-
Eli Friedman authored
llvm-svn: 70789
-
Eli Friedman authored
llvm-svn: 70786
-
- Apr 28, 2009
-
-
Douglas Gregor authored
mode and in the presence of __gnu_inline__ attributes. This should fix both PR3989 and PR4069. As part of this, we now keep track of all of the attributes attached to each declaration even after we've performed declaration merging. This fixes PR3264. llvm-svn: 70292
-
- Apr 23, 2009
-
-
Douglas Gregor authored
multiple declarations of the function. Should fix PR3989 and <rdar://problem/6818429>. llvm-svn: 69905
-
Douglas Gregor authored
methods, class methods, and property implementations) and instead place all of these entities into the DeclContext. This eliminates more linear walks when looking for class or instance methods and should make PCH (de-)serialization of ObjCDecls trivial (and lazy). llvm-svn: 69849
-
- Apr 22, 2009
-
-
Daniel Dunbar authored
- This has pros and cons, but for now the pros seem to significantly outway the con. The con is that we will always need to cast in the runtime implementation to a struct type, if we wish to access an interface directly. The pros are: - Avoid the cost of generating types which are used. Most manipulation of Objective-C objects is done through messages, and only the implementation of a class will directly access memory. Previously, we would convert the type even if it only appear as a function parameter, for example. - We don't need to worry about incomplete types, and UpdateCompletedType for interfaces is gone. - It becomes easier to narrow the interface to the shadow struct for Objective-C interfaces (so it can be eliminated). Currently the runtimes still use the CodeGenTypes machinery to generate the LLVM structure they need via ConvertTagDecl, but this can eventually be replaced. llvm-svn: 69797
-
Chris Lattner authored
extern. Previously we would warn about it and ignore the attribute. This is incorrect, it should be handled as a c89 "extern inline" function. Many thanks to Matthieu Castet for pointing this out and beating me over the head until I got it. PR3988: extern inline function are not externally visible llvm-svn: 69756
-
- Apr 21, 2009
-
-
Douglas Gregor authored
llvm-svn: 69699
-
Douglas Gregor authored
tentative definitions off to the ASTConsumer at the end of the translation unit. Eliminate CodeGen's internal tracking of tentative definitions, and instead hook into ASTConsumer::CompleteTentativeDefinition. Also, tweak the definition-deferal logic for C++, where there are no tentative definitions. Fixes <rdar://problem/6808352>, and will make it much easier for precompiled headers to cope with tentative definitions in the future. llvm-svn: 69681
-
- Apr 20, 2009
-
-
Chris Lattner authored
PR4023 llvm-svn: 69618
-
- Apr 19, 2009
-
-
Eli Friedman authored
llvm-svn: 69545
-
Chris Lattner authored
will talk to steve. llvm-svn: 69519
-
- Apr 18, 2009
-
-
Douglas Gregor authored
lazy PCH deserialization. Propagate that argument wherever it needs to be. No functionality change, except that I've tightened up a few PCH tests in preparation. llvm-svn: 69406
-
- Apr 17, 2009
-
-
Anders Carlsson authored
llvm-svn: 69343
-
Daniel Dunbar authored
- <rdar://problem/6800351> clang not producing correct large struct return code for Blocks llvm-svn: 69337
-
- Apr 16, 2009
-
-
Daniel Dunbar authored
when generating a common definition. llvm-svn: 69287
-
Daniel Dunbar authored
- PR3980. - <rdar://problem/6762287> [irgen] crash when generating tentative definition of incomplete structure - This also avoids creating common definitions for things which are later overwritten. - XFAIL'ed external-defs.c, it isn't completing types properly yet. llvm-svn: 69231
-
- Apr 15, 2009
-
-
Anders Carlsson authored
llvm-svn: 69168
-
Daniel Dunbar authored
llvm-svn: 69091
-
- Apr 14, 2009
-
-
Chris Lattner authored
C99 mode. This is a regression from an earlier patch of mine. This also simplifies the linkage enums a bit. llvm-svn: 69069
-
Chris Lattner authored
pulling some attribute munging stuff into GetLinkageForFunction. This should fix PR3986 llvm-svn: 69045
-
Daniel Dunbar authored
- Pull out SetCommonAttributes, which handles the things common to aliases, methods, functions, and variables. - Pull out SetLLVMFunctionAttributesForDefinition, which handles the LLVM attributes which we only want to apply to a definition (like noinline and alwaysinline). - Kill SetGVDeclarationAttributes (inlined into SetFunctionAttributes and specialized). - Kill SetFunctionAttributesForDefinition (inlined into sole caller). - Inline SetGVDefinitionAttributes into SetMethodAttributes and specialize. - Rename SetGVDefinitionAttributes to SetFunctionDefinitionAttributes. This is supposed to be a no functionality change commit, but I may have made a mistake. llvm-svn: 69036
-
Daniel Dunbar authored
- No functionality change. llvm-svn: 69035
-
Daniel Dunbar authored
disambiguate it. - No functionality change. llvm-svn: 69034
-
Daniel Dunbar authored
llvm-svn: 69033
-
Chris Lattner authored
not in c89 mode). llvm-svn: 69032
-
Chris Lattner authored
inlined for some reason, then we don't want a strong or even weak definition. llvm-svn: 69031
-
Chris Lattner authored
llvm-svn: 69030
-
Daniel Dunbar authored
llvm-svn: 69029
-
Chris Lattner authored
llvm-svn: 69028
-
Daniel Dunbar authored
llvm-svn: 69027
-
Chris Lattner authored
llvm-svn: 69026
-