Skip to content

[mono-move] Fused jump and gas micro-ops#19471

Draft
calintat wants to merge 1 commit intocalin/gas-benchmarksfrom
calin/fused-jump-gas
Draft

[mono-move] Fused jump and gas micro-ops#19471
calintat wants to merge 1 commit intocalin/gas-benchmarksfrom
calin/fused-jump-gas

Conversation

@calintat
Copy link
Copy Markdown
Contributor

Description

Prototype gas instrumentation via fused jump instructions. Instead of inserting ChargeBlock ops between basic blocks, gas costs are stored directly in jump instructions (gas for unconditional jumps, gas_taken/gas_fallthrough for conditional jumps) and charged at dispatch time. Entry-block gas is stored in Function::entry_gas and charged in Interpreter::run. The instrumented program has the same instruction count as the original.

How Has This Been Tested?

Key Areas to Review

Type of Change

  • New feature
  • Bug fix
  • Breaking change
  • Performance improvement
  • Refactoring
  • Dependency update
  • Documentation update
  • Tests

Which Components or Systems Does This Change Impact?

  • Validator Node
  • Full Node (API, Indexer, etc.)
  • Move/Aptos Virtual Machine
  • Aptos Framework
  • Aptos CLI/SDK
  • Developer Infrastructure
  • Move Compiler
  • Other (specify)

Checklist

  • I have read and followed the CONTRIBUTING doc
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I identified and added all stakeholders and component owners affected by this change as reviewers
  • I tested both happy and unhappy path of the functionality
  • I have made corresponding changes to the documentation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant