summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Implement __builtin_eh_return.John McCall2010-03-031-0/+16
| | | | llvm-svn: 97643
* Fix a bug with base offset merging that Devang noticed.Anders Carlsson2010-03-031-37/+9
| | | | llvm-svn: 97641
* Add proper target hooks for __builtin_extract_return_address andJohn McCall2010-03-033-4/+36
| | | | | | | __builtin_frob_return_address. The implementations for both are still trivial in the default case. llvm-svn: 97638
* Don't emit derived-to-base destructor aliases if we don't have a definitionJohn McCall2010-03-031-1/+7
| | | | | | | | for the base destructor, because aliases to declarations aren't legal. Fixes PR 6471. llvm-svn: 97637
* During codegen assert that any copy assignment, destructor or constructor thatRafael Espindola2010-03-021-3/+9
| | | | | | | | we need to synthesize has been marked as used by Sema. Change Sema to avoid these asserts. llvm-svn: 97589
* Simplify code.Anders Carlsson2010-03-021-8/+7
| | | | llvm-svn: 97551
* Inspired by seeing "MIPS" go by in the commits, I've gone ahead andJohn McCall2010-03-022-10/+34
| | | | | | | | | | | implemented a (codegen) target hook for __builtin_extend_pointer. I'm also making it return a uint64_t instead of an unsigned word; this comports with typical usage (i.e. the one use I know of). I don't know if any of the existing targets requires this hook to be set (other than x86 and x86_64, which I know do not). llvm-svn: 97547
* Rename BaseOffset to Offset and make it signed in preparation of more ↵Anders Carlsson2010-03-021-10/+11
| | | | | | construction vtable work. llvm-svn: 97546
* After much consultation aimed at figuring out what this builtin actuallyJohn McCall2010-03-021-0/+16
| | | | | | | does, document the results and then implement __builtin_extend_pointer for platforms where it's a no-op. llvm-svn: 97540
* Split out types that are non-canonical unless dependent as their ownJohn McCall2010-03-012-4/+40
| | | | | | | | | | | category. Use this in a few places to eliminate unnecessary TST cases and do some future-proofing. Provide terrible manglings for typeof. Mangle decltype with some hope of accuracy. Our manglings for some of the cases covered in the testcase are different from gcc's, which I've raised as an issue with the ABI list. llvm-svn: 97523
* The latest draft uses 'dt' to mangle member expressions, and now so do we.John McCall2010-03-011-9/+3
| | | | llvm-svn: 97479
* Improve name mangling for dependently-scoped declaration references.Douglas Gregor2010-02-281-1/+12
| | | | llvm-svn: 97422
* Add name mangling for DeclRefExprs that refer to external namesDouglas Gregor2010-02-281-2/+8
| | | | llvm-svn: 97418
* Remove debug output.Anders Carlsson2010-02-281-2/+0
| | | | llvm-svn: 97407
* Handle unused functions in construction vtables correctly.Anders Carlsson2010-02-281-9/+17
| | | | llvm-svn: 97406
* When laying out vtables for virtual bases in construction vtables, we need ↵Anders Carlsson2010-02-281-3/+16
| | | | | | to check if the vtable is a primary base in the layout class. llvm-svn: 97402
* More improvements to construction vtables; we know handle vbase offsets ↵Anders Carlsson2010-02-281-42/+51
| | | | | | correctly (I hope). llvm-svn: 97361
* Pass information about whether a base is virtual or not down to ↵Anders Carlsson2010-02-283-19/+37
| | | | | | getCtorVtable, we need this information in the vtable builder. llvm-svn: 97356
* Add new function.Anders Carlsson2010-02-281-2/+8
| | | | llvm-svn: 97353
* Fix to dumpLayout; we want to be able to dump address points even if the ↵Anders Carlsson2010-02-271-31/+34
| | | | | | vtable doesn't have any methods. llvm-svn: 97350
* Add a simple construction vtable test.Anders Carlsson2010-02-271-6/+22
| | | | llvm-svn: 97344
* Start fleshing out construction vtable support.Anders Carlsson2010-02-271-10/+38
| | | | llvm-svn: 97342
* Enable the new vtable layout code for vtables that aren't construction ↵Anders Carlsson2010-02-271-5/+9
| | | | | | vtables. (This doesn't mean that we emit LLVM IR using it yet, it just means that it's running and hopefully not crashing or asserting). llvm-svn: 97341
* Move ComputeThisAdjustmentBaseOffset to VtableBuilder.Anders Carlsson2010-02-271-61/+61
| | | | llvm-svn: 97340
* Make sure to insert the primary base in the set :)Anders Carlsson2010-02-271-0/+3
| | | | llvm-svn: 97339
* Use the real base offset when calculating vbase offsets.Anders Carlsson2010-02-271-1/+1
| | | | llvm-svn: 97338
* Figured out why the test was failing, this will hopefully fix it.Anders Carlsson2010-02-271-3/+9
| | | | llvm-svn: 97336
* Don't add this adjustments for pure virtual member functions.Anders Carlsson2010-02-271-2/+6
| | | | llvm-svn: 97334
* We want to store method info for unused functions.Anders Carlsson2010-02-271-10/+20
| | | | llvm-svn: 97333
* Finish up the changes to this adjustments.Anders Carlsson2010-02-271-37/+102
| | | | llvm-svn: 97328
* Stub out more of the 'this' pointer adjustment fixes I've been planning. ↵Anders Carlsson2010-02-271-13/+36
| | | | | | Start using a set vector for primary bases so they will be ordered. llvm-svn: 97326
* Fix another vtable layout bug; we weren't looking hard enough for overriden ↵Anders Carlsson2010-02-271-8/+40
| | | | | | functions when determining if an overrider will ever be used. llvm-svn: 97306
* Handle vcall offset sharing between destructors.Anders Carlsson2010-02-271-3/+7
| | | | llvm-svn: 97304
* Fix a bug where we were generating an unnecessary vtable for a virtual base ↵Anders Carlsson2010-02-271-9/+37
| | | | | | that's already a primary virtual base. llvm-svn: 97303
* Sundry fixes to the new vtable builder.John McCall2010-02-261-13/+33
| | | | llvm-svn: 97258
* Don't generate method metadata for @dynamic properties. Fixes PR6354.David Chisnall2010-02-261-7/+12
| | | | llvm-svn: 97199
* Use the power of types to track down another canonicalization bug inJohn McCall2010-02-266-63/+82
| | | | | | the ABI-computation interface. Fixes <rdar://problem/7691046>. llvm-svn: 97197
* Improve vcall offset handling.Anders Carlsson2010-02-251-12/+26
| | | | llvm-svn: 97174
* Fux a bug where we were trying to add overriders for non-virtual bases of ↵Anders Carlsson2010-02-251-3/+3
| | | | | | virtual bases more than once. llvm-svn: 97173
* Targets (like pic16) may have mangled the name of global variables, Sanjiv Gupta2010-02-251-1/+1
| | | | | | so get the name from Var rather than the original decl. llvm-svn: 97114
* Remove dead code.Anders Carlsson2010-02-251-176/+0
| | | | llvm-svn: 97109
* Move the vcall and vbase offset layout code out into its own class.Anders Carlsson2010-02-251-8/+224
| | | | llvm-svn: 97107
* Get rid of 'this' adjustments from the FinalOverriders class since they can ↵Anders Carlsson2010-02-241-34/+0
| | | | | | be different for the same overrider in different parts of the vtable. llvm-svn: 97068
* Improve this adjustment pointer calculation.Anders Carlsson2010-02-241-5/+16
| | | | llvm-svn: 97067
* Make ComputeThisAdjustmentBaseOffset public for now.Anders Carlsson2010-02-241-7/+8
| | | | llvm-svn: 97066
* Fix an iterator-invalidation bug that was causing selfhost errorsJohn McCall2010-02-241-10/+6
| | | | | | | on non-darwin platforms. Fixes PR6411. Test case doesn't reduce, unfortunately. llvm-svn: 97055
* Generate correct vcall offsets when we have a primary virtual base that is ↵Anders Carlsson2010-02-241-7/+29
| | | | | | not a primary base in the complete class hierarchy. llvm-svn: 97039
* Canonicalize parameter and return types before computing ABI info. EliminatesJohn McCall2010-02-244-71/+78
| | | | | | | | | | | a common source of oddities and, in theory, removes some redundant ABI computations. Also fixes a miscompile I introduced yesterday by refactoring some code and causing a slightly different code path to be taken that didn't perform *parameter* type canonicalization, just normal type canonicalization; this in turn caused a bit of ABI code to misfire because it was looking for 'double' or 'float' but received 'const float'. llvm-svn: 97030
* Emit debug info for VectorType.Devang Patel2010-02-232-2/+26
| | | | llvm-svn: 96999
* Add support for the weakref attribute. We still produce "alias weak" as ↵Rafael Espindola2010-02-231-0/+1
| | | | | | llvm-gcc does, but are more strict on what uses of weakref we accept. llvm-svn: 96992
OpenPOWER on IntegriCloud