public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Use integer_{zero,one}_node some more
@ 2024-03-20  9:34 Jakub Jelinek
  2024-03-20 10:00 ` Richard Biener
  0 siblings, 1 reply; 2+ messages in thread
From: Jakub Jelinek @ 2024-03-20  9:34 UTC (permalink / raw)
  To: Richard Biener; +Cc: gcc-patches

Hi!

When looking at the analyzer MEM_REF invalid second arg issue, I've noticed
tons of build_int_cst (integer_type_node, {0,1}) or build_zero_cst
(integer_type_node) cases.
That just wastes compile time (albeit not very much).

The following patch fixes what my sed script found.

Ok for trunk (or defer for stage1, though guess I'd need to redo it
from scratch at that point)?

2024-03-20  Jakub Jelinek  <jakub@redhat.com>

gcc/analyzer/
	* constraint-manager.cc (test_range, test_constraint_conditions,
	test_constant_comparisons, test_constraint_impl, test_purging,
	test_bits): Use integer_zero_node instead of
	build_zero_cst (integer_type_node) or
	build_int_cst (integer_type_node, 0) and integer_one_node instead of
	build_int_cst (integer_type_node, 1).
	* region-model.cc (region_model::get_store_value,
	append_interesting_constants, test_array_1,
	test_get_representative_tree, test_unique_constants, test_assignment,
	test_stack_frames, test_constraint_merging, test_widening_constraints,
	test_iteration_1, test_array_2): Likewise.
gcc/cp/
	* coroutines.cc (expand_one_await_expression): Use
	integer_zero_node instead of build_int_cst (integer_type_node, 0)
	and integer_one_node instead of build_int_cst (integer_type_node, 1).
gcc/fortran/
	* trans-array.cc (structure_alloc_comps): Use integer_zero_node
	instead of build_zero_cst (integer_type_node) or
	build_int_cst (integer_type_node, 0) and integer_one_node instead of
	build_int_cst (integer_type_node, 1).
	* trans-expr.cc (conv_scalar_char_value): Likewise.
	* trans-stmt.cc (gfc_trans_form_team, gfc_trans_change_team,
	gfc_trans_sync_team, gfc_trans_sync): Likewise.
	* trans-decl.cc (create_main_function): Likewise.
	* trans-intrinsic.cc (trans_this_image, conv_intrinsic_move_alloc):
	Likewise.
	* trans.cc (gfc_allocate_using_caf_lib, gfc_deallocate_with_status):
	Likewise.
gcc/objc/
	* objc-next-runtime-abi-02.cc (build_v2_class_ro_t_initializer): Use
	integer_zero_node instead of build_int_cst (integer_type_node, 0).

--- gcc/cp/coroutines.cc.jj	2024-02-10 09:38:25.771984306 +0100
+++ gcc/cp/coroutines.cc	2024-03-19 13:34:36.495989031 +0100
@@ -1750,7 +1750,7 @@ expand_one_await_expression (tree *stmt,
 				    data->coro_fp);
   r = cp_build_init_expr (cond, r);
   finish_switch_cond (r, sw);
-  r = build_case_label (build_int_cst (integer_type_node, 0), NULL_TREE,
+  r = build_case_label (integer_zero_node, NULL_TREE,
 			create_anon_label_with_ctx (loc, actor));
   add_stmt (r); /* case 0: */
   /* Implement the suspend, a scope exit without clean ups.  */
@@ -1758,7 +1758,7 @@ expand_one_await_expression (tree *stmt,
 				    is_cont ? cont : susp);
   r = coro_build_cvt_void_expr_stmt (r, loc);
   add_stmt (r); /*   goto ret;  */
-  r = build_case_label (build_int_cst (integer_type_node, 1), NULL_TREE,
+  r = build_case_label (integer_one_node, NULL_TREE,
 			create_anon_label_with_ctx (loc, actor));
   add_stmt (r); /* case 1:  */
   r = build1_loc (loc, GOTO_EXPR, void_type_node, resume_label);
--- gcc/analyzer/constraint-manager.cc.jj	2024-02-27 16:52:23.725366127 +0100
+++ gcc/analyzer/constraint-manager.cc	2024-03-19 13:34:36.486989157 +0100
@@ -3374,8 +3374,8 @@ namespace selftest {
 static void
 test_range ()
 {
-  tree int_0 = build_int_cst (integer_type_node, 0);
-  tree int_1 = build_int_cst (integer_type_node, 1);
+  tree int_0 = integer_zero_node;
+  tree int_1 = integer_one_node;
   tree int_2 = build_int_cst (integer_type_node, 2);
   tree int_5 = build_int_cst (integer_type_node, 5);
 
@@ -3419,7 +3419,7 @@ static void
 test_constraint_conditions ()
 {
   tree int_42 = build_int_cst (integer_type_node, 42);
-  tree int_0 = build_int_cst (integer_type_node, 0);
+  tree int_0 = integer_zero_node;
 
   tree x = build_global_decl ("x", integer_type_node);
   tree y = build_global_decl ("y", integer_type_node);
@@ -3874,7 +3874,7 @@ test_transitivity ()
 static void
 test_constant_comparisons ()
 {
-  tree int_1 = build_int_cst (integer_type_node, 1);
+  tree int_1 = integer_one_node;
   tree int_3 = build_int_cst (integer_type_node, 3);
   tree int_4 = build_int_cst (integer_type_node, 4);
   tree int_5 = build_int_cst (integer_type_node, 5);
@@ -4058,7 +4058,7 @@ static void
 test_constraint_impl ()
 {
   tree int_42 = build_int_cst (integer_type_node, 42);
-  tree int_0 = build_int_cst (integer_type_node, 0);
+  tree int_0 = integer_zero_node;
 
   tree x = build_global_decl ("x", integer_type_node);
   tree y = build_global_decl ("y", integer_type_node);
@@ -4220,7 +4220,7 @@ test_many_constants ()
 static void
 test_purging (void)
 {
-  tree int_0 = build_int_cst (integer_type_node, 0);
+  tree int_0 = integer_zero_node;
   tree a = build_global_decl ("a", integer_type_node);
   tree b = build_global_decl ("b", integer_type_node);
 
@@ -4654,7 +4654,7 @@ test_bits (void)
 {
   region_model_manager mgr;
 
-  tree int_0 = build_int_cst (integer_type_node, 0);
+  tree int_0 = integer_zero_node;
   tree int_0x80 = build_int_cst (integer_type_node, 0x80);
   tree int_0xff = build_int_cst (integer_type_node, 0xff);
   tree x = build_global_decl ("x", integer_type_node);
--- gcc/analyzer/region-model.cc.jj	2024-03-19 13:24:49.302222817 +0100
+++ gcc/analyzer/region-model.cc	2024-03-19 13:34:36.491989087 +0100
@@ -2724,7 +2724,7 @@ region_model::get_store_value (const reg
 	= cast_reg->get_original_region ()->dyn_cast_string_region ())
       {
 	tree string_cst = str_reg->get_string_cst ();
-	tree byte_offset_cst = build_int_cst (integer_type_node, 0);
+	tree byte_offset_cst = integer_zero_node;
 	if (const svalue *char_sval
 	    = m_mgr->maybe_get_char_from_string_cst (string_cst,
 						     byte_offset_cst))
@@ -7168,7 +7168,7 @@ build_real_cst_from_string (tree type, c
 static void
 append_interesting_constants (auto_vec<tree> *out)
 {
-  out->safe_push (build_int_cst (integer_type_node, 0));
+  out->safe_push (integer_zero_node);
   out->safe_push (build_int_cst (integer_type_node, 42));
   out->safe_push (build_int_cst (unsigned_type_node, 0));
   out->safe_push (build_int_cst (unsigned_type_node, 42));
@@ -7393,7 +7393,7 @@ test_array_1 ()
 
   region_model_manager mgr;
   region_model model (&mgr);
-  tree int_0 = build_int_cst (integer_type_node, 0);
+  tree int_0 = integer_zero_node;
   tree a_0 = build4 (ARRAY_REF, char_type_node,
 		     a, int_0, NULL_TREE, NULL_TREE);
   tree char_A = build_int_cst (char_type_node, 'A');
@@ -7450,7 +7450,7 @@ test_get_representative_tree ()
     {
       test_region_model_context ctxt;
       region_model model (&mgr);
-      tree idx = build_int_cst (integer_type_node, 0);
+      tree idx = integer_zero_node;
       tree a_0 = build4 (ARRAY_REF, char_type_node,
 			 a, idx, NULL_TREE, NULL_TREE);
       const region *a_0_reg = model.get_lvalue (a_0, &ctxt);
@@ -7502,7 +7502,7 @@ test_get_representative_tree ()
 static void
 test_unique_constants ()
 {
-  tree int_0 = build_int_cst (integer_type_node, 0);
+  tree int_0 = integer_zero_node;
   tree int_42 = build_int_cst (integer_type_node, 42);
 
   test_region_model_context ctxt;
@@ -7885,7 +7885,7 @@ test_bit_range_regions ()
 static void
 test_assignment ()
 {
-  tree int_0 = build_int_cst (integer_type_node, 0);
+  tree int_0 = integer_zero_node;
   tree x = build_global_decl ("x", integer_type_node);
   tree y = build_global_decl ("y", integer_type_node);
 
@@ -7944,7 +7944,7 @@ test_stack_frames ()
   tree int_42 = build_int_cst (integer_type_node, 42);
   tree int_10 = build_int_cst (integer_type_node, 10);
   tree int_5 = build_int_cst (integer_type_node, 5);
-  tree int_0 = build_int_cst (integer_type_node, 0);
+  tree int_0 = integer_zero_node;
 
   auto_vec <tree> param_types;
   tree parent_fndecl = make_fndecl (integer_type_node,
@@ -8627,7 +8627,7 @@ test_state_merging ()
 static void
 test_constraint_merging ()
 {
-  tree int_0 = build_int_cst (integer_type_node, 0);
+  tree int_0 = integer_zero_node;
   tree int_5 = build_int_cst (integer_type_node, 5);
   tree x = build_global_decl ("x", integer_type_node);
   tree y = build_global_decl ("y", integer_type_node);
@@ -8674,9 +8674,9 @@ test_widening_constraints ()
 {
   region_model_manager mgr;
   function_point point (program_point::origin (mgr).get_function_point ());
-  tree int_0 = build_int_cst (integer_type_node, 0);
+  tree int_0 = integer_zero_node;
   tree int_m1 = build_int_cst (integer_type_node, -1);
-  tree int_1 = build_int_cst (integer_type_node, 1);
+  tree int_1 = integer_one_node;
   tree int_256 = build_int_cst (integer_type_node, 256);
   test_region_model_context ctxt;
   const svalue *int_0_sval = mgr.get_or_create_constant_svalue (int_0);
@@ -8790,8 +8790,8 @@ test_iteration_1 ()
   region_model_manager mgr;
   program_point point (program_point::origin (mgr));
 
-  tree int_0 = build_int_cst (integer_type_node, 0);
-  tree int_1 = build_int_cst (integer_type_node, 1);
+  tree int_0 = integer_zero_node;
+  tree int_1 = integer_one_node;
   tree int_256 = build_int_cst (integer_type_node, 256);
   tree i = build_global_decl ("i", integer_type_node);
 
@@ -8944,8 +8944,8 @@ test_array_2 ()
   /* "int i;"  */
   tree i = build_global_decl ("i", integer_type_node);
 
-  tree int_0 = build_int_cst (integer_type_node, 0);
-  tree int_1 = build_int_cst (integer_type_node, 1);
+  tree int_0 = integer_zero_node;
+  tree int_1 = integer_one_node;
 
   tree arr_0 = build4 (ARRAY_REF, integer_type_node,
 		       arr, int_0, NULL_TREE, NULL_TREE);
--- gcc/objc/objc-next-runtime-abi-02.cc.jj	2024-01-29 09:41:19.687393274 +0100
+++ gcc/objc/objc-next-runtime-abi-02.cc	2024-03-19 13:34:36.535988469 +0100
@@ -3244,7 +3244,7 @@ build_v2_class_ro_t_initializer (tree ty
      explicitly declare the alignment padding.  */
   /* reserved, pads alignment.  */
   CONSTRUCTOR_APPEND_ELT (initlist, NULL_TREE,
-			    build_int_cst (integer_type_node, 0));
+			    integer_zero_node);
 
   /* ivarLayout */
   unsigned_char_star = build_pointer_type (unsigned_char_type_node);
--- gcc/fortran/trans-array.cc.jj	2024-03-18 08:58:46.191769237 +0100
+++ gcc/fortran/trans-array.cc	2024-03-19 13:30:14.338665071 +0100
@@ -10397,7 +10397,7 @@ structure_alloc_comps (gfc_symbol * der_
 		  gfc_add_expr_to_block (&tblock, t);
 		  if (c->attr.pdt_array)
 		    gfc_add_modify (&tblock, gfc_conv_descriptor_version (comp),
-				    build_zero_cst (integer_type_node));
+				    integer_zero_node);
 		  tmp = build3_loc (input_location, COND_EXPR, void_type_node,
 				    cd, gfc_finish_block (&tblock),
 				    gfc_call_free (tmp));
--- gcc/fortran/trans-expr.cc.jj	2024-03-15 09:13:35.195543327 +0100
+++ gcc/fortran/trans-expr.cc	2024-03-19 13:34:36.509988834 +0100
@@ -4082,7 +4082,7 @@ conv_scalar_char_value (gfc_symbol *sym,
       if ((*expr)->ref == NULL)
 	{
 	  se->expr = gfc_string_to_single_character
-	    (build_int_cst (integer_type_node, 1),
+	    (integer_one_node,
 	      gfc_build_addr_expr (gfc_get_pchar_type ((*expr)->ts.kind),
 				  gfc_get_symbol_decl
 				  ((*expr)->symtree->n.sym)),
@@ -4092,7 +4092,7 @@ conv_scalar_char_value (gfc_symbol *sym,
 	{
 	  gfc_conv_variable (se, *expr);
 	  se->expr = gfc_string_to_single_character
-	    (build_int_cst (integer_type_node, 1),
+	    (integer_one_node,
 	      gfc_build_addr_expr (gfc_get_pchar_type ((*expr)->ts.kind),
 				  se->expr),
 	      (*expr)->ts.kind);
--- gcc/fortran/trans-stmt.cc.jj	2024-03-15 09:13:35.198543286 +0100
+++ gcc/fortran/trans-stmt.cc	2024-03-19 13:34:36.532988512 +0100
@@ -764,7 +764,7 @@ gfc_trans_form_team (gfc_code *code)
       tmp = build_call_expr_loc (input_location,
 				 gfor_fndecl_caf_form_team, 3,
 				 team_id, team_type,
-				 build_int_cst (integer_type_node, 0));
+				 integer_zero_node);
       gfc_add_expr_to_block (&se.pre, tmp);
       gfc_add_block_to_block (&se.pre, &argse1.post);
       gfc_add_block_to_block (&se.pre, &argse2.post);
@@ -795,7 +795,7 @@ gfc_trans_change_team (gfc_code *code)
 
       tmp = build_call_expr_loc (input_location,
 				 gfor_fndecl_caf_change_team, 2, team_type,
-				 build_int_cst (integer_type_node, 0));
+				 integer_zero_node);
       gfc_add_expr_to_block (&argse.pre, tmp);
       gfc_add_block_to_block (&argse.pre, &argse.post);
       return gfc_finish_block (&argse.pre);
@@ -846,7 +846,7 @@ gfc_trans_sync_team (gfc_code *code)
       tmp = build_call_expr_loc (input_location,
 				 gfor_fndecl_caf_sync_team, 2,
 				 team_type,
-				 build_int_cst (integer_type_node, 0));
+				 integer_zero_node);
       gfc_add_expr_to_block (&argse.pre, tmp);
       gfc_add_block_to_block (&argse.pre, &argse.post);
       return gfc_finish_block (&argse.pre);
@@ -1357,7 +1357,7 @@ gfc_trans_sync (gfc_code *code, gfc_exec
 	}
       else if (code->expr1->rank == 0)
 	{
-	  len = build_int_cst (integer_type_node, 1);
+	  len = integer_one_node;
 	  images = gfc_build_addr_expr (NULL_TREE, images);
 	}
       else
--- gcc/fortran/trans-decl.cc.jj	2024-03-14 14:07:34.157425953 +0100
+++ gcc/fortran/trans-decl.cc	2024-03-19 13:34:36.499988974 +0100
@@ -6636,7 +6636,7 @@ create_main_function (tree fndecl)
   /* "return 0".  */
   tmp = fold_build2_loc (input_location, MODIFY_EXPR, integer_type_node,
 			 DECL_RESULT (ftn_main),
-			 build_int_cst (integer_type_node, 0));
+			 integer_zero_node);
   tmp = build1_v (RETURN_EXPR, tmp);
   gfc_add_expr_to_block (&body, tmp);
 
--- gcc/fortran/trans-intrinsic.cc.jj	2024-01-15 09:56:49.558544819 +0100
+++ gcc/fortran/trans-intrinsic.cc	2024-03-19 13:34:36.504988904 +0100
@@ -2562,7 +2562,7 @@ trans_this_image (gfc_se * se, gfc_expr
   gfc_add_modify (&loop, loop_var,
                   fold_build2_loc (input_location, PLUS_EXPR, integer_type_node,
 				   loop_var,
-				   build_int_cst (integer_type_node, 1)));
+				   integer_one_node));
 
   /* Making the loop... actually loop!  */
   tmp = gfc_finish_block (&loop);
@@ -12815,7 +12815,7 @@ conv_intrinsic_move_alloc (gfc_code *cod
 					    null_pointer_node));
       tmp = build_call_expr_loc (input_location, gfor_fndecl_caf_sync_all,
 				 3, null_pointer_node, null_pointer_node,
-				 build_int_cst (integer_type_node, 0));
+				 integer_zero_node);
 
       tmp = fold_build3_loc (input_location, COND_EXPR, void_type_node, cond,
 			     tmp, build_empty_stmt (input_location));
--- gcc/fortran/trans.cc.jj	2024-01-03 12:07:06.659671267 +0100
+++ gcc/fortran/trans.cc	2024-03-19 13:34:36.539988413 +0100
@@ -900,7 +900,7 @@ gfc_allocate_using_caf_lib (stmtblock_t
     {
       gcc_assert(errlen == NULL_TREE);
       errmsg = null_pointer_node;
-      errlen = build_int_cst (integer_type_node, 0);
+      errlen = integer_zero_node;
     }
 
   size = fold_convert (size_type_node, size);
@@ -1903,7 +1903,7 @@ gfc_deallocate_with_status (tree pointer
 	  if (descr)
 	    cond = fold_build2_loc (input_location, EQ_EXPR, boolean_type_node,
 				    gfc_conv_descriptor_version (descr),
-				    build_int_cst (integer_type_node, 1));
+				    integer_one_node);
 	  else
 	    cond = gfc_omp_call_is_alloc (pointer);
 	  omp_tmp = builtin_decl_explicit (BUILT_IN_GOMP_FREE);
@@ -1917,7 +1917,7 @@ gfc_deallocate_with_status (tree pointer
 							 0));
       if (flag_openmp_allocators && descr)
 	gfc_add_modify (&non_null, gfc_conv_descriptor_version (descr),
-			build_zero_cst (integer_type_node));
+			integer_zero_node);
 
       if (status != NULL_TREE && !integer_zerop (status))
 	{
@@ -1946,7 +1946,7 @@ gfc_deallocate_with_status (tree pointer
 	{
 	  gcc_assert (errlen == NULL_TREE);
 	  errmsg = null_pointer_node;
-	  errlen = build_zero_cst (integer_type_node);
+	  errlen = integer_zero_node;
 	}
       else
 	{

	Jakub


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-03-20 10:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-20  9:34 [PATCH] Use integer_{zero,one}_node some more Jakub Jelinek
2024-03-20 10:00 ` Richard Biener

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).