Régis Crelier
f236abc902
[vm/bytecode] Emit DebugStepCheck calls when compiling bytecode.
...
Change-Id: I3a5afbdbefbf7c034e6ee01a6bcf5f6922fedf43
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/113261
Commit-Queue: Régis Crelier <regis@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2019-08-16 02:38:52 +00:00
Alexander Markov
449446571f
[vm/bytecode] Collect context levels for compiled code generated from bytecode
...
Change-Id: Ia2047440e05fce3263f8feb38be4cedd4357ab10
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112920
Reviewed-by: Régis Crelier <regis@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2019-08-13 20:32:49 +00:00
Alexander Markov
ac45ee7e63
[vm/bytecode] Support exactness tracking in bytecode
...
MicroClosureCreateTearoffClassSecondTime(RunTime) 3922 us -> 2030 us.
Issue: https://github.com/dart-lang/sdk/issues/36429
Change-Id: I3a6f93950a469969d82243fd1744d5a4f7fb1e78
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/111868
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2019-08-03 17:36:31 +00:00
Alexander Markov
fedd74669a
[vm/bytecode] Support multiple entry points when compiling from bytecode
...
DeltaBlueClosures +26.54%
Closes https://github.com/dart-lang/sdk/issues/36889
Issue: https://github.com/dart-lang/sdk/issues/36429
Change-Id: I8920c7985366a2c955a06013aa9f58763fcbced9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/109580
Reviewed-by: Régis Crelier <regis@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2019-07-20 00:05:23 +00:00
Samir Jindel
fcc72ad83f
[vm/ffi] Support FFI in AOT (excluding callbacks).
...
Move generation of Function objects for native trampolines to the Precompiler, so they can be generated during AOT and tree-shaken if possible.
Issue dartbug.com/35765
Change-Id: I0e69b7e0b22db73e3a40f2fe445660e57ddb6fa9
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-bare-linux-release-simarm64-try, vm-kernel-precomp-bare-linux-release-x64-try, vm-kernel-precomp-linux-debug-x64-try, vm-dartkb-linux-debug-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107407
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Alexander Markov <alexmarkov@google.com >
2019-07-05 21:59:27 +00:00
Alexander Markov
5f2bcd9d6c
[vm/bytecode] Reuse flow graph building for recognized methods
...
Change-Id: Ia5aaad97d18d53fc0313713f00ff3403a41ac9c9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/107680
Reviewed-by: Ryan Macnak <rmacnak@google.com >
Commit-Queue: Alexander Markov <alexmarkov@google.com >
2019-06-28 23:05:21 +00:00
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