aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2009-10-09Revert 83567.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83676 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-09Allow customization for the producer information in the debug output.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83659 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-09Avoid warning.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83609 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-08Installation of Clang libraries and headers, from Axel Naumann!Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83582 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-08Record location info before emiting alloca for arguments. This allows ↵Devang Patel
arguments to have proper location info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83567 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-08If a global initializer has a non-trivial constructor or destructor, we ↵Anders Carlsson
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83559 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-08Mangle std::basic_ostream<char, std::char_traits<char>> as So.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83557 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-07Mangle anonymous structs/unions correctly. Fixes PR5139.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83448 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-07Add a MangleContext and pass it to all mangle functions. It will be used for ↵Anders Carlsson
keeping state, such as identifiers assigned to anonymous structs as well as scope encoding. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83442 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-06Uncomment some commented out code.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83428 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-06Change GetAddressCXXOfBaseClass to use CXXBasePaths for calculating base ↵Anders Carlsson
class offsets. Fix the code to handle virtual bases as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83426 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-06When mangling names, always use the canonical decl. Fixes PR5144.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83420 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-06InsertSubprogramStart if ATTACH_DEBUG_INFO_TO_AN_INSN is not defined.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83419 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-06Add support to attach debug info to an instruction.Devang Patel
This is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83399 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-06Emit the destructor epilogue in a cleanup block so a return from a ↵Anders Carlsson
destructor body still calls the epilogue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83397 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-06Pass the right type to GetAddrOfFunction when getting functions for the ↵Anders Carlsson
VTable. Fixes PR5021. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83395 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-06Set appropriate context for a global variable while emitting debug info.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83352 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-05Fix thinko and simplify.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83342 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-05Ensure we have atleast 2-byte alignment for member functions.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83337 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-05Respect alignments better.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83328 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-05Use new predicates for some type equality tests.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83303 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-03Pass the canonical method decl to GetVtableIndex. Fixes PR5120.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83272 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-03Implement code generation of member function pointer calls. Fixes PR5121.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83271 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-03Teach AggExprEmitter about pointers to member functions.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83266 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-03Handle base-to-derived casts of member function pointers in CGExprConstant.cppAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83265 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-03Handle members to function pointers in CGExprConstant.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83264 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-03Move some functions from CodeGenFunctions to CodeGenModule so they can be ↵Anders Carlsson
used by CGExprConstant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83263 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-02Don't update the struct alignment when adding fields to a packed struct. ↵Anders Carlsson
Fixes PR5118. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83235 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-02More magic pixie dust.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83232 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-02Fix up debug information for block pointers a bit more.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83231 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-02When building constant structs, check if the resulting LLVM struct will be ↵Anders Carlsson
bigger than the record layout size and use a packed struct if that's the case. Fixes PR5108. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83230 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-01Implement a FIXME. This improves codegen just a tad.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83221 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-01CodeGen may see out-of-line declarations of the various special memberDouglas Gregor
functions when they are explicitly declared, e.g., via a function template specialization or explicit template instantiation declaration. Don't try to synthesize bodies for the special member functions in this case; rather, check whether we have an implicit declaration and, if so, synthesize the appropriate function body. Fixes PR5084. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83212 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-01Fix a lame regression in IR gen for C++ delete expressions. PR5102Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83195 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-01A couple of refinements for laying out debug information forMike Stump
BlockDeclRefDecls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83185 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-01Anonymous namespaces, sema + codegen. A lot of semantics are still broken,John McCall
apparently because using directives aren't quite working correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83184 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-30<rdar://problem/7263113> Make clang produce gcc's objc_assign_StrongCast as ↵Fariborz Jahanian
a result of type-cast of an ivar in assignment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83150 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-30Improve debugging information for BlockDeclRefExpr. WIP. Given thisMike Stump
scheme, we can switch the previous scheme over to using this code path. There's a bit of simplifications yet to do as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83138 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-29Handle C++ delete expressions when the overloaded delete operator is aDouglas Gregor
"usual deallocation function" with two arguments. CodeGen will have to handle this case specifically, since the value for the second argument (the size of the allocated object) may have to be computed at run time. Fixes the Sema part of PR4782. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83080 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-29Handle CXXMemberCallExprs that point to a static method. Fixes PR5093.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83045 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-29Handle CK_BaseToDerivedMemberPointer for member function pointers. Fixes PR5091.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83041 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-29Improve support for member function pointers.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83039 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-29Use a switch statement in VisitCastExpr.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83038 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-29Make hasAggregateLLVMType use positive checks.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83037 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-29Fix http://llvm.org/PR5090.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83035 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Mangle dependent name expressions. Fixes PR5063.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82915 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Use mangleTemplatePrefix when we know that we're mangling a nested template ↵Anders Carlsson
name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82912 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27CodeGen for try statements. (We just emit the body for now).Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82910 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Look for substitutions when mangling TypenameTypes.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82885 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-27Better template parameter type mangling.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82883 91177308-0d34-0410-b5e6-96231b3b80d8