This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
This patch completes the expansion of the code associated with statically allocated dispatch tables to ensure that in case of library level tagged types the run-time type specific data is also statically allocated (and hence can be placed into a ROM). No test available because it would require the analysis of the generated assembly code (thus depending on the target architecture). 2007-09-11 Javier Miranda <miranda@adacore.com> * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present in library level record type entities if we are generating statically allocated dispatch tables. * exp_disp.adb (Make_Tags/Make_DT): Replace previous code importing/exporting the _tag declaration by new code importing/exporting the dispatch table wrapper. This change allows us to statically allocate of the TSD. (Make_DT.Export_DT): New procedure. (Build_Static_DT): New function. (Has_DT): New function. * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags True_Constant and Current_Value. Required to statically allocate the dispatch tables. (Check_Allocator): Make function iterative instead of recursive. Also return inner allocator node, when present, so that we do not have to look for that node again in the caller.
Attachment:
difs
Description: Text document
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |