Commit Graph

87 Commits

Author SHA1 Message Date
Daniel Dunbar 5140d1b75e Update tests in -Asserts mode. These tests really need to be rewritten...
llvm-svn: 95658
2010-02-09 08:22:03 +00:00
Mike Stump a04ecfb701 Refine the non-virtual this adjustments for thunks by using the offset
to the declaring class from the nearest virtual base class.  WIP.

This fixes 40% of all the problems remaining in one of my testcases.

llvm-svn: 94592
2010-01-26 21:35:27 +00:00
Mike Stump 77537b136e Be sure to track the non-virtual part of the vcall offset in complex
multiple inheritance cases.  WIP.

This fixes 20% of the outstanding problems found by the randomized
tester.

llvm-svn: 94499
2010-01-26 03:42:22 +00:00
Mike Stump 90181eb294 Fixup a missing vcall entry. WIP.
llvm-svn: 94478
2010-01-26 00:05:04 +00:00
Benjamin Kramer 20bac07abb Adjust testcase for recent AsmPrinter changes, sigh.
llvm-svn: 94307
2010-01-23 10:15:32 +00:00
Mike Stump 1891698a9b Fixup the rest of the testcases to grep the .ll file instead of the .s
file, and add FIXMEs to the remaining broken tests.

llvm-svn: 94238
2010-01-22 22:37:17 +00:00
Mike Stump 3cd08d9df7 Convert more testcases to checking the .ll file instead of the .s file.
llvm-svn: 94229
2010-01-22 22:06:55 +00:00
Mike Stump 0a2754ed8a Be sure to select primary bases among the nearly empties in preorder,
not just among the direct bases.  Before we where missing nearly
empties that were bases of virtual base classes.

llvm-svn: 94208
2010-01-22 20:27:17 +00:00
Mike Stump 9eb76d47f2 Ensure we output all non-virtual base vtables. Fixes PR5890.
llvm-svn: 94163
2010-01-22 06:45:05 +00:00
Chris Lattner 5e536d85ad allow this test to pass, even with the recent .s printer changes.
Have I ever mentioned that clang regtests should not be grepping .s files??

llvm-svn: 93998
2010-01-20 07:45:09 +00:00
Anders Carlsson 1af3df854f Fix a bunch of VTT layout bugs, add simple tests for VTT layout.
llvm-svn: 93709
2010-01-18 04:25:18 +00:00
Anders Carlsson 25933d4ecd Update virt.cpp for changes to the LLVM asm printer (?) This test should really be all LLVM IR...
llvm-svn: 93707
2010-01-18 03:58:13 +00:00
Mike Stump 5c1e7259f1 Fix Release-Asserts.
llvm-svn: 93346
2010-01-13 20:43:31 +00:00
Anders Carlsson d681a29ac0 Baby steps towards fixing PR5589. If a class needs a vtable pointer, add one.
llvm-svn: 91545
2009-12-16 17:27:20 +00:00
Daniel Dunbar 8fbe78f6fc Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.
- This is designed to make it obvious that %clang_cc1 is a "test variable"
   which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it
   can be useful to redefine what gets run as 'clang -cc1' (for example, to set
   a default target).

llvm-svn: 91446
2009-12-15 20:14:24 +00:00
Eli Friedman 8174f2c23c Work-in-progess rewrite of thunks: move thunk generation outside of vtable
generation, and make sure we generate thunks when the function is defined
rather than when the vtable is defined.

llvm-svn: 90722
2009-12-06 22:01:30 +00:00
Mike Stump a7a1b7e780 Fixup key function calculations.
llvm-svn: 89412
2009-11-20 00:02:19 +00:00
Mike Stump 2fb78c0250 More VTT and constructor vtable testcases from recent work.
llvm-svn: 88710
2009-11-13 22:12:05 +00:00
Mike Stump 3693652378 Add more testcase for construction vtables and VTTs.
llvm-svn: 88702
2009-11-13 21:55:26 +00:00
Mike Stump 464de23b72 Add some more VTT testcases.
llvm-svn: 88699
2009-11-13 21:40:38 +00:00
Mike Stump e56213fc1e Add a testcase for the recent VTT work.
llvm-svn: 88681
2009-11-13 19:36:46 +00:00
Mike Stump 88fc7d4202 This falls into the category of stupid pet tricks. I hate to do this,
but this is necessary to continue work on virtual vtables.  We don't
want to penalize virtual table building testcases, just because
complex virtual conversions don't yet work.

llvm-svn: 88676
2009-11-13 18:53:35 +00:00
Eli Friedman d7686ef31c Unify the codepaths used to verify base and member initializers for explicitly
and implicitly defined constructors.  This has a number of benefits:

1. Less code.

2. Explicit and implicit constructors get the same diagnostics.

3. The AST explicitly contains constructor calls from implicit default
constructors.  This allows handing some cases that previously weren't handled
correctly in IRGen without any additional code. Specifically, implicit default
constructors containing calls to constructors with default arguments are now
handled correctly.

llvm-svn: 86500
2009-11-09 01:05:47 +00:00
Daniel Dunbar 34546ce43d Remove RUN: true lines.
llvm-svn: 86432
2009-11-08 01:47:25 +00:00
Daniel Dunbar 8b57697954 Eliminate &&s in tests.
- 'for i in $(find . -type f); do sed -e 's#\(RUN:.*[^ ]\) *&& *$#\1#g' $i | FileUpdate $i; done', for the curious.

llvm-svn: 86430
2009-11-08 01:45:36 +00:00
Mike Stump cd6f9ed906 Refine the non-virtual this adjustment. Optimize out virtual this
adjustments of zero.

llvm-svn: 86300
2009-11-06 23:27:42 +00:00
Mike Stump 72431bd9ea Refine the vcall for a function that is defined in a virtual base
class that is overridden in a base that isn't morally virtual.

llvm-svn: 86217
2009-11-06 02:38:24 +00:00
Mike Stump aea4b8a0c3 Convert file over to checking the .ll file for codegen. Also, we
speed up this file by not doing twice the checking.

llvm-svn: 86205
2009-11-06 00:18:25 +00:00
Mike Stump b8da7a046d Refine covariant return value adjustments for thunks when null
pointers are returned.

llvm-svn: 86120
2009-11-05 06:12:26 +00:00
Mike Stump 098da869a7 Testcase for a recent checkin.
llvm-svn: 86118
2009-11-05 05:26:28 +00:00
Mike Stump abcffc3b59 Update.
llvm-svn: 86117
2009-11-05 05:01:19 +00:00
Chris Lattner b73beb36f5 this test has started failing due to an optimizer change. Clang tests
should only look at -O0 IR output not -O3 assembly output.  XFAIL it for
now.

llvm-svn: 86029
2009-11-04 16:37:13 +00:00
Mike Stump 71609a2874 Split out return adjustments in thunks from this adjustment in thunks
so the optimizer can tailcall into the return value adjustment thunk.
This improves codesize for complex hierarchies.

llvm-svn: 85988
2009-11-04 00:53:51 +00:00
Mike Stump f6968a5749 vtable testcase for recent work on vcall/vbase offsets.
llvm-svn: 85925
2009-11-03 19:28:52 +00:00
Mike Stump 4627132ebc Refine codegen for covariant thunks that return references.
llvm-svn: 85916
2009-11-03 19:03:17 +00:00
Mike Stump 77738205e6 Refine return value adjustments for thunks.
llvm-svn: 85905
2009-11-03 16:59:27 +00:00
Mike Stump 75ce573815 Refine vcall/vbase ordering with vtable construction.
llvm-svn: 85677
2009-10-31 20:06:59 +00:00
Mike Stump 375faa8dd7 Finish off pure virtual function handling.
llvm-svn: 85354
2009-10-28 00:35:46 +00:00
Mike Stump 84bc8bda49 Testcase for recent checkin. WIP.
llvm-svn: 84123
2009-10-14 18:38:01 +00:00
Mike Stump 87876a0053 Refine handling for return value conversions with respect to virtual
offsets for covariant thunks.

llvm-svn: 83965
2009-10-13 10:55:21 +00:00
Mike Stump e7a2b48572 Fix http://llvm.org/PR5090.
llvm-svn: 83035
2009-09-29 00:50:50 +00:00
Mike Stump 11289f4280 Remove tabs, and whitespace cleanups.
llvm-svn: 81346
2009-09-09 15:08:12 +00:00
Mike Stump e73d5ca9a8 Refine vcall offsets. Cleanups. WIP.
llvm-svn: 81143
2009-09-07 04:27:52 +00:00
Mike Stump 843b78412a Testcase for recent checkin.
llvm-svn: 80725
2009-09-01 22:01:25 +00:00
Mike Stump beefdc8948 iGenerate vcalls as we build up the methods. WIP.
llvm-svn: 80405
2009-08-28 23:22:54 +00:00
Mike Stump b414ef6f18 Testcase for an almost recent checkin.
llvm-svn: 80189
2009-08-27 01:09:45 +00:00
Mike Stump a0d0e6fcb1 Fixup codegen for static dispatch to a virtual function that was
almost correct.  :-)

llvm-svn: 80181
2009-08-26 23:38:08 +00:00
Mike Stump a5588bf3ac Implement virtual dispatch. :-) This is self-consistent with clang,
but not yet necessarily perfectly consistent with gcc.  Also addressed
Doug and John's comments.

llvm-svn: 80137
2009-08-26 20:46:33 +00:00
Anders Carlsson 458055a890 Revert r80064 since it broke the build.
llvm-svn: 80066
2009-08-26 03:30:14 +00:00
Mike Stump fbddfdacdc Implement virtual dispatch. :-) This is self-consistent with clang, but not yet
necessarily perfectly consistent with gcc.

llvm-svn: 80064
2009-08-26 01:54:35 +00:00