Zachary Anderson
a1bcf051d8
clang-format runtime/vm
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org/2481873005 .
2016-11-08 13:54:47 -08:00
Zachary Anderson
103881d01c
Make header include guards great again
...
i.e. #ifndef VM_WHATEVER -> #ifndef RUNTIME_VM_WHATEVER
This lets us remove a hack from the PRESUBMIT.py script that existed
for reasons that are no longer valid, and sets us up to add some
presubmit checks for the GN build.
R=asiva@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org/2450713004 .
2016-10-26 00:26:03 -07:00
John McCutchan
b961fc01ad
Fix bad commit of stale patch set of original CL "Make NoReloadScope thread safe" ( https://codereview.chromium.org/2344193002/ )
...
BUG=
Review URL: https://codereview.chromium.org/2344263002 .
2016-09-16 11:33:43 -07:00
Florian Schneider
d664003e5b
Fix race in GC sweeper and isolate reload rollback.
...
The sweeper could see a NULL saved_class_table_.
Also, make LoadRelaxed a template function to avoid casting to uword.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2252533002 .
2016-08-15 15:50:32 -07:00
Florian Schneider
8cd73fd94c
Revert "Add new atomic operations and use them in two places."
...
This reverts commit 27863288db .
Cross ARM and Windows build failing.
TBR=rmacnak@google.com ,
Review URL: https://codereview.chromium.org/2178693002 .
2016-07-22 15:54:24 -07:00
Florian Schneider
27863288db
Add new atomic operations and use them in two places.
...
1. Setting the IC data array. This may have caused corrupt IC data seen by the
background compiler when cloning IC data.
2. Reading the thread_interrupt_disabled_ flag. This was reported as a race with TSAN.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/2176803003 .
2016-07-22 15:40:54 -07:00
Zachary Anderson
a503570e3a
Fuchsia: Initial check-in.
...
Instructions to build and run are in README.fuchsia.
R=asiva@google.com
Review URL: https://codereview.chromium.org/2117593002 .
2016-07-01 12:42:05 -07:00
Vyacheslav Egorov
ee0f608ce4
Dart Byte Code interpreter.
...
This version is Clang/GCC only and does not support Windows because it uses computed goto's.
Only unoptimized mode is supported.
Architecture is described in constants_dbc.h and stack_frame_dbc.h.
R=fschneider@google.com , zra@google.com
Review URL: https://codereview.chromium.org/1858283002 .
2016-04-18 23:02:01 +02:00
Srdjan Mitrovic
1a9fc8b2fa
Move CompilerStats from isolate to thread. Aggregate stats.
...
The mutator thread holds the aggregate values, the background compiler adds its value to it.
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org/1841213003 .
2016-03-30 13:38:32 -07:00
Srdjan Mitrovic
f60e86fd83
Track loading happening in parallel with background compilation and abort compilation if necessary.
...
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org/1834763004 .
2016-03-28 16:02:32 -07:00
Siva Annamalai
bf5d8f6efc
Change signature of atomic increment/decrement functions to return void.
...
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1658983004 .
2016-02-03 09:15:35 -08:00
Siva Annamalai
7e05c6c1f0
Use atomic operations to increment/decrement memory usage counts as multiple threads could be allocating at the same time.
...
Review URL: https://codereview.chromium.org/1580813003 .
2016-01-29 12:46:22 -08:00
Siva Annamalai
a7ebeb00fb
Add a CompareAndSwapUint32 variant to AtomicOperations so that it is possible to a CAS of a 32 bit value.
...
R=rmacnak@google.com
Review URL: https://codereview.chromium.org/1562253002 .
2016-01-06 17:08:31 -08:00
Daniel Andersson
e7fb1c8516
Compatible atomics: volatile for LoadRelaxed, replace FetchAndAdd with FetchAndDecrement.
...
Using volatile on a word size location will generate a single move instruction without order guarantees and is supported on all compilers.
Replace FetchAndAdd with FetchAndDecrement, since the latter is sufficient and eaiser to implement portably (in particular on some Windows setups).
BUG=https://github.com/dart-lang/sdk/issues/24049
R=iposva@google.com
Review URL: https://codereview.chromium.org//1287853005 .
2015-08-13 09:21:38 -07:00
Daniel Andersson
071ea16620
Use memcpy for Atomic::LoadRelaxed.
...
BUG=
R=iposva@google.com
Review URL: https://codereview.chromium.org//1285923003 .
2015-08-11 13:52:07 -07:00
Daniel Andersson
086329fd9c
Safe and efficient stack-limit based interrupt checking in C++.
...
Remove potentially dangerous (but currently unused) Isolate::stack_limit() accessor.
Add method to test whether interrupts are scheduled, using relaxed memory ordering.
Document and test correct usage by adding a new unit test.
This will be used to periodically check for safepoints in C++ (which will then be equivalent to our generated code).
BUG=
R=iposva@google.com
Review URL: https://codereview.chromium.org//1277473004 .
2015-08-11 12:37:57 -07:00
iposva@google.com
55357d2993
- Use the simulator to do atomic operations that could also
...
be executed in generated code.
R=koda@google.com , zra@google.com
Review URL: https://codereview.chromium.org//677193002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41332 260f80e4-7a28-3924-810f-c04153c831b5
2014-10-27 19:21:33 +00:00
iposva@google.com
50652300dc
- Add AtomicOperations::CompareAndSwapWord
...
- Make AtomicOperations inlineable.
- Use atomic tag word updates from C++ where necessary.
Review URL: https://codereview.chromium.org//529823002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39731 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-01 18:18:44 +00:00
johnmccutchan@google.com
919dc2d6eb
* Introduce ThreadInterrupter which calls a TLS set callback when thread is interrupted.
...
* Threads can only register and unregister themselves with ThreadInterrupter.
* Profiler is no longer involved in interrupting threads. It's just a callback and the buffer.
* Profiler operates lock free using an atomic operation to reserve sample in sample buffer.
* Linux, Mac, and Windows done.
R=asiva@google.com
Review URL: https://codereview.chromium.org//109803002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31170 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-16 18:52:15 +00:00