llvm-project
255870d7 - [JITLink] Update splitBlock to support splitting into multiple blocks.

Commit
1 year ago
[JITLink] Update splitBlock to support splitting into multiple blocks. LinkGraph::splitBlock used to take a single split-point to split a Block into two. In the common case where a block needs to be split repeatedly (e.g. in eh-frame and compact-unwind sections), iterative calls to splitBlock could lead to poor performance as symbols and edges are repeatedly shuffled to new blocks. This commit updates LinkGraph::splitBlock to take a sequence of split offsets, allowing a block to be split into an arbitrary number of new blocks. Internally, Symbols and Edges only need to be moved once (directly to whichever new block they will be associated with), leading to better performance. On some large MachO object files in an out of tree project this change improved the performance of splitBlock by several orders of magnitude. rdar://135820493
Author
Committer
Parents
Loading