-
-
We put a significant amount of work into the code generator infrastructure,
-which allows us to implement more aggressive algorithms and make it run
-faster:
-
-
-- MemOperand in the code generator: describe me!.
-- The target-independent code generator infrastructure now uses LLVM's APInt
- class to handle integer values, which allows it to support integer types
- larger than 64 bits. Note that support for such types is also dependent on
- target-specific support. Use of APInt is also a step toward support for
- non-power-of-2 integer sizes.
-- Several compile time speedups for code with large basic blocks.
-- Several improvements which make llc's --view-sunit-dags
- visualization of scheduling dependency graphs easier to understand.
-
-
-
-
+
+
We put a significant amount of work into the code generator infrastructure,
+which allows us to implement more aggressive algorithms and make it run
+faster:
+
+
+- MemOperand in the code generator: describe me!.
+
+- The target-independent code generator infrastructure now uses LLVM's APInt
+ class to handle integer values, which allows it to support integer types
+ larger than 64 bits. Note that support for such types is also dependent on
+ target-specific support. Use of APInt is also a step toward support for
+ non-power-of-2 integer sizes.
+
+- Several compile time speedups for code with large basic blocks.
+
+- Several improvements which make llc's --view-sunit-dags
+ visualization of scheduling dependency graphs easier to understand.
+
+- The code generator allows targets to write patterns that generate subreg
+ references directly in .td files now.
+
+- memcpy lowering in the backend is more aggressive, particularly for
+ memcpy calls introduced by the code generator when handling
+ pass-by-value structure argument copies.
@@ -265,7 +306,11 @@ pass, which