[gcc(refs/users/mikael/heads/refactor_descriptor_v01)] Déplacement evaluation constructeur en dehors des operateurs unaires
Mikael Morin
mikael@gcc.gnu.org
Thu Mar 6 18:34:13 GMT 2025
https://gcc.gnu.org/g:ad972e0735b2db691e91dc50f550bf2d51b6e1a0
commit ad972e0735b2db691e91dc50f550bf2d51b6e1a0
Author: Mikael Morin <mikael@gcc.gnu.org>
Date: Tue Mar 4 10:27:20 2025 +0100
Déplacement evaluation constructeur en dehors des operateurs unaires
Diff:
---
gcc/cgraphunit.cc | 27 ++++++++++++---------------
1 file changed, 12 insertions(+), 15 deletions(-)
diff --git a/gcc/cgraphunit.cc b/gcc/cgraphunit.cc
index fbefcd522efd..8a207f3b30fb 100644
--- a/gcc/cgraphunit.cc
+++ b/gcc/cgraphunit.cc
@@ -3668,6 +3668,9 @@ exec_context::evaluate (tree expr) const
return result;
}
+ case CONSTRUCTOR:
+ return evaluate_constructor (expr);
+
default:
gcc_unreachable ();
}
@@ -3716,9 +3719,6 @@ exec_context::evaluate_unary (enum tree_code code, tree arg) const
case NOP_EXPR:
return evaluate (arg);
- case CONSTRUCTOR:
- return evaluate_constructor (arg);
-
default:
gcc_unreachable ();
}
@@ -3839,18 +3839,15 @@ exec_context::execute_assign (gassign *g)
data_value value (TREE_TYPE (lhs));
enum tree_code rhs_code = gimple_assign_rhs_code (g);
- switch (rhs_code)
+ enum gimple_rhs_class rhs_class = get_gimple_rhs_class (rhs_code);
+ switch (rhs_class)
{
- case NOP_EXPR:
- case CONSTRUCTOR:
- value = evaluate_unary (rhs_code, gimple_assign_rhs1 (g));
+ case GIMPLE_SINGLE_RHS:
+ value = evaluate (gimple_assign_rhs1 (g));
break;
- case VECTOR_CST:
- case INTEGER_CST:
- case SSA_NAME:
- case COMPONENT_REF:
- value = evaluate (gimple_assign_rhs1 (g));
+ case GIMPLE_UNARY_RHS:
+ value = evaluate_unary (rhs_code, gimple_assign_rhs1 (g));
break;
default:
@@ -5844,7 +5841,7 @@ exec_context_evaluate_literal_tests ()
}
void
-exec_context_evaluate_unary_tests ()
+exec_context_evaluate_constructor_tests ()
{
context_printer printer;
@@ -5870,7 +5867,7 @@ exec_context_evaluate_unary_tests ()
CONSTRUCTOR_APPEND_ELT (vec_elts, NULL_TREE, addr2);
tree cstr = build_constructor (vec2ptr, vec_elts);
- data_value val_cstr = ctx.evaluate_unary (CONSTRUCTOR, cstr);
+ data_value val_cstr = ctx.evaluate (cstr);
data_storage *strg1 = val_cstr.get_address_at (0);
ASSERT_NE (strg1, nullptr);
ASSERT_PRED1 (strg1->matches, a);
@@ -6340,7 +6337,7 @@ gimple_exec_cc_tests ()
context_printer_print_value_update_tests ();
exec_context_evaluate_tests ();
exec_context_evaluate_literal_tests ();
- exec_context_evaluate_unary_tests ();
+ exec_context_evaluate_constructor_tests ();
exec_context_execute_assign_tests ();
exec_context_execute_call_tests ();
}
More information about the Gcc-cvs
mailing list