[comp.arch] giving the compiler advice

kruger@16bits.dec.com (Hart for CCCP chief in '88) (01/15/88)

> All of this is a whole lot like profiling in the first place ....

There are some things the compiler CANNOT profile. The branch is not an example
of that, but for things like: hints about which objects conflict with each otherfor possible parallizing optimizations, or code removal, you HAVE to specify, orthe compiler cannot change the code for fear of introducing bugs. The branch
specifier is a strength reduction, not complete code removal, semantically the
same, and can therefore be guaranteed to work.

I also submit that there are cases where past history is not a good indication
of what will happen in the field. Most compiler benchmarks are like that. They
get out and are used on much larger programs, many more variables, etc. I hve
heard of interesting profiling errors from assumptions that were made that way.
(Obviously this particular incident is correctable with hindsight. The point
is, you don't have the hindsight to start with.)

dov