diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2011-01-31 05:13:34 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2011-01-31 05:13:34 +0000 |
commit | ef591d3f0591cfd815232664da45816682ca98eb (patch) | |
tree | c6f8c0932c79628d280754aa2f1e0d0dc3be9b9b /gcc/sched-int.h | |
parent | 1b31835f2fdcd602f3d744838cb2b26d8da2317a (diff) | |
download | gcc-ef591d3f0591cfd815232664da45816682ca98eb.zip gcc-ef591d3f0591cfd815232664da45816682ca98eb.tar.gz gcc-ef591d3f0591cfd815232664da45816682ca98eb.tar.bz2 |
revert: re PR debug/45136 (-fcompare-debug failure with -Os -fschedule-insns)
Reverted:
2011-01-25 Alexandre Oliva <aoliva@redhat.com>
PR debug/45136
PR debug/45130
* haifa-sched.c (get_ebb_head_tail): Move notes across boundary
debug insns.
(no_real_insns_p, schedule_block, set_priorities): Drop special
treatment of boundary debug insns.
* sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug
insns.
* sched-ebb.c (schedule_ebbs): Don't skip debug insns.
* sched-int.h (DEBUG_INSN_SCHED_P): Remove.
(BOUNDARY_DEBUG_INSN_P): Likewise.
(SCHEDULE_DEBUG_INSN_P): Likewise.
* sched-rgn.c (init_ready_list): Drop special treatment of
boundary debug insns.
* final.c (rest_of_clean-state): Clear notes' BB.
From-SVN: r169429
Diffstat (limited to 'gcc/sched-int.h')
-rw-r--r-- | gcc/sched-int.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/sched-int.h b/gcc/sched-int.h index 9077c88..68cfa23 100644 --- a/gcc/sched-int.h +++ b/gcc/sched-int.h @@ -887,6 +887,23 @@ extern VEC(haifa_deps_insn_data_def, heap) *h_d_i_d; #define IS_SPECULATION_BRANCHY_CHECK_P(INSN) \ (RECOVERY_BLOCK (INSN) != NULL && RECOVERY_BLOCK (INSN) != EXIT_BLOCK_PTR) +/* The unchanging bit tracks whether a debug insn is to be handled + like an insn (i.e., schedule it) or like a note (e.g., it is next + to a basic block boundary. */ +#define DEBUG_INSN_SCHED_P(insn) \ + (RTL_FLAG_CHECK1("DEBUG_INSN_SCHED_P", (insn), DEBUG_INSN)->unchanging) + +/* True if INSN is a debug insn that is next to a basic block + boundary, i.e., it is to be handled by the scheduler like a + note. */ +#define BOUNDARY_DEBUG_INSN_P(insn) \ + (DEBUG_INSN_P (insn) && !DEBUG_INSN_SCHED_P (insn)) +/* True if INSN is a debug insn that is not next to a basic block + boundary, i.e., it is to be handled by the scheduler like an + insn. */ +#define SCHEDULE_DEBUG_INSN_P(insn) \ + (DEBUG_INSN_P (insn) && DEBUG_INSN_SCHED_P (insn)) + /* Dep status (aka ds_t) of the link encapsulates information, that is needed for speculative scheduling. Namely, it is 4 integers in the range [0, MAX_DEP_WEAK] and 3 bits. |