summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2010-07-03 08:43:32 +0000
committerEli Friedman <eli.friedman@gmail.com>2010-07-03 08:43:32 +0000
commitc8f595212ffcb3e6d599e6a51e3065c0572191b9 (patch)
treef7c39bca4f0a79640422a300ea25c78c74f26882 /llvm/lib/Target
parent3b10dd1bec4b0761ade4f0baf28b8b2b2c0e1d7d (diff)
downloadbcm5719-llvm-c8f595212ffcb3e6d599e6a51e3065c0572191b9.tar.gz
bcm5719-llvm-c8f595212ffcb3e6d599e6a51e3065c0572191b9.zip
Minor amendment to switch-lowering improvement.
llvm-svn: 107569
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/README.txt12
1 files changed, 10 insertions, 2 deletions
diff --git a/llvm/lib/Target/README.txt b/llvm/lib/Target/README.txt
index 8f785393fd0..90afe3640ce 100644
--- a/llvm/lib/Target/README.txt
+++ b/llvm/lib/Target/README.txt
@@ -1918,9 +1918,17 @@ a:
.LBB0_2:
ret
.LBB0_3:
- xorb %al, %al
- jmp foo@PLT # TAILCALL
+ jmp foo # TAILCALL
The movl+movl+btq+jb could be simplified to a cmpl+jne.
+Or, if we wanted to be really clever, we could simplify the whole thing to
+something like the following, which eliminates a branch:
+ xorl $1, %edi
+ cmpl $4, %edi
+ ja .LBB0_2
+ ret
+.LBB0_2:
+ jmp foo # TAILCALL
+
//===---------------------------------------------------------------------===//
OpenPOWER on IntegriCloud