diff options
author | Seongbae Park <seongbae.park@gmail.com> | 2007-06-20 18:22:28 +0000 |
---|---|---|
committer | Seongbae Park <spark@gcc.gnu.org> | 2007-06-20 18:22:28 +0000 |
commit | b631c5f74230c5d6ee970227136fa4280911e6ca (patch) | |
tree | e9c9e2e49d61ced79471427422a71dae451a75d8 /gcc/global.c | |
parent | 3d9b47dc431c0e8b967f390f28a68fe371d47eb4 (diff) | |
download | gcc-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.c | 5 |
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 { |