This is an archive of the discontinued LLVM Phabricator instance.

[AVR] Add the branch selection pass
AbandonedPublic

Authored by dylanmckay on Oct 5 2016, 5:48 AM.

Details

Reviewers
kparzysz
arsenm
Summary

Most of AVR's branching instructions are quite limited in what targets
they can address. All of the relative conditional branching instructions
have 7-bits for the target.

This pass identifies all branches which branch to destinations that
are too far away in memory, and adds a 'trampoline' to a larger jump,
which then jumps to the far away destination.

Event Timeline

dylanmckay updated this revision to Diff 73634.Oct 5 2016, 5:48 AM
dylanmckay retitled this revision from to [AVR] Add the branch selection pass.
dylanmckay updated this object.
dylanmckay added reviewers: kparzysz, arsenm.
dylanmckay added a subscriber: japaric.
arsenm edited edge metadata.Oct 5 2016, 7:02 PM

You might want to look at using https://reviews.llvm.org/D23271

That looks really nice @arsenm!

I'll close this revision and work on that.

dylanmckay edited edge metadata.Oct 6 2016, 11:38 PM
dylanmckay set the repository for this revision to rL LLVM.
dylanmckay added a subscriber: llvm-commits.
dylanmckay abandoned this revision.Oct 7 2016, 7:01 PM