summaryrefslogtreecommitdiff
path: root/gcc/ada/inline.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-08-01 08:32:27 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-08-01 08:32:27 +0000
commitfc615d5ce7d35592d8d5d8b21fedcee8ef8cabdc (patch)
tree5b86d62bae106b36833d1a544810caf2e3427504 /gcc/ada/inline.ads
parent76bb84489d4d84ea7035c7f59b12e23cc8090240 (diff)
downloadgcc-fc615d5ce7d35592d8d5d8b21fedcee8ef8cabdc.tar.gz
2014-08-01 Arnaud Charlet <charlet@adacore.com>
* exp_vfpt.adb, exp_vfpt.ads: Removed, no longer used. * gcc-interface/Make-lang.in: Remove exp_vfpt.o 2014-08-01 Javier Miranda <miranda@adacore.com> * inline.ads (Inlined_Calls, Backend_Calls, Backend_Inlined_Subps, Backend_Not_Inlined_Subps): Declarations moved to inline.adb (Cannot_Inline): Update documentation. (Check_And_Build_Body_To_Inline): Renamed. (List_Inlining_Info): Subprogram moved here from package exp_ch6. * inline.adb (Check_Inlining_Restrictions): New local variable. (Inlined_Calls, Backend_Calls, Backend_Inlined_Subps, Backend_Not_Inlined_Subps): Declarations moved here from inline.ads (Number_Of_Statements): Removed. (Remove_Pragmas): Avoid duplicated version of this subprogram. (Build_Body_To_Inline): Code cleanup. (Build_Body_To_Inline.Has_Excluded_Statament): Removed. (Check_And_Build_Body_To_Inline): Renamed. Code cleanup. (Check_Body_To_Inline): Removed. (Generate_Body_To_Inline): Renamed as Generate_Subprogram_Body. (Has_Excluded_Declaration): No action if not Check_Inlining_Restrictions. (Has_Excluded_Statement): No action if not Check_Inlining_Restrictions. (Initialize): Initialize the lists of inlined calls and subprograms. (List_Inlining_Info): Subprogram moved here from package exp_ch6. * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Update call to Check_And_Build_Body_To_Inline since it has been renamed as Check_And_Split_Unconstrained_Function * exp_ch6.ad[sb] (List_Inlining_Info): Subprogram moved to package inline. * gnat1drv.adb Update call to Inline.List_Inlining_Info. 2014-08-01 Vincent Celier <celier@adacore.com> * debug.adb: Add documentation for new debug switch -ds. * make.adb (List_Bad_Compilations): Do not issue any message when switch -ds is specified. * makeutl.adb (Fail_Program): Do not issue any message when -ds is specified. (Finish_Program): Ditto. 2014-08-01 Robert Dewar <dewar@adacore.com> * s-exnint.adb, s-exnint.ads, s-wwdwch.ads, s-carsi8.ads, s-casi32.ads, indepsw.adb, a-timoau.ads, s-explli.adb, s-explli.ads, s-casi16.ads, s-powtab.ads, g-wistsp.ads, a-ztmoau.adb, indepsw-gnu.adb, s-imgllb.ads, types.adb, gnat.ads, s-proinf.adb, indepsw-aix.adb, s-caun64.ads, s-imgllw.ads, s-traces-default.adb, s-vxwork-x86.ads, s-expllu.adb, s-exnlli.adb, s-exnlli.ads, s-traces.adb, widechar.ads, stand.adb, s-expint.adb, s-tratas-default.adb, s-expint.ads, s-geveop.ads, s-caun32.ads, s-expuns.adb, s-mantis.adb, s-mantis.ads, s-caun16.ads, s-tasinf.adb, s-memcop.ads, s-dsaser.ads, s-imgbiu.ads, a-szmzco.ads, g-strspl.ads, s-casi64.ads, g-zstspl.ads, indepsw-mingw.adb, tree_io.adb, s-boarop.ads, uname.ads, s-fore.adb, s-fore.ads, g-timsta.adb, g-timsta.ads, s-assert.adb, s-vector.ads, s-tratas.adb, s-tratas.ads: Minor fix to copyright notices. 2014-08-01 Eric Botcazou <ebotcazou@adacore.com> * sinfo.ads: Remove long obsolete comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213423 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/inline.ads')
-rw-r--r--gcc/ada/inline.ads37
1 files changed, 15 insertions, 22 deletions
diff --git a/gcc/ada/inline.ads b/gcc/ada/inline.ads
index edab7833f4a..632cbc2c2e5 100644
--- a/gcc/ada/inline.ads
+++ b/gcc/ada/inline.ads
@@ -134,18 +134,6 @@ package Inline is
-- The following should be initialized in an init call in Frontend, we
-- have thoughts of making the frontend reusable in future ???
- Inlined_Calls : Elist_Id := No_Elist;
- -- List of frontend inlined calls
-
- Backend_Calls : Elist_Id := No_Elist;
- -- List of inline calls passed to the backend
-
- Backend_Inlined_Subps : Elist_Id := No_Elist;
- -- List of subprograms inlined by the backend
-
- Backend_Not_Inlined_Subps : Elist_Id := No_Elist;
- -- List of subprograms that cannot be inlined by the backend
-
-----------------
-- Subprograms --
-----------------
@@ -171,7 +159,7 @@ package Inline is
-- At end of compilation, analyze the bodies of all units that contain
-- inlined subprograms that are actually called.
- procedure Build_Body_To_Inline (N : Node_Id; Subp : Entity_Id);
+ procedure Build_Body_To_Inline (N : Node_Id; Spec_Id : Entity_Id);
-- If a subprogram has pragma Inline and inlining is active, use generic
-- machinery to build an unexpanded body for the subprogram. This body is
-- subsequently used for inline expansions at call sites. If subprogram can
@@ -189,16 +177,17 @@ package Inline is
-- This procedure is called if the node N, an instance of a call to
-- subprogram Subp, cannot be inlined. Msg is the message to be issued,
-- which ends with ? (it does not end with ?p?, this routine takes care of
- -- the need to change ? to ?p?). Temporarily the behavior of this routine
- -- depends on the value of -gnatd.k:
+ -- the need to change ? to ?p?). The behavior of this routine depends on
+ -- the value of Back_End_Inlining:
--
- -- * If -gnatd.k is not set (ie. old inlining model) then if Subp has
- -- a pragma Always_Inlined, then an error message is issued (by
- -- removing the last character of Msg). If Subp is not Always_Inlined,
- -- then a warning is issued if the flag Ineffective_Inline_Warnings
- -- is set, adding ?p to the msg, and if not, the call has no effect.
+ -- * If Back_End_Inlining is not set (ie. legacy frontend inlining model)
+ -- then if Subp has a pragma Always_Inlined, then an error message is
+ -- issued (by removing the last character of Msg). If Subp is not
+ -- Always_Inlined, then a warning is issued if the flag Ineffective_
+ -- Inline_Warnings is set, adding ?p to the msg, and if not, the call
+ -- has no effect.
--
- -- * If -gnatd.k is set (ie. new inlining model) then:
+ -- * If Back_End_Inlining is set then:
-- - If Is_Serious is true, then an error is reported (by removing the
-- last character of Msg);
--
@@ -214,7 +203,7 @@ package Inline is
-- flag Ineffective_Inline_Warnings is set (adding p?); otherwise
-- no effect since inlining may be performed by the backend.
- procedure Check_And_Build_Body_To_Inline
+ procedure Check_And_Split_Unconstrained_Function
(N : Node_Id;
Spec_Id : Entity_Id;
Body_Id : Entity_Id);
@@ -254,6 +243,10 @@ package Inline is
-- Check a list of statements, Stats, that make inlining of Subp not
-- worthwhile, including any tasking statement, nested at any level.
+ procedure List_Inlining_Info;
+ -- Generate listing of calls inlined by the frontend plus listing of
+ -- calls to inline subprograms passed to the backend.
+
procedure Register_Backend_Call (N : Node_Id);
-- Append N to the list Backend_Calls