renamed symconst_size to symconst_type_size
[libfirm] / ir / opt / ldstopt.h
1 /*
2  * Project:     libFIRM
3  * File name:   ir/opt/ldstopt.h
4  * Purpose:     load/store optimizations
5  * Author:      Michael Beck
6  * Created:
7  * CVS-ID:      $Id$
8  * Copyright:   (c) 1998-2004 Universität Karlsruhe
9  * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
10  */
11
12 /**
13  * @file ldstopt.h
14  *
15  * Load/Store optimization.
16  *
17  * @author Michael Beck
18  */
19 #ifndef _LDSTOPT_H_
20 #define _LDSTOPT_H_
21
22 #include "irgraph.h"
23
24 /** Load/Store optimization.
25  *
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:
29  *
30  * Load without result: A Load which has only a memory use
31  *   is removed.
32  *
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.
36  *
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.
40  *
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.
44  *
45  * Store after Load: A Store after a Load is removed, if the
46  *   Store doesn't have an exception handler.
47  */
48 void optimize_load_store(ir_graph *irg);
49
50 #endif /* _LDSTOPT_H_ */