Alexander Markov
6fe73e4544
[vm/bytecode] Support compact bytecode instructions in VM (part 2/3)
...
While adding support for new compact bytecode instructions,
VM also keeps support for old bytecode instructions to preserve
backwards compatibility and allow soft transition.
This change is separate from bytecode generator changes in order
to test VM with old bytecode generator.
Corresponding bytecode generator changes:
https://dart-review.googlesource.com/c/sdk/+/99400
Change-Id: Icf5ceee7d51f27ffe3f79d0eae81e0ddc0a7e855
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101062
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2019-05-08 17:33:15 +00:00
Alexander Markov
1cc4003e5a
[vm/interpreter] Support misaligned bytecodes (compact bytecodes 1/3)
...
This is a preliminary refactoring to prepare for compact
variable-length encoding of bytecode instructions.
Change-Id: I7b15926ab5a6222fbcd1f0090adc0b7222359b07
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99960
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2019-05-08 17:33:15 +00:00
Alexander Markov
9cc008e49c
[vm/bytecode] Add bytecode instructions for double operations
...
Change-Id: Ib1e8ca3b9bbf62f8282524fc5599eee5cae38389
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99089
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2019-04-12 20:17:01 +00:00
Alexander Markov
ebd13e891f
[vm/bytecode] Add UncheckedInterfaceCall instruction
...
dart --use-bytecode-compiler NavierStokes.dart
Before: NavierStokes(RunTime): 8909.053017777778 us.
After: NavierStokes(RunTime): 7221.510314079423 us.
Issue: https://github.com/dart-lang/sdk/issues/36429
Issue: https://github.com/dart-lang/sdk/issues/36428
Change-Id: Ib1be4dd20cdc25e3b979a91a098f67a7bc00df8a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98945
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2019-04-10 21:49:23 +00:00
Alexander Markov
4ae5b272cb
[vm/bytecode/compiler] Fix dropping of expression stack values when generating Throw
...
Fixes https://github.com/dart-lang/sdk/issues/36374
Change-Id: I1477ddb110c19674b82de4edbd7a71b7fbaba090
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98220
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
Reviewed-by: Aart Bik <ajcbik@google.com >
2019-04-01 15:49:23 +00:00
Alexander Markov
6d0601a72b
[vm/bytecode] Add bytecodes for int operations and '== null'
...
DeltaBlue performance in pure interpreted mode
(--enable-interpreter --compilation-counter-threshold=-1):
Before: DeltaBlue(RunTime): 269198.732 us.
After: DeltaBlue(RunTime): 158216.34376923076 us. (-41.23%)
Change-Id: I9dea8d7949421986ee6fbdeae046fe4ef6d3227f
Reviewed-on: https://dart-review.googlesource.com/c/77231
Reviewed-by: Zach Anderson <zra@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2018-10-03 15:45:36 +00:00
Alexander Markov
2aac05fe10
[vm/bytecode] Add specialized JumpIf* instructions
...
This change adds JumpIfEqStrict, JumpIfNeStrict, JumpIfTrue, JumpIfFalse,
JumpIfNull, JumpIfNotNull bytecode instructions. These instructions
supercede If*/Jump instruction patterns.
Change-Id: Icf9dc624001ce64d4b21409864591d693ead51d3
Reviewed-on: https://dart-review.googlesource.com/77011
Reviewed-by: Zach Anderson <zra@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2018-09-28 16:29:23 +00:00
Alexander Markov
76091c13db
[vm/bytecode] Add PushNull, PushTrue, PushFalse and PushInt bytecodes
...
These bytecode instructions are added in order to shrink constant pools
and reduce time spent for reading constant pool entries.
Change-Id: I8522f73dc7a6236969ac0422c6cb89b945559b2d
Reviewed-on: https://dart-review.googlesource.com/75125
Reviewed-by: Zach Anderson <zra@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2018-09-15 17:55:46 +00:00
Alexander Markov
c6c4748185
[vm/bytecode] Bytecode compilation
...
Change-Id: I09192e4e929a397920c217b605580f8c4880e7c2
Reviewed-on: https://dart-review.googlesource.com/74002
Commit-Queue: Alexander Markov <alexmarkov@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Martin Kustermann <kustermann@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2018-09-14 22:02:29 +00:00