diff options
author | Alan Maguire <alan.maguire@oracle.com> | 2023-02-21 15:48:42 +0000 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2023-02-28 12:49:50 -0300 |
commit | 111dfd2cee1188925cc070224f0f61f5fb3ed4f7 (patch) | |
tree | 9d7ffc0aa8fbcc56362b98ee28e3fe0414e0c126 | |
parent | 5851040e2468ba044bb88cb8ca48bdeb4b364991 (diff) | |
download | dwarves-111dfd2cee1188925cc070224f0f61f5fb3ed4f7.tar.gz |
dwarf_loader: Only mark parameter as using an unexpected register when it does
It is important to distinguish between cases where a parameter uses
an unexpected register versus cases where it is optimized out;
the function may still be called with the right parameter values
in the latter case, they just are not used.
Suggested-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Alan Maguire <alan.maguire@oracle.com>
Tested-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andrii Nakryiko <andrii@kernel.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Eduard Zingerman <eddyz87@gmail.com>
Cc: Hao Luo <haoluo@google.com>
Cc: John Fastabend <john.fastabend@gmail.com>
Cc: KP Singh <kpsingh@chromium.org>
Cc: Kui-Feng Lee <sinquersw@gmail.com>
Cc: Martin KaFai Lau <martin.lau@kernel.org>
Cc: Song Liu <songliubraving@fb.com>
Cc: Stanislav Fomichev <sdf@google.com>
Cc: Timo Beckers <timo@incline.eu>
Cc: Yonghong Song <yhs@fb.com>
Cc: bpf@vger.kernel.org
Link: https://lore.kernel.org/r/1676994522-1557-4-git-send-email-alan.maguire@oracle.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r-- | dwarf_loader.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/dwarf_loader.c b/dwarf_loader.c index 17f2e6e..f18060e 100644 --- a/dwarf_loader.c +++ b/dwarf_loader.c @@ -1144,14 +1144,12 @@ static struct parameter *parameter__new(Dwarf_Die *die, struct cu *cu, if (expected_reg >= 0 && expected_reg != expr->atom) parm->unexpected_reg = 1; break; - case DW_OP_breg0 ... DW_OP_breg31: - break; default: - parm->unexpected_reg = 1; + parm->optimized = 1; break; } } else if (has_const_value) { - parm->unexpected_reg = 1; + parm->optimized = 1; } } |