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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,8f8cea8602e61aba X-Google-Attributes: gid103376,public From: kenner@lab.ultra.nyu.edu (Richard Kenner) Subject: Re: The Red Language Date: 1997/09/22 Message-ID: <604jv0$rpo$1@news.nyu.edu>#1/1 X-Deja-AN: 274512969 References: Organization: New York University Ultracomputer Research Lab Newsgroups: comp.lang.ada Date: 1997-09-22T00:00:00+00:00 List-Id: In article dewar@merv.cs.nyu.edu (Robert Dewar) writes: >The rub is "full", just how full must a traversal be to be considered >a pass. For example, in GNAT, there is a circuit at the end of the >parser to fill in declarations for labels. Is this a pass? I would >say no, but it is open to argument. As soon as you have random access >to the representation, the definition is no longer clear (and is >incidentally, not particularly useful -- in the old days there was >far more connection between the notions of efficiency in compilation >time and number of passes than there is today). In GCC, trying to define a "pass" is even harder. Consider something like this, from combine.c: for (insn = f, i = 0; insn; insn = NEXT_INSN (insn)) if (INSN_UID (insn) > i) i = INSN_UID (insn); This loop is finding the highest value of INSN_UID for use in an array allocation. But this does scan all instructions in the subprogram being compiled, so it might, by some definitions, be considered a "pass". But there are dozens of things like this all over the compiler, to scan for one thing or another.