bd9b65ae534cb11aa39737aa43ab82bb29e078f6 |
|
31-Jul-2012 |
John McCall <rjmccall@apple.com> |
Don't crash *or* insert a bogus autorelease when emitting a this-adjustment thunk in ARC++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
e9af3e66cffa1b3d6dc75433b8a9673ecae33044 |
|
17-Jul-2012 |
Joao Matos <ripzonetriton@gmail.com> |
Fixed whitespace issue introduced in r160373. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160388 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
285baac67d722beb6854f5faa45ee1aa62a7ce92 |
|
17-Jul-2012 |
Joao Matos <ripzonetriton@gmail.com> |
[Windows] Abstract pure virtual method calls in the ABI. Fix the Windows ABI to forward to the correct function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
0f3d0970dcdf6cf17550b86838dff12813968dbc |
|
07-Jul-2012 |
John McCall <rjmccall@apple.com> |
Distinguish more carefully between free functions and C++ instance methods in the ABI arrangement, and leave a hook behind so that we can easily tweak CCs on platforms that use different CCs by default for C++ instance methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
fce80091da9e5d83d05944e36c834f9137dc329c |
|
20-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix a use-after-free in thunk emission. EmitThunk may call RAUW on Init, invalidating the pointer. Fixes PR12284. The test case only triggered under asan/valgrind, but it's better than nothing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
4e4d08403ca5cfd4d558fa2936215d3a4e5a528d |
|
11-Mar-2012 |
David Blaikie <dblaikie@gmail.com> |
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). The member variable is always "LangOpts" and the member function is always "getLangOpts". Reviewed by Chris Lattner git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
de5d3c717684f3821b8db58037bc7140acf134aa |
|
17-Feb-2012 |
John McCall <rjmccall@apple.com> |
Whether an argument is required (in contrast with being an optional argument passed through the variadic ellipsis) potentially affects how we need to lower it. Propagate this information down to the various getFunctionInfo(...) overloads on CodeGenTypes. Furthermore, rename those overloads to clarify their distinct purposes, and make sure we're calling the right one in the right place. This has a nice side-effect of making it easier to construct a function type, since the 'variadic' bit is no longer separable. This shouldn't really change anything for our existing platforms, with one minor exception --- we should now call variadic ObjC methods with the ... in the "right place" (see the test case), which I guess matters for anyone running GNUStep on MIPS. Mostly it's just a substantial clean-up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
cec5ebd4a6a89a7023d04cec728fd340b541ed61 |
|
11-Feb-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Basic support for referring to captured variables from lambdas. Some simple examples seem to work. Tests coming up soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
8b418685e9e4f02f4eb2a76e1ec063e07552b68d |
|
07-Feb-2012 |
Chris Lattner <sabre@nondot.org> |
simplify a bunch of code to use the well-known LLVM IR types computed by CodeGenModule. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
f7ccbad5d9949e7ddd1cbef43d482553b811e026 |
|
05-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Basic: import SmallString<> into clang namespace (I was going to fix the TODO about DenseMap too, but that would break self-host right now. See PR11922.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
6f42b62b6194f53bcbc349f5d17388e1936535d7 |
|
05-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Basic: import OwningPtr<> into clang namespace git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
24018467ddb13857b764182f7753764d2f32f87d |
|
26-Sep-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Move VTable builder to AST git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
ab172b5858d80af7254be7547980b5b9bf86e4e5 |
|
26-Sep-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Have CodeGenVTables::GenerateConstructionVTable use VTableLayout git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
9984d12729206c9c8d8009ed7eaab5be18c7ce89 |
|
26-Sep-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Move vtable dumper call to VTableBuilder ctor git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
e00fe697ccc755a1f4aca4dab2d47fcb40903947 |
|
26-Sep-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Implement VTableContext::createConstructionVTableLayout git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
e09cdf46aa2b86c24e6bf7a7ead2eaded964f2ff |
|
26-Sep-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Move all vtable layout data into new VTableLayout class git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
ba6ffeb51f89aefbec50347e4c73c17e825bd694 |
|
26-Sep-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Move VTableComponent to header file git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
84fcc48817bb04c7de1acafcaa1f54ee3235a97b |
|
26-Sep-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Move vtable component accessors to VTableContext git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
bf1c5aeadc5d4bb7fca5b0ee12208a94971f8492 |
|
26-Sep-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Remove CodeGenVTables::ComputeVTableRelatedInformation dependency on CodeGen git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140503 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
1d2b31710539d705a3850c9fc3aa1804c2a5efee |
|
26-Sep-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Create a VTableContext class and start moving CodeGenVTables methods to it git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
eb2d1f1c88836bd5382e5d7aa8f6b85148a88b27 |
|
23-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Removing a bunch of dead returns/breaks after llvm_unreachables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
b219cfc4d75f0a03630b7c4509ef791b7e97b2c8 |
|
23-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Switch assert(0/false) llvm_unreachable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
bcfd1f55bfbb3e5944cd5e03d07b343e280838c4 |
|
02-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Extend the ASTContext constructor to delay the initialization of builtin types (When requested). This is another step toward making ASTUnit build the ASTContext as needed when loading an AST file, rather than doing so after the fact. No actual functionality change (yet). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
03f486168fa69c46f1ffd651bd0819b0ea5d0409 |
|
09-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Revert bad change. (It may look equivalent, but it isn't.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
c55db3b76df62f2c89e9bcc7437d1065512fb139 |
|
09-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Cleanup; no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
5f9e272e632e951b1efe824cd16acb4d96077930 |
|
23-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports them into the clang namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
2acc6e3feda5e4f7d9009bdcf8b1cd777fecfe2d |
|
18-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
de-constify llvm::Type, patch by David Blaikie! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
f742eb0196e1b25c0b71e91da4a2b856d16a1dab |
|
10-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
Rename CGT::VerifyFuncTypeComplete to isFuncTypeConvertible since it is a predicate, not an action. Change the return type to be a bool, not the incomplete member. Enhace it to detect the recursive compilation case, allowing us to compile Eli's testcase on llvmdev: struct T { struct T (*p)(void); } t; into: %struct.T = type { {}* } @t = common global %struct.T zeroinitializer, align 8 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
97357602a289749d59520ac4ac31149f8d32e12e |
|
22-Jun-2011 |
Jay Foad <jay.foad@gmail.com> |
Replace the existing forms of ConstantArray::get() with a single form that takes an ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
e3d6cf2149beb1c215ea6e87023c27b4f37712ad |
|
16-May-2011 |
Anders Carlsson <andersca@mac.com> |
Fix another regression from the "skip vtable pointer initialization" optimization. Make sure to require a vtable when trying to get the address of a VTT, otherwise we would never end up emitting the VTT. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
7dcdf5ba9324a9577461eae302e88fdd52e310c5 |
|
06-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Add an implementation of thunks for varargs methods. The implementation is a bit messy, but it is correct as long as the method in question doesn't use indirect gotos. A couple of possible alternative implementations are outlined in FIXME's in this patch. rdar://problem/8077308 . git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
04c9a49ee251424b11d7c4e8b1c23637684cecb6 |
|
02-May-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Simplify code a bit by using CallArgList::add. No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130699 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
b8bced0b75fa4188c91753d5a1de6d164af45450 |
|
10-Apr-2011 |
Anders Carlsson <andersca@mac.com> |
Change CollectPrimaryBases to collect the bases in the right order. Fixes one half of PR9660. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
d24e50c2e6c3f6e85965ef7b860c62a6bd7bcbb3 |
|
10-Apr-2011 |
Anders Carlsson <andersca@mac.com> |
Make -fdump-vtable-layouts also dump vtable indices for all virtual member functions in the class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
14c65ca4cd914f3090d7eedb9bff4deb0ffc7927 |
|
07-Apr-2011 |
Ken Dyck <kd@kendyck.com> |
[Reapply r128776, modified so that it does not break debug info.] Change the return type of CodeGenVTables::getVirtualBaseOffsetOffset() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
1a7f7526b7fd817e3f49c210302d189eff981b5e |
|
07-Apr-2011 |
Ken Dyck <kd@kendyck.com> |
[Reapply r128773. This is not the source of the issues Devang was seeing with debug info.] Use CharUnits for the offsets in the VirtualBaseClassOffsetOffsetsMapTy. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129048 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
3015c4c7d4f00326d3a9d88c38a6ab8a158f3e93 |
|
07-Apr-2011 |
Ken Dyck <kd@kendyck.com> |
[Reapply r128771. It wasn't the source of the issues Devang saw with debug info.] Use CharUnits for the offset type in the ClassNamesAndOffsets map in dumpLayout(). No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
d28c33caf38aadae30473ba04ad67e88bece5938 |
|
07-Apr-2011 |
Ken Dyck <kd@kendyck.com> |
Reapply r128770. It's not the cause of the issues Devang saw with debug info. Use CharUnits for the offsets in the VBaseOffsetOffsetsMapTy types. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
62c117db25cf7142e149fce82d2b3caa1237674c |
|
04-Apr-2011 |
Devang Patel <dpatel@apple.com> |
Revert r128770, r128771, r128773 and r128776 for now. It breaks debug info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
4fbabd37fd107e0e477b45146499d38a77bf9335 |
|
02-Apr-2011 |
Ken Dyck <kd@kendyck.com> |
Change the return type of CodeGenVTables::getVirtualBaseOffsetOffset() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
d22153218848a8c7c4d81758aec09da39fef29ae |
|
02-Apr-2011 |
Ken Dyck <kd@kendyck.com> |
Use CharUnits for the offsets in the VirtualBaseClassOffsetOffsetsMapTy. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
2c026e1baa0d26421cbdfcd7290c1701cd9fbd7c |
|
02-Apr-2011 |
Ken Dyck <kd@kendyck.com> |
Use CharUnits for the offset type in the ClassNamesAndOffsets map in dumpLayout(). No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128771 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
e3e34e91649b2336f37cf7391b11ad395277fe7b |
|
02-Apr-2011 |
Ken Dyck <kd@kendyck.com> |
Use CharUnits for the offsets in the VBaseOffsetOffsetsMapTy types. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
396e4f672b4fc22936f385e0478a09eb223f113a |
|
02-Apr-2011 |
Ken Dyck <kd@kendyck.com> |
Convert BaseOffset::NonVirtualOffset to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
c40a3fdf9b1d4bfcea4b5b0d5c8e39c9b891868f |
|
02-Apr-2011 |
Ken Dyck <kd@kendyck.com> |
Convert offset parameters and return values of VTableComponent methods to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128754 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
c952d38437700eb5dd39ab52d24f9fdf19d953e4 |
|
02-Apr-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the offsets in VCallOffsetMap to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
413e7d216df32d7f37f7efd066f4386ac3efce22 |
|
02-Apr-2011 |
Ken Dyck <kd@kendyck.com> |
Convert offset parameters of VTableBuilder::IsOverriderUsed() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
3ed994bbdbb236842bab98da0c91e537b2b3b100 |
|
31-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the return value of VCallAndVBaseOffsetBuilder::getCurrentOffsetOffset() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
bb625e9692e5b8d839f64208b8fa29684c668f8b |
|
31-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the OffsetInLayoutClass parameter of VCallAndVBaseOffsetBuilder::AddVBaseOffsets() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
3ecfa2d3218cdab5545f637a17ff46354873b63f |
|
31-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the OffsetInLayoutClass of the VCallAndVBaseOffsetBuilder constructor to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
f38d8ae5a0f0c0971321680056763632705dc2f4 |
|
31-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the RealBaseOffset parameter of VCallAndVBaseOffsetBuilder::AddVCallAndVBaseOffsets() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
bbf3bacb3e0c1ebb3e8a4a8b1330404a7e379315 |
|
30-Mar-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove PHINode::reserveOperandSpace(). Instead, add a parameter to PHINode::Create() giving the (known or expected) number of operands. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
301af86e8d1a309a625230d9c80bbf3e78a50fc6 |
|
30-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the offset parameter of VCallAndVBaseOffsetBuilder::AddVCallOffsets() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
0c64b7dcf17338cbeaf491206aad96ca15ae4d24 |
|
30-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert local offset variable to CharUnits in AddVCallOffsets. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
7262e90a10a65d50350465e831ff3df75d86a454 |
|
30-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert a local offset variable to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
8fe599325ea3cafbca56376f8379e6ddfc449215 |
|
30-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the OffsetInLayoutClass parameter of DeterminePrimaryVirtualBases() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
75762b35a85ddf9666ab7ad64bdd6332f741d116 |
|
30-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the OffsetInLayoutClass parameter of LayoutSecondaryVTables to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
7ba8f522f32d37dc86e54b3c202a3f30bc1685d0 |
|
27-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert offset parameter in LayoutPrimaryAndSecondaryVTables() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
23da84a4eb3fd6e8df765d77f236f857b0134c3f |
|
27-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert VTableBuilder::MostDerivedClassOffset to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
fc72420a2245774b5a3f0cd0d7f7527f0f5c84db |
|
27-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert FinalOverriders::MostDerivedClassOffset to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
9198e399121274481e7383669633bb955e06045c |
|
27-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Remove a fixed FIXME comment (the base offset has already been converted to CharUnits). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128386 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
3a726802cd05b2161ec5d9f2903749fa27093576 |
|
27-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the offset parameters of AddMethods() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
0e55ade4f73afca6e4667af105f9272c5e0be007 |
|
27-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the BaseOffsetInLayoutClass parameter of ComputeThisAdjustment() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
82abeaed0b565e819407b523ed73aa5a4185b27f |
|
27-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert offset members in MethodInfo to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
bda0d6bda0f1a08a9fdf3ee4cf550b6b10d454ec |
|
27-Mar-2011 |
John McCall <rjmccall@apple.com> |
We were emitting construction v-tables with internal linkage all the time. Emit them instead with the linkage of the VTT. I'm actually really ambivalent about this; it's what GCC does, but outside of improving code size (if the linkage is coalescing), I'm not sure it's at all relevant. Construction vtables are naturally referenced only by the VTT, which is itself only referenced by complete-object constructors and destructors; giving the construction vtables possibly-external linkage is important if you have an optimization that drills through the VTT to a reference to a particular construction vtable which it cannot just emit itself. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
4421d2b341d041df44013769f23c306308bbab83 |
|
26-Mar-2011 |
Douglas Gregor <dgregor@apple.com> |
On Mac OS X, the presence of an 'availability' attribute for that platform implies default visibility. To achieve these, refactor our lookup of explicit visibility so that we search for both an explicit VisibilityAttr and an appropriate AvailabilityAttr, favoring the VisibilityAttr if it is present. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
b4c82b4a2c8bfab8161029425f679087277ea763 |
|
26-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the OffsetInLayoutClass parameter of FinalOverriders::ComputeBaseOffsets() to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
17d8519035e9cfcc507fc145de6a9321f295b09c |
|
26-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert FinalOverriders::Offset to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
e6203134056fe3912f4c436099a69bc6242d770f |
|
26-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert offset in MethodBaseOffsetPairTy to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
35c416bf3580fabebebdfd36acc57a4bd370d78c |
|
26-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the offsets in SubobjectOffsetMapTy to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
57ebe33b0d72f126a54960c44315d3790c7fa7a9 |
|
26-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert several local variables to CharUnits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
4230d529a8797bbeef2328b60abeae333f7e143f |
|
24-Mar-2011 |
Ken Dyck <kd@kendyck.com> |
Convert the BaseOffset member of BaseSubobject to CharUnits from bits. No change in functionality intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
413ebdb1af6fb0d81845b61254daf02ba0449afd |
|
11-Mar-2011 |
John McCall <rjmccall@apple.com> |
Use a slightly more semantic interface for emitting call arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
311b442a5050048e7d498e5ed352a9204b9a3c24 |
|
09-Mar-2011 |
John McCall <rjmccall@apple.com> |
Tame this assert, hopefully fixing self-host. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127319 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
d26bc76c98006609002d9930f8840490e88ac5b5 |
|
09-Mar-2011 |
John McCall <rjmccall@apple.com> |
Use the "undergoes default argument promotion" bit on parameters to simplify the logic of initializing function parameters so that we don't need both a variable declaration and a type in FunctionArgList. This also means that we need to propagate the CGFunctionInfo down in a lot of places rather than recalculating it from the FAL. There's more we can do to eliminate redundancy here, and I've left FIXMEs behind to do it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
9c6082fe89c61af697f017aa80937581cc2128d8 |
|
02-Mar-2011 |
Tilmann Scheller <tilmann.scheller@googlemail.com> |
Revert "Add CC_Win64ThisCall and set it in the necessary places." This reverts commit 126863. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
ca0df92f3c4462969ba055c941c98a41a47de7c5 |
|
02-Mar-2011 |
Tilmann Scheller <tilmann.scheller@googlemail.com> |
Revert "Add preliminary support for MSVC-style vtables." This reverts commit 126865. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126876 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
ab456cf6cd9e76f4f033984b4d5b103f28a4afe4 |
|
02-Mar-2011 |
Tilmann Scheller <tilmann.scheller@googlemail.com> |
Add preliminary support for MSVC-style vtables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
88d117c2eedd7c5bec57ac983a98d5e12bdd2cc6 |
|
02-Mar-2011 |
Tilmann Scheller <tilmann.scheller@googlemail.com> |
Add CC_Win64ThisCall and set it in the necessary places. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
f0be979bddb8baa28e77693a3dc931e487b2a9f2 |
|
11-Feb-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
For consistency, use llvm::raw_ostream in the rest of the mangle api. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
d16c2cf1cafa413709aa487cbbd5dc392f1ba1ff |
|
08-Feb-2011 |
John McCall <rjmccall@apple.com> |
Reorganize CodeGen{Function,Module} to eliminate the unfortunate Block{Function,Module} base class. Minor other refactorings. Fixed a few address-space bugs while I was there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
22df7b17f1b086f4347256406703d259753a0cbf |
|
06-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
Fix self-host; if a thunk already exists and has available_externally linkage, we should change its linkage instead of asserting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
14e82fd91c6d5041aa840574143521d244f185cd |
|
06-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
When building with optimizations, emit thunks with available_externally linkage so devirtualized function calls can also be de-thunked. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
84c49e4e4baeb4c30251fd72220efb344b033cf0 |
|
06-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
Simplify thunks code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
bbfd5babab059af14eed20b63b2aabedaa6a6ac7 |
|
05-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
Pass a 'ForVTable' flag to GetAddrOfThunk and pass it along to GetOrCreateLLVMFunction so that we won't assert when building a thunk for an implicit virtual member function that is not marked used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
1faa89f9c619e4b2411fab4af7e22ee7a2bd9009 |
|
05-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
Re-land r124768, with a fix for PR9130. We now emit everything except unused implicit virtual member functions when building the vtable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
01de7a44cea9f77cbcda65faad8edc8b48a3b617 |
|
03-Feb-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 124768. This reopens PR99114, but that one at least can be avoided with an #include. PR9130 cannot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124780 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
aedd9d5ad3cc776fd61457050bcd54cac4c5ea66 |
|
03-Feb-2011 |
Anders Carlsson <andersca@mac.com> |
Don't try to mark virtual members referenced for classes where the key function is not defined in the current translation unit. Doing so lead to compile errors such as PR9114. Instead, when CodeGen is building the vtable, don't try to emit a definition for functions that aren't marked used in the current translation unit. Fixes PR9114. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
6d7f8473cd6e967b3676948894ce72472102f9cb |
|
30-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
When building with optimizations, emit vtables where the key is not in the current translation unit as available_externally. This helps devirtualize the second example in PR3100, comment 18: struct S { S() {}; virtual void xyzzy(); }; inline void foo(S *s) { s->xyzzy(); } void bar() { S s; foo(&s); } This involved four major changes: 1. In DefineUsedVTables, always mark virtual member functions as referenced for non-template classes and class template specializations. 2. In CodeGenVTables::ShouldEmitVTableInThisTU return true if optimizations are enabled, even if the key function is not implemented in this translation unit. We don't ever do this for code compiled with -fapple-kext, because we don't ever want to devirtualize virtual member function calls in that case. 3. Give the correct linkage for vtables where the key function is not defined. 4. Update the linkage for RTTI structures when necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124565 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
fa2e99f72f9bfe2270ea8caf76d0eef11c45259f |
|
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Change CodeGenModule::setTypeVisibility to take a TypeVisibilityKind enum instead of an "IsForRTTI" flag. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
0ffeaad72cb335b926b064379be4c9886bbff004 |
|
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Get rid of an unneeded parameter from setGlobalVisibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124541 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
1cbce125b91cad81c8be3f8bbae8df917211176c |
|
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Make emitting a VTT a two-step process, much like emitting a VTable. You first get the address of the VTT, and then pass it to EmitVTTDefinition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
96eaf2992b5955d1470fc9cce7a96e7e1e3b4ea7 |
|
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Use CGM.CreateOrReplaceCXXRuntimeVariable in CGVTables.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
c93a776c89bd0820813e5c7c87af2c820d9bbd27 |
|
29-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Remove IsDefinition from CodeGenModule::setTypeVisibility; it is always true. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
a50e33eb0ff7b73d44aebce88de3732583a7e960 |
|
29-Jan-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
More work to support -fapple-kext regarding indirect vf calls and addition of extra entry at bottom of vtbls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
cd3ac4bd96cb19af5117eded84bfe8320c5d787e |
|
15-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Also set unnamed_addr on declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
62b1607e440b26f3683c92be887e8fd94af9c904 |
|
13-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Only add unnamed_addr to definitions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
9f959db60e8913abafe7d5f5f5a83dc6a5c8d87e |
|
11-Jan-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add unnamed_addr to vtables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
c9e814ba193f38a7b08268612248f63beb279bb3 |
|
25-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Rename RecordLayout::getPrimaryBaseWasVirtual to isPrimaryBaseVirtual. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
bdb4a9da62c585c4f5384a5976cdb36725a44f98 |
|
25-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Move code off the primary base info iterator. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
4e3b17c9ce4a198eaeac4355b12e4b523185ecb5 |
|
09-Nov-2010 |
John McCall <rjmccall@apple.com> |
When re-using a vtable slot for the nearest overridden method, just because there's no return adjustment from the overridden to the overrider doesn't mean there isn't a return adjustment from the overrider to the final overrider. This matters if we're emitting a virtual this-adjustment thunk because the overrider virtually inherits from the class providing the nearest overridden method. Do the appropriate return adjustment in this case. Fixes PR7611. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
a14f5979572aa25c03d24750ee4724d2031d4ede |
|
01-Nov-2010 |
Anders Carlsson <andersca@mac.com> |
Rename getBaseClassOffset to getBaseClassOffsetInBits and introduce a getBaseClassOffset which returns the offset in CharUnits. Do the same thing for getVBaseClassOffset. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
af14603ca61757cf4361b583b45639a04c57e651 |
|
30-Oct-2010 |
John McCall <rjmccall@apple.com> |
Better solution: calculate the visibility of functions and variables independently of whether they're definitions, then teach IR generation to ignore non-explicit visibility when emitting declarations. Use this to make sure that RTTI, vtables, and VTTs get the right visibility. More of rdar://problem/8613093 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
d2c47bde3bc0c0debd8a9728781d3375efe22bc5 |
|
11-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make sure the VTables for template instantiations are emitted even if the key function doesn't have a body. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116186 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
4c40d98ab7acf5f27fa89b17bd8fc0ef7683df37 |
|
31-Aug-2010 |
John McCall <rjmccall@apple.com> |
Teach IR generation to return 'this' from constructors and destructors under the ARM ABI. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112588 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
279b5eb6910d64a293e9c0e2887a05c65d8737d7 |
|
13-Aug-2010 |
John McCall <rjmccall@apple.com> |
Just disable the hidden-visibility optimization for now by hiding it behind a -cc1 option. The Darwin linker complains about mixed visibility when linking gcc-built objects with clang-built objects, and the optimization isn't really that valuable. Platforms with less ornery linkers can feel free to enable this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
7a536907da776bdc47a704e7cafd641e8150e653 |
|
05-Aug-2010 |
John McCall <rjmccall@apple.com> |
It turns out that linkers (at least, the Darwin linker) don't necessarily do the right thing with mixed-visibility symbols, so disable the visibility optimization where that's possible, i.e. with template classes (since it's possible that an arbitrary template might be subject to an explicit instantiation elsewhere). 447.dealII actually does this. I've put the code under an option that's currently not hooked up to anything. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
65005536dee9216b14e2361153a14ddd8a7cd50a |
|
05-Aug-2010 |
John McCall <rjmccall@apple.com> |
Extend the visibility-hidden optimization to linkonce_odr thunks for functions with in-line definitions, since such thunks will be emitted at any use of the function. Completes the feature work for rdar://problem/7523229. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110285 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
cbfe50224b19119e759802bd0c1463269dffd09e |
|
04-Aug-2010 |
John McCall <rjmccall@apple.com> |
Emit standard-library RTTI with external linkage, not weak_odr. Apply hidden visibility to most RTTI; libstdc++ does not rely on exact pointer equality for the type info (just the type info names). Apply the same optimization to RTTI that we do to vtables. Fixes PR5962. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110192 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
0c7d32bde03ae90367cb0666cf8614d425290aa3 |
|
04-Aug-2010 |
John McCall <rjmccall@apple.com> |
Extend the hidden-visibility vtables optimization to template classes that haven't been explicitly instantiated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
3d640e606165daf2eaf18d52c0697f68daec106a |
|
03-Aug-2010 |
John McCall <rjmccall@apple.com> |
Emit weak vtables of non-template classes with hidden visibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
ff331c15729f7d4439d253c97f4d60f2a7ffd0c6 |
|
25-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Remove the vast majority of the Destroy methods from the AST library, since we aren't going to be calling them ever. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
c66bcfd32b941d8008284ecae9d16d7d47c96b0b |
|
15-Jun-2010 |
Douglas Gregor <dgregor@apple.com> |
Make sure to set the visible on a vtable; VTTs and typeinfo already handle visibility properly. Fixes <rdar://problem/8091955>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
b9cae1dd33592f89b13499bd7730aa628bf38dba |
|
04-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Remove now unused code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
147a23dea1e6f247a568870b32eda1ce9a39a632 |
|
04-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Use CXXRecordDecl::getFinalOverriders to get final overriders. This speeds up vtable layout by moving away from the old final overrider computation code that had O(N^2) complexity in some cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
e21323588b32caf674213c9897dd12e2f0ea3cc5 |
|
02-Jun-2010 |
John McCall <rjmccall@apple.com> |
Don't try to emit the vtable for a class just because we're emitting a virtual function from it. Fixes PR7241. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
0a02860928ea022a17e1504417e34d2a741d0226 |
|
02-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
More cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
7097e75a59b1cab605547b894ef39be7cc4bceb3 |
|
02-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
More cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
263876434796b94176bf6e56165f965d6765ce78 |
|
02-Jun-2010 |
Anders Carlsson <andersca@mac.com> |
Cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105296 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
8be373b0901a9fdff4ed473a4e7365ff2b445202 |
|
30-May-2010 |
Anders Carlsson <andersca@mac.com> |
Remove unused parameter to FinalOverriders::PropagateOverrider. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
2736071ea3a46f90e65c93418961611d96c10ab9 |
|
27-May-2010 |
John McCall <rjmccall@apple.com> |
Correctly pass aggregates by reference when emitting thunks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
8b2423361648c39a7d8a3c5e8129e12006deac32 |
|
25-May-2010 |
John McCall <rjmccall@apple.com> |
If a function definition has any sort of weak linkage, its static local variables should have that linkage. Otherwise, its static local variables should have internal linkage. To avoid computing this excessively, set a function's linkage before we emit code for it. Previously we were assigning weak linkage to the static variables of static inline functions in C++, with predictably terrible results. This fixes that and also gives better linkage than 'weak' when merging is required. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
663218b576d8d79dea546c5726d7c90c216b1358 |
|
21-May-2010 |
Douglas Gregor <dgregor@apple.com> |
When generating the call arguments in a thunk to call the thunkee, do not make copies non-POD arguments or arguments passed by reference: just copy the pointers directly. This eliminates another source of the dreaded memcpy-of-non-PODs. Fixes PR7188. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
cb359df81b83dd4f938d05cb9cf5c34bd20068bd |
|
20-May-2010 |
Douglas Gregor <dgregor@apple.com> |
When creating a this-adjustment thunk where the return value is of C++ class type (that uses a return slot), pass the return slot to the callee directly rather than allocating new storage and trying to copy the object. This appears to have been the cause of the remaining two Boost.Interprocess failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
6fb745bdf1ff1e32caf07e42093a7920726892c1 |
|
13-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Rework when and how vtables are emitted, by tracking where vtables are "used" (e.g., we will refer to the vtable in the generated code) and when they are defined (i.e., because we've seen the key function definition). Previously, we were effectively tracking "potential definitions" rather than uses, so we were a bit too eager about emitting vtables for classes without key functions. The new scheme: - For every use of a vtable, Sema calls MarkVTableUsed() to indicate the use. For example, this occurs when calling a virtual member function of the class, defining a constructor of that class type, dynamic_cast'ing from that type to a derived class, casting to/through a virtual base class, etc. - For every definition of a vtable, Sema calls MarkVTableUsed() to indicate the definition. This happens at the end of the translation unit for classes whose key function has been defined (so we can delay computation of the key function; see PR6564), and will also occur with explicit template instantiation definitions. - For every vtable defined/used, we mark all of the virtual member functions of that vtable as defined/used, unless we know that the key function is in another translation unit. This instantiates virtual member functions when needed. - At the end of the translation unit, Sema tells CodeGen (via the ASTConsumer) which vtables must be defined (CodeGen will define them) and which may be used (for which CodeGen will define the vtables lazily). From a language perspective, both the old and the new schemes are permissible: we're allowed to instantiate virtual member functions whenever we want per the standard. However, all other C++ compilers were more lazy than we were, and our eagerness was both a performance issue (we instantiated too much) and a portability problem (we broke Boost test cases, which now pass). Notes: (1) There's a ton of churn in the tests, because the order in which vtables get emitted to IR has changed. I've tried to isolate some of the larger tests from these issues. (2) Some diagnostics related to implicitly-instantiated/implicitly-defined virtual member functions have moved to the point of first use/definition. It's better this way. (3) I could use a review of the places where we MarkVTableUsed, to see if I missed any place where the language effectively requires a vtable. Fixes PR7114 and PR6564. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103718 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
b0e921622100486175448a7554909d7f019d21ea |
|
07-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix typo in comment; 80 col violation git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103204 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
7e21ffb97e1da7ee5470865859c5b4bfbe0b91a3 |
|
06-May-2010 |
Chris Lattner <sabre@nondot.org> |
Pass the globaldecl into GetOrCreateLLVMFunction so that llvm function attributes like byval get applied to the function definition. This fixes PR7058 and makes i386 llvm/clang bootstrap pass all the same tests as x86-64 bootstrap for me (the llvmc tests still fail in both). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
046c294a43024874ff35656c6e785b64e72f1f36 |
|
17-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Vtable -> VTable renames across the board. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
fbf05613db16a521ce124391388891c488c47a0c |
|
17-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a bug where we would sometimes incorrectly mark an vtable function as unused. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
73e6fa00ff7aa3be32b1cfc8790761a4db716bb0 |
|
12-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Fix another bug where we wouldn't generate secondary vtables for construction vtables in some cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
718d06995662ab5ea34c52988bde3813f4ef25cc |
|
12-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
More renames. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
9123284640b33e902c23aac15cb7f547ca1ff71f |
|
12-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Rename a function parameter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
af6ddf20711ccc6824545a5ac901d4fe3e462c3d |
|
11-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a bug where we were adding too many vcall offsets in some cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
4995997eb3372c4bc07efdf3ecdc967c00c17cba |
|
10-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Enable an assert and remove a now unnecessary assert. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
f622b450d722b2954572e6ba04e1cdf18a21a41f |
|
10-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Fix a bug where we would add the same function twice in a vtable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
9446481d4af332ac0be9417392b7919712f5dae4 |
|
10-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Rename VtableComponent and VtableBuilder. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|
461e326e74fa840945330a04df33b1180b08ddc0 |
|
08-Apr-2010 |
Anders Carlsson <andersca@mac.com> |
Rename CGVtable files to CGVTables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGVTables.cpp
|