From 36f89b75ded64db0bf9ccdeede03a57e63700a6f Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Thu, 7 Apr 2016 16:49:25 -0400 Subject: [PATCH 38/91] FIXME: set up BB_HEAD and BB_END --- gcc/read-rtl.c | 3 ++- gcc/rtl/rtl-frontend.c | 13 ++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/gcc/read-rtl.c b/gcc/read-rtl.c index 04e602c..96a7ddc 100644 --- a/gcc/read-rtl.c +++ b/gcc/read-rtl.c @@ -1604,7 +1604,8 @@ read_rtx_code (const char *code_name) name.string); #endif int bb_idx = atoi (name.string); - rtx_reader_ptr->add_fixup_bb (loc, return_rtx, i, bb_idx); + if (bb_idx) + rtx_reader_ptr->add_fixup_bb (loc, return_rtx, i, bb_idx); } break; diff --git a/gcc/rtl/rtl-frontend.c b/gcc/rtl/rtl-frontend.c index 7a1b26b..63c7f4c 100644 --- a/gcc/rtl/rtl-frontend.c +++ b/gcc/rtl/rtl-frontend.c @@ -276,7 +276,14 @@ fixup_insn_uid::apply (function_reader *reader) const void fixup_bb::apply (function_reader */*reader*/) const { - XBBDEF (m_insn, m_operand_idx) = BASIC_BLOCK_FOR_FN (cfun, m_bb_idx); + basic_block bb = BASIC_BLOCK_FOR_FN (cfun, m_bb_idx); + gcc_assert (bb); + XBBDEF (m_insn, m_operand_idx) = bb; + + rtx_insn *insn = as_a (m_insn); + if (!BB_HEAD (bb)) + BB_HEAD (bb) = insn; + BB_END (bb) = insn; } function_reader::~function_reader () @@ -386,10 +393,6 @@ function_reader::create_function () bb->aux = bb; after = bb; -#if 0 - BB_HEAD (bb) = head; - BB_END (bb) = end; -#endif } -- 1.8.5.3