/* */
/* */
/* */
-/* (C) 2001 Ullrich von Bassewitz */
-/* Wacholderweg 14 */
-/* D-70597 Stuttgart */
+/* (C) 2001-2003 Ullrich von Bassewitz */
+/* Römerstrasse 52 */
+/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
/* */
/* */
-unsigned OptRTSJumps (CodeSeg* S);
+unsigned OptRTSJumps1 (CodeSeg* S);
/* Replace jumps to RTS by RTS */
+unsigned OptRTSJumps2 (CodeSeg* S);
+/* Replace long conditional jumps to RTS */
+
unsigned OptDeadJumps (CodeSeg* S);
/* Remove dead jumps (jumps to the next instruction) */
unsigned OptStoreLoad (CodeSeg* S);
/* Remove a store followed by a load from the same location. */
-unsigned OptTransfers (CodeSeg* S);
+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 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.
+ */
+
unsigned OptBranchDist (CodeSeg* S);
/* Change branches for the distance needed. */