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

Bruce Hoult via llvm-dev llvm-dev at lists.llvm.org
Wed Jun 28 04:50:29 PDT 2017


You probably see it more often as "rematerialization".

https://en.wikipedia.org/wiki/Rematerialization

I believe "materialization" by itself (not "re") would usually be about
things like getting a large constant (maybe a bit pattern or mask) into a
register before it can be used. Some ISAs such as x86 support large
constants directly in the instruction, but in RISC you usually have to
choose between using a data load instruction to get the constant from a
constant pool (maybe global, maybe just after the function using it), or
using a series of instructions such as load-high, shift, or-immediate to
create the constant.

On Tue, Jun 27, 2017 at 12:07 AM, Pei Wang via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> I’m current debugging one of my LLVM passes which utilized inline
> assembly. I constantly encounter crashes related to “value
> materialization”, according to the error messages I received. It seems a
> big concept in LLVM (or maybe generally in compilation), but I cannot find
> any document that is comprehensive enough to help me understand what
> exactly materialization is for. Could someone offer some pointers to useful
> materials introducing this concept or just explain it to me if it is
> straightforward enough?
>
>
>
> Thanks!
>
>
>
> Sincerely,
>
> Pei Wang
>
>
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170628/a4e46651/attachment.html>


More information about the llvm-dev mailing list