/* set the link to NULL for all non-const/pure calls */
set_irn_link(call, NULL);
ptr = get_Call_ptr(call);
- if (is_SymConst_addr_ent(ptr)) {
- ent = get_SymConst_entity(ptr);
+ if (is_Global(ptr)) {
+ ent = get_Global_entity(ptr);
prop = get_entity_additional_properties(ent);
if ((prop & (mtp_property_const|mtp_property_pure)) == 0)
/* set the link to NULL for all non-const/pure calls */
set_irn_link(call, NULL);
ptr = get_Call_ptr(call);
- if (is_SymConst_addr_ent(ptr)) {
- ent = get_SymConst_entity(ptr);
+ if (is_Global(ptr)) {
+ ent = get_Global_entity(ptr);
prop = get_entity_additional_properties(ent);
if ((prop & mtp_property_nothrow) == 0)
if (is_alloc_entity != NULL && is_Call(node)) {
ir_node *ptr = get_Call_ptr(node);
- if (is_SymConst_addr_ent(ptr)) {
- ir_entity *ent = get_SymConst_entity(ptr);
+ if (is_Global(ptr)) {
+ ir_entity *ent = get_Global_entity(ptr);
return is_alloc_entity(ent);
}
}
/* ok */
break;
case iro_Store:
- if (get_Store_ptr(succ) == n)
- return 0;
+ if (get_Store_value(succ) == n)
+ return 1;
/* ok if its only the address input */
break;
case iro_Sel:
case iro_Cast:
case iro_Confirm:
if (is_stored(succ))
- return 0;
+ return 1;
break;
case iro_Call:
ptr = get_Call_ptr(succ);
- if (is_SymConst_addr_ent(ptr)) {
- ir_entity *ent = get_SymConst_entity(ptr);
+ if (is_Global(ptr)) {
+ ir_entity *ent = get_Global_entity(ptr);
int i;
/* we know the called entity */
/* n is the i'th param of the call */
if (get_method_param_access(ent, i) & ptr_access_store) {
/* n is store in ent */
- return 0;
+ return 1;
}
}
}
} else {
- return 0;
+ /* unknown call address */
+ return 1;
}
break;
default:
/* bad, potential alias */
- return 0;
+ return 1;
}
}
+ return 0;
} /* is_stored */
/**
if (! is_Return(pred))
continue;
for (j = get_Return_n_ress(pred) - 1; j >= 0; --j) {
- const ir_node *res = get_Return_res(pred, j);
+ const ir_node *irn = get_Return_res(pred, j);
- if (is_stored(res)) {
+ if (is_stored(irn)) {
/* bad, might create an alias */
res = ~mtp_property_malloc;
goto finish;
} else if (is_Call(res)) {
ir_node *ptr = get_Call_ptr(res);
- if (is_SymConst_addr_ent(ptr)) {
+ if (is_Global(ptr)) {
/* a direct call */
- ir_entity *ent = get_SymConst_entity(ptr);
+ ir_entity *ent = get_Global_entity(ptr);
ir_graph *callee = get_entity_irg(ent);
if (callee == irg) {
if (is_Call(pred)) {
ir_node *ptr = get_Call_ptr(pred);
- if (is_SymConst_addr_ent(ptr)) {
+ if (is_Global(ptr)) {
/* a direct call */
- ir_entity *ent = get_SymConst_entity(ptr);
+ ir_entity *ent = get_Global_entity(ptr);
ir_graph *callee = get_entity_irg(ent);
if (callee == irg) {