Path: utzoo!attcan!uunet!cs.utexas.edu!rice!titan.rice.edu!preston From: preston@titan.rice.edu (Preston Briggs) Newsgroups: comp.lang.misc Subject: Re: Efficient Fortran Message-ID: <10070@brazos.Rice.edu> Date: 20 Jul 90 18:04:39 GMT References: <1991@key.COM> <2378@l.cc.purdue.edu> Sender: root@rice.edu Organization: Rice University, Houston Lines: 23 In article peter@ficc.ferranti.com (Peter da Silva) writes: >> Regarding the merits of assigned GOTO, consider an architecture where the >> address of an instruction cannot in fact be stored in an INTEGER variable >> (because, for example, an address has 64 bits whereas an integer has 32). > >Given the relatively small number of addresses involved, using a lookup >table and a small integer token for each numbered line is an easy solution >to this problem. Sure. Another alternative would be to use relative offsets from the beginning of the routine (not from the ASSIGN point!). 32 bits should cover most routines :-) I think the real problem with label variables is the tangle they make of the flow graph. The poor ol' optimizer sees a "GOTO lvar" and says "Well, I guess he can branch to any label?" We can do better by noticing which labels participate in ASSIGN statements, but it's still a mess. Nice programmers (who'd like the optimizer to be nice to them) will provide a list of alternatives on their assigned gotos. -- Preston Briggs looking for the great leap forward preston@titan.rice.edu