+ * is removed. The following cases are optimized:
+ *
+ * Load without result: A Load which has only a memory use
+ * is removed.
+ *
+ * Load after Store: A Load after a Store is removed, if
+ * the Load doesn't have an exception handler or is in
+ * the same block as the Store.
+ *
+ * Load after Load: A Load after a Load is removed, if the
+ * Load doesn't have an exception handler or is in the
+ * same block as the previous Load.
+ *
+ * Store before Store: A Store immediately before another
+ * Store in the same block is removed, if the Store doesn't
+ * have an exception handler.
+ *
+ * Store after Load: A Store after a Load is removed, if the
+ * Store doesn't have an exception handler.