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]

Re: [PATCH] Small cleanups to use gimple_call_noreturn_p


On Wed, 17 Aug 2016, Jakub Jelinek wrote:

> Hi!
> 
> I've noticed a couple of places that should be using
> gimple_call_noreturn_p but are using gimple_call_flags (stmt) & ECF_NORETURN
> instead.
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

Ok.

Richard.

> 2016-08-17  Jakub Jelinek  <jakub@redhat.com>
> 
> 	* gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
> 	instead of testing ECF_NORETURN bit in gimple_call_flags.
> 	* tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
> 	* predict.c (tree_bb_level_predictions): Likewise.
> 	* gimple-low.c (gimple_stmt_may_fallthru): Likewise.
> 
> --- gcc/gimple-fold.c.jj	2016-07-19 19:29:05.250752770 +0200
> +++ gcc/gimple-fold.c	2016-08-17 13:34:21.209544835 +0200
> @@ -3184,7 +3184,7 @@ gimple_fold_call (gimple_stmt_iterator *
>  		  /* If changing the call to __cxa_pure_virtual
>  		     or similar noreturn function, adjust gimple_call_fntype
>  		     too.  */
> -		  if ((gimple_call_flags (stmt) & ECF_NORETURN)
> +		  if (gimple_call_noreturn_p (stmt)
>  		      && VOID_TYPE_P (TREE_TYPE (TREE_TYPE (fndecl)))
>  		      && TYPE_ARG_TYPES (TREE_TYPE (fndecl))
>  		      && (TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl)))
> --- gcc/tree-cfg.c.jj	2016-08-16 18:50:14.918137409 +0200
> +++ gcc/tree-cfg.c	2016-08-17 13:35:49.059419876 +0200
> @@ -807,7 +807,7 @@ make_edges_bb (basic_block bb, struct om
>  	}
>        /* Some calls are known not to return.  */
>        else
> -	fallthru = !(gimple_call_flags (last) & ECF_NORETURN);
> +	fallthru = !gimple_call_noreturn_p (last);
>        break;
>  
>      case GIMPLE_ASSIGN:
> @@ -9083,7 +9083,7 @@ execute_fixup_cfg (void)
>  	  if (!stmt
>  	      || (!is_ctrl_stmt (stmt)
>  		  && (!is_gimple_call (stmt)
> -		      || (gimple_call_flags (stmt) & ECF_NORETURN) == 0)))
> +		      || !gimple_call_noreturn_p (stmt))))
>  	    {
>  	      if (stmt && is_gimple_call (stmt))
>  		gimple_call_set_ctrl_altering (stmt, false);
> --- gcc/predict.c.jj	2016-08-06 12:11:52.254489381 +0200
> +++ gcc/predict.c	2016-08-17 13:35:12.365889754 +0200
> @@ -2639,8 +2639,7 @@ tree_bb_level_predictions (void)
>  
>  	  if (is_gimple_call (stmt))
>  	    {
> -	      if ((gimple_call_flags (stmt) & ECF_NORETURN)
> -	          && has_return_edges)
> +	      if (gimple_call_noreturn_p (stmt) && has_return_edges)
>  		predict_paths_leading_to (bb, PRED_NORETURN,
>  					  NOT_TAKEN);
>  	      decl = gimple_call_fndecl (stmt);
> --- gcc/gimple-low.c.jj	2016-05-03 14:12:19.053019350 +0200
> +++ gcc/gimple-low.c	2016-08-17 13:34:54.813114525 +0200
> @@ -610,7 +610,7 @@ gimple_stmt_may_fallthru (gimple *stmt)
>  
>      case GIMPLE_CALL:
>        /* Functions that do not return do not fall through.  */
> -      return (gimple_call_flags (stmt) & ECF_NORETURN) == 0;
> +      return !gimple_call_noreturn_p (stmt);
>  
>      default:
>        return true;
> 
> 	Jakub
> 
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)


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