summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-05-22 05:54:49 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-05-22 05:54:49 +0000
commit26ba25f910519f5a87dc7b822cda92f4e2390d6d (patch)
treec1212820c906da735ff21e2ffe91c69ef0dbff5c /llvm
parentcb10fdc74d7e35635eb1bff5ca9acb43da74316d (diff)
downloadbcm5719-llvm-26ba25f910519f5a87dc7b822cda92f4e2390d6d.tar.gz
bcm5719-llvm-26ba25f910519f5a87dc7b822cda92f4e2390d6d.zip
A isel deficiency.
llvm-svn: 28427
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/X86/README.txt19
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/README.txt b/llvm/lib/Target/X86/README.txt
index 2b7989bbe05..e4a9b55c454 100644
--- a/llvm/lib/Target/X86/README.txt
+++ b/llvm/lib/Target/X86/README.txt
@@ -586,4 +586,23 @@ as available and put it in some work list. Select other nodes in the normal
manner. The chain operands are selected after all other nodes are selected. Uses
of chain nodes are modified after instruction selection is completed.
+//===---------------------------------------------------------------------===//
+
+Another instruction selector deficiency:
+
+void %bar() {
+ %tmp = load int (int)** %foo
+ %tmp = tail call int %tmp( int 3 )
+ ret void
+}
+
+_bar:
+ subl $12, %esp
+ movl L_foo$non_lazy_ptr, %eax
+ movl (%eax), %eax
+ call *%eax
+ addl $12, %esp
+ ret
+The current isel scheme will not allow the load to be folded in the call since
+the load's chain result is read by the callseq_start.
OpenPOWER on IntegriCloud