[PATCH] D121539: [AVR] Generate 'rcall' instead of 'call' on avr2 and avr25

Ayke via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 22 17:08:54 PDT 2022


aykevl accepted this revision.
aykevl added a comment.
This revision is now accepted and ready to land.

Looks good to me!

As a possible optimization, you could look into using `rcall` instead of `call` instructions when the target is close enough. For example, here: https://godbolt.org/z/rEz9j71dq (apparently avr-gcc doesn't do this optimization).

  int foo(int a, int b) {
      return a + b;
  }
  
  int bar(int a, int b) {
      return foo(a, b) + 3;
  }

If `-ffunction-sections` is not used, `rcall` is both shorter in code size and faster in execution speed.
(This is just an idea, unrelated to this patch).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D121539/new/

https://reviews.llvm.org/D121539



More information about the llvm-commits mailing list