From d6f70f0ee3d5f595a9f6dadaabda834a1d47c662 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Fri, 17 Mar 2017 12:48:03 +0100 Subject: [PATCH] Disable block pass for large functions (Backport of 7ea261685f179a7cddcc4196fc7f3f12572c3d49 to 7.0.) --- ext/opcache/Optimizer/block_pass.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ext/opcache/Optimizer/block_pass.c b/ext/opcache/Optimizer/block_pass.c index f69199b24e..413b8b10e2 100644 --- a/ext/opcache/Optimizer/block_pass.c +++ b/ext/opcache/Optimizer/block_pass.c @@ -2000,6 +2000,10 @@ void optimize_cfg(zend_op_array *op_array, zend_optimizer_ctx *ctx) return; } + if ((uint64_t) op_array->last * (op_array->last_var + op_array->T) > 512 * 1024 * 1024) { + return; + } + /* Build CFG */ checkpoint = zend_arena_checkpoint(ctx->arena); if (!find_code_blocks(op_array, &cfg, ctx)) { -- 2.40.0