summaryrefslogtreecommitdiff
path: root/tools/llvm-extract
diff options
context:
space:
mode:
authorRichard Osborne <richard@xmos.com>2014-02-25 16:37:15 +0000
committerRichard Osborne <richard@xmos.com>2014-02-25 16:37:15 +0000
commit6dc9f732ce9b7027e749e2ba30e60b5e397e0f21 (patch)
treec1300352575c864d79027bcc7dbb0215672b6f53 /tools/llvm-extract
parent53eeb678ea23746475f9bd794a9a06c2d1609dde (diff)
downloadllvm-6dc9f732ce9b7027e749e2ba30e60b5e397e0f21.tar.gz
llvm-6dc9f732ce9b7027e749e2ba30e60b5e397e0f21.tar.bz2
llvm-6dc9f732ce9b7027e749e2ba30e60b5e397e0f21.tar.xz
[XCore] Prefer to word align functions.
The behaviour of the XCore's instruction buffer means that the performance of the same code sequence can differ depending on whether it starts at a 4 byte aligned address or not. Since we don't model the instruction buffer in the backend we have no way of knowing for sure if it is beneficial to word align a specific function. However, in the absence of precise modelling, it is better on balance to word align functions because: * It makes a fetch-nop while executing the prologue slightly less likely. * If we don't word align functions then a small perturbation in one function can have a dramatic knock on effect. If the size of the function changes it might change the alignment and therefore the performance of all the functions that happen to follow it in the binary. This butterfly effect makes it harder to reason about and measure the performance of code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202163 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-extract')
0 files changed, 0 insertions, 0 deletions