[llvm-dev] Assigning custom information to IR instruction and passing it to its correspondent in Selection DAG
Przemyslaw Ossowski via llvm-dev
llvm-dev at lists.llvm.org
Tue Apr 30 14:37:05 PDT 2019
as I wrote in mu previous post I wanted to somehow mark one IR instruction
(in this particular case it would be 'load') during dedicated pass, which
will set the marking based on neighboring instructions. Next I wanted to
somehow to convey this marking from 'load' IR instruction to 'load' SDNode
in order to use it during DAG Instruction Selection - information stored in
this marking would 'enable' or 'disable' particular pattern... I was
thinking about usage metadata for it, but I didn't get any feedback.
So now I'm wondering if solution with metadata is the best one or it maybe
it doesn't make any sense an something else would be better.
I don't have big experience with metadata, but what I've read it would
allow for customizing IR instruction without modifying the instruction. Or
maybe I'm unnecessarily thinking about metadata, because 'load' instruction
has already some fields which could be used for storing 'flags', which
might represent any custom information. Obviously I don't want to modify
On Thu, Apr 25, 2019 at 11:54 AM Przemyslaw Ossowski <
przemyslaw.ossowski at googlemail.com> wrote:
> I’m looking for the best approach which would allow for marking given LLVM
> IR instruction during IR custom pass and later utilizing that information
> during DAG Instruction Selection in order to match given pattern based on
> this marking.
> I’m wondering if marking IR instruction utilizing Metadata is good idea.
> But how later pass that information to DAG and appropriately mark in
> DAGBuilder SDNode, which represents the earlier marked instruction in IR?
> Any suggestion how to implement the most efficiently?
> I’m expecting there are already similar solutions – maybe someone would be
> able to indicate the exact example?
> Thanks in advance,
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev