Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!spool.mu.edu!munnari.oz.au!bruce!mmcg From: mmcg@bruce.cs.monash.OZ.AU (Mike McGaughey) Newsgroups: comp.lang.c Subject: Re: low level optimization Message-ID: <4001@bruce.cs.monash.OZ.AU> Date: 20 Apr 91 01:17:19 GMT References: <21846@lanl.gov> <1991Apr18.233807.19552@zoo.toronto.edu> <21868@lanl.gov> <3906@inews.intel.com> Organization: Monash Uni. Computer Science, Australia Lines: 45 bhoughto@bishop.intel.com (Blair P. Houghton) writes: >In article <21868@lanl.gov> jlg@cochiti.lanl.gov (Jim Giles) writes: >>I don't understand why you continue to hang on like grim death >>to the fiction that dependent compilation satisfies the requirements >>of the standard. >I haven't seen anyone state such a thing. What I have >seen is plenty of statements that equate to the standard's >requirement that a conforming program be translatable by >a conforming implementation into a form that can be used >to produce the output associated with a given input. It's >just tough luck if this prevents you from expecting >a certain optimization to be applied when you compile >in strictly conforming mode. And, in fact, it doesn't - if your system wants to do 'serious' interprocedural analysis while still allowing seperate, order independent compilation, there's nothing to stop it from adding an extra table to the object file describing the properties of that object file, and using a clever linker (post-compiler?) to sort all that information out. Any specification that non-static names are the only 'standard' inter-module information available applies only to C source, not object modules - after all, who ever expected object code to be portable? All we know is that they must support *at least* the information required by C. There's no reason why .o files can't consist of pure RTL. Or C source code, for that matter. Although that *would* require a better linker :). Not that I've read the ANSI spec - I'm too poor. Cheers, Mike. ps: the MIPS compilers (which are pretty good :) provide this option - you can produce ucode files instead of .o files (independantly); the ucode linker provides global optimisation. -- Mike McGaughey AARNET: mmcg@bruce.cs.monash.oz.au "His state is kingly; thousands at his bidding speed, And post o'er land and ocean without rest." - Milton.