summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-27 11:55:11 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-27 11:55:11 +0000
commite4a1bc04744f97111b893c8bbb7e47c11269ca09 (patch)
treea5f8c032822c6ac17c6e6a4b1fee31341f732b9b
parent130af566896a9b3c4cdbe8f6539bf5ff472a3881 (diff)
downloadppe42-gcc-e4a1bc04744f97111b893c8bbb7e47c11269ca09.tar.gz
ppe42-gcc-e4a1bc04744f97111b893c8bbb7e47c11269ca09.zip
2008-05-27 Bob Duff <duff@adacore.com>
* gnat_rm.texi: Document the new behavior regarding trampolines. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@136017 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ada/gnat_rm.texi12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ada/gnat_rm.texi b/gcc/ada/gnat_rm.texi
index c048581d662..0d2d0ff28b5 100644
--- a/gcc/ada/gnat_rm.texi
+++ b/gcc/ada/gnat_rm.texi
@@ -8370,6 +8370,7 @@ of composite objects and the Max/Min attributes.
@item No_Implicit_Dynamic_Code
@findex No_Implicit_Dynamic_Code
+@cindex trampoline
This restriction prevents the compiler from building ``trampolines''.
This is a structure that is built on the stack and contains dynamic
code to be executed at run time. On some targets, a trampoline is
@@ -8379,6 +8380,17 @@ nested task bodies; primitive operations of nested tagged types.
Trampolines do not work on machines that prevent execution of stack
data. For example, on windows systems, enabling DEP (data execution
protection) will cause trampolines to raise an exception.
+Trampolines are also quite slow at run time.
+
+On many targets, trampolines have been largely eliminated. Look at the
+version of system.ads for your target --- if it has
+Always_Compatible_Rep equal to False, then trampolines are largely
+eliminated. In particular, a trampoline is built for the following
+features: @code{Address} of a nested subprogram;
+@code{Access} or @code{Unrestricted_Access} of a nested subprogram,
+but only if pragma Favor_Top_Level applies, or the access type has a
+foreign-language convention; primitive operations of nested tagged
+types.
@item No_Implicit_Loops
@findex No_Implicit_Loops
OpenPOWER on IntegriCloud