aboutsummaryrefslogtreecommitdiff
path: root/gcc/sched-int.h
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2011-01-31 05:13:34 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2011-01-31 05:13:34 +0000
commitef591d3f0591cfd815232664da45816682ca98eb (patch)
treec6f8c0932c79628d280754aa2f1e0d0dc3be9b9b /gcc/sched-int.h
parent1b31835f2fdcd602f3d744838cb2b26d8da2317a (diff)
downloadgcc-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.h17
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.