summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Improve key-function computation for templates. In particular:Douglas Gregor2010-01-052-3/+18
| | | | | | | | | | | | | | | | - All classes can have a key function; templates don't change that. non-template classes when computing the key function. - We always mark all of the virtual member functions of class template instantiations. - The vtable for an instantiation of a class template has weak linkage. We could probably use available_externally linkage for vtables of classes instantiated by explicit instantiation declarations (extern templates), but GCC doesn't do this and I'm not 100% that the ABI permits it. llvm-svn: 92753
* Add code to skip the emission of available externally functions at -O0. WIP.Mike Stump2010-01-051-0/+10
| | | | llvm-svn: 92749
* When emitting member function pointers, use the canonical decl if the member ↵Anders Carlsson2010-01-052-1/+4
| | | | | | function is virtual. Fixes PR5940. llvm-svn: 92680
* Revert r92431, this code isn't dead and broke the ntfs build.Daniel Dunbar2010-01-041-0/+1
| | | | llvm-svn: 92493
* Fix -Asserts warning.Daniel Dunbar2010-01-041-2/+2
| | | | llvm-svn: 92491
* Get rid of more dead code.Eli Friedman2010-01-032-51/+0
| | | | llvm-svn: 92439
* Get rid of some unnecessary code.Eli Friedman2010-01-021-27/+2
| | | | llvm-svn: 92432
* Delete impossible case.Eli Friedman2010-01-021-1/+0
| | | | llvm-svn: 92431
* Speculative MSVC fix.Anders Carlsson2010-01-021-3/+2
| | | | llvm-svn: 92421
* Move address points to CGVtableInfo, no functionality change.Anders Carlsson2010-01-025-15/+16
| | | | llvm-svn: 92420
* Correctly pass VTT parameters to constructors and destructors. The VTTs ↵Anders Carlsson2010-01-026-83/+202
| | | | | | aren't yet used in the ctors/dtors, but that will follow. llvm-svn: 92409
* Move a few more functions away from CGCXX and to CGClass and CGExprCXX.Anders Carlsson2010-01-014-673/+672
| | | | llvm-svn: 92399
* Fix last patch, catch of reference to non-pointer.Mike Stump2010-01-011-10/+12
| | | | llvm-svn: 92386
* Fix catching a reference to a pointer.Mike Stump2010-01-011-3/+15
| | | | llvm-svn: 92385
* If the key function of a record is inline, then the RTTI data should have ↵Anders Carlsson2009-12-311-0/+8
| | | | | | weak_odr linkage. llvm-svn: 92371
* More RTTI builder cleanup.Anders Carlsson2009-12-311-76/+26
| | | | llvm-svn: 92360
* Fix a bunch of bugs with VMI RTTI building, and add a whole bunch of tests.Anders Carlsson2009-12-302-215/+190
| | | | llvm-svn: 92319
* More RTTI cleanup, test that RTTI classes have the correct vtables.Anders Carlsson2009-12-301-52/+57
| | | | llvm-svn: 92284
* Match gcc and treat vector types as fundamental types.Anders Carlsson2009-12-291-9/+23
| | | | llvm-svn: 92278
* Handle enum types as well.Anders Carlsson2009-12-291-3/+22
| | | | llvm-svn: 92276
* Test linkage of RTTI descriptors of array types.Anders Carlsson2009-12-291-29/+61
| | | | llvm-svn: 92274
* Fix function type RTTI linkage and add tests.Anders Carlsson2009-12-291-4/+14
| | | | llvm-svn: 92266
* strength reduce this call away.Chris Lattner2009-12-291-1/+2
| | | | llvm-svn: 92253
* Get rid of FixedWidthIntType, as suggested by Chris and Eli.Anders Carlsson2009-12-293-12/+4
| | | | llvm-svn: 92246
* adjust for llvm api changes.Chris Lattner2009-12-281-10/+2
| | | | llvm-svn: 92236
* this form of SetDebugLocation is about to go away, add some #includes thatChris Lattner2009-12-282-7/+15
| | | | | | are about to not come in implicitly. llvm-svn: 92228
* Promote arguments of frameaddr / returnaddr builtins to i32 type, when needed.Anton Korobeynikov2009-12-271-2/+10
| | | | | | | This is needed for the platforms, where bitwidth of "int" is not 32 bits (e.g. 16 on msp430). llvm-svn: 92176
* Add a sanity assertion so that we don't silently generate bad code; I'll fileEli Friedman2009-12-271-0/+2
| | | | | | a bug with a testcase hitting this assertion in a moment. llvm-svn: 92175
* Fix obvious mistake.Eli Friedman2009-12-271-1/+1
| | | | llvm-svn: 92172
* Remove some dead variables clang-analyzer found.Benjamin Kramer2009-12-253-7/+2
| | | | llvm-svn: 92162
* Minor optimization; emit proper unsupported messages for a couple of cases.Eli Friedman2009-12-253-6/+16
| | | | llvm-svn: 92153
* Some small improvements to dead code elimination; helps a bit onEli Friedman2009-12-252-1/+10
| | | | | | LLVM-Code-Symbols test. llvm-svn: 92152
* Make copy constructor elimination work in more cases; the case in questionEli Friedman2009-12-241-0/+3
| | | | | | here affects clang-on-clang. llvm-svn: 92151
* Move a bunch of class related functions to CGClass.cpp, no functionality change.Anders Carlsson2009-12-242-774/+775
| | | | llvm-svn: 92148
* Pass the return value slot to all call exprs.Anders Carlsson2009-12-245-20/+29
| | | | llvm-svn: 92145
* Fill in the return value slot in CGExprAgg::VisitCallExpr. This takes us ↵Anders Carlsson2009-12-247-20/+51
| | | | | | halfway towards fixing PR5824. llvm-svn: 92142
* Pass ReturnValueSlot to EmitCall. No functionality change yet.Anders Carlsson2009-12-2411-26/+29
| | | | llvm-svn: 92138
* Add a ReturnValueSlot class. Change the argument order in EmitCall to match ↵Anders Carlsson2009-12-245-10/+25
| | | | | | the other overload better. llvm-svn: 92136
* Fix double-destruction assertion to account for temporaries in conditionalsDouglas Gregor2009-12-241-1/+2
| | | | llvm-svn: 92134
* Assert that we aren't trying to push the same C++ temporary onto the live ↵Douglas Gregor2009-12-241-0/+3
| | | | | | temporary stack twice. A little insurance against PR5867 surprising us again llvm-svn: 92132
* Remove some dead code.Mike Stump2009-12-241-29/+19
| | | | llvm-svn: 92123
* Cleanup some dead code.Mike Stump2009-12-241-3/+1
| | | | llvm-svn: 92122
* Don't set hidden for a non-external symbol as that would make it extenal.Mike Stump2009-12-241-1/+29
| | | | | | Refine codegen for visibility and hidden. WIP. llvm-svn: 92118
* Fix for bug 5691.David Chisnall2009-12-241-6/+24
| | | | | | | | This fixes throwing exceptions inside @catch blocks nested inside outer @try blocks and also fixes jumping from an inner @finally to an outer @finally (via any relevant @catch blocks). The code exhibiting this bug was based on code from CGObjCMac. I believe that this bug may still be present on the Mac runtimes, although the test case in the bug contains a few GNUisms and won't compile without some minor tweaks with Apple's libobjc. llvm-svn: 92117
* Fix recent regression caught by g++.old-deja/g++.mike/eh19.C.Mike Stump2009-12-241-0/+20
| | | | llvm-svn: 92109
* Fix regression found by g++.dg/eh/alias1.C.Mike Stump2009-12-231-0/+4
| | | | llvm-svn: 92072
* Mangle block pointer types. Fixes PR5858.Anders Carlsson2009-12-231-1/+2
| | | | llvm-svn: 92069
* There is no such thing as typeinfo for a cv-qualified type. AssertDouglas Gregor2009-12-233-4/+12
| | | | | | | | that this is true when mangling, then fix up the various places in Sema and/or CodeGen that need to remove qualifiers. Addresses a linking issue when building LLVM with Clang. llvm-svn: 92064
* simplify my previous patch.Chris Lattner2009-12-231-9/+2
| | | | llvm-svn: 92057
* fix opencl extvector element extraction on rvalues. We previouslyChris Lattner2009-12-231-8/+30
| | | | | | error_unsupported on test10 and crashed on test11. llvm-svn: 92056
OpenPOWER on IntegriCloud