提交 6f437504 编写于 作者: A Alex Rønne Petersen 提交者: GitHub

Merge pull request #5091 from alexrp/mini-enter-leave-cleanup

[mini] Remove codegen special cases around MONO_PROFILE_ENTER_LEAVE.
......@@ -1333,8 +1333,7 @@ mono_arch_compute_omit_fp (MonoCompile *cfg)
cfg->arch.omit_fp = FALSE;
if (!sig->pinvoke && (sig->call_convention == MONO_CALL_VARARG))
cfg->arch.omit_fp = FALSE;
if ((mono_jit_trace_calls != NULL && mono_trace_eval (cfg->method)) ||
(cfg->prof_options & MONO_PROFILE_ENTER_LEAVE))
if ((mono_jit_trace_calls != NULL && mono_trace_eval (cfg->method)))
cfg->arch.omit_fp = FALSE;
for (i = 0; i < sig->param_count + sig->hasthis; ++i) {
ArgInfo *ainfo = &cinfo->args [i];
......@@ -6509,9 +6508,6 @@ get_max_epilog_size (MonoCompile *cfg)
if (mono_jit_trace_calls != NULL)
max_epilog_size += 50;
if (cfg->prof_options & MONO_PROFILE_ENTER_LEAVE)
max_epilog_size += 50;
max_epilog_size += (AMD64_NREG * 2);
return max_epilog_size;
......@@ -6951,9 +6947,6 @@ mono_arch_emit_prolog (MonoCompile *cfg)
code = (guint8 *)mono_arch_instrument_prolog (cfg, mono_trace_enter_method, code, TRUE);
}
if (cfg->prof_options & MONO_PROFILE_ENTER_LEAVE)
args_clobbered = TRUE;
/*
* Optimize the common case of the first bblock making a call with the same
* arguments as the method. This works because the arguments are still in their
......
......@@ -1686,8 +1686,7 @@ mono_arch_compute_omit_fp (MonoCompile *cfg)
cfg->arch.omit_fp = FALSE;
if (!sig->pinvoke && (sig->call_convention == MONO_CALL_VARARG))
cfg->arch.omit_fp = FALSE;
if ((mono_jit_trace_calls != NULL && mono_trace_eval (cfg->method)) ||
(cfg->prof_options & MONO_PROFILE_ENTER_LEAVE))
if ((mono_jit_trace_calls != NULL && mono_trace_eval (cfg->method)))
cfg->arch.omit_fp = FALSE;
for (i = 0; i < sig->param_count + sig->hasthis; ++i) {
ArgInfo *ainfo = &cinfo->args [i];
......@@ -6508,9 +6507,6 @@ mono_arch_emit_epilog (MonoCompile *cfg)
if (mono_jit_trace_calls != NULL)
max_epilog_size += 50;
if (cfg->prof_options & MONO_PROFILE_ENTER_LEAVE)
max_epilog_size += 50;
while (cfg->code_len + max_epilog_size > (cfg->code_size - 16)) {
cfg->code_size *= 2;
cfg->native_code = g_realloc (cfg->native_code, cfg->code_size);
......
......@@ -1351,8 +1351,7 @@ mono_arch_compute_omit_fp (MonoCompile *cfg)
cfg->arch.omit_fp = FALSE;
if (!sig->pinvoke && (sig->call_convention == MONO_CALL_VARARG))
cfg->arch.omit_fp = FALSE;
if ((mono_jit_trace_calls != NULL && mono_trace_eval (cfg->method)) ||
(cfg->prof_options & MONO_PROFILE_ENTER_LEAVE))
if ((mono_jit_trace_calls != NULL && mono_trace_eval (cfg->method)))
cfg->arch.omit_fp = FALSE;
/*
* On MIPS, fp points to the bottom of the frame, so it can be eliminated even if
......@@ -5310,9 +5309,6 @@ mono_arch_emit_epilog_sub (MonoCompile *cfg, guint8 *code)
if (mono_jit_trace_calls != NULL)
max_epilog_size += 50;
if (cfg->prof_options & MONO_PROFILE_ENTER_LEAVE)
max_epilog_size += 50;
if (code)
pos = code - cfg->native_code;
while (cfg->code_len + max_epilog_size > (cfg->code_size - 16)) {
......
......@@ -5329,9 +5329,6 @@ mono_arch_emit_epilog (MonoCompile *cfg)
if (mono_jit_trace_calls != NULL)
max_epilog_size += 50;
if (cfg->prof_options & MONO_PROFILE_ENTER_LEAVE)
max_epilog_size += 50;
while (cfg->code_len + max_epilog_size > (cfg->code_size - 16)) {
cfg->code_size *= 2;
cfg->native_code = g_realloc (cfg->native_code, cfg->code_size);
......
......@@ -2182,8 +2182,7 @@ printf("%s %4d cookine %x\n",__FUNCTION__,__LINE__,cfg->sig_cookie);
/*------------------------------------------------------*/
/* Allow space for the trace method stack area if needed*/
/*------------------------------------------------------*/
if ((mono_jit_trace_calls != NULL && mono_trace_eval (cfg->method))
|| (cfg->prof_options & MONO_PROFILE_ENTER_LEAVE))
if ((mono_jit_trace_calls != NULL && mono_trace_eval (cfg->method)))
offset += S390_TRACE_STACK_SIZE;
/*------------------------------------------------------*/
......@@ -5611,8 +5610,7 @@ mono_arch_emit_prolog (MonoCompile *cfg)
if (mono_jit_trace_calls != NULL && mono_trace_eval (method)) {
tracing = 1;
cfg->code_size += 256;
} else if (cfg->prof_options & MONO_PROFILE_ENTER_LEAVE)
cfg->code_size += 256;
}
if (method->save_lmf)
cfg->code_size += 200;
......@@ -5905,9 +5903,6 @@ mono_arch_emit_prolog (MonoCompile *cfg)
code = mono_arch_instrument_prolog (cfg, enter_method, code, TRUE);
}
if (cfg->prof_options & MONO_PROFILE_ENTER_LEAVE)
argsClobbered = TRUE;
/*
* Optimize the common case of the first bblock making a call with the same
* arguments as the method. This works because the arguments are still in their
......@@ -6008,8 +6003,6 @@ mono_arch_emit_epilog (MonoCompile *cfg)
if (mono_jit_trace_calls != NULL)
max_epilog_size += 128;
else if (cfg->prof_options & MONO_PROFILE_ENTER_LEAVE)
max_epilog_size += 128;
while ((cfg->code_len + max_epilog_size) > (cfg->code_size - 16)) {
cfg->code_size *= 2;
......
......@@ -4105,9 +4105,6 @@ mono_arch_emit_epilog (MonoCompile *cfg)
if (mono_jit_trace_calls != NULL)
max_epilog_size += 50;
if (cfg->prof_options & MONO_PROFILE_ENTER_LEAVE)
max_epilog_size += 50;
while (cfg->code_len + max_epilog_size > (cfg->code_size - 16)) {
cfg->code_size *= 2;
cfg->native_code = g_realloc (cfg->native_code, cfg->code_size);
......
......@@ -971,8 +971,7 @@ needs_stack_frame (MonoCompile *cfg)
result = TRUE;
else if (!sig->pinvoke && (sig->call_convention == MONO_CALL_VARARG))
result = TRUE;
else if ((mono_jit_trace_calls != NULL && mono_trace_eval (cfg->method)) ||
(cfg->prof_options & MONO_PROFILE_ENTER_LEAVE))
else if ((mono_jit_trace_calls != NULL && mono_trace_eval (cfg->method)))
result = TRUE;
set_needs_stack_frame (cfg, result);
......@@ -5019,9 +5018,6 @@ mono_arch_emit_prolog (MonoCompile *cfg)
cfg->code_size = MAX (cfg->header->code_size * 4, 10240);
if (cfg->prof_options & MONO_PROFILE_ENTER_LEAVE)
cfg->code_size += 512;
code = cfg->native_code = g_malloc (cfg->code_size);
#if 0
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册