| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | Refine handling for non-virtual bases in return value adjustments for | Mike Stump | 2009-10-13 | 2 | -14/+30 | |
| | | | | | | | covariant thunks. WIP. llvm-svn: 84046 | |||||
| * | fix test/CodeGen/statements.c on 32-bit hosts. | Chris Lattner | 2009-10-13 | 1 | -1/+12 | |
| | | | | | llvm-svn: 84039 | |||||
| * | Ensure we sign extend. | Mike Stump | 2009-10-13 | 1 | -2/+2 | |
| | | | | | llvm-svn: 84031 | |||||
| * | Don't assume that the LHS and RHS of a member pointer expression is a ↵ | Anders Carlsson | 2009-10-13 | 1 | -5/+6 | |
| | | | | | | | DeclRefExpr. Fixes PR5177. llvm-svn: 83986 | |||||
| * | Remove FIXME. We construct VBIndex very early, before any calls to ↵ | Mike Stump | 2009-10-13 | 1 | -1/+0 | |
| | | | | | | | OverrideMethod. llvm-svn: 83981 | |||||
| * | Remove extra white space line. | Devang Patel | 2009-10-13 | 1 | -1/+0 | |
| | | | | | llvm-svn: 83979 | |||||
| * | Do not check use_empty() before invoking replaceAllUsesWith(). | Devang Patel | 2009-10-13 | 1 | -2/+3 | |
| | | | | | | | Let replaceAllUsesWith() adjust VHs even though there are no uses. llvm-svn: 83978 | |||||
| * | Refine handling for return value conversions with respect to virtual | Mike Stump | 2009-10-13 | 1 | -12/+22 | |
| | | | | | | | offsets for covariant thunks. llvm-svn: 83965 | |||||
| * | Simplify pointer creation with the new Type::getInt*Ptr methods. | Benjamin Kramer | 2009-10-13 | 13 | -57/+33 | |
| | | | | | llvm-svn: 83964 | |||||
| * | Teach sema and codegen about the difference between address of labels, | Chris Lattner | 2009-10-13 | 1 | -1/+22 | |
| | | | | | | | | | | | which is a common idiom to improve PIC'ness of code using the addr of label extension. This implementation is a gross hack, but the only other alternative would be to teach evalutate about this horrid combination. While GCC allows things like "&&foo - &&bar + 1", people don't use this in practice. This implements PR5131. llvm-svn: 83957 | |||||
| * | reimplement codegen for indirect goto with the following advantages: | Chris Lattner | 2009-10-13 | 3 | -44/+91 | |
| | | | | | | | | | | | | | | 1. CGF now has fewer bytes of state (one pointer instead of a vector). 2. The generated code is determinstic, instead of getting labels in 'map order' based on pointer addresses. 3. Clang now emits one 'indirect goto switch' for each function, instead of one for each indirect goto. This fixes an M*N = N^2 IR size issue when there are lots of address-taken labels and lots of indirect gotos. 4. This also makes the default cause do something useful, reducing the size of the jump table needed (by one). llvm-svn: 83952 | |||||
| * | number address-taken labels from 1. This allows 0 to be used as a sentinel | Chris Lattner | 2009-10-13 | 1 | -1/+1 | |
| | | | | | | | | for a null pointer. In other words, "&&foo != NULL" will always work out to true. llvm-svn: 83948 | |||||
| * | Use the new Type::getInt8PtrTy method. This should probably be used in a lot | Chris Lattner | 2009-10-13 | 1 | -1/+1 | |
| | | | | | | | more places in clang codegen now. llvm-svn: 83947 | |||||
| * | Enable "debug info attached to an instruction" mode. | Devang Patel | 2009-10-12 | 1 | -0/+2 | |
| | | | | | llvm-svn: 83928 | |||||
| * | There is no need to attach debug location info with alloca instruction. | Devang Patel | 2009-10-12 | 1 | -5/+1 | |
| | | | | | llvm-svn: 83913 | |||||
| * | Encode long double. | Devang Patel | 2009-10-12 | 1 | -0/+1 | |
| | | | | | llvm-svn: 83912 | |||||
| * | Store the key function of a record decl inside CGRecordLayout. | Anders Carlsson | 2009-10-12 | 2 | -3/+41 | |
| | | | | | llvm-svn: 83900 | |||||
| * | Even more devirtualization cleverness. | Anders Carlsson | 2009-10-12 | 1 | -1/+5 | |
| | | | | | llvm-svn: 83886 | |||||
| * | More devirtualization improvements. | Anders Carlsson | 2009-10-12 | 1 | -0/+4 | |
| | | | | | llvm-svn: 83883 | |||||
| * | Devirtualize calls on temporaries. A().f() for example. | Anders Carlsson | 2009-10-12 | 1 | -0/+6 | |
| | | | | | llvm-svn: 83882 | |||||
| * | Factor out devirtualization checking into a separate function and make it ↵ | Anders Carlsson | 2009-10-12 | 1 | -1/+15 | |
| | | | | | | | handle references correctly. llvm-svn: 83880 | |||||
| * | If the base type of a member call is a record type we don't need to emit a ↵ | Anders Carlsson | 2009-10-11 | 1 | -5/+6 | |
| | | | | | | | virtual call. llvm-svn: 83816 | |||||
| * | Remove dead variable. | Benjamin Kramer | 2009-10-11 | 1 | -1/+1 | |
| | | | | | llvm-svn: 83808 | |||||
| * | Add CGVtable.cpp to CMakeLists. | Benjamin Kramer | 2009-10-11 | 1 | -0/+1 | |
| | | | | | llvm-svn: 83800 | |||||
| * | Move the vtable builder to CGVtable.cpp, general cleanup. | Anders Carlsson | 2009-10-11 | 7 | -554/+608 | |
| | | | | | llvm-svn: 83798 | |||||
| * | Change mangleCXXVtable and mangleCXXRtti to take CXXRecordDecls instead of ↵ | Anders Carlsson | 2009-10-11 | 4 | -17/+17 | |
| | | | | | | | QualTypes. llvm-svn: 83793 | |||||
| * | Move our (non-existing) RTTI emission code into CGRtti.cpp. No functionality ↵ | Anders Carlsson | 2009-10-10 | 3 | -32/+49 | |
| | | | | | | | change. llvm-svn: 83732 | |||||
| * | Generate weak read barriers when reading a weak __block | Fariborz Jahanian | 2009-10-10 | 1 | -1/+5 | |
| | | | | | | | variable inside the block. llvm-svn: 83729 | |||||
| * | Revert 83567. | Devang Patel | 2009-10-09 | 1 | -6/+3 | |
| | | | | | llvm-svn: 83676 | |||||
| * | Allow customization for the producer information in the debug output. | Mike Stump | 2009-10-09 | 2 | -1/+8 | |
| | | | | | llvm-svn: 83659 | |||||
| * | Avoid warning. | Mike Stump | 2009-10-09 | 1 | -1/+1 | |
| | | | | | llvm-svn: 83609 | |||||
| * | Installation of Clang libraries and headers, from Axel Naumann! | Douglas Gregor | 2009-10-08 | 1 | -3/+0 | |
| | | | | | llvm-svn: 83582 | |||||
| * | Record location info before emiting alloca for arguments. This allows ↵ | Devang Patel | 2009-10-08 | 1 | -3/+6 | |
| | | | | | | | arguments to have proper location info. llvm-svn: 83567 | |||||
| * | If a global initializer has a non-trivial constructor or destructor, we ↵ | Anders Carlsson | 2009-10-08 | 1 | -0/+11 | |
| | | | | | | | | | | | | | | | | | | | | never want to defer generation of it, even if it is declared static. With this change we're finally able to compile and run the (infamous) #include <string> #include <iostream> int main(int argc, char **argv) { std::cout << "Hello, World" << std::endl; } $ clang hello.cpp -lstdc++ -o hello $ ./hello Hello, World llvm-svn: 83559 | |||||
| * | Mangle std::basic_ostream<char, std::char_traits<char>> as So. | Anders Carlsson | 2009-10-08 | 1 | -0/+18 | |
| | | | | | llvm-svn: 83557 | |||||
| * | Mangle anonymous structs/unions correctly. Fixes PR5139. | Anders Carlsson | 2009-10-07 | 2 | -3/+45 | |
| | | | | | llvm-svn: 83448 | |||||
| * | Add a MangleContext and pass it to all mangle functions. It will be used for ↵ | Anders Carlsson | 2009-10-07 | 5 | -42/+58 | |
| | | | | | | | keeping state, such as identifiers assigned to anonymous structs as well as scope encoding. llvm-svn: 83442 | |||||
| * | Uncomment some commented out code. | Anders Carlsson | 2009-10-06 | 1 | -4/+4 | |
| | | | | | llvm-svn: 83428 | |||||
| * | Change GetAddressCXXOfBaseClass to use CXXBasePaths for calculating base ↵ | Anders Carlsson | 2009-10-06 | 3 | -66/+135 | |
| | | | | | | | class offsets. Fix the code to handle virtual bases as well. llvm-svn: 83426 | |||||
| * | When mangling names, always use the canonical decl. Fixes PR5144. | Anders Carlsson | 2009-10-06 | 1 | -1/+1 | |
| | | | | | llvm-svn: 83420 | |||||
| * | InsertSubprogramStart if ATTACH_DEBUG_INFO_TO_AN_INSN is not defined. | Devang Patel | 2009-10-06 | 1 | -1/+3 | |
| | | | | | llvm-svn: 83419 | |||||
| * | Add support to attach debug info to an instruction. | Devang Patel | 2009-10-06 | 4 | -12/+46 | |
| | | | | | | | This is not yet enabled. llvm-svn: 83399 | |||||
| * | Emit the destructor epilogue in a cleanup block so a return from a ↵ | Anders Carlsson | 2009-10-06 | 1 | -1/+20 | |
| | | | | | | | destructor body still calls the epilogue. llvm-svn: 83397 | |||||
| * | Pass the right type to GetAddrOfFunction when getting functions for the ↵ | Anders Carlsson | 2009-10-06 | 1 | -4/+16 | |
| | | | | | | | VTable. Fixes PR5021. llvm-svn: 83395 | |||||
| * | Set appropriate context for a global variable while emitting debug info. | Devang Patel | 2009-10-06 | 2 | -1/+21 | |
| | | | | | llvm-svn: 83352 | |||||
| * | Fix thinko and simplify. | Mike Stump | 2009-10-05 | 1 | -2/+2 | |
| | | | | | llvm-svn: 83342 | |||||
| * | Ensure we have atleast 2-byte alignment for member functions. | Mike Stump | 2009-10-05 | 1 | -0/+3 | |
| | | | | | llvm-svn: 83337 | |||||
| * | Respect alignments better. | Mike Stump | 2009-10-05 | 1 | -0/+3 | |
| | | | | | llvm-svn: 83328 | |||||
| * | Use new predicates for some type equality tests. | Benjamin Kramer | 2009-10-05 | 3 | -5/+4 | |
| | | | | | llvm-svn: 83303 | |||||
| * | Pass the canonical method decl to GetVtableIndex. Fixes PR5120. | Anders Carlsson | 2009-10-03 | 2 | -2/+2 | |
| | | | | | llvm-svn: 83272 | |||||

