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
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
hausner@google.com
457bb1bdcb
Remove support for + prefix in number literals
...
Also fix some tests that expected + prefix in hex numbers to be illegal. According to our documentation, int.parse() accepts + for numbers in all formats/radixes.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//17103002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24051 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-14 21:16:46 +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
fschneider@google.com
be806854c9
Simplify AST by extending LetNode and replace CommaNode.
...
LetNode now supports a list of expressions as the body.
The last expression is the result value of the let-expression.
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//16146008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23678 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-06 12:32:42 +00:00
fschneider@google.com
07966b62da
Fix two bugs in the Dart VM's super-noSuchMethod invocation.
...
1. The result value of an expression
"super.someMissingSetter = val" was incorrect in case of a noSuchMethod call.
To fix this I refactored the BuildStaticNoSuchMethod function. It now no longer
creates AST nodes and visits them, because the last argument may be needed saved
as a result value.
2. The evaluation order of "super[e1] = e2" was wrong in case of a noSuchMethod call.
BUG=dart:8917, dart:10965
TEST=tests/language/super_operator_index7_test.dart, tests/language/super_operator_index8_test.dart
R=srdjan@google.com
Review URL: https://codereview.chromium.org//15979010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23553 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-03 17:09:09 +00:00
fschneider@google.com
9a6657cd4d
Eliminate temporary locals for some expressions
...
This CL affects a subset of expressions that use temporary locals: constructor
calls, array literals and and instance getter postfix-ops.
For expressions that are de-sugared in the parser I added LetNode.
It creates a scoped temporary local bound to an initializing expression.
For expressions where we need a temporary local at graph-building time,
I added a helper class TempLocalScope to easily create a single temporary
local in the graph builder since this is a frequently recurring pattern.
This simplifies code in the parser and the graph builder and also fixes a
bug with indexed-super invocation and NoSuchMethod.
BUG=dart:8918
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//14942010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23401 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-30 12:19:21 +00:00
fschneider@google.com
fa9885005a
Remove pseudo-node from LoadLocalNode and replace it with a proper AST node.
...
The newly introduces CommaNode denotes a sequence of two nodes, the result
is the value of the second child node.
There are only two places where the pseudo-node was used, and therefore
it does not warrant adding an extra member to all LoadLocalNode objects.
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//15935005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23243 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-28 09:30:43 +00:00
kmillikin@google.com
1248115680
Remove the IC data array from the isolate.
...
Thread it as an argument rather than storing it in a global variable. This
means the programmer does not have to implement a shadow stack to save and
restore the data array, and there is no special handling needed for GC.
R=fschneider@google.com
BUG=
Review URL: https://codereview.chromium.org//15470013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22982 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-22 06:21:57 +00:00
fschneider@google.com
c53d13adb0
Refactor the IL for object allocation with type arguments.
...
Two parts:
1. Change AllocateObjectWithBoundsCheck to a normal call that takes
four arguments on the stack using PushArgument IL instructions.
Before inputs were in registers and the instruction pushed them itself
before the runtime call. This make the code more compact and simplifies
the flow graph builder.
2. Simplify instructions for building constructor type arguments for another
special case to simplify the instruction pattern and generate smaller
code for that case.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//15564004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22943 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-21 15:15:47 +00:00
kmillikin@google.com
7e31a88a0a
Initial support for polymorphic inlining.
...
Consider each polymorphic variant separately for inlining in frequency
order. Share inlined bodies for shared targets.
Insert an SSA redefinition of the receiver in each inlined variant to
prevent hoisting. Hoisting code specialized to the receiver (e.g.,
direct access to internal fields of typed data arrays) out of the
inlined body is not safe.
R=fschneider@google.com , srdjan@google.com
Review URL: https://codereview.chromium.org//14740005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22434 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-06 17:22:18 +00:00
regis@google.com
0e030b6f5c
Further improve type optimization reusing the type argument vector of the
...
instantiator of generic objects (fixes issue 10149).
This optimization considers the generic type argument vector of the instance
being allocated as well as the generic type argument vector of the compile
time type of the instantiator.
If the instance vector is a prefix of the instantiator vector, the instantiator
vector can be shared by the new instance.
R=srdjan@google.com
Review URL: https://codereview.chromium.org//14106013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22155 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-29 23:39:46 +00:00
srdjan@google.com
e06acc85a1
Move negative length checks from Dart into the native.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//14383016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22096 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-27 00:04:21 +00:00
srdjan@google.com
dd899432cd
Fix recognition of factories (for setting result cid) and add them to checks.
...
Review URL: https://codereview.chromium.org//14386011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22088 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-26 21:20:49 +00:00
kmillikin@google.com
54e54f4194
Refactor the code for making inlining decisions.
...
Separate the decision to inlin, which produces a graph to inline, from the
act of inlining itself. For polymorphic inlining we need such a separation.
Change the function that integrates an inlined function graph into a caller
graph so that it operates on a graph entry and set of inlined exits rather
than on an entire flow graph. Flow graphs represent a whole function so
this change allows us to replace an instruction with an arbitrary subgraph.
Change the name of the InliningContext class to InlineExitCollector to more
accurately reflect what it does.
Review URL: https://codereview.chromium.org//13932005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21539 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-16 08:40:27 +00:00
kmillikin@google.com
067b9ff8d5
Reapply "Incrementally recompute dominators when inlining."
...
Including a fix for a silly off-by-one bug. GrowableArray::TruncateTo takes
the new length, not the new last index.
Review URL: https://codereview.chromium.org//14135006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21353 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-12 11:41:10 +00:00
vegorov@google.com
9f3783186f
Ensure that all goto instructions have deoptimization target.
...
R=kmillikin@google.com
BUG=
Review URL: https://codereview.chromium.org//12457034
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21351 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-12 11:19:34 +00:00
kmillikin@google.com
40002d8663
Revert "Incrementally recompute dominators when inlining."
...
This reverts svn commit r21268 due to dart2js test failures.
TBR=fschneider@google.com
Review URL: https://codereview.chromium.org//13910003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21270 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-11 11:49:07 +00:00
kmillikin@google.com
9cb005c517
Incrementally recompute dominators when inlining.
...
Before: we marked the entire graph's dominator tree invalid in case there
were multiple exits from an inlined function and recomputed dominators after
inlining. Now: in case there are multiple exits we collect them in a fresh
join block and compute its immediate dominator as the nearest common
ancestor in the dominator tree over all predecessors.
Review URL: https://codereview.chromium.org//14067002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21268 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-11 11:44:36 +00:00
srdjan@google.com
60e57ecfe1
Optimizes 'as' operation in similar way as 'instanceof': collect type feedback in unoptimized mode and try to convert it to a simple classcheck in optimized code.
...
Review URL: https://codereview.chromium.org//13190014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20783 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-02 15:30:14 +00:00
kmillikin@google.com
74d4e1fe75
Remove virtual functions on class InliningContext.
...
There is only one implementation of InliningContext, so there is no need for
virtual dispatch.
R=fschneider@google.com
Review URL: https://codereview.chromium.org//12518009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19917 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-13 10:06:14 +00:00
fschneider@google.com
ef6251908c
Add a new, separate block entry instruction for catch-blocks.
...
This is a preparation CL for supporting try-catch in optimized code. Until
now, we used normal TargetEntryInstr for catch blocks.
This meant carrying around handler_types_ and catch_try_index_ for blocks
that are not catch blocks which is not needed.
For now, CatchBlockEntry behaves the same as TargetBlockEntry except for
the additional members needed for catch blocks.
Review URL: https://codereview.chromium.org//12600012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19864 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-12 13:51:32 +00:00
iposva@google.com
c900112af7
- Improve the message for NoSuchMethodErrors that are
...
determined statically at compile time.
Review URL: https://codereview.chromium.org//12328019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18848 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-21 18:53:27 +00:00
kmillikin@google.com
27af144369
Move code around in preparation for better inlining.
...
To inlining calls in a test context, the code to plug the inlined
function graph into the caller graph should be dispatched on the type
of the inlining context.
This change moves code around without otherwise changing it.
Review URL: https://codereview.chromium.org//11953076
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17569 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-24 14:13:02 +00:00
srdjan@google.com
76dffe600c
Removed loop depth info tracking at graph build time.
...
60% compilation speed improvement on pathological case. Improvements for dart2js
The loop depth signal was made unnecessary by the call frequency signal.
Review URL: https://codereview.chromium.org//11975061
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17408 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-22 16:15:54 +00:00
kmillikin@google.com
0f65888e88
Change the inlining context from an enum to a class.
...
To support inlining in test contexts, the inlining context needs to have its
dispatched behavior and state. This change introduces a context class
representing calls inlined for their value or solely for their effects. The
intermediate array of exits is moved from the graph to the inlining context.
The implementation behavior is otherwise the same as before.
Review URL: https://codereview.chromium.org//11856010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16965 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-11 11:43:48 +00:00
srdjan@google.com
29e06db609
In unoptimized code use call for instanceof instead of inlined checks. This allows us to collect type feedback and to reduce the code size of unoptimized code. Next will be work on type tests as well.
...
Review URL: https://codereview.chromium.org//11694003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16589 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-02 22:22:39 +00:00
regis@google.com
cb27634842
Remove NoSuchMethodErrorImplementation class and use NoSuchMethodError from core
...
lib instead.
Review URL: https://codereview.chromium.org//11712002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16583 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-02 18:52:28 +00:00
tball@google.com
18e748d0b3
Implemented class literals in the VM.
...
Review URL: https://codereview.chromium.org//11633054
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16530 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-27 23:45:40 +00:00
zerny@google.com
8f5aa24ec9
More inlining flags and tuned heuristics.
...
The heuristics should be examined further, but these maintain about the same
runtime for the benchmarks while decreasing compile time for dart2js.
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//11269040
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14463 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-02 12:26:07 +00:00
hausner@google.com
feff694279
More fixes for super[]
...
Extend the LoadIndexedNode to also handle super[] and super[]=
Make sure super []= returns the value.
Handle side effects in index expression correctly.
Defer operator function resolution to the flow graph build phase.
Review URL: https://codereview.chromium.org//11267027
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14157 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-26 22:31:49 +00:00
srdjan@google.com
62f74c19c9
Revert r13022 (revert inlining of methods with control flow), Review URL: https://codereview.chromium.org//10979078 ; disable inlining of methods with control-flow so that we do not run out of heap space.
...
Review URL: https://codereview.chromium.org//11029002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13081 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-01 18:33:13 +00:00
kmillikin@google.com
c4e717264d
Revert several inlining related changes.
...
Revert svn revisions r12990, r12991, r12995, and r13000. Increased inlining
leads to excessive code growth, preventing dart2js to run in checked mode.
The changes will be relanded when we can come up with improved size
thresholds.
R=ngeoffray@google.com
BUG=
Review URL: https://codereview.chromium.org//10979078
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@13022 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-28 13:50:17 +00:00
zerny@google.com
02822c775b
Inlining functions with control flow.
...
Functions containing control flow are now inlined and incrementally extend the graph in SSA form. For the special case of a function with only one exit, we locally update the dominator tree. If multiple exits occur, we currently recompute the dominator tree for the full resulting graph.
Review URL: https://codereview.chromium.org//10967007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12990 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-28 07:10:06 +00:00
kmillikin@google.com
63fa392807
Reapply "A simpler scheme for garbage collection of ureachable phi inputs."
...
Fix two issues:
* Unreachable code elimination did not correctly identify all unreachable
blocks.
* Loop detection in the register allocator relied on the block IDs.
R=vegorov@google.com
BUG=
Review URL: https://codereview.chromium.org//10956013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12756 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-24 07:27:36 +00:00
kmillikin@google.com
52af2225e9
Revert "A simpler scheme for garbage collection of ureachable phi inputs."
...
This reverts svn revision 12621. It causes unexpected test timouts.
TBR=sgjesse@google.com
BUG=
Review URL: https://codereview.chromium.org//10964012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12624 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-20 09:11:44 +00:00
kmillikin@google.com
13ef2a994e
A simpler scheme for garbage collection of ureachable phi inputs.
...
Simplify the garbage collection of unreachable phi inputs. Assign immutable
block ids to basic blocks and ensure that both predecessor blocks and phi
inputs are kept sorted by block id.
R=vegorov@google.com
BUG=
Review URL: https://codereview.chromium.org//10939036
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12621 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-20 08:47:57 +00:00
kmillikin@google.com
b78bd3584e
Inline monomorphic calls.
...
Also add inlining support for more instructions that can not deoptimize.
Original changelist: http://codereview.chromium.org/10913010/
BUG=
Review URL: https://chromiumcodereview.appspot.com//10916228
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12244 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-12 08:25:24 +00:00
vegorov@google.com
a528a1a3ea
Refactor building of StoreStaticField and StoreLocal to manually preserve value.
...
This is first step towards eliminating manual value preservation in the write barrier's fast-path.
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10905182
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12124 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-10 16:02:40 +00:00
regis@google.com
7cc84c2892
Implement new optional parameters syntax in the vm (issue 4290).
...
Provide --reject_named_argument_as_positional flag to ease transition to new
syntax (default is false).
Add tests.
Review URL: https://chromiumcodereview.appspot.com//10910119
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12004 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-07 01:13:27 +00:00
vegorov@google.com
28e3a61d5b
Allow test context to have multiple true and false branch slots.
...
Implement special handling for && and || in the test context to eliminate materialization of intermediate boolean values.
R=kmillikin@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10916119
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11932 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-06 10:13:54 +00:00
kmillikin@google.com
0750c472dc
Reapply "Remove classes Computation and BindInstr."
...
Reapply svn revision 11868 with a bugfix.
Original code review at http://codereview.chromium.org/10908091/
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10912094
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11890 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-05 17:04:49 +00:00
kmillikin@google.com
7e36720fa8
Revert "Remove classes Computation and BindInstr."
...
This reverts svn revision 11868.
TBR=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10917085
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11869 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-05 11:20:14 +00:00
kmillikin@google.com
bd84c7ee22
Remove classes Computation and BindInstr.
...
The former Computation classes are folded into the Instruction class
hierarchy.
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10908091
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11868 260f80e4-7a28-3924-810f-c04153c831b5
2012-09-05 11:15:34 +00:00
kmillikin@google.com
ea925449f6
Eliminate class UseVal.
...
This was the only subclass of Value. All functionality is moved to the base
class, and all functions are made non-virtual.
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10891025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11590 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-30 09:08:27 +00:00
zerny@google.com
b859298d3f
Reapply "Inlining of static calls with trivial function bodies."
...
Reapply r11579 with a bug fix.
Original review at https://chromiumcodereview.appspot.com/10919004
R=kmillikin@google.com
Review URL: https://chromiumcodereview.appspot.com//10911004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11586 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-30 08:54:56 +00:00
zerny@google.com
9a6da424e6
Revert "Inlining of static calls with trivial function bodies."
...
This reverts r11579. Reverted due to test failures on dartc builders.
TBR=kmillikin@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10919004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11583 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-30 08:17:54 +00:00
zerny@google.com
15ff4e19c8
Inlining of static calls with trivial function bodies.
...
R=kmillikin@google.com ,srdjan@google.com
Review URL: https://chromiumcodereview.appspot.com//10893027
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11579 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-30 07:35:16 +00:00
kmillikin@google.com
58d842d6d7
Make constants computations instead of values.
...
This change requires a pool of global constants that don't have an easy
place to go in the instruction stream. Currently, that is only the constant
null used to mark eliminated phis in deoptimization environments.
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10894034
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11518 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-29 12:56:57 +00:00