This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] RTL PRE speedup


No magic bullet for the insn-recog.c testcase I'm looking at but
quite obvious and should save half of the canon_true_dependence calls
for blocks that end up non-transparent.

Now one of the main weakness of compute_transp is that we call it
for all expressions but for the MEM case it's certainly not
interesting to know whether it is transparent in _all_ blocks
but just a subset (dependent on the actual transform we do - either
where it's available or where its anticipated).

Committed as obvious.

Richard.

2014-02-12  Richard Biener  <rguenther@suse.de>

	* gcse.c (compute_transp): break from loop over canon_modify_mem_list
	when we found a dependence.

Index: gcc/gcse.c
===================================================================
*** gcc/gcse.c	(revision 207718)
--- gcc/gcse.c	(working copy)
*************** compute_transp (const_rtx x, int indx, s
*** 1735,1741 ****
  
  		  if (canon_true_dependence (dest, GET_MODE (dest),
  					     dest_addr, x, x_addr))
! 		    bitmap_clear_bit (bmap[bb_index], indx);
  	        }
  	    }
  	}
--- 1735,1744 ----
  
  		  if (canon_true_dependence (dest, GET_MODE (dest),
  					     dest_addr, x, x_addr))
! 		    {
! 		      bitmap_clear_bit (bmap[bb_index], indx);
! 		      break;
! 		    }
  	        }
  	    }
  	}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]