On Tue, Jan 22, 2019 at 10:45:17PM -0800, Jakub Kicinski wrote:
> Hi!
> 
> This set adds support for complete removal of dead code.
> 
> Patch 3 contains all the code removal logic, patches 2 and 4
> additionally optimize branches around and to dead code.
> 
> Patches 6 and 7 allow offload JITs to take advantage of the
> optimization.  After a few small clean ups (8, 9, 10) nfp
> support is added (11, 12).
> 
> Removing code directly in the verifier makes it easy to adjust
> the relevant metadata (line info, subprogram info).  JITs for
> code store constrained architectures would have hard time
> performing such adjustments at JIT level.  Removing subprograms
> or line info is very hard once BPF core finished the verification.
> For user space to perform dead code removal it would have to perform
> the execution simulation/analysis similar to what the verifier does.
> 
> v3:
>  - fix uninitilized var warning in GCC 6 (buildbot).
> v4:
>  - simplify the linfo-keeping logic (Yonghong).  Instead of
>    trying to figure out that we are removing first instruction
>    of a subprogram, just always keep last dead line info, if
>    first live instruction doesn't have one.
> v5:
>  - improve comments (Martin Lau).

The verifier is taking a page from the dragon book.
Applied to bpf-next.
Thanks!

Reply via email to