Skip to content

Commit 3fbfc33

Browse files
committed
Zend/Optimizer: Propagate uint32_t type instead of int after field change
The previous commit allows us to propagate the type change to various functions that return a value derived from _zend_call_info.num_args
1 parent e9a3d97 commit 3fbfc33

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

Zend/Optimizer/sccp.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2120,11 +2120,11 @@ static int remove_call(sccp_ctx *ctx, zend_op *opline, zend_ssa_op *ssa_op)
21202120
* we need to collect.
21212121
* d) The ordinary DCE pass cannot collect construction of dead non-escaping arrays and objects.
21222122
*/
2123-
static int try_remove_definition(sccp_ctx *ctx, int var_num, zend_ssa_var *var, zval *value)
2123+
static uint32_t try_remove_definition(sccp_ctx *ctx, int var_num, zend_ssa_var *var, zval *value)
21242124
{
21252125
zend_ssa *ssa = ctx->scdf.ssa;
21262126
zend_op_array *op_array = ctx->scdf.op_array;
2127-
int removed_ops = 0;
2127+
uint32_t removed_ops = 0;
21282128

21292129
if (var->definition >= 0) {
21302130
zend_op *opline = &op_array->opcodes[var->definition];
@@ -2368,12 +2368,12 @@ static int try_remove_definition(sccp_ctx *ctx, int var_num, zend_ssa_var *var,
23682368
/* This will try to replace uses of SSA variables we have determined to be constant. Not all uses
23692369
* can be replaced, because some instructions don't accept constant operands or only accept them
23702370
* if they have a certain type. */
2371-
static int replace_constant_operands(sccp_ctx *ctx) {
2371+
static uint32_t replace_constant_operands(sccp_ctx *ctx) {
23722372
zend_ssa *ssa = ctx->scdf.ssa;
23732373
zend_op_array *op_array = ctx->scdf.op_array;
23742374
int i;
23752375
zval tmp;
2376-
int removed_ops = 0;
2376+
uint32_t removed_ops = 0;
23772377

23782378
/* We iterate the variables backwards, so we can eliminate sequences like INIT_ROPE
23792379
* and INIT_ARRAY. */
@@ -2466,10 +2466,10 @@ static void sccp_context_free(sccp_ctx *sccp) {
24662466
}
24672467
}
24682468

2469-
int sccp_optimize_op_array(zend_optimizer_ctx *ctx, zend_op_array *op_array, zend_ssa *ssa, zend_call_info **call_map)
2469+
uint32_t sccp_optimize_op_array(zend_optimizer_ctx *ctx, zend_op_array *op_array, zend_ssa *ssa, zend_call_info **call_map)
24702470
{
24712471
sccp_ctx sccp;
2472-
int removed_ops = 0;
2472+
uint32_t removed_ops = 0;
24732473
void *checkpoint = zend_arena_checkpoint(ctx->arena);
24742474

24752475
sccp_context_init(ctx, &sccp, ssa, op_array, call_map);

Zend/Optimizer/zend_optimizer_internal.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ zend_function *zend_optimizer_get_called_func(
124124
uint32_t zend_optimizer_classify_function(zend_string *name, uint32_t num_args);
125125
void zend_optimizer_migrate_jump(zend_op_array *op_array, zend_op *new_opline, zend_op *opline);
126126
void zend_optimizer_shift_jump(zend_op_array *op_array, zend_op *opline, uint32_t *shiftlist);
127-
int sccp_optimize_op_array(zend_optimizer_ctx *ctx, zend_op_array *op_array, zend_ssa *ssa, zend_call_info **call_map);
127+
uint32_t sccp_optimize_op_array(zend_optimizer_ctx *ctx, zend_op_array *op_array, zend_ssa *ssa, zend_call_info **call_map);
128128
int dce_optimize_op_array(zend_op_array *op_array, zend_optimizer_ctx *optimizer_ctx, zend_ssa *ssa, bool reorder_dtor_effects);
129129
zend_result zend_ssa_escape_analysis(const zend_script *script, zend_op_array *op_array, zend_ssa *ssa);
130130

0 commit comments

Comments
 (0)