[LLVMdev] Some love for prune-as-you-go inlining.
Jon McLachlan
mclachlan at apple.com
Wed Mar 26 11:18:04 PDT 2014
Please disregard. This is still a work in progress.
On Mar 25, 2014, at 2:25 PM, Jon McLachlan <mclachlan at apple.com> wrote:
> Hey folks,
>
> Could someone help me get this bug-fix into LLVM’s TOT?
>
> CloneAndPruneFunctionInto: Fix pruned inlining when blockaddresses are present.
>
> Details:
> The issue is actually very simple: We were attempting to update
> references to block address, but only the one's from blocks we had
> seen so far. In PruningFunctionCloner::CloneBlock, one block
> is processed at a time, in a breadth first manner. This means that
> our VMap, the instruction-remapping-mechanism, is also only updated
> in an identical breadth first manner. In other words, if Block X
> uses the address of Block Y, and Block Y has not yet been cloned,
> then your instructions in Block X that reference the address of
> Block Y will not be updated (so, they will refer to the old func's
> Block Y, not the new func's block Y).
>
>
> Jon
>
>
> <llvm-fix-blockaddr.diff>_______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list