Path: utzoo!utgpu!water!watmath!clyde!rutgers!mcnc!decvax!decwrl!16bits.dec.com!kruger From: kruger@16bits.dec.com (Hart for CCCP chief in '88) Newsgroups: comp.arch Subject: giving the compiler advice Message-ID: <8801141350.AA15693@decwrl.dec.com> Date: 14 Jan 88 16:43:00 GMT Organization: Digital Equipment Corporation Lines: 15 > 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