Add all of the data stream intrinsics and instructions. woo
[oota-llvm.git] / lib / Target / README.txt
index c2635dade4181062bd96f3476b220837dbc71afd..23503517c0721f6504bf59867ecfe9a652028ce1 100644 (file)
@@ -138,3 +138,37 @@ 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!
+
+//===---------------------------------------------------------------------===//