🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.gnu
Article #35

Re: was macht alloca?

#35
From: Josef Wolf
Date: Wed, 09 Sep 1992 15:50
45 lines
3015 bytes
In <1992Sep3.081446.20396@informatik.uni-ulm.de> borchert@titania.mathematik.uni-ulm.de (Andreas Borchert) writes:
] In article <5180@reto.stgt.sub.org>, hcz@reto.stgt.sub.org (Heike C Zimmerer) writes:
] > In article <1992Sep01.065949.23504@rubikon.han.de> toad@rubikon.han.de 
] > (Peter Cleve) writes:
] > >Wenn du du Block durch Function austauscht liegst du richtig.
] > >Nur absolut bescheuerte Compiler werden Variablen die lokal fuer einen
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
] > >Block definiert sind beim Blockeintritt/austritt anlegen/loeschen.

] > So bescheuert finde ich das nicht. Das Anlegen/Loeschen kostet nicht viel
] > Assemblerinstruktionen (hier ists genau eine (1)).
[ ... ]
] Das ist nicht ganz richtig. Es bereitet einem Compiler ueberhaupt
] keine Probleme festzustellen, dass a[] und i[] nicht gleichzeitig
] verwendet werden -- also muessen sie nicht beide getrennt allokiert
] werden, sondern koennen problemlos uebereinander gelegt werden.

Eben! Und genau aus diesem Grund ist es leicht daneben zu sagen, das
wuerden 'nur absolut bescheurte Compiler' so machen.

] Im uebrigen ist es normalerweise guenstiger, solche Flaechen gleich zu Beginn
] der Funktion mit anzulegen, statt dies womoeglich inmitten einer Schleife
] zu tun. Erst recht im Fall von leaf-Prozeduren.

Das wuerde ich _so_ nicht unterschreiben. Warum soll denn ein groesserer
Bereich ueber eine laengere Zeit nutzlos auf dem Stack rumgammeln, wenn
er lediglich innerhalb eines schnell abgearbeiteten Blockes benoetigt
wird? vergiss bitte nicht, dass dieser Stack-Bereich ja auch nicht fuer
Unterfunktionsaufrufe bzw deren lokalen Bereich benutzt werden kann,
wenn er fuer die ganze Funktion bereitgestellt werden muss.

Jetzt sag bitte nicht, der Compiler koenne ja feststellen, dass der
Bereich lediglich innerhalb eines Blockes wirklich benoetigt wird, und
somit den benoetigten Stackbereich besser verteilen.
Solche Aussagen lassen sich nur noch schwer aufrechterhalten, wenn man
anfaengt mit Zeigern herumzujonglieren.

Gruss
    Sepp

-- 
|   Josef Wolf,  Germersheim,  Germany    aka    sepp@ppcger.ppc.sub.org   |
|    also available via    ..!uunet.uu.net!ira.uka.de!smurf!ppcger!sepp    |
|--------------------------------------------------------------------------|
| ...und wieviel brave Deutsche haben wieder nichts geschnallt... (Marius) |
Technical Details
Message-ID: <WJQxHG@ppcger.ppc.sub.org>
Path: arc1-ca.pugleaf.net!sparky!uunet!wupost!sdd.hp.com!caen!sol.ctr.columbia.edu!ira.uka.de!smurf.sub.org!ppcnet!ppcger!Sepp
References: <1992Aug19.082419.13150@newsserver.rrzn.uni-hannover.de> <920829440@monad.swb.de> <SPACE.92Aug31103804@ncc1701.stgt.sub.org> <1992Sep01.065949.23504@rubikon.han.de> <5180@reto.stgt.sub.org> <1992Sep3.081446.20396@informatik.uni-ulm.de>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!wupost!sdd.hp.com!caen!sol.ctr.columbia.edu!ira.uka.de!smurf.sub.org!ppcnet!ppcger!Sepp
Message-ID: <WJQxHG@ppcger.ppc.sub.org>
From: Sepp@ppcger.ppc.sub.org (Josef Wolf)
Newsgroups: de.comp.gnu,de.comp.lang.c
Subject: Re: was macht alloca?
Distribution: world
Organization: PPC Germersheim, Germany
Date: 9 Sep 92 15:50:05 GMT
References: <1992Aug19.082419.13150@newsserver.rrzn.uni-hannover.de>  <920829440@monad.swb.de> <SPACE.92Aug31103804@ncc1701.stgt.sub.org> <1992Sep01.065949.23504@rubikon.han.de> <5180@reto.stgt.sub.org> <1992Sep3.081446.20396@informatik.uni-ulm.de>
Lines: 45