aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMisha Brukman <brukman+llvm@gmail.com>2004-07-27 18:43:04 +0000
committerMisha Brukman <brukman+llvm@gmail.com>2004-07-27 18:43:04 +0000
commit4ce5ce25e8d5157225a3d9a36b8d4260fff7b284 (patch)
treedddb46a2636f400fc190800e333155f2dcf283aa
parentfe2597a55cfd443b299be98280e1d0c31d993096 (diff)
Branch selection support implemented by Nate Begeman for long branches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15288 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/PowerPC/README.txt9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/Target/PowerPC/README.txt b/lib/Target/PowerPC/README.txt
index f25c8cce6b..2f2cd6de82 100644
--- a/lib/Target/PowerPC/README.txt
+++ b/lib/Target/PowerPC/README.txt
@@ -3,7 +3,6 @@ Currently unimplemented:
* signed right shift of long by reg
Current bugs:
-* conditional branches assume target is within 32k bytes
* large fixed-size allocas not correct, although should
be closer to working. Added code in PPCRegisterInfo.cpp
to do >16bit subtractions to the stack pointer.
@@ -12,6 +11,14 @@ Codegen improvements needed:
* no alias analysis causes us to generate slow code for Shootout/matrix
* setCondInst needs to know branchless versions of seteq/setne/etc
* cast elimination pass (uint -> sbyte -> short, kill the byte -> short)
+* should hint to the branch select pass that it doesn't need to print the
+ second unconditional branch, so we don't end up with things like:
+.LBBl42__2E_expand_function_8_21: ; LeafBlock37
+ cmplwi cr0, r29, 11
+ bne cr0, $+8
+ b .LBBl42__2E_expand_function_8_674 ; loopentry.24
+ b .LBBl42__2E_expand_function_8_42 ; NewDefault
+ b .LBBl42__2E_expand_function_8_42 ; NewDefault
Current hacks:
* lazy insert of GlobalBaseReg definition at front of first MBB