compiler diagnostics [was Re: comp.unix.xenix]

Wm E Davidsen Jr davidsen at crdos1.crd.ge.COM
Tue Nov 28 04:34:41 AEST 1989


In article <72 at van-bc.UUCP> jtc at van-bc.UUCP (J.T. Conklin) writes:

| 	* Fix code generation errors/compiler bugs
| 
| 	  It took me two days to track down a code generation error
| 	  last week.  Arggh...  You've allready mentioned the infinate
| 	  spill bug.

  SCO has been quite good about fixing bugs *if I gave them a small
example*. The infinite spill should have been fixed years ago. The
standard text is "simplify teh expression." I got that even when the
expression was "return 1". 

  When I evaluated 386 UNIX versions, all of the pcc based compilers had
a bug which caused the compiler to emit source which used registers the
assembler (and CPU) didn't have.
| 
| 	* Generate assembly output acceptable as input to the assmbler
| 
| 	  "-S ... It should be noted that this file is not suitable for
| 	      assembly.  This option provides code for reading only."

  I'm not sure this is true anymore. I just tried a small program and it
worked okay, and I have used -Fa (I think the same as -S) in the past to
generate code to hand massage. I think it's a reluctance to guarantee
that it will work all the time. I'm not sure how vital this is, I have
only hand done one program in four years, and that was 11 instructions
at the heart of a loop executed 600,000,000 times (yes really) which
needed to play with the 387 stack.
| 
| 	* Eliminate hard-coded limits.
| 
| 	  * yacc's and lex's tables should should resize themselves
| 	    automatically.

  Probably. Nice but not high priority.
| 
| 	  * linker should allocate segments automatically.
  As above.
| 
| 	  * enlarge compiler's 32 character identifier limit.
  Should match ANSI by default. There is -H to set length of extern
names (I never tried it).
| 
| 	* Fix compiler such that "cc -E" and "/lib/cpp" produce the
| 	  same output.

  yes.
| 
| 	* Fix lint. 

  That's a generic complaint will all C compilers, guy.
| 
| 	* Improve dubugger support.

  Be speciffic.
| 
| 	* Improve optimization.
| 	  
| 	  * function inlining?

  yes.
| 
| 	  * global register optimization?
  I give this one a "yes, but." It's a good idea, but doesn't produce a
huge gain in performance (unless you write a program which deliberately
induces bad behavior). Other global stuff can give more performance.
-- 
bill davidsen	(davidsen at crdos1.crd.GE.COM -or- uunet!crdgw1!crdos1!davidsen)
"The world is filled with fools. They blindly follow their so-called
'reason' in the face of the church and common sense. Any fool can see
that the world is flat!" - anon



More information about the Comp.unix.xenix mailing list