[llvm-dev] About the concept of "materialization"
Pei Wang via llvm-dev
llvm-dev at lists.llvm.org
Fri Jun 30 15:27:26 PDT 2017
Thanks for the explanation!
Pei
On 6/30/17, 8:35 AM, "dexonsmith at apple.com on behalf of Duncan P. N. Exon Smith" <dexonsmith at apple.com> wrote:
> On Jun 30, 2017, at 06:14, 陳韋任 <chenwj.cs97g at g2.nctu.edu.tw> wrote:
>
> 2017-06-29 2:08 GMT+08:00 Pei Wang <pxw172 at ist.psu.edu>:
>> OK. About the error it’s a long story, so it’s probably better to pin some source code here. Below is a piece of code related to my problem, clipped from lib/Transforms/Utils/ValueMapper.cpp. I was wondering what “materialized” means here.
>>
>> Value *Mapper::mapBlockAddress(const BlockAddress &BA) {
>> Function *F = cast<Function>(mapValue(BA.getFunction()));
>>
>> // F may not have materialized its initializer. In that case, create a
>> // dummy basic block for now, and replace it once we've materialized all
>> // the initializers.
>> BasicBlock *BB;
>> if (F->empty()) {
>> DelayedBBs.push_back(DelayedBasicBlock(BA));
>> BB = DelayedBBs.back().TempBB.get();
>> } else {
>> BB = cast_or_null<BasicBlock>(mapValue(BA.getBasicBlock()));
>> }
>>
>> return getVM()[&BA] = BlockAddress::get(F, BB ? BB : BA.getBasicBlock());
>> }
>
>
> Hi Duncan,
>
> Could you shed light on that? I guess the code you wrote here
> relates to JIT, but I am not sure
> what materialize actually means. Thanks.
This is for when a bitcode file has been lazy-loaded, and you're materializing global values (and related metadata) into the in-memory representation.
>
> Regards,
> chenwj
>
> --
> Wei-Ren Chen (陳韋任)
> Homepage: https://people.cs.nctu.edu.tw/~chenwj
More information about the llvm-dev
mailing list