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 |
|
Fariborz Jahanian
|
2c73b1d2a2
|
Simplified default construction of array data members
in the constructor prologue.
llvm-svn: 80060
|
2009-08-26 00:23:27 +00:00 |
|
Anders Carlsson
|
9cedbefb24
|
Add a -fno-elide-constructors option to clang-cc.
llvm-svn: 79782
|
2009-08-22 22:30:33 +00:00 |
|
Mike Stump
|
0b8c5ae7af
|
Calculate the address point for a vtable better, and start fleshing out the vcall
calculations better.
llvm-svn: 79687
|
2009-08-21 23:09:30 +00:00 |
|
Fariborz Jahanian
|
8adc973483
|
Patch to ir-gen copy assigning array members when synthesizing
a copy assignment operator function.
llvm-svn: 79681
|
2009-08-21 22:34:55 +00:00 |
|
Fariborz Jahanian
|
5626384384
|
Patch to provide ir-gen support in copying array members
when synthesizing a copy constructor. Arrays's base element
may have a trivial or non-trivial copy constructor.
llvm-svn: 79653
|
2009-08-21 18:30:26 +00:00 |
|
Fariborz Jahanian
|
7481bd88bb
|
Array member construction in prologue of user-declared
constructors.
llvm-svn: 79640
|
2009-08-21 17:09:38 +00:00 |
|
Fariborz Jahanian
|
6c9e5a2b9e
|
Introduce getConstantArrayElementCount API and use it in
construction/destruction of array members.
llvm-svn: 79637
|
2009-08-21 16:31:06 +00:00 |
|
Mike Stump
|
a002945a20
|
We now support overriding base functions in vtables. WIP.
llvm-svn: 79587
|
2009-08-21 01:45:00 +00:00 |
|
Fariborz Jahanian
|
1a606ab12a
|
Patch to ir-gen destruction of array member elements in revers order
of their construction.
llvm-svn: 79571
|
2009-08-20 23:02:58 +00:00 |
|
Fariborz Jahanian
|
9c83720d17
|
ir-gen patch to destruct array members. WIP.
llvm-svn: 79565
|
2009-08-20 20:54:15 +00:00 |
|
Mike Stump
|
cae6178b3b
|
Refine vbase offsets for the inductive case. Things are now starting
to come together nicely. Still a WIP.
llvm-svn: 79521
|
2009-08-20 07:22:17 +00:00 |
|
Mike Stump
|
2220447adc
|
Ensure we don't output repeated vbase offsets. I have a testcase for
this, but need to fixup the actual offset value before I can check it
in. WIP.
llvm-svn: 79506
|
2009-08-20 02:11:48 +00:00 |
|
Fariborz Jahanian
|
dd46eb770f
|
Test case for my last patch plus a minor clean up.
llvm-svn: 79500
|
2009-08-20 01:01:06 +00:00 |
|
Fariborz Jahanian
|
eeb0e57247
|
ir-gen for multi-dimensional array construction. WIP.
llvm-svn: 79497
|
2009-08-20 00:15:15 +00:00 |
|
Fariborz Jahanian
|
a8fe2c26a8
|
Removed unneeded code for break/continue statements in
manufactured for-loop per Anders feedback (thanks).
- Fariborz
llvm-svn: 79466
|
2009-08-19 21:10:38 +00:00 |
|
Fariborz Jahanian
|
431c883287
|
ir-gen for constructing arrays as non-static data members. WIP.
llvm-svn: 79464
|
2009-08-19 20:55:16 +00:00 |
|
Daniel Dunbar
|
58bc48c14e
|
Switch to SmallString::str from SmallString::c_str.
- Several FIXMEs due to non-Twinification of IRBuilder.
llvm-svn: 79455
|
2009-08-19 20:04:03 +00:00 |
|
Mike Stump
|
3bc0a3bf7d
|
One second thought, I think I want to limit this class to just vtable
building activities.
llvm-svn: 79438
|
2009-08-19 18:10:47 +00:00 |
|
Mike Stump
|
b386941208
|
Cleanup: fold IndirectPrimary into builder.
llvm-svn: 79423
|
2009-08-19 14:40:47 +00:00 |
|
Mike Stump
|
3b09f004db
|
We don't want to confuse this layout with the BLayout from the builder.
llvm-svn: 79422
|
2009-08-19 14:06:50 +00:00 |
|
Mike Stump
|
984c99d190
|
Restore vbase offsets for classes without a primary.
llvm-svn: 79402
|
2009-08-19 02:53:08 +00:00 |
|
Mike Stump
|
583ef62149
|
Refine vcalls a little.
llvm-svn: 79400
|
2009-08-19 02:06:38 +00:00 |
|
Mike Stump
|
6fe6ca11da
|
Cleanup.
llvm-svn: 79374
|
2009-08-18 22:04:08 +00:00 |
|
Mike Stump
|
07347353a0
|
Cleanups. Move GenerateRtti to CodeGenModule.
llvm-svn: 79372
|
2009-08-18 21:49:00 +00:00 |
|
Mike Stump
|
ee81dca8c7
|
Move the rest of the vtable building code into the new builder.
llvm-svn: 79370
|
2009-08-18 21:30:21 +00:00 |
|
Mike Stump
|
1f18b9a301
|
Suck up method generation.
llvm-svn: 79367
|
2009-08-18 21:03:28 +00:00 |
|
Mike Stump
|
5cb34077ef
|
Split out vtable bulding code into a builder.
llvm-svn: 79366
|
2009-08-18 20:50:28 +00:00 |
|
Fariborz Jahanian
|
d172e91f2a
|
Patch to 1) synthesizing non-trivial default destructor when
one is not provided by user. 2) More complete
emission of ctor prologue when it has no initializer
list or when it is synthesized.
llvm-svn: 79269
|
2009-08-17 19:04:50 +00:00 |
|
Anders Carlsson
|
49033712e4
|
Remove an ErrorUnsupported call.
llvm-svn: 79261
|
2009-08-17 18:24:57 +00:00 |
|
Anders Carlsson
|
81f0df9601
|
Improve handling of delete expressions.
llvm-svn: 79205
|
2009-08-16 21:13:42 +00:00 |
|
Mike Stump
|
22ea1f8a30
|
Cleanups and fixups for calculating the virtual base offsets. WIP.
llvm-svn: 79156
|
2009-08-16 01:46:26 +00:00 |
|
Fariborz Jahanian
|
0aed0225b4
|
Improved on ir-gen for synthesis of non-trivial default
constructor body whose class has non-static data-members which
required non-trivial construction.
llvm-svn: 79125
|
2009-08-15 18:55:17 +00:00 |
|
Fariborz Jahanian
|
42af5ba7b7
|
ir-gen for generation of trvial copy constructor
call.
llvm-svn: 79034
|
2009-08-14 20:11:43 +00:00 |
|
Mike Stump
|
bcf756cbac
|
Deconflate virtual base offsets from non-virtual base offsets.
Deconflate a virtual base primary from a non-virtual base.
llvm-svn: 78971
|
2009-08-14 01:44:03 +00:00 |
|
Fariborz Jahanian
|
92b3f47de2
|
Fixed a bug in ir-gen for copy assignment synthesis.
Fixed a bug when evaluating those copy-assignments
which need by lazily syntheized. A test case
for these.
llvm-svn: 78965
|
2009-08-14 00:01:54 +00:00 |
|
Mike Stump
|
c2f591b1e6
|
Refine vtable layout for virtual bases and keep better track of
primaries. WIP.
llvm-svn: 78950
|
2009-08-13 22:53:07 +00:00 |
|
Owen Anderson
|
41a750271b
|
Update for LLVM API change.
llvm-svn: 78946
|
2009-08-13 21:57:51 +00:00 |
|
Fariborz Jahanian
|
4985b33fd7
|
Patch to force synthesis of copy assignment operator
function in the order according to c++03. ir-gen
for copy assignment in the trivial case and the first
test case.
llvm-svn: 78938
|
2009-08-13 21:09:41 +00:00 |
|
Mike Stump
|
2631d8c517
|
Minor cleanups.
llvm-svn: 78927
|
2009-08-13 18:39:54 +00:00 |
|
Mike Stump
|
1300754fdd
|
Prep for vbase layout refinements. WIP.
llvm-svn: 78882
|
2009-08-13 02:02:14 +00:00 |
|
Fariborz Jahanian
|
9b630c3040
|
Minor refactoring of copy assign operator ir-gen. SWIP.
llvm-svn: 78875
|
2009-08-13 00:53:36 +00:00 |
|
Fariborz Jahanian
|
bbd5e8c2cf
|
More toward synthesizing copy assignments. SWIP.
llvm-svn: 78861
|
2009-08-12 23:34:46 +00:00 |
|
Mike Stump
|
b661738203
|
Cleanup.
llvm-svn: 78858
|
2009-08-12 23:25:18 +00:00 |
|
Mike Stump
|
938f15b033
|
Refactor. WIP. Eventually, this will all go into a vtable builder class.
llvm-svn: 78857
|
2009-08-12 23:14:12 +00:00 |
|
Mike Stump
|
480212253a
|
Cleanup.
llvm-svn: 78855
|
2009-08-12 23:03:28 +00:00 |
|
Mike Stump
|
82165efbc4
|
Refactor.
llvm-svn: 78854
|
2009-08-12 23:00:59 +00:00 |
|
Mike Stump
|
dc94d3fd27
|
Refactor.
llvm-svn: 78851
|
2009-08-12 22:34:12 +00:00 |
|