ent = get_SymConst_entity(n);
type = get_entity_owner(ent);
if (get_type_state(type) == layout_fixed)
- return new_tarval_from_long(get_entity_offset_bytes(ent), get_irn_mode(n));
+ return new_tarval_from_long(get_entity_offset(ent), get_irn_mode(n));
break;
default:
break;
if (mode_is_float(mode) && (get_irg_fp_model(current_ir_graph) & fp_strict_algebraic))
return n;
- if (mode_is_num(mode) && (classify_Const(a) == CNST_NULL)) {
+ /* Beware of Sub(P, P) which cannot be optimized into a simple Minus ... */
+ if (mode_is_num(mode) && mode == get_irn_mode(a) && (classify_Const(a) == CNST_NULL)) {
n = new_rd_Minus(
get_irn_dbg_info(n),
current_ir_graph,
/**
* Return the canonical node computing the same value as n.
+ *
+ * @param value_table The value table
+ * @param n The node to lookup
+ *
* Looks up the node in a hash table.
*
* For Const nodes this is performed in the constructor, too. Const
* It can only be called if it is guaranteed that no other nodes
* reference this one, i.e., right after construction of a node.
*
+ * @param n The node to optimize
+ *
* current_ir_graph must be set to the graph of the node!
*/
ir_node *optimize_node(ir_node *n)
/**
* Wrapper for external use, set proper status bits after optimization.
*/
-ir_node *optimize_in_place(ir_node *n)
-{
+ir_node *optimize_in_place(ir_node *n) {
/* Handle graph state */
assert(get_irg_phase_state(current_ir_graph) != phase_building);
/*
* Sets the default operation for an ir_ops.
*/
-ir_op_ops *firm_set_default_operations(opcode code, ir_op_ops *ops)
-{
+ir_op_ops *firm_set_default_operations(opcode code, ir_op_ops *ops) {
ops = firm_set_default_computed_value(code, ops);
ops = firm_set_default_equivalent_node(code, ops);
ops = firm_set_default_transform_node(code, ops);