??? 06/17/07 23:43 Read: times |
#140916 - procedural abstraction? Responding to: ???'s previous message |
Erik Malund said:
1) for instance have you gotten rid of every function taking a jump to the end and back to the beginning?. In our older compilers you would only see this if the optimizer was turned off. It was needed because it was output at function entry and the code generator had not fully seen the function ahead. Newer OCG based compilers don't do this at all because it has the entire program in memory and can see everything. 2) for those that do not care about debug version and production version being equal have a flag that makes code sharing take place (I would never use it) By "sharing" do you mean procedural abstraction optimizations? This is where common sequences of instruction are abstracted out to form a new function thus reducing code size. If so, then this type of optimization comes at a cost (speed) and is typically provided as a speed vs space option. As for debugging when this type of optimization is in use; if the debug file format is good enough, then it should not matter what type of optimization has occurred. The problem is that many debugging file formats can't deal with it. Formats such as ELF/Dwarf can, but one also has to look at what formats existing debugging tools use (many people would not wish to have to replace there tools). These are some of the challenges we (well, Ryan :-) are facing. Matt HI-TECH Software. |