+unsigned OptUnusedStores (CodeSeg* S);
+/* Remove stores into zero page registers that aren't used later */
+
+unsigned OptDupLoads (CodeSeg* S);
+/* Remove loads of registers where the value loaded is already in the register. */
+
+unsigned OptStoreLoad (CodeSeg* S);
+/* Remove a store followed by a load from the same location. */
+
+unsigned OptTransfers1 (CodeSeg* S);
+/* Remove transfers from one register to another and back */
+
+unsigned OptTransfers2 (CodeSeg* S);
+/* Replace loads followed by a register transfer by a load with the second
+ * register if possible.
+ */
+
+unsigned OptTransfers3 (CodeSeg* S);
+/* Replace a register transfer followed by a store of the second register by a
+ * store of the first register if this is possible.
+ */
+
+unsigned OptTransfers4 (CodeSeg* S);
+/* Replace a load of a register followed by a transfer insn of the same register
+ * by a load of the second register if possible.
+ */
+
+unsigned OptPushPop (CodeSeg* S);
+/* Remove a PHA/PLA sequence were A is not used later */
+
+unsigned OptPrecalc (CodeSeg* S);
+/* Replace immediate operations with the accu where the current contents are
+ * known by a load of the final value.
+ */
+