File 0120-Add-missing-annotations-in-instrs.tab.patch of Package erlang
From a47e013421d3c12198f019cbd66a88a6d356802d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20Muska=C5=82a?= <michal@muskala.eu>
Date: Thu, 13 Dec 2018 16:13:09 +0100
Subject: [PATCH] Add missing annotations in instrs.tab
Dispatching a function and return never use the next instruction.
It's unlikely for raw_raise to use the next instruction.
---
erts/emulator/beam/instrs.tab | 3 +++
1 file changed, 3 insertions(+)
diff --git a/erts/emulator/beam/instrs.tab b/erts/emulator/beam/instrs.tab
index da1dd3dc45..df60e889f3 100644
--- a/erts/emulator/beam/instrs.tab
+++ b/erts/emulator/beam/instrs.tab
@@ -238,6 +238,7 @@ HANDLE_APPLY_FUN_ERROR() {
}
DISPATCH_FUN(I) {
+ //| -no_next
SET_I($I);
Dispatchfun();
}
@@ -299,6 +300,7 @@ i_call_fun_last(Fun, Deallocate) {
}
return() {
+ //| -no_next
SET_I(c_p->cp);
DTRACE_RETURN_FROM_PC(c_p);
@@ -951,6 +953,7 @@ build_stacktrace() {
}
raw_raise() {
+ //| -no_prefetch
Eterm class = x(0);
Eterm value = x(1);
Eterm stacktrace = x(2);
--
2.16.4