RE: jump_table_data and active_insn_p

2014-05-12 Thread Paulo Matos


 -Original Message-
 From: Steven Bosscher [mailto:stevenb@gmail.com]
 Sent: 05 May 2014 10:11
 To: Paulo Matos
 Cc: gcc@gcc.gnu.org
 Subject: Re: jump_table_data and active_insn_p
 
 On Mon, Mar 17, 2014 at 12:51 PM, Paulo Matos wrote:
  Why is jump_table_data an active_insn?
  int
  active_insn_p (const_rtx insn)
  {
return (CALL_P (insn) || JUMP_P (insn)
|| JUMP_TABLE_DATA_P (insn) /* FIXME */
|| (NONJUMP_INSN_P (insn)
 (! reload_completed
|| (GET_CODE (PATTERN (insn)) != USE
 GET_CODE (PATTERN (insn)) != CLOBBER; }
 
  It is clear that someone [Steven Bosscher] thought it needs fixing
 but what's the problem with just removing it from the OR-expression?
 
 Places using active_insn_p, next_active_insn, prev_active_insn, etc.,
 need to be audited to make sure it's safe to remove JUMP_TABLE_DATA
 from the OR-expression.
 
 I've done most of that work, but it needs finishing and for that I
 need to find some time.
 See http://gcc.gnu.org/ml/gcc-patches/2013-11/msg03122.html
 

Fair enough.

Thanks for the explanation.

Paulo Matos

 Ciao!
 Steven


Re: jump_table_data and active_insn_p

2014-05-05 Thread Steven Bosscher
On Mon, Mar 17, 2014 at 12:51 PM, Paulo Matos wrote:
 Why is jump_table_data an active_insn?
 int
 active_insn_p (const_rtx insn)
 {
   return (CALL_P (insn) || JUMP_P (insn)
   || JUMP_TABLE_DATA_P (insn) /* FIXME */
   || (NONJUMP_INSN_P (insn)
(! reload_completed
   || (GET_CODE (PATTERN (insn)) != USE
GET_CODE (PATTERN (insn)) != CLOBBER;
 }

 It is clear that someone [Steven Bosscher] thought it needs fixing but what's 
 the problem with just removing it from the OR-expression?

Places using active_insn_p, next_active_insn, prev_active_insn, etc.,
need to be audited to make sure it's safe to remove JUMP_TABLE_DATA
from the OR-expression.

I've done most of that work, but it needs finishing and for that I
need to find some time.
See http://gcc.gnu.org/ml/gcc-patches/2013-11/msg03122.html

Ciao!
Steven