Files
sdk/lib/compiler/implementation
sgjesse@google.com 74592b0457 Collect call site information and use that for estimating parameter types
The propagated types at call sites for dynamic invocations are
collected. When a functions is compiled it is checked whether
there is type information available from call sites. If so the
function is compiled with the asumption that these types will
always be provided. If these expected types change during the
rest of the compilation process the generated code for the
function will be flushed and the function scheduled for
compilation again.

Note that the scheduling for being compiled again is not using
the re-compilation queue. The Re-compilation queue is used for
re-compilation functions when all functions have been compile
once and type information will not change.

R=floitsch@google.com, ahe@google.com

BUG=

Review URL: https://chromiumcodereview.appspot.com//10827181

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10383 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-08 13:55:09 +00:00
..
2012-04-24 15:24:00 +00:00
2012-07-17 12:41:47 +00:00
2012-08-07 08:37:29 +00:00

Leg is an experimental add-on to the Frog compiler that aims to
explore areas of long-term interest:

   * high-performance extensible scanner and parser
   * concrete type inferencing
   * fancy language tool support
   * programming environment integration
   * SSA-based intermediate representation
   * adaptive compilation on the client
   * ...

Some of the things listed above are very experimental of nature and
may prove themselves infeasible or unnecesary, so we want to work on
them in a way that guarantees we will not disrupt the work being done
to make Frog a fantastic compiler for Dart in its default setup.

To keep things simple and allow quick experimentation, Leg will only
support a subset of Dart and fall back on using the default Frog
compiler for the remaining parts of the language. We expect Leg to be
a complete and correct implementation of the supported subset
throughout the implementation and experimentation so you should always
be able to try Leg on any Dart project.

The plan is to share code between the default Frog compiler and Leg
where it makes sense and to learn from both code bases along the way.