- Move conversion of [SU]ADDO from DAG combiner into legalizer.
[oota-llvm.git] / lib / CodeGen / README.txt
index 1e2837580ac90a19460b0bd2cad8a34200e38c0d..64374ce137fd7a0da617ff1df571ad30130df1f8 100644 (file)
@@ -87,14 +87,14 @@ scheduled after any node that reads %reg1039.
 
 Use local info (i.e. register scavenger) to assign it a free register to allow
 reuse:
-       ldr r3, [sp, #+4]
-       add r3, r3, #3
-       ldr r2, [sp, #+8]
-       add r2, r2, #2
-       ldr r1, [sp, #+4]  <==
-       add r1, r1, #1
-       ldr r0, [sp, #+4]
-       add r0, r0, #2
+        ldr r3, [sp, #+4]
+        add r3, r3, #3
+        ldr r2, [sp, #+8]
+        add r2, r2, #2
+        ldr r1, [sp, #+4]  <==
+        add r1, r1, #1
+        ldr r0, [sp, #+4]
+        add r0, r0, #2
 
 //===---------------------------------------------------------------------===//
 
@@ -179,3 +179,30 @@ work.
 
 The ocaml frametable structure supports liveness information. It would be good
 to support it.
+
+//===---------------------------------------------------------------------===//
+
+The FIXME in ComputeCommonTailLength in BranchFolding.cpp needs to be
+revisited. The check is there to work around a misuse of directives in inline
+assembly.
+
+//===---------------------------------------------------------------------===//
+
+It would be good to detect collector/target compatibility instead of silently
+doing the wrong thing.
+
+//===---------------------------------------------------------------------===//
+
+It would be really nice to be able to write patterns in .td files for copies,
+which would eliminate a bunch of explicit predicates on them (e.g. no side 
+effects).  Once this is in place, it would be even better to have tblgen 
+synthesize the various copy insertion/inspection methods in TargetInstrInfo.
+
+//===---------------------------------------------------------------------===//
+
+Stack coloring improvments:
+
+1. Do proper LiveStackAnalysis on all stack objects including those which are
+   not spill slots.
+2. Reorder objects to fill in gaps between objects.
+   e.g. 4, 1, <gap>, 4, 1, 1, 1, <gap>, 4 => 4, 1, 1, 1, 1, 4, 4