| #
eb7466d2 |
| 12-May-2009 |
Chris Lattner <[email protected]> |
cleanups, no functionality change.
llvm-svn: 71590
|
| #
e7834115 |
| 12-May-2009 |
Chris Lattner <[email protected]> |
revert my previous patch, I committed the wrong file.
llvm-svn: 71585
|
| #
cd74ffa3 |
| 12-May-2009 |
Chris Lattner <[email protected]> |
static methods don't get this pointers.
llvm-svn: 71583
|
| #
36797ab2 |
| 05-May-2009 |
Chris Lattner <[email protected]> |
When defining a function whose type has no prototype, make an effort to go back and clean up existing uses of the bitcasted function. This is not just an optimization: it is required for correctness
When defining a function whose type has no prototype, make an effort 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
show more ...
|
| #
dae1abc7 |
| 05-May-2009 |
Anders Carlsson <[email protected]> |
Refactor global decls to hold either a regular Decl or a CXXConstructorDecl + ctor type or a CXXDestructorDecl + dtor type.
llvm-svn: 70962
|
| #
5a3b1b0f |
| 03-May-2009 |
Eli Friedman <[email protected]> |
Fix comment to account for r70786.
llvm-svn: 70789
|
| #
c0042d80 |
| 03-May-2009 |
Eli Friedman <[email protected]> |
PR4133: fix always_inline implementation to be consistent with gcc.
llvm-svn: 70786
|
| #
76fe50c6 |
| 28-Apr-2009 |
Douglas Gregor <[email protected]> |
Improve compatibility with GCC regarding inline semantics in GNU89 mode and in the presence of __gnu_inline__ attributes. This should fix both PR3989 and PR4069.
As part of this, we now keep track o
Improve compatibility with GCC regarding inline semantics in GNU89 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
show more ...
|
| #
89c8e000 |
| 23-Apr-2009 |
Douglas Gregor <[email protected]> |
Fix handling of C99 "extern inline" semantics when dealing with multiple declarations of the function. Should fix PR3989 and <rdar://problem/6818429>.
llvm-svn: 69905
|
| #
29bd76fd |
| 23-Apr-2009 |
Douglas Gregor <[email protected]> |
Eliminate the three SmallVectors in ObjCImplDecl (for instance methods, class methods, and property implementations) and instead place all of these entities into the DeclContext.
This eliminates mor
Eliminate the three SmallVectors in ObjCImplDecl (for instance 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
show more ...
|
| #
7d4e1c5e |
| 22-Apr-2009 |
Daniel Dunbar <[email protected]> |
Don't convert interface types (to structs) as part of CodeGenTypes. - 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 ca
Don't convert interface types (to structs) as part of CodeGenTypes. - 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
show more ...
|
| #
f8dc0736 |
| 22-Apr-2009 |
Chris Lattner <[email protected]> |
Fix some mishandling of the attr(gnu_inline) mode when used with extern. Previously we would warn about it and ignore the attribute. This is incorrect, it should be handled as a c89 "extern inline"
Fix some mishandling of the attr(gnu_inline) mode when used with 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
show more ...
|
| #
fa9ab53d |
| 21-Apr-2009 |
Douglas Gregor <[email protected]> |
Fix emission of static tentative definitions referenced from other static functions
llvm-svn: 69699
|
| #
beecd58e |
| 21-Apr-2009 |
Douglas Gregor <[email protected]> |
Explictly track tentative definitions within Sema, then hand those tentative definitions off to the ASTConsumer at the end of the translation unit.
Eliminate CodeGen's internal tracking of tentativ
Explictly track tentative definitions within Sema, then hand those 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
show more ...
|
| #
ddf6ca03 |
| 20-Apr-2009 |
Chris Lattner <[email protected]> |
the __gnuc_inline__ attribute is actually named __gnu_inline__, PR4023
llvm-svn: 69618
|
| #
4f856744 |
| 19-Apr-2009 |
Eli Friedman <[email protected]> |
PR3853: Add CodeGen support for __thread.
llvm-svn: 69545
|
| #
5f65cc82 |
| 19-Apr-2009 |
Chris Lattner <[email protected]> |
silence a warning, it isn't clear what the right answer is here, will talk to steve.
llvm-svn: 69519
|
| #
e3dcb2dd |
| 18-Apr-2009 |
Douglas Gregor <[email protected]> |
FunctionDecl::getBody() is getting an ASTContext argument for use in lazy PCH deserialization. Propagate that argument wherever it needs to be. No functionality change, except that I've tightened up
FunctionDecl::getBody() is getting an ASTContext argument for use in 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
show more ...
|
| #
eaa28f7e |
| 17-Apr-2009 |
Anders Carlsson <[email protected]> |
Add support for generating (very basic) C++ destructors. These aren't called by anything yet.
llvm-svn: 69343
|
| #
c3e7cff6 |
| 17-Apr-2009 |
Daniel Dunbar <[email protected]> |
Attributes on block functions were not being set. - <rdar://problem/6800351> clang not producing correct large struct return code for Blocks
llvm-svn: 69337
|
| #
426b5cf1 |
| 16-Apr-2009 |
Daniel Dunbar <[email protected]> |
Ensure that the most recent declaration of a tentative definition wins when generating a common definition.
llvm-svn: 69287
|
| #
7dd749e6 |
| 15-Apr-2009 |
Daniel Dunbar <[email protected]> |
Defer generation of tentative definitions. - PR3980.
- <rdar://problem/6762287> [irgen] crash when generating tentative definition of incomplete structure
- This also avoids creating common d
Defer generation of tentative definitions. - 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
show more ...
|
| #
f7475248 |
| 15-Apr-2009 |
Anders Carlsson <[email protected]> |
Start attempting to generate code for C++ ctors.
llvm-svn: 69168
|
| #
346892aa |
| 14-Apr-2009 |
Daniel Dunbar <[email protected]> |
Comment fix.
llvm-svn: 69091
|
| #
bae0e689 |
| 14-Apr-2009 |
Chris Lattner <[email protected]> |
Fix PR3988: extern inline functions get strong symbol definitions in C99 mode. This is a regression from an earlier patch of mine.
This also simplifies the linkage enums a bit.
llvm-svn: 69069
|