[PATCH] D91734: [FastISel] Flush local value map on every instruction
Paul Robinson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 14 14:48:34 PST 2020
probinson added a comment.
I've run this through our copy of the GDB suite (8.3, not sure how old that is). There are 10 differences, with and without the patch.
FAIL: gdb.base/foll-exec.exp: step through execlp call
FAIL: gdb.base/foll-exec.exp: step after execlp call
FAIL: gdb.base/foll-exec.exp: print execd-program/global_i (after execlp)
FAIL: gdb.base/foll-exec.exp: print execd-program/local_j (after execlp)
FAIL: gdb.base/foll-exec.exp: print follow-exec/local_k (after execlp)
These 5 are all adjacent test points; what happens is that a "next" ends up stepping through parameter evaluation of a call to execl(), where the test expects it to execute the call. Adding two more "next" commands should fix that.
FAIL: gdb.base/call-ar-st.exp: check args of sum_array_print
FAIL: gdb.base/funcargs.exp: continue to call2i
FAIL: gdb.base/funcargs.exp: backtrace from call7k (pattern 1)
These three are all cases where a function parameter list is long enough to require parameters to be passed on the stack. In that situation, prologue_end is being set *way* too early, and so breaking on the function will stop before the parameters have all been homed. Garbage ensues. Haven't gotten to the bottom of that yet.
The news is not all bad. These two changed to PASS:
UNTESTED: gdb.base/break-caller-line.exp: target arch has an instruction after call as part of the caller line
FAIL: gdb.python/python.exp: test find_pc_line with resume address
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91734/new/
https://reviews.llvm.org/D91734
More information about the llvm-commits
mailing list