[llvm-dev] [RFC] Tablegen-erated GlobalISel Combine Rules

Nicolai Hähnle via llvm-dev llvm-dev at lists.llvm.org
Thu Nov 29 02:12:09 PST 2018


On 28.11.18 23:56, Quentin Colombet via llvm-dev wrote:
> Le mer. 28 nov. 2018 à 11:41, David Greene <dag at cray.com> a écrit :
>>
>> Quentin Colombet <quentin.colombet at gmail.com> writes:
>>
>>>      And are there any realistic alternatives for declarative
>>>      representations combines?
>>>
>>> Realistic I would have thought we can use the syntax we already have
>>> for SDISel.
>>> In other words, people wouldn’t have to learn yet another way of doing
>>> combines and when we are ready we can move everything (isel +
>>> combines) in one go.
>>
>> I don't think I'd want to see things go that way.  Current SDISel
>> patterns are very limited and impose a lot of hacky workarounds for
>> not-too-uncommon things.  If anything, I anticipate migrating isel to
>> what Daniel outlines rather than migrating combine to SDISel and then
>> migrating to yet another thing after that.
> 
> Interesting, I wasn't seeing this that way (the porting combine to SDISel bit).
> 
> The advantage I was seeing in reusing what we have is that ISel and
> combines are fundamentally the same problem and any improvement (in
> particular compile time) that we would have made to the existing
> matching state machine would have benefited everything. One thing I
> assumed from this proposal is that the new syntax would imply a new
> matching state machine and thus fragmented our effort.

Right, they are fundamentally the same thing, but as David said the 
current SDISel syntax is quite limiting. Multi-root patterns, 
instructions with multiple outputs, advanced special matches are all 
fairly awkward to express if they're possible at all.

I think Daniel's proposal fixes all these deficiencies, and I like the 
new variant that uses the TableGen dag type for S-expressions a lot. 
It's really not that different from SDISel in the end.

Cheers,
Nicolai


> Again maybe that's a good thing (get rid of the past to better prepare
> the future), and maybe I misread the proposal and we actually reuse
> the same state machine and we are just discussing syntactic sugar.
> Point being, feel free to move as you see fit and take my comments as
> they are, a single person's opinion :).
> 
> Cheers,
> Q.
> 
>>
>>                          -David
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> 

-- 
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.


More information about the llvm-dev mailing list