projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add and fix some comments.
[libfirm]
/
ir
/
lower
/
lower_calls.c
diff --git
a/ir/lower/lower_calls.c
b/ir/lower/lower_calls.c
index
7f15ee5
..
86bc3b6
100644
(file)
--- a/
ir/lower/lower_calls.c
+++ b/
ir/lower/lower_calls.c
@@
-48,17
+48,13
@@
static pmap *type_map;
* Default implementation for finding a pointer type for a given element type.
* Simple create a new one.
*/
* Default implementation for finding a pointer type for a given element type.
* Simple create a new one.
*/
-static ir_type *def_find_pointer_type(ir_type *e_type, ir_mode *mode, int alignment)
+static ir_type *def_find_pointer_type(ir_type *e_type, ir_mode *mode,
+ int alignment)
{
{
- ir_type *res;
- pmap_entry *e;
-
/* Mode and alignment are always identical in all calls to def_find_pointer_type(), so
we simply can use a map from the element type to the pointer type. */
/* Mode and alignment are always identical in all calls to def_find_pointer_type(), so
we simply can use a map from the element type to the pointer type. */
- e = pmap_find(type_map, e_type);
- if (e && get_type_mode(e->value) == mode)
- res = e->value;
- else {
+ ir_type *res = (ir_type*)pmap_get(type_map, e_type);
+ if (res == NULL || get_type_mode(res) != mode) {
res = new_type_pointer(e_type);
set_type_mode(res, mode);
set_type_alignment_bytes(res, alignment);
res = new_type_pointer(e_type);
set_type_mode(res, mode);
set_type_alignment_bytes(res, alignment);
@@
-235,7
+231,7
@@
struct cl_entry {
/**
* Walker environment for fix_args_and_collect_calls().
*/
/**
* Walker environment for fix_args_and_collect_calls().
*/
-typedef struct
_
wlk_env_t {
+typedef struct wlk_env_t {
int arg_shift; /**< The Argument index shift for parameters. */
int first_hidden; /**< The index of the first hidden argument. */
struct obstack obst; /**< An obstack to allocate the data on. */
int arg_shift; /**< The Argument index shift for parameters. */
int first_hidden; /**< The index of the first hidden argument. */
struct obstack obst; /**< An obstack to allocate the data on. */
@@
-257,8
+253,9
@@
typedef struct _wlk_env_t {
* @param call A Call node.
* @param env The environment.
*/
* @param call A Call node.
* @param env The environment.
*/
-static cl_entry *get_Call_entry(ir_node *call, wlk_env *env) {
- cl_entry *res = get_irn_link(call);
+static cl_entry *get_Call_entry(ir_node *call, wlk_env *env)
+{
+ cl_entry *res = (cl_entry*)get_irn_link(call);
if (res == NULL) {
cl_entry *res = OALLOC(&env->obst, cl_entry);
res->next = env->cl_list;
if (res == NULL) {
cl_entry *res = OALLOC(&env->obst, cl_entry);
res->next = env->cl_list;
@@
-277,7
+274,8
@@
static cl_entry *get_Call_entry(ir_node *call, wlk_env *env) {
* @param adr the address
* @param pEnt points to the base entity if any
*/
* @param adr the address
* @param pEnt points to the base entity if any
*/
-static ir_node *find_base_adr(ir_node *ptr, ir_entity **pEnt) {
+static ir_node *find_base_adr(ir_node *ptr, ir_entity **pEnt)
+{
ir_entity *ent = NULL;
assert(mode_is_reference(get_irn_mode(ptr)));
ir_entity *ent = NULL;
assert(mode_is_reference(get_irn_mode(ptr)));
@@
-306,13
+304,14
@@
static ir_node *find_base_adr(ir_node *ptr, ir_entity **pEnt) {
/**
* Check if a given pointer represents non-local memory.
*/
/**
* Check if a given pointer represents non-local memory.
*/
-static void check_ptr(ir_node *ptr, wlk_env *env) {
+static void check_ptr(ir_node *ptr, wlk_env *env)
+{
ir_storage_class_class_t sc;
ir_entity *ent;
/* still alias free */
ptr = find_base_adr(ptr, &ent);
ir_storage_class_class_t sc;
ir_entity *ent;
/* still alias free */
ptr = find_base_adr(ptr, &ent);
- sc =
GET_BASE_SC(classify_pointer(current_ir_graph,
ptr, ent));
+ sc =
get_base_sc(classify_pointer(
ptr, ent));
if (sc != ir_sc_localvar && sc != ir_sc_malloced) {
/* non-local memory access */
env->only_local_mem = 0;
if (sc != ir_sc_localvar && sc != ir_sc_malloced) {
/* non-local memory access */
env->only_local_mem = 0;
@@
-325,8
+324,9
@@
static void check_ptr(ir_node *ptr, wlk_env *env) {
* If a non-alias free memory access is found, reset the alias free
* flag.
*/
* If a non-alias free memory access is found, reset the alias free
* flag.
*/
-static void fix_args_and_collect_calls(ir_node *n, void *ctx) {
- wlk_env *env = ctx;
+static void fix_args_and_collect_calls(ir_node *n, void *ctx)
+{
+ wlk_env *env = (wlk_env*)ctx;
int i;
ir_type *ctp;
ir_node *ptr;
int i;
ir_type *ctp;
ir_node *ptr;
@@
-466,8
+466,9
@@
typedef struct cr_pair {
* return values) to be 1 (C, C++) in almost all cases, so ignore the
* linear search complexity here.
*/
* return values) to be 1 (C, C++) in almost all cases, so ignore the
* linear search complexity here.
*/
-static void do_copy_return_opt(ir_node *n, void *ctx) {
- cr_pair *arr = ctx;
+static void do_copy_return_opt(ir_node *n, void *ctx)
+{
+ cr_pair *arr = (cr_pair*)ctx;
int i;
if (is_Sel(n)) {
int i;
if (is_Sel(n)) {
@@
-502,7
+503,7
@@
static ir_node *get_dummy_sel(ir_graph *irg, ir_node *block, ir_type *tp, wlk_en
/* use a map the check if we already create such an entity */
e = pmap_find(env->dummy_map, tp);
if (e)
/* use a map the check if we already create such an entity */
e = pmap_find(env->dummy_map, tp);
if (e)
- ent = e->value;
+ ent =
(ir_entity*)
e->value;
else {
ir_type *ft = get_irg_frame_type(irg);
char buf[16];
else {
ir_type *ft = get_irg_frame_type(irg);
char buf[16];
@@
-541,7
+542,7
@@
static void add_hidden_param(ir_graph *irg, int n_com, ir_node **ins, cl_entry *
n_args = 0;
for (p = entry->copyb; p; p = n) {
n_args = 0;
for (p = entry->copyb; p; p = n) {
- n = get_irn_link(p);
+ n =
(ir_node*)
get_irn_link(p);
src = get_CopyB_src(p);
/* old scheme using value_res_ent */
src = get_CopyB_src(p);
/* old scheme using value_res_ent */
@@
-596,7
+597,8
@@
static void add_hidden_param(ir_graph *irg, int n_com, ir_node **ins, cl_entry *
* @param irg the graph
* @param env the environment
*/
* @param irg the graph
* @param env the environment
*/
-static void fix_call_list(ir_graph *irg, wlk_env *env) {
+static void fix_call_list(ir_graph *irg, wlk_env *env)
+{
const lower_params_t *lp = env->params;
cl_entry *p;
ir_node *call, **new_in;
const lower_params_t *lp = env->params;
cl_entry *p;
ir_node *call, **new_in;
@@
-766,7
+768,7
@@
static void transform_irg(const lower_params_t *lp, ir_graph *irg)
if (is_compound_type(tp)) {
ir_node *arg = get_irg_args(irg);
if (is_compound_type(tp)) {
ir_node *arg = get_irg_args(irg);
- arg = new_r_Proj(
get_nodes_block(arg),
arg, mode_P_data, env.first_hidden + k);
+ arg = new_r_Proj(arg, mode_P_data, env.first_hidden + k);
++k;
if (is_Unknown(pred)) {
++k;
if (is_Unknown(pred)) {
@@
-793,7
+795,7
@@
static void transform_irg(const lower_params_t *lp, ir_graph *irg)
pred,
tp
);
pred,
tp
);
- mem = new_r_Proj(
bl,
copy, mode_M, pn_CopyB_M);
+ mem = new_r_Proj(copy, mode_M, pn_CopyB_M);
}
}
if (lp->flags & LF_RETURN_HIDDEN) {
}
}
if (lp->flags & LF_RETURN_HIDDEN) {
@@
-813,7
+815,7
@@
static void transform_irg(const lower_params_t *lp, ir_graph *irg)
irg_walk_graph(irg, NULL, do_copy_return_opt, cr_opt);
for (i = ARR_LEN(cr_opt) - 1; i >= 0; --i) {
irg_walk_graph(irg, NULL, do_copy_return_opt, cr_opt);
for (i = ARR_LEN(cr_opt) - 1; i >= 0; --i) {
-
remove_class_member(ft,
cr_opt[i].ent);
+
free_entity(
cr_opt[i].ent);
}
}
} /* if (n_ret_com) */
}
}
} /* if (n_ret_com) */
@@
-836,7
+838,8
@@
static void transform_irg(const lower_params_t *lp, ir_graph *irg)
* @param lp lowering parameters
* @param tp The type.
*/
* @param lp lowering parameters
* @param tp The type.
*/
-static int must_be_lowered(const lower_params_t *lp, ir_type *tp) {
+static int must_be_lowered(const lower_params_t *lp, ir_type *tp)
+{
int i, n_ress;
ir_type *res_tp;
int i, n_ress;
ir_type *res_tp;
@@
-861,7
+864,7
@@
static int must_be_lowered(const lower_params_t *lp, ir_type *tp) {
*/
static void lower_method_types(type_or_ent tore, void *env)
{
*/
static void lower_method_types(type_or_ent tore, void *env)
{
- const lower_params_t *lp = env;
+ const lower_params_t *lp =
(const lower_params_t*)
env;
ir_type *tp;
/* fix method entities */
ir_type *tp;
/* fix method entities */