Commit Graph

8 Commits

Author SHA1 Message Date
Reid Kleckner 70d0d3c4be Cast vtable address points to i32 (...)** to enable more globalopt
We currently use i32 (...)** as the type of the vptr field in the LLVM
struct type. LLVM's GlobalOpt prefers any bitcasts to be on the side of
the data being stored rather than on the pointer being stored to.

Reviewers: majnemer

Differential Revision: http://reviews.llvm.org/D5916

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@223267 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-03 21:00:21 +00:00
Hans Wennborg 11b1b8ab36 Remove the -cxx-abi command-line flag.
This makes the C++ ABI depend entirely on the target: MS ABI for -win32 triples,
Itanium otherwise. It's no longer possible to do weird combinations.

To be able to run a test with a specific ABI without constraining it to a
specific triple, new substitutions are added to lit: %itanium_abi_triple and
%ms_abi_triple can be used to get the current target triple adjusted to the
desired ABI. For example, if the test suite is running with the i686-pc-win32
target, %itanium_abi_triple will expand to i686-pc-mingw32.

Differential Revision: http://llvm-reviews.chandlerc.com/D2545

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199250 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-14 19:35:09 +00:00
Rafael Espindola fa7797a46c Add -mconstructor aliases to some tests.
clang-cl adds these, so this makes the tests a bit more realistic. These are the
tests where it would make a difference if the windows specific handling were
removed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194336 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-09 23:05:07 +00:00
Timur Iskhodzhanov 6d87e65b8f Use GEPs correctly when adjusting this in MicrosoftCXXABI
Reviewed at http://llvm-reviews.chandlerc.com/D1977

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193176 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-22 18:15:24 +00:00
Timur Iskhodzhanov 82552742a1 [-cxx-abi microsoft] Fix this argument/parameter offsets for virtual destructors in the presence of virtual bases
Reviewed at http://llvm-reviews.chandlerc.com/D1939

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192822 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-16 18:24:06 +00:00
Timur Iskhodzhanov d2af0dd5f7 Quick-fix the test for no-asserts build
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191534 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-27 17:07:56 +00:00
Timur Iskhodzhanov a53d7a0259 Abstract out the emission of vtables, add basic support for vtable emission when using -cxx-abi microsoft
Reviewed at http://llvm-reviews.chandlerc.com/D1532

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191523 91177308-0d34-0410-b5e6-96231b3b80d8
2013-09-27 14:48:01 +00:00
Timur Iskhodzhanov 8f189a9911 Abstract out virtual calls and virtual function prologue code generation; implement them for -cxx-abi microsoft
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188870 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-21 06:25:03 +00:00