aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-11-28 19:59:25 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-11-28 19:59:25 +0000
commitead1b801e26dbb46c8484787ba16ed5a2bea13fe (patch)
tree7da6a69ef9f8968e69a6b26018e4b20da6daf53f /lib/Target
parent238581f2bbd5dfd064ea8eaec6f9e7b1ff42f01b (diff)
downloadexternal_llvm-ead1b801e26dbb46c8484787ba16ed5a2bea13fe.zip
external_llvm-ead1b801e26dbb46c8484787ba16ed5a2bea13fe.tar.gz
external_llvm-ead1b801e26dbb46c8484787ba16ed5a2bea13fe.tar.bz2
New entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31976 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/X86/README.txt20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/Target/X86/README.txt b/lib/Target/X86/README.txt
index 629d303..4b9a9dd 100644
--- a/lib/Target/X86/README.txt
+++ b/lib/Target/X86/README.txt
@@ -730,3 +730,23 @@ to avoid the copy. In fact, the existing two-address stuff would do this
except that mul isn't a commutative 2-addr instruction. I guess this has
to be done at isel time based on the #uses to mul?
+//===---------------------------------------------------------------------===//
+
+Make sure the instruction which starts a loop does not cross a cacheline
+boundary. This requires knowning the exact length of each machine instruction.
+That is somewhat complicated, but doable. Example 256.bzip2:
+
+In the new trace, the hot loop has an instruction which crosses a cacheline
+boundary. In addition to potential cache misses, this can't help decoding as I
+imagine there has to be some kind of complicated decoder reset and realignment
+to grab the bytes from the next cacheline.
+
+532 532 0x3cfc movb (1809(%esp, %esi), %bl <<<--- spans 2 64 byte lines
+942 942 0x3d03 movl %dh, (1809(%esp, %esi)
+937 937 0x3d0a incl %esi
+3 3 0x3d0b cmpb %bl, %dl
+27 27 0x3d0d jnz 0x000062db <main+11707>
+
+//===---------------------------------------------------------------------===//
+
+In c99 mode, the preprocessor doesn't like assembly comments like #TRUNCATE.