[DynInst_API:] [dyninst/dyninst] 5c01c3: ParseAPI: Speed up the case where a function is ca...


Date: Fri, 04 Feb 2022 11:58:03 -0800
From: Jonathon Anderson <noreply@xxxxxxxxxx>
Subject: [DynInst_API:] [dyninst/dyninst] 5c01c3: ParseAPI: Speed up the case where a function is ca...
  Branch: refs/heads/master
  Home:   https://github.com/dyninst/dyninst
  Commit: 5c01c39956034ce57f92d9327fac18b843d27a7a
      https://github.com/dyninst/dyninst/commit/5c01c39956034ce57f92d9327fac18b843d27a7a
  Author: Jonathon Anderson <17242663+blue42u@xxxxxxxxxxxxxxxxxxxxxxxx>
  Date:   2022-02-04 (Fri, 04 Feb 2022)

  Changed paths:
    M parseAPI/h/CFG.h
    M parseAPI/src/Block.C
    M parseAPI/src/Parser.C

  Log Message:
  -----------
  ParseAPI: Speed up the case where a function is called from many locations (#1190)

In some binaries a single function has many callers, so copying out the source edges for
the entry Block takes a while and causes significant contention on the Block's lock.
The case in Parser::finalize where this becomes a hotspot likely does not need to read
every edge, so this commit inlines those cases into methods on Block instead.


[← Prev in Thread] Current Thread [Next in Thread→]