Commit Graph

19 Commits

Author SHA1 Message Date
floitsch@google.com 596f69cae0 Use better names for closures and static variables.
This increases the code size, but goes away with a minifier.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9468 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-09 14:40:13 +00:00
sgjesse@google.com 77cd2824be Make sure that constructor bodies are added to the resolver
R=ahe@google.com

BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9030 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 11:50:41 +00:00
floitsch@google.com 3d5769cc8b Remove static fields in the namer.
Review URL: https://chromiumcodereview.appspot.com//10574046

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8965 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 09:35:08 +00:00
sgjesse@google.com 0192db763e Refactor the collection of initializer list types
Instead of storing a boolean to indicate whether a field is only
intialized to an integer store the propagated type instead. If
different types are encountered for the same field indicate this with
HType.UNKNOWN.

Also fix a bug in the checking, as potential single type initializers
is not the same as known single type initializers.

This is in preparation for information on other types than integers.

R=floitsch@google.com

BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8963 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-21 08:51:24 +00:00
sgjesse@google.com 1d39bb9c4d Track fields which are known to be always set to integer constants
For each field which is accessed directly in the generated JavaScript
code track whether all the setters are setting the field to an integer
constant. If that is the case the codegen will always generate ===
comparison when comparing to an integer constant.

To know for sure that only integer constants are assigned the
functions having the getters need to be recompiled.

This gives ~10% on Delta Blue.

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

BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8796 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-18 14:03:30 +00:00
sgjesse@google.com 7b653cd41e Some cleanup of recompilation
Addressed additional comments to https://chromiumcodereview.appspot.com/10537025.

R=ahe@google.com

BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8766 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-18 06:59:49 +00:00
ahe@google.com f768722f65 Address review comments from https://chromiumcodereview.appspot.com/10542073/
Review URL: https://chromiumcodereview.appspot.com//10537129

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8656 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-14 13:24:07 +00:00
sgjesse@google.com 30da55a7d1 Prototype re-compiling methods in dart2js
This is a prototype with the ability for dart2js to retry the
compilation of a method after everything has been compiled
once. Information collected during the first compilation can then be
used when retrying the compilation.

During compilation information on whether setters are used on specific
fields is collected. When compilation is retried and there are no
setters for a field it is treated as if it was declared final.

As this is a prototype there are some issues we need to discuss, e.g.

* The two queues should probably be generalized some way - maybe with
  listeners on specific changes to the collected information

* Throwing Pass2BailoutException when retrying compilation is a bit of
  a hack. We should probably not try to retry something we can't.

* Where to store the imformation collected during compilation

This is one way of improving Delta Blue with 25-30%.

R=ahe@google.com, ngeoffray@google.com, kasperl@google.com, ager@google.com

BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8647 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-14 11:43:30 +00:00
ahe@google.com 91e2b7794c Resolution based tree-shaking.
Review URL: https://chromiumcodereview.appspot.com//10542073

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8543 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-12 12:35:34 +00:00
sgjesse@google.com fbae779b58 Reapply "Collect field getters and setters in the universe""
Added additional checks on the receiver instead of asserting that its
type was not null. HFieldSet and HFieldGet are used for other purposes
than instance fields.

R=ngeoffray@google.com

BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8534 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-12 10:29:00 +00:00
sgjesse@google.com 27aa7b21f7 Revert "Collect field getters and setters in the universe"
This reverts r8487 due to assertion failures in dart2js.

TBR=ngeoffray@google.com

BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8489 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-11 15:02:12 +00:00
sgjesse@google.com e5abe8d735 Collect field getters and setters in the universe
This is intended to replace the setter information collection used in
http://codereview.chromium.org/10537025/.

R=ngeoffray@google.com

BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8487 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-11 14:03:03 +00:00
ahe@google.com ab38ce3561 Move registering to the enqueuer.
Review URL: https://chromiumcodereview.appspot.com//10408059

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7903 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-23 12:25:36 +00:00
ahe@google.com fd61a77669 Prepare to have more than one universe.
Review URL: https://chromiumcodereview.appspot.com//10377166

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7795 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 12:05:23 +00:00
ngeoffray@google.com acffc45787 Introduce typed selectors for getters and setters also for better tree shaking.
FYI: Swarm from 862465 to 848387 (14k saved).
Review URL: https://chromiumcodereview.appspot.com//10191016

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6997 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-26 10:14:01 +00:00
ngeoffray@google.com 78b7ced997 Introduce typed selectors to do better tree shaking based on calls on 'this'. Getters and setters will be next.
Review URL: https://chromiumcodereview.appspot.com//10180001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6847 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-23 15:36:51 +00:00
karlklose@google.com 038964d52c Check number of type arguments.
Review URL: https://chromiumcodereview.appspot.com//10105031

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6675 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-18 10:27:32 +00:00
kasperl@google.com da29bdcace Remove frog dependencies from lib/compiler.
Start importing the URI library using dart:uri rather than
dotting our way to the right directory in lib.

R=ahe@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6511 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-13 12:05:45 +00:00
ahe@google.com dc099c4a00 Move frog/leg to lib/compiler/implementation.
Review URL: https://chromiumcodereview.appspot.com//9873021

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5926 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-28 08:54:01 +00:00