3 * File name: ir/opt/ldstopt.h
4 * Purpose: load/store optimizations
8 * Copyright: (c) 1998-2004 Universität Karlsruhe
9 * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
15 * Load/Store optimization.
17 * @author Michael Beck
24 /** Load/Store optimization.
26 * Removes redundand non-volatile Loads and Stores.
27 * May introduce Bad nodes if exceptional control flow
28 * is removed. The following cases are optimized:
30 * Load without result: A Load which has only a memory use
33 * Load after Store: A Load after a Store is removed, if
34 * the Load doesn't have an exception handler or is in
35 * the same block as the Store.
37 * Load after Load: A Load after a Load is removed, if the
38 * Load doesn't have an exception handler or is in the
39 * same block as the previous Load.
41 * Store before Store: A Store immediately before another
42 * Store in the same block is removed, if the Store doesn't
43 * have an exception handler.
45 * Store after Load: A Store after a Load is removed, if the
46 * Store doesn't have an exception handler.
48 void optimize_load_store(ir_graph *irg);
50 #endif /* _LDSTOPT_H_ */