hausner@google.com
1e955965df
Better single stepping in VM debugger
...
Single stepping now steps into the next dart code that the
user is interested in, including from one asynchronous task
to the next.
R=asiva@google.com
Review URL: https://codereview.chromium.org//17846009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24632 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-01 17:29:18 +00:00
srdjan@google.com
f415b31685
Add --deoptimization_counter_inlining_threshold=10 that stops inlining in a method that has reached it.
...
R=fschneider@google.com
Review URL: https://codereview.chromium.org//17770003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24519 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-27 15:26:16 +00:00
fschneider@google.com
b76b3bbbf4
Correctly deal with method invocation of a getter.
...
If getter lookup succeeds, but getter invocation throws
an exception, the result is the thrown exception and
not as previously noSuchMethod invocation.
BUG=https://code.google.com/p/dart/issues/detail?id=11512
TEST=tests/language/method_invocation_test.dart
R=srdjan@google.com
Review URL: https://codereview.chromium.org//17675002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24457 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-26 08:44:00 +00:00
srdjan@google.com
7d945c593a
Remove skip_static_calls_ as it uses an obsolete way to check for uncalled static calls. Will be replaced by ICData tracking.
...
Add two different PCDescriptors to differentiate between optimized and unoptimized static calls (the former loads args. descr, the later loads ICData before calling).
Populate static call's ic_data field when optimizing.
R=asiva@google.com
Review URL: https://codereview.chromium.org//17723002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24433 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-25 21:31:37 +00:00
fschneider@google.com
0bf7251d1a
Reland: Optimizing noSuchMethod invocation with no arguments.
...
This is the same CL as https://codereview.chromium.org/17315008/ with
one bug fixed:
If a method is invoked with a mismatching number of arguments, we don't
add a no-such-method-dispatcher function since the dispatcher currently
can only invoke noSuchMethod and would not work if the method
is invoked with correct arguments at a later point.
I extended the test to cover that case.
TEST=tests/language/no_such_method_dispatcher_test.dart
R=srdjan@google.com
Review URL: https://codereview.chromium.org//17571010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24351 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 17:18:51 +00:00
srdjan@google.com
fa7817bf79
Change static calls in unoptimized code to always call via a stub. Using ICData, the call count of static calls is collected as well.
...
TODO: Use call frequency to guide inlining.
R=asiva@google.com , hausner@google.com , zra@google.com
Review URL: https://codereview.chromium.org//17554003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24307 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 23:35:10 +00:00
fschneider@google.com
48555c83ac
Back out r24266 to investigate dartium test failure.
...
TBR=kmillikin@google.com
Review URL: https://codereview.chromium.org//17074003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24284 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 11:56:32 +00:00
fschneider@google.com
ab1981b421
Optimizing noSuchMethod invocation with no arguments.
...
On each call that triggers a noSuchMethod invocation we
attach a custom dispatch function that allocates the
invocation object and invokes noSuchMethod. This dispatcher
is compiled and optimized like a normal Dart function.
Similar to method-extractors, these implicit dispatchers
do not show up as normal functions.
As a first step this CL only handles invocations of getters
and methods with no like o.foo or o.foo(). This CL gives
a >25x speedup of such noSuchMethod invocations. Calls with
multiple arguments still go through the slow path.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//17315008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24266 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 07:31:51 +00:00
srdjan@google.com
47de186e76
Store arguments descriptor in ICData. Remove loading of arguments descriptor at unoptimized call site (the ones using ICData).
...
R=asiva@google.com , zra@google.com
Review URL: https://codereview.chromium.org//17421003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24239 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-20 16:29:39 +00:00
kmillikin@google.com
1a9f9f691c
Scale the OSR optimization threshold by loop nesting depth.
...
For on-stack replacement (OSR), code quality is better if we optimize at
the outermost hot loop. Track loop nesting depth and scale the
threshold based on the loop depth to prefer outer loops over inner ones.
R=fschneider@google.com
Review URL: https://codereview.chromium.org//17315006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24175 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-19 09:21:25 +00:00
kmillikin@google.com
665ffe3164
Ensure we perform the same checks for all optimizing compilations.
...
Ensure that we perform the same checks for on-stack replacement (OSR)
as for normal optimizing compilation.
R=fschneider@google.com
Review URL: https://codereview.chromium.org//17183003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24132 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-18 11:06:18 +00:00
srdjan@google.com
91fdcba000
Change optimization counter threshold 3000 -> 15000.
...
This improves startup time considerably (30% dart2js Hello.dart, 20% others)
R=iposva@google.com
Review URL: https://codereview.chromium.org//17306003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24117 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-17 23:33:46 +00:00
srdjan@google.com
71340907c2
Cosmetic change: s/arg_descriptor/args_descriptor/
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//17141004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24103 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-17 17:31:00 +00:00
kmillikin@google.com
3e78b2ad4a
Reapply "Initial implementation of on-stack replacement (OSR)."
...
This reapplies SVN r24024 with a bugfix.
After OSR compilation, restore the pre-OSR code (which might be already
optimized) rather than the unoptimized code (which might have its entry
patched). When the optimized code entry is patched it is only safe to call
it as a static call, not as an instance call.
R=fschneider@google.com
Review URL: https://codereview.chromium.org//17233003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24088 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-17 11:05:15 +00:00
kmillikin@google.com
d6f3eccdf2
Revert "Initial implementation of on-stack replacement (OSR)."
...
This reverts commit 24024.
TBR=fschneider@google.com
Review URL: https://codereview.chromium.org//16888013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24025 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-14 10:30:53 +00:00
kmillikin@google.com
0b39927d30
Initial implementation of on-stack replacement (OSR).
...
Add profiling support to select OSR candidates and launch the compiler
for OSR, followed by entry to the function at the OSR entry point.
Implemented only on IA32 and X64. The initial implementation can be
improved in various ways --- specifically: tuning of profiling
parameters and incorporation of feedback about the actual values seen
at OSR entry.
R=fschneider@google.com
Review URL: https://codereview.chromium.org//16693006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24024 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-14 10:10:55 +00:00
regis@google.com
8f62a87598
Switch code generation on ARM from softfp ABI to hardfp ABI.
...
Support leaf float runtime calls in ARM simulator.
Enable previously failing tests.
R=zra@google.com
Review URL: https://codereview.chromium.org//16638012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23868 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-11 16:47:01 +00:00
zra@google.com
354b204cf0
Enables optimization on MIPS
...
- Exposes double precision rather than single precision floating point registers
to architecture generic code. This entails a mechanical change in the assembler
to floating point instructions.
- Adds slti, sltiu instructions for comparison with small immediates, and uses
them in the Branch(Un)Signed* macros.
- Fixes a bug in the intermediate language comparison/branching instructions
caused by using subu for comparison. Now it uses two slt instructions.
- Fixes register use bugs in intermediate language.
- More uses of NULLREG instead of loading Object::null()
R=regis@google.com
Review URL: https://codereview.chromium.org//16022011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23190 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-24 23:45:41 +00:00
regis@google.com
ac2e804324
Fix a bug in optimized ARM code.
...
Fix a bug in deoptimization (wrong stack layout assumption, worked on Intel by
chance).
Implement megamorphic instance call on ARM.
Improve line number reporting in simulator backtraces.
R=zra@google.com
Review URL: https://codereview.chromium.org//15692005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23169 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-24 18:52:34 +00:00
hausner@google.com
4b497b0c17
Consolidate debug stubs
...
The new debug stub BreakpointRuntime gets the original stub address
from the debugger. With this scheme, we don't need a new debug stub
for every runtime stub that the debugger patches.
R=asiva@google.com
Review URL: https://codereview.chromium.org//15743019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23094 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-23 18:42:03 +00:00
regis@google.com
89b673467c
Enable code optimization on ARM.
...
Disable failing tests.
R=zra@google.com
Review URL: https://codereview.chromium.org//15697009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23037 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-22 18:53:51 +00:00
iposva@google.com
e24d83c10d
- Add a GetClassId() to Object, so that we do not have to
...
create a temporary class handle only to get at an object's
class id, which is stored in the object header.
R=asiva@google.com
Review URL: https://codereview.chromium.org//15338008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22904 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-20 21:01:31 +00:00
hausner@google.com
7349a6d611
Make breakpoints on == fire reliably
...
Add breakpoints in the path taken if one of the operands
in a == b is null.
R=asiva@google.com
Review URL: https://codereview.chromium.org//14991010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22857 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-17 17:08:09 +00:00
regis@google.com
9e867eb4a1
Make deoptimization architecture dependent (it depends on the frame layout).
...
R=srdjan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//15110003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22719 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-14 23:23:54 +00:00
hausner@google.com
80c7ad1070
Implement breakpoint for closure calls
...
Introduce a new PcDescriptor kind to distinguish closure calls from other runtime calls. The debugger can patch these calls to set a breakpoint. When stepping into a closure call, the debugger must fish out the closure object from the stack, find the function and set breakpoints in it.
Arm and Mips breakpoint stubs are not implemented yet. ia32 and x64 stubs tested by hand. Automated test to follow.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//14858033
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22596 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-10 21:06:04 +00:00
vegorov@google.com
2565ca222f
Implement a variation of scalar replacement for non-escaping allocations.
...
AllocationSinking pass discovers non-escaping allocations that have no input uses other than uses in the stores into its own fields.
Every environment use of such allocation is replaced by a state snapshot (MaterializeObject instruction) that describes the state of each initialized field in the object. State snapshots are computed through an additional round of load-forwarding.
Once snapshots are computed allocations are removed from the graph.
MaterializeObject instructions are not compiled into native code but produce deoptimization instructions instead that describe how object should be materialized at deoptimization.
Deoptimization instructions now follow the following format:
[mat obj #1 ]...[mat obj #N][ret addr][... mat arguments ...][... real frames ...]
- the prefix describes each object to materialize on deopt via kMaterializeObject instruction;
- actual values that are needed for materialization are emited as a part of bottom-most stack frame. This is done to simplify implementation: they need to be discoverable by a GC during materialization phase. At the end of deoptimization they will be removed from the stack;
- normal stack slots can refer to materialized objects via kMaterializedObjectRef instruction.
Additionally this change contains fixes in load-forwarding that are needed to guarantee that all artificial LoadField instructions inserted during AllocationSinking are correctly replaced with actual values.
Limitations of the current implementation:
- can't eliminate allocations that flow into phis but otherwise don't actually escape;
- can't sink allocations out of loops;
- allocation with type arguments are not handled.
R=regis@google.com , srdjan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//14935005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22485 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-07 23:40:42 +00:00
regis@google.com
53347a3337
Remove stack_frame_<arch>.cc files.
...
The architecture specific information is in stack_frame_<arch>.h files.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//14925005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22470 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-07 18:06:21 +00:00
regis@google.com
deeb192b03
Cleanup deoptimization code to make it architecture independent (in progress).
...
Implement some optimizing code on ARM in order to debug the above cleanup using
inline_stack_frame_test (still skipped in the vm status file).
This is not quite working yet, because CompilerDeoptInfo::CreateDeoptInfo
makes assumptions about the stack layout that are not valid for ARM or MIPS.
This will be cleaned up in a following cl.
R=srdjan@google.com , zra@google.com
Review URL: https://codereview.chromium.org//14812005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22386 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-03 18:39:40 +00:00
srdjan@google.com
706e79d074
Fix error reporting when calling static methods and closures withh mismatched arguments.
...
Closures BEFORE:
----
Unhandled exception:
Class '(dynamic, dynamic, dynamic) => dynamic' has no instance method 'call'.
NoSuchMethodError : method not found: 'call'
Receiver: Closure: (dynamic, dynamic, dynamic, dynamic) => dynamic from Function 'foo':.
Arguments: [2]
Closures NOW:
----
Closure call with mismatched arguments: function 'A.foo'
NoSuchMethodError: incorrect number of arguments passed to method named 'A.foo'
Receiver: Closure: (dynamic, dynamic, dynamic, dynamic) => dynamic from Function 'foo':.
Tried calling: A.foo(2)
Found: A.foo(a, b, c)
Statics BEFORE:
----
Unhandled exception:
No top-level method 'foo' declared.
NoSuchMethodError : method not found: 'foo'
Receiver: Type: class '::'
Arguments: []
Statics NOW:
----
Unhandled exception:
No top-level method 'foo' with matching arguments declared.
NoSuchMethodError: incorrect number of arguments passed to method named 'foo'
Receiver: top-level
Tried calling: foo(...)
Found: foo(a, b, c)
R=regis@google.com
Review URL: https://codereview.chromium.org//14652008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22209 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-30 22:05:14 +00:00
regis@google.com
2de2e615e6
Improve type optimization reusing the type argument vector of the instantiator
...
of generic objects:
Do not require anymore that the vector be of the same length. A longer vector
with a compatible prefix is acceptable. This saves a class id check and length
check.
We still require that the uninstantiated type argument vector be the identity
vector, i.e. consisting only of type parameters with consecutive indices
starting at zero. We will relax this requirement in a later change.
Review URL: https://codereview.chromium.org//14238036
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22062 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-26 00:04:13 +00:00
regis@google.com
52a0f3c983
Enable api tests on ARM.
...
Disable generation of optimized code on ARM and MIPS.
Review URL: https://codereview.chromium.org//14476009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21972 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-24 18:55:52 +00:00
iposva@google.com
6c4ac09cb9
- Remove heap tracing.
...
Review URL: https://codereview.chromium.org//14179015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21844 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-22 21:43:57 +00:00
vegorov@google.com
7b9c279a80
Fix x64 build failing after r21366.
...
TBR=iposva@google.com
Review URL: https://codereview.chromium.org//13975010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21367 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-12 16:08:17 +00:00
vegorov@google.com
de283432a4
Fix bug in MegamorphicCacheMissHandler: put kNullCid into the cache when receiver is null.
...
We were putting kObjectCid before causing inline lookup code to always miss when receiver is null.
BUG=dart:9815
Review URL: https://codereview.chromium.org//13951007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21366 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-12 16:03:07 +00:00
tball@google.com
95dfaf1718
Updated VM stacktrace support (20898) with platform-
...
independent version of strndup.
Review URL: https://codereview.chromium.org//13587008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20936 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-04 18:48:24 +00:00
tball@google.com
404dc8ca8b
Rollback of 20898 (Windows doesn't support strndup)
...
Review URL: https://codereview.chromium.org//13583008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20901 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 22:29:07 +00:00
tball@google.com
94c40f13f3
Added VM support for isolate stacktrace status.
...
Review URL: https://codereview.chromium.org//12842015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20898 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-03 22:03:06 +00:00
johnmccutchan@google.com
3d4778e2c2
SIMD plumbing
...
Review URL: https://codereview.chromium.org//12871015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20287 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-20 20:29:00 +00:00
vegorov@google.com
1c9d22d75c
Collect type feedback for fields.
...
BUG=
Review URL: https://codereview.chromium.org//12529008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20235 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-19 20:15:10 +00:00
regis@google.com
f644ba9791
Complete implementation of bounds checking in the vm, by introducing a vm object
...
BoundedType that represents a type that could not be checked against an upper
bound at compile time. A BoundedType is verified at run time when used,
typically when it (and/or its bound) gets instantiated.
This fixes issues 7075 and 7625.
Added one test.
Review URL: https://codereview.chromium.org//12473002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19519 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-05 22:04:23 +00:00
regis@google.com
1b274ff2cf
Remove the barely used macro assemblers after merging their contents to the base
...
assemblers.
Review URL: https://codereview.chromium.org//12398029
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19434 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-05 00:04:32 +00:00
regis@google.com
163db76189
Hook up simulator (if needed) when calling Dart code.
...
Merge identical InvokeDynamic and InvokeStatic to InvokeFunction.
Remove redundant argument from InvokeClosure.
Review URL: https://codereview.chromium.org//12315087
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18994 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-25 19:30:29 +00:00
regis@google.com
8c44be4313
Add support for object pool that will be used on ARM and MIPS architectures.
...
Modify code patching infrastructure to accept code object, which is necessary to
get to the object pool containing patchable target addresses.
Modify assembler test infrastructure to provide associated code object.
Review URL: https://codereview.chromium.org//12260026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18604 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-15 23:55:31 +00:00
srdjan@google.com
35ef4ddbd5
Enable correct optimized double modulo operation. (TODO: enable remainder optimization).
...
Review URL: https://codereview.chromium.org//12082063
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17859 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-30 17:40:28 +00:00
vegorov@google.com
a77fc9701c
When requested to extract a method M from class C inject a method extractor (consisting of a single AST node CreateClosure) as a getter get:M into C.
...
This allows to cache and optimize method extraction requests as normal method invocations and at hot method extraction sites that significantly decreases overhead of method extraction which previously required two trips into runtime system and was not cached at all.
BUG=
Review URL: https://codereview.chromium.org//11642003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17261 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-18 11:54:45 +00:00
regis@google.com
912194a756
Fix vm code base so that it can be built for --arch=simarm (no snapshot yet).
...
Review URL: https://codereview.chromium.org//11956004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17246 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-18 00:34:20 +00:00
srdjan@google.com
faeb58ba40
Fix printing of deoptimized function.
...
Review URL: https://codereview.chromium.org//11886008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17002 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-12 00:44:16 +00:00
asiva@google.com
62115b51fe
Fix for issue 7757
...
- Iterate and collect all the inlined functions in an optimized dart frame
into the stack frame when throwing an exception.
- Added a OptimizedDartFrameIterator class which iterates over all the inlined
functions of a single optimized dart frame.
Review URL: https://codereview.chromium.org//11833025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17000 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-12 00:24:28 +00:00
srdjan@google.com
ec59e1e5e0
Fix printing of the function that cannot be optimized.
...
Review URL: https://codereview.chromium.org//11878006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16997 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-11 23:15:51 +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