Re: Giving targets a say in match.pd
Jeffrey Law via Gcc <[email protected]> Sat, 6 Jun 2026 09:00:34 -0600
| Newsgroups | gmane.comp.gcc.devel |
|---|---|
| Message-ID | <[email protected]> |
On 6/6/2026 6:32 AM, Georg-Johann Lay wrote: > Am 06.06.26 um 00:17 schrieb Jeffrey Law: >> >> On 6/5/2026 3:25 AM, Georg-Johann Lay via Gcc wrote: >>> In match.pd there are two kinds of patterns: Canonicalizations >>> and optimizations. >>> >>> While canonicalizations simplify the compile task by reducing >>> combinatorial complexity, optimization patterns try to improve >>> code performance. >>> >>> The trouble with the optimization patterns is that they operate >>> blindly, >>> not considering costs or target capabilities in any way. >> [ ... ] >> This would go against guiding principles in the gimple phases. >> Essentially we very much have avoided things like target costing in >> gimple. That's part of what makes gimple transformations predictable >> and relatively easy to evaluate. > > At no point I proposed to introduce costing. > > All I said is that match.pd /is/ doing "optimizations" without using > any metric, which is a correct statement as far as I know. > > And without a metric, you have no idea where you are heading. > That works for trivial cases like x * 0 = 0, and when all the > dozens of targets behave similar in this regard. > > There are cases though where different targets means different metrics. You may not not explicitly mentioned costing, but the net effect is the same -- the targets end up making arbitrary changes to the gimple IL and that's what we've fundamentally wanted to avoid since the initial development of the tree-ssa work. Jeff