aboutsummaryrefslogtreecommitdiff
path: root/gcc/global.c
diff options
context:
space:
mode:
authorSeongbae Park <seongbae.park@gmail.com>2007-06-20 18:22:28 +0000
committerSeongbae Park <spark@gcc.gnu.org>2007-06-20 18:22:28 +0000
commitb631c5f74230c5d6ee970227136fa4280911e6ca (patch)
treee9c9e2e49d61ced79471427422a71dae451a75d8 /gcc/global.c
parent3d9b47dc431c0e8b967f390f28a68fe371d47eb4 (diff)
downloadgcc-b631c5f74230c5d6ee970227136fa4280911e6ca.zip
gcc-b631c5f74230c5d6ee970227136fa4280911e6ca.tar.gz
gcc-b631c5f74230c5d6ee970227136fa4280911e6ca.tar.bz2
dbgcnt.def (global_alloc_at_func, [...]): New counters.
2007-06-20 Seongbae Park <seongbae.park@gmail.com> Maxim Kuvyrkov <mkuvyrkov@ispras.ru> * dbgcnt.def (global_alloc_at_func, global_alloc_at_reg): New counters. * haifa-sched.c (queue_to_ready): Don't requeue next insn if dbg_cnt (sched_insn) reaches the limit. (choose_ready): New parameter INSN_PTR and new return value. (schedule_block): Handle dbg_cnt (sched_insn). Handle the new return value from choose_ready. * global.c (global_aloc): New dbgcnt global_alloc_at_reg. (rest_of_handle_global_alloc): New global_alloc_at_func. Co-Authored-By: Maxim Kuvyrkov <mkuvyrkov@ispras.ru> From-SVN: r125891
Diffstat (limited to 'gcc/global.c')
-rw-r--r--gcc/global.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/global.c b/gcc/global.c
index 62b7b62..fc2a454 100644
--- a/gcc/global.c
+++ b/gcc/global.c
@@ -41,6 +41,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "timevar.h"
#include "df.h"
#include "vecprim.h"
+#include "dbgcnt.h"
/* This pass of the compiler performs global register allocation.
It assigns hard register numbers to all the pseudo registers
@@ -653,6 +654,8 @@ global_alloc (void)
if (reg_renumber[allocno[allocno_order[i]].reg] < 0
&& REG_LIVE_LENGTH (allocno[allocno_order[i]].reg) >= 0)
{
+ if (!dbg_cnt (global_alloc_at_reg))
+ break;
/* If we have more than one register class,
first try allocating in the class that is cheapest
for this pseudo-reg. If that fails, try any reg. */
@@ -2049,7 +2052,7 @@ rest_of_handle_global_alloc (void)
/* If optimizing, allocate remaining pseudo-regs. Do the reload
pass fixing up any insns that are invalid. */
- if (optimize)
+ if (optimize && dbg_cnt (global_alloc_at_func))
failure = global_alloc ();
else
{