#include <array_dismantlers.h>
Public Methods | |
OneDimArrayConverter (SuifEnv* the_suif_env) | |
~OneDimArrayConverter () | |
MultiDimArrayType* | array_type2multi_array_type (ArrayType* at) |
Convert an array type to a multidimentional array type. More... | |
void | convert_array_expr2multi_array_expr (ArrayReferenceExpression* top_array) |
Convert ArrayReferenceExpression top_array to a MultiDimArrayExpression. | |
void | remove_all_one_dim_array_types () |
Remove all the array types collected by all the calls to array_type2multi_array_type. More... | |
Protected Attributes | |
suif_map<ArrayType*, MultiDimArrayType*>* | type_map |
suif_vector<ArrayType*>* | all_array_types |
SuifEnv* | suif_env |
TypeBuilder* | tb |
|
|
|
Convert an array type to a multidimentional array type.
The value is first looked up in a cache to avoid creating multiple multidim. array types representing the same thing.
All the types we encounter here get recorded and you can remove them from the IR completely by using remove_all_one_dim_array_types.
|
Convert ArrayReferenceExpression top_array to a MultiDimArrayExpression.
|
Remove all the array types collected by all the calls to array_type2multi_array_type.
|
|
|
|