[llvm-dev] [RFC] Propeller: A frame work for Post Link Optimizations

Krzysztof Pszeniczny via llvm-dev llvm-dev at lists.llvm.org
Wed Oct 2 12:19:43 PDT 2019


On Wed, Oct 2, 2019 at 8:41 PM Maksim Panchenko via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> *Pessimization/overhead for stack unwinding used by system-wide profilers
> and
> for exception handling*
>
> Larger CFI programs put an extra burden on unwinding at runtime as more CFI
> (and thus native) instructions have to be executed. This will cause more
> overhead for any profiler that records stack traces, and, as you correctly
> note
> in the proposal, for any program that heavily uses exceptions.
>

The number of CFI instructions that have to be executed when unwinding any
given stack stays the same. The CFI instructions for a function have to be
duplicated in every basic block section, but when performing unwinding only
one such a set is executed -- the copy for the current basic block.
However, this copy contains precisely the same CFI instructions as the ones
that would have to be executed if there were no basic block sections.

--
Krzysztof Pszeniczny
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191002/af57c080/attachment.html>


More information about the llvm-dev mailing list