summaryrefslogtreecommitdiffhomepage
path: root/ir/be/bespilldaemel.c
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2015-07-23 07:19:00 +0200
committerMatthias Braun <matze@braunis.de>2015-07-23 07:21:28 +0200
commit4727ffc11b8f298a15e4655684041da15d05621c (patch)
tree7fe4408368929e141b9a31bbbc051f0c0c52d8e2 /ir/be/bespilldaemel.c
parent2c077dd1b15e9ab04a2421794f987e83dafa829a (diff)
Respect additional pressure demands in spill algorithms
Diffstat (limited to 'ir/be/bespilldaemel.c')
-rw-r--r--ir/be/bespilldaemel.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/ir/be/bespilldaemel.c b/ir/be/bespilldaemel.c
index 2cd9ab1..dfbf6ac 100644
--- a/ir/be/bespilldaemel.c
+++ b/ir/be/bespilldaemel.c
@@ -143,6 +143,8 @@ static void do_spilling(ir_nodeset_t *live_nodes, ir_node *node)
* need even more registers */
if (values_defined > free_regs_needed)
free_regs_needed = values_defined;
+ /* we may need additional free registers */
+ free_regs_needed += arch_get_additional_pressure(node, cls);
size_t n_live_nodes = ir_nodeset_size(live_nodes);
int spills_needed = (n_live_nodes + free_regs_needed) - n_regs;