Add all of the data stream intrinsics and instructions. woo
[oota-llvm.git] / lib / Target / README.txt
index 2dd46d29cabe1c78da3c05b0662939991c32b743..23503517c0721f6504bf59867ecfe9a652028ce1 100644 (file)
@@ -128,3 +128,47 @@ Can be improved in two ways:
 //===---------------------------------------------------------------------===//
 
 Add LSR exit value substitution. It'll probably be a win for Ackermann, etc.
+
+//===---------------------------------------------------------------------===//
+
+It would be nice to revert this patch:
+http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20060213/031986.html
+
+And teach the dag combiner enough to simplify the code expanded before 
+legalize.  It seems plausible that this knowledge would let it simplify other
+stuff too.
+
+//===---------------------------------------------------------------------===//
+
+The loop unroller should be enhanced to be able to unroll loops that aren't 
+single basic blocks.  It should be able to handle stuff like this:
+
+  for (i = 0; i < c1; ++i)
+     if (c2 & (1 << i))
+       foo
+
+where c1/c2 are constants.
+
+//===---------------------------------------------------------------------===//
+
+For packed types, TargetData.cpp::getTypeInfo() returns alignment that is equal
+to the type size. It works but can be overly conservative as the alignment of
+specific packed types are target dependent.
+
+//===---------------------------------------------------------------------===//
+
+We should add 'unaligned load/store' nodes, and produce them from code like
+this:
+
+v4sf example(float *P) {
+  return (v4sf){P[0], P[1], P[2], P[3] };
+}
+
+//===---------------------------------------------------------------------===//
+
+We should constant fold packed type casts at the LLVM level, regardless of the
+cast.  Currently we cannot fold some casts because we don't have TargetData
+information in the constant folder, so we don't know the endianness of the 
+target!
+
+//===---------------------------------------------------------------------===//