fschneider@google.com
559e6410e2
First step in reducing the size of PC descriptors.
...
The descriptors used for patching just contain a pc offset
and can be stored with the code object instead of allocating
a full descriptor and linearly searching the list to retrieve
this information.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//315583002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36989 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-04 11:02:34 +00:00
iposva@google.com
3878793b10
- Reduce the number of Isolate::Current() calls.
...
R=johnmccutchan@google.com
Review URL: https://codereview.chromium.org//296003013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36564 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-23 12:07:33 +00:00
fschneider@google.com
4a26c88735
Fix crash bug in free list when allocating write protected memory.
...
Re-enable write protection of code pages.
I added cc tests that cover two corner conditions that caused the old code to crash.
TEST=vm/FreeList
R=asiva@google.com
Review URL: https://codereview.chromium.org//150563007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32647 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-13 11:59:22 +00:00
ricow@google.com
79eab5b7e0
Disable write protect mode temporarily until we have a fix for the random crashes
...
Review URL: https://codereview.chromium.org//156423004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32547 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-11 09:38:10 +00:00
fschneider@google.com
d6178535b2
Landing: Write protect executable pages in the VM.
...
Change executable pages to be read/execute but not writable by default.
All pages are made temporarily writable just before a full GC, because both
the mark and sweep phases write to the pages. When allocating in a page and
when patching code, the pages are made temporarily writable.
The order of allocation of Code and Instructions objects is changed so that
a GC will not occur after Instructions is allocated. (A full GC would
render the Instructions unwritable.) A scoped object is used to make memory
protection simpler.
Original CL: https://codereview.chromium.org/106593002/
I added a cc test that is expected to crash.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//136563002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32493 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-10 12:18:06 +00:00
johnmccutchan@google.com
7da1f4f3ba
Build map of code regions and address ticks for profile report.
...
Profile pauses should be less than 500 ms even when handling 120,000 samples (2 minutes @ 1000 hz).
Code objects are referenced by hex address: "code/cafebabe".
Test for retrieving code objects over the service.
Remove old profile tool scripts. Replaced by dprof (https://github.com/dart-lang/dprof ) and Observatory UI for profiler.
Support for stable service refs to implicit closures and dispatcher functions.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//100103011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31447 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-03 19:55:50 +00:00
zra@google.com
df2054dae7
Sets a register aside on x64 for use as a pool-pointer. It is loaded and restored from the code object on Frame entry and exit. All LoadObject calls that can, and many calls and jumps through ExternalLabels now use the pool-pointer. The --compiler-stats flag when running dart2js indicates that code size is reduced ~13%, and more is probably possible.
...
R=fschneider@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//22825023
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27295 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-09 15:39:26 +00:00
srdjan@google.com
a696cc5644
Add asserts to catch missing deoptimization info early.
...
Review URL: https://codereview.chromium.org//12806007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20299 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-20 23:26:07 +00:00
regis@google.com
7766ac76d4
Implement leaf runtime call stub on ARM and corresponding call redirection
...
in ARM simulator.
Implement jump patching on ARM.
Add missing ICache flush calls.
Review URL: https://codereview.chromium.org//12439005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19724 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-08 21:16:46 +00:00
srdjan@google.com
04fc29c7e1
Optimize function at its entry instead of at exit.
...
The code can be patched if it should not be executed any longer.
The code can be now patched at other location than at entry, the requirement is still that patching code does not overwrite an inlined object.
Intrinsic methods that do not have a fall through cannot be patched.
Review URL: https://codereview.chromium.org//11783066
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16897 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-10 00:28:57 +00:00