This is an archive of the discontinued LLVM Phabricator instance.

[new docs] Performance Tips for Frontend Authors
ClosedPublic

Authored by reames on Feb 25 2015, 2:57 PM.

Details

Summary

As mentioned on llvm-dev, this is a new documentation page intended to collect tips for frontend authors on how to generate IR that LLVM is able to optimize well. These types of things come up repeated in review threads and it would be good to have a place to save them.

I added a small handful to start us off, but I mostly want to get the framework in place. Once the docs are here, we can add to them incrementally.

Diff Detail

Repository
rL LLVM

Event Timeline

reames updated this revision to Diff 20707.Feb 25 2015, 2:57 PM
reames retitled this revision from to [new docs] Performance Tips for Frontend Authors.
reames updated this object.
reames edited the test plan for this revision. (Show Details)
reames added a reviewer: silvas.
reames added a subscriber: Unknown Object (MLST).
silvas edited edge metadata.Feb 25 2015, 3:29 PM

I really would like this to be in a separate directory for frontend-targeted stuff. That we have some existing frontend-oriented stuff that isn't well-organized is a historical artifact. I would like to set a precedent for future work. We did this for TableGen and it made a world of difference.

Other than putting it in a frontend-targeted directory and a couple tiny things I've suggested inline, the LGTM.

docs/PerformanceTips.rst
29 ↗(On Diff #20707)

I'm not sure that "modern" has anything to do with whether the ISA provides a sign-extending load (and I wouldn't call x86_64 "modern" either). Maybe just "On some architectures (such as X86_64), ...".

40 ↗(On Diff #20707)

s/manual/manually/

Also, this paragraph doesn't seem to be folded to 80 columns, unlike the other paragraphs.

44–45 ↗(On Diff #20707)

Tiny nit: I would prefer if you added a blank line after the ===== (as you are doing here) for the other sections.

This revision was automatically updated to reflect the committed changes.