[llvm-dev] Equality saturation: Status & how-to-upstream discussion

(IIIT) Siddharth Bhat via llvm-dev llvm-dev at lists.llvm.org
Sun Sep 17 17:44:27 PDT 2017


I'm sorry, there are a couple of inaccuracies in the above e-mail:

1. This will be a minimal working example, not a conservatively correct
implementation.
2. I also need to perform the following steps:

- Convert stub "condition" nodes to actual nodes with information.
- Perform equality saturation till fixpoint / timeout.
- Use some kind of profitability heuristic to pick final optimisations.

Once this is done, I can have it bail out on code it does not understand.
Then, this is a "minimal working example" on which stuff can be built.

Thanks, and sorry for the rushed e-mail
~Siddharth

On Mon, 18 Sep 2017 at 02:35 (IIIT) Siddharth Bhat <
siddharth.bhat at research.iiit.ac.in> wrote:

> Hello all,
>
> I've been working on a prototype implementation of equality saturation on
> a personal branch:
>
> https://github.com/bollu/llvm/tree/1ab19bdb5eba00d1d508535758d700c1d60a3815
>
> For those who have read the paper, I now create A-PEG nodes. I need to
> create PEG nodes from these.
>
> There are four more "steps" before this is a minimal, conservatively
> correct implementation:
>
> - Fill in the BasicBlock nodes with information from llvm::BasicBlock.
> - Implement the PEG -> CFG back-conversion (what the paper calls
> reversion).
> - Figure out how to handle things like switch and more complex
> terminators which are not directly handled by the original paper (as far as
> I have seen. Please correct me if am wrong).
>
> This brings me to the question, how is this going to be upstreamed? Will I
> have to write an RFC that details what changes are proposed by this?
>
> I'm new to adding a large "chunk" of changes, so any help is very
> appreciated!
>
> Thanks,
> ~Siddharth
> --
> Sending this from my phone, please excuse any typos!
>
-- 
Sending this from my phone, please excuse any typos!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170918/98fdf790/attachment.html>


More information about the llvm-dev mailing list