summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Move VtableBuilder::OverrideMethod out of line in preparation of other ↵Anders Carlsson2009-12-031-112/+117
| | | | | | changes to it. No functionality change. llvm-svn: 90382
* Remove untrue statement.Mike Stump2009-12-031-3/+0
| | | | llvm-svn: 90377
* Note a failure I saw from the g++ testsuite:Mike Stump2009-12-031-0/+1
| | | | | | FAIL: g++.old-deja/g++.mike/eh23.C (test for excess errors) llvm-svn: 90374
* Work-in-progress: teach mangler how to mangle thunks for destructors.Eli Friedman2009-12-032-3/+16
| | | | llvm-svn: 90360
* Cleanups on exceptional edges don't work at all, yet. This doesn'tMike Stump2009-12-021-5/+0
| | | | | | | catch very many of them and if we caught all of them, the errors would be annoying. I'm working on this next. WIP. llvm-svn: 90358
* Add a cleanup scope for each catch clause.Mike Stump2009-12-021-15/+19
| | | | llvm-svn: 90357
* Add missing branch to exit. Seemingly obvious when I look at theMike Stump2009-12-021-0/+3
| | | | | | code, but to track this down was laborious. llvm-svn: 90356
* Fix for PR5522 and PR5666: fix a bunch of mangling issues with extern variablesEli Friedman2009-12-021-11/+25
| | | | | | and funcctions declared locally within a function. llvm-svn: 90344
* Pull the terminate handler up so that we can use it for the catchMike Stump2009-12-021-35/+31
| | | | | | | parameter setup code and set up the catch parameter setup code to protect that code with terminate. llvm-svn: 90340
* Turn off for now.Mike Stump2009-12-021-2/+2
| | | | llvm-svn: 90339
* Put the Builder classes into the anonymous namespace.Mike Stump2009-12-022-1/+4
| | | | llvm-svn: 90335
* Change rtti/Rtti to RTTI, as it is an acronym.Mike Stump2009-12-027-39/+40
| | | | llvm-svn: 90334
* Rename CGRtti.cpp to CGRTTI.cpp.Mike Stump2009-12-022-1/+1
| | | | llvm-svn: 90331
* Avoid warning for getTerminateFn defined but not used.Mike Stump2009-12-021-9/+3
| | | | llvm-svn: 90330
* terminate doesn't throw.Mike Stump2009-12-021-0/+1
| | | | llvm-svn: 90308
* More exception handling improvements... WIP.Mike Stump2009-12-023-47/+112
| | | | | | | | | | | Highlights include: Add a helper to generate __cxa_free_exception and _ZSt9terminatev. Add a region to handle EH object deallocation for ctor failures for throw. Add a terminate handler for __cxa_end_catch. A framework for adding cleanup actions for the exceptional edges only. llvm-svn: 90305
* Added an assert.Fariborz Jahanian2009-12-011-1/+4
| | | | llvm-svn: 90285
* Make EmitStoreOfScalar generate a more sane representation of boolean stores.Eli Friedman2009-12-011-6/+1
| | | | | | "Fixes" PR5645. llvm-svn: 90272
* (objc2 nonfragile-abi specific). If the translation unit includes an ↵Fariborz Jahanian2009-12-011-11/+10
| | | | | | | | | implementation of a subclass (direct or indirect) of a weak_import root class, emit a weak reference for the root class's metaclass (should complete radar 6815425). llvm-svn: 90249
* Update for llvm intrinsics change.Eric Christopher2009-12-011-0/+7
| | | | llvm-svn: 90208
* Much work on try/catch statement. WIP.Mike Stump2009-12-011-69/+250
| | | | | | | | | | | | | | | | | Highlights include: Fix __cxa_begin_catch so it now returns a value. Added getUnwindResumeOrRethrowFn helper to build up calls to _Unwind_Resume_or_Rethrow. Broke out object copying code into CopyObject from EmitCXXThrowExpr. Built up another version of CopyObject that can copy from memory for use in the catch parameter code. RTTI generation for type matching for catch. Code to check for the type match for catch. Code to generate the catch parameter, WIP, need make sure references and pointers and copy ctors work. llvm-svn: 90205
* Have ASTRecordLayout keep track of the key function, in preparation of ↵Anders Carlsson2009-11-305-67/+50
| | | | | | fixing a synthetic ctor/dtor bug. llvm-svn: 90168
* More support for virtual destructor calls.Fariborz Jahanian2009-11-301-15/+26
| | | | | | Fixes pr5619 llvm-svn: 90158
* Reflow comments and fix 80-col violation.Mike Stump2009-11-301-29/+27
| | | | llvm-svn: 90152
* Fix an assert.Anders Carlsson2009-11-301-2/+2
| | | | llvm-svn: 90149
* Don't try to generate common globals for C++ files, instead of depending on ↵Daniel Dunbar2009-11-301-1/+1
| | | | | | the FE to set NoCommon, and simplify CodeGenOptions initialization. llvm-svn: 90119
* Minor cleanup (no functionality change).Eli Friedman2009-11-301-23/+12
| | | | llvm-svn: 90105
* Don't pass false (default) for isVolatile parameter to CreateLoad.Daniel Dunbar2009-11-295-20/+22
| | | | llvm-svn: 90098
* Explicitly use setVolatile instead of extra IRBuilder argument.Daniel Dunbar2009-11-291-1/+3
| | | | llvm-svn: 90095
* Don't pass false (default) for isVolatile parameter to CreateStore.Daniel Dunbar2009-11-291-8/+8
| | | | llvm-svn: 90094
* Simplify code. No functionality change.Benjamin Kramer2009-11-291-22/+6
| | | | llvm-svn: 90087
* Add DeclarationName support for C++0x operator literals. They should now work asAlexis Hunt2009-11-291-0/+6
| | | | | | | function names outside of templates - they'll probably cause some damage there as they're largely untested. llvm-svn: 90064
* Change LangOptions::ObjCConstantStringClass to an std::string to avoid ↵Daniel Dunbar2009-11-291-2/+2
| | | | | | worrying about the lifetime. llvm-svn: 90052
* Move MainFileName option variable into CodeGenOptions instead of LangOptions.Daniel Dunbar2009-11-291-3/+3
| | | | llvm-svn: 90051
* Remove remaining VISIBILITY_HIDDEN from anonymous namespaces.Benjamin Kramer2009-11-287-17/+7
| | | | llvm-svn: 90044
* Tests now pass with the assertion.Eli Friedman2009-11-281-3/+0
| | | | llvm-svn: 90026
* Add a much more thorough test of casts to virtual bases, and fixEli Friedman2009-11-281-14/+13
| | | | | | GetCXXBaseClassOffset to actually pass the test. llvm-svn: 90025
* We always want to create a virtual function pointer entry if the path from ↵Anders Carlsson2009-11-281-27/+5
| | | | | | the derived return value to the base overridden return value contains a virtual base class. llvm-svn: 90024
* Move the vtable builder to an anonymous namespace.Anders Carlsson2009-11-271-1/+5
| | | | llvm-svn: 90021
* Don't build the entire vtable when all we want is the index of a virtual method.Anders Carlsson2009-11-274-19/+251
| | | | llvm-svn: 90017
* Add case for CK_DerivedToBaseMemberPointer cast kind toEli Friedman2009-11-271-6/+13
| | | | | | AggExprEmitter::VisitCastExpr. llvm-svn: 89988
* More work on ScalarExprEmitter::EmitCastExpr: for every cast kind, eitherEli Friedman2009-11-271-8/+32
| | | | | | | | | | | implement it explicitly or assert that it doesn't make sense for a scalar. This caught a couple interesting issues: one, CK_BaseToDerivedMemberPointer casts were getting silently miscompiled, and two, Sema was constructing some strange implicit casts of type CK_UserDefinedConversion. The change in SemaExprCXX makes sure the cast kinds are getting set correctly. llvm-svn: 89987
* Cleanup for ScalarExprEmitter::EmitCastExpr; no functional changes.Eli Friedman2009-11-271-15/+19
| | | | llvm-svn: 89986
* Fix for PR5594: use EmitGlobalDefinition instead of EmitCXXDestructor so thatEli Friedman2009-11-271-3/+3
| | | | | | we check whether the vtable needs to be generated. llvm-svn: 89984
* Lazily create the __cxa_pure_virtual reference.Anders Carlsson2009-11-261-11/+19
| | | | llvm-svn: 89965
* Use the new CovariantThunkAdjustment in the vtable builder. Anders Carlsson2009-11-261-49/+63
| | | | | | Make the pure virtual methods map a set instead. llvm-svn: 89961
* Remove dead forward declaration. Fix struct/class mismatch. Remove trailing ↵Benjamin Kramer2009-11-261-19/+20
| | | | | | whitespace. llvm-svn: 89947
* Remove unused variable.Eli Friedman2009-11-261-1/+0
| | | | llvm-svn: 89945
* Shortcut explicit calls to a trivial copy assignment operator.Eli Friedman2009-11-261-0/+8
| | | | llvm-svn: 89944
* Simplify and fix up the handling of implicit constructors, copy assignmentEli Friedman2009-11-263-138/+16
| | | | | | | | operators, and destructors. Avoids generating declarations/definitions of trivial constructors/destructors, and makes sure the trivial copy assignment operator is generated when necessary. llvm-svn: 89943
OpenPOWER on IntegriCloud