From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,18e0d6e2d3937639 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.68.219.170 with SMTP id pp10mr10335206pbc.1.1340546233738; Sun, 24 Jun 2012 06:57:13 -0700 (PDT) MIME-Version: 1.0 Path: l9ni14634pbj.0!nntp.google.com!news2.google.com!npeer03.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!news.alt.net!news.dizum.com!sewer-output!mail2news From: Nomen Nescio Newsgroups: comp.lang.ada Subject: Re: begin/end reducing memory consumption? Message-ID: <9eac4a716124fe41be777a3e6e5d2ce8@dizum.com> Date: Sun, 24 Jun 2012 15:57:05 +0200 (CEST) Mail-To-News-Contact: abuse@dizum.com Organization: mail2news@dizum.com X-Received-Bytes: 1671 Date: 2012-06-24T15:57:05+02:00 List-Id: > This is mere speculation: > The block statement makes some variables "more" local > and the implementation of Vectors can perform some memory > management. > I'd try -O2 -funroll-loops [-gnatn], too, replacing -O3. > (Some oddly related information (or maybe not having something > to do with this at all) may be available if you have GCC > -fdump-tree-slp-details. I have seen some decisions reported > there to do with exceptions handling being obstacles; > that was FSF GNAT, though, GNAT GPL seemed "better", and > the issue might be gone with most recent FSF GNATs.) thanks, I tried that. Neither -gnatn, -O2 nor -O2 -funroll-loops resolved the issue, however. -fdump-tree-slp-details generates a huge amount of what seems like potentially useful information; however, the begin/end pair renames many variables (D.[some number] -> D.[some number - 40] or so), so I don't get a useful diff without first changing back all those identifiers; I'll try to do that later. Anyway, what kind of memory management do we need here? Except for the loop indices, I thought that the compiler shouldn't have to allocate any variables at all. And even if it had to, shouldn't those be freed again after procedure Propagate terminates? best regards, Sebastian