-/**
- * Transform a Cast_type(Const) into a new Const_type
- */
-static ir_node *transform_node_Cast(ir_node *n)
-{
- ir_node *oldn = n;
- ir_node *pred = get_Cast_op(n);
- ir_type *tp = get_irn_type(n);
-
- if (is_Const(pred) && get_Const_type(pred) != tp) {
- ir_graph *irg = get_irn_irg(n);
- n = new_rd_Const_type(NULL, irg, get_Const_tarval(pred), tp);
- DBG_OPT_CSTEVAL(oldn, n);
- } else if (is_SymConst(pred) && get_SymConst_value_type(pred) != tp) {
- ir_graph *irg = get_irn_irg(n);
- n = new_rd_SymConst_type(NULL, irg, get_irn_mode(pred),
- get_SymConst_symbol(pred), get_SymConst_kind(pred), tp);
- DBG_OPT_CSTEVAL(oldn, n);
- }
-
- return n;
-} /* transform_node_Cast */
-