More notes on bugs, unimplemented features, and suggested code improvements.
authorMisha Brukman <brukman+llvm@gmail.com>
Mon, 26 Jul 2004 16:23:55 +0000 (16:23 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Mon, 26 Jul 2004 16:23:55 +0000 (16:23 +0000)
Written by Nate Begeman.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15235 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/README.txt

index 255a68c4aeb7d1356b801d1fdd2bf4a262e46ff0..3d78d7fe84f2c7353a9416a017695f17f9a21519 100644 (file)
@@ -1,12 +1,25 @@
 Currently unimplemented:
 * cast fp to bool
-* signed right shift
+* signed right shift of long by reg
 
 Current bugs:
-* use of a cByte/cShort by setCC not first truncated or sign extended
-  (uByte r3 = 250, r3 + 100; setlt r3, 200 will get wrong result).
 * conditional branches assume target is within 32k bytes
-* large fixed-size allocas not correct
+* 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.
+
+Codegen improvements needed:
+* we unconditionally emit save/restore of LR even if we don't use it
+* 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)
+
+Current hacks:
+* lazy insert of GlobalBaseReg definition at front of first MBB
+  A prime candidate for sabre's "slightly above ISel" passes.
+* cast code is huge, unwieldy.  Should probably be broken up into
+  smaller pieces.
+* visitLoadInst is getting awfully cluttered as well.
 
 Currently failing tests:
 * Regression
@@ -14,13 +27,9 @@ Currently failing tests:
   `- Benchmarks
   |  `- Shootout-C++ : most programs fail, miscompilations
   `- UnitTests
-  |  `- 2002-05-02-CastTest
-  |  `- 2003-05-07-VarArgs
   |  `- 2003-05-26-Shorts
   |  `- 2003-07-09-LoadShorts
-  |  `- 2003-07-09-SignedArgs
-  |  `- 2003-08-11-VaListArg
-  |  `- 2003-05-22-VarSizeArray
+  |  `- 2004-06-20-StaticBitfieldInt
   `- C++Catch
   `- SimpleC++Test
   `- ConditionalExpr
@@ -34,8 +43,4 @@ Currently failing tests:
   |  `- hbd: miscompilation
   |  `- d (make_dparser): miscompilation
   `- Benchmarks
-     `- McCat/12-IOtest: miscompilation
-     `- Ptrdist/bc: branch target too far
-     `- FreeBench/pifft
-     `- MallocBench/espresso: same as bc
-     `- MallocBench/make: same as bc
+     `- MallocBench/make: branch target too far