summaryrefslogtreecommitdiffhomepage
path: root/ir/be/beinfo.c
diff options
context:
space:
mode:
authorChristoph Mallon <mallon@cs.uni-saarland.de>2015-07-27 18:55:58 +0200
committerChristoph Mallon <mallon@cs.uni-saarland.de>2015-07-27 22:21:48 +0200
commit6b240a342fb12b37a1639da82728bb816c5793a1 (patch)
treeec32561295e2c287caf67f382b607170d3a210d9 /ir/be/beinfo.c
parent8d14210e48e14de3b1d7bca00df590ca92700e0b (diff)
be: Introduce a constraint for memory outputs.
Diffstat (limited to 'ir/be/beinfo.c')
-rw-r--r--ir/be/beinfo.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/ir/be/beinfo.c b/ir/be/beinfo.c
index 8e5bf20..b77522e 100644
--- a/ir/be/beinfo.c
+++ b/ir/be/beinfo.c
@@ -50,18 +50,21 @@ void be_info_new_node(ir_graph *irg, ir_node *node)
* Set backend info for some middleend nodes which still appear in
* backend graphs
*/
- arch_irn_flags_t flags = arch_irn_flag_not_scheduled;
+ arch_irn_flags_t flags = arch_irn_flag_not_scheduled;
+ arch_register_req_t const *req = arch_no_register_req;
switch (get_irn_opcode(node)) {
case iro_Block:
case iro_Dummy:
- case iro_NoMem:
case iro_Anchor:
- case iro_Pin:
- case iro_Sync:
case iro_Bad:
case iro_End:
case iro_Unknown:
break;
+ case iro_NoMem:
+ case iro_Pin:
+ case iro_Sync:
+ req = arch_memory_req;
+ break;
case iro_Phi:
flags = arch_irn_flag_schedule_first;
break;
@@ -71,7 +74,7 @@ void be_info_new_node(ir_graph *irg, ir_node *node)
info->flags = flags;
info->out_infos = NEW_ARR_DZ(reg_out_info_t, obst, 1);
- info->out_infos[0].req = arch_no_register_req;
+ info->out_infos[0].req = req;
}
static void new_phi_copy_attr(ir_graph *irg, const ir_node *old_node,