RSForEachExpand: Improve getelementptr instruction generation.

(1) The old pattern, when accessing fields of the driver info
structure, was:

 %base = gep %DriverInfo *%info, 0, <base array index>
 %addr = gep [N x i8*]* %base, 0, <index>

This change folds the above into:

 %addr = gep %DriverInfo *%info, 0, <base array index>, <index>

which simplifies both way that we generate the GEP instructions as
well as the resulting bitcode.

(2) In addition, GEPs of input pointers and instep sizes can be
hoisted out of the loop body.

(3) Finally, mark all GEPs into the DriverInfo structure as inbounds,
because we know they are.

Change-Id: Icfabbdb464af8865c2a4623d967bbb63ef711680
diff --git a/tests/README.lit b/tests/README.lit
new file mode 100644
index 0000000..16fa305
--- /dev/null
+++ b/tests/README.lit
@@ -0,0 +1,7 @@
+To run the libbcc lit tests:
+ * Ensure `llvm-rs-as` is built, either by doing a top-level `make
+   checkbuild` or by doing `mm` from frameworks/compile/slang.
+ * Ensure that LLVM and libbcc are built with
+   `FORCE_BUILD_LLVM_COMPONENTS=true`.
+ * Ensure `opt` is built from external/llvm, either by top-level `make
+   checkbuild` or by doing `mm` from external/llvm.