[llvm-dev] About the concept of "materialization"

陳韋任 via llvm-dev llvm-dev at lists.llvm.org
Fri Jun 30 06:14:18 PDT 2017


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.

Regards,
chenwj

-- 
Wei-Ren Chen (陳韋任)
Homepage: https://people.cs.nctu.edu.tw/~chenwj


More information about the llvm-dev mailing list