Intel ARCHITECTURE IA-32 User Manual Page 179

  • Download
  • Add to my manuals
  • Print
  • Page
    / 568
  • Table of contents
  • BOOKMARKS
  • Rated. / 5. Based on customer reviews
Page view 178
General Optimization Guidelines 2
2-107
Assembly/Compiler Coding Rule 56. (M impact, ML generality) For
arithmetic or logical operations that have their source operand in memory
and the destination operand is in a register, attempt a strategy that
initially loads the memory operand to a register followed by a register to
register ALU operation. Next, attempt to remove redundant loads by
identifying loads from the same memory location. Finally, combine the
remaining loads with their corresponding ALU operations. 2-81
Assembly/Compiler Coding Rule 57. (ML impact, M generality) Give
preference to adding a register to memory (memory is the destination)
instead of adding memory to a register. Also, give preference to adding a
register to memory over loading the memory, adding two registers and
storing the result. 2-82
Assembly/Compiler Coding Rule 58. (M impact, M generality) When
an address of a store is unknown, subsequent loads cannot be scheduled to
execute out of order ahead of the store, limiting the out of order execution
of the processor. When an address of a store is computed by a potentially
long latency operation (such as a load that might miss the data cache)
attempt to reorder subsequent loads ahead of the store. 2-82
Assembly/Compiler Coding Rule 59. (M impact, MH generality)
Calculate store addresses as early as possible to avoid having stores block
loads. 2-82
Assembly/Compiler Coding Rule 60. (H impact, MH generality) For
small loops, placing loop invariants in memory is better than spilling
loop-carried dependencies. 2-83
Assembly/Compiler Coding Rule 61. (M impact, M generality) Avoid
putting explicit references to ESP in a sequence of stack operations (
POP,
PUSH, CALL, RET). 2-84
Page view 178
1 2 ... 174 175 176 177 178 179 180 181 182 183 184 ... 567 568

Comments to this Manuals

No comments