Introduce fewer argument moves for ranged invokes.

When a ranged invoke is just forwarding a sub-sequence of the incoming
argument registers there is no need to introduce moves that might
end up being materialized. Instead we can use the original argument
registers. This is the first patch set of

https://r8-review.googlesource.com/c/1360/

with the addition of special handling for getting the allocated
register for ranged invokes.

Gives around 10kB savings on dexing the gmscore v10 deploy jar.

R=mikaelpeltier@google.com

Change-Id: I6ee816cb2ffffdaadd44f4af2b2ba18d9ebadd14
5 files changed
tree: 00b7169b41fd940fb6129fc5ab7a6bb8dd5dc06e
  1. buildSrc/
  2. scripts/
  3. src/
  4. tests/
  5. third_party/
  6. tools/
  7. .gitignore
  8. AUTHORS
  9. build.gradle
  10. codereview.settings
  11. CONTRIBUTING.md
  12. copyAdditionalJctfCommonFiles.gradle
  13. LICENSE
  14. README.md
README.md

The R8 repo contains two tools.

  1. D8 is a dexer that converts java byte code to dex code.

  2. R8 is a java program shrinking and minification tool.