Commit Graph

22 Commits

Author SHA1 Message Date
ngeoffray@google.com 73c33f3770 Special case mangling for a variable named 't'.
Review URL: https://chromiumcodereview.appspot.com//10035059

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6747 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-19 15:56:51 +00:00
ngeoffray@google.com 5834118e29 New shot at mangling: try cleaning this up a bit.
Review URL: https://chromiumcodereview.appspot.com//10127010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6746 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-19 15:48:18 +00:00
ngeoffray@google.com fc58ad3555 Fix mangling of local variables when their name conflict with Dart2JS's temporaries.
Review URL: https://chromiumcodereview.appspot.com//10123009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6742 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-19 13:34:28 +00:00
ngeoffray@google.com fc16e635d6 Start propagating non-primitive types in the backend, and fold instructions that know about the type of their receiver.
Review URL: https://chromiumcodereview.appspot.com//10119010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6728 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-19 08:23:42 +00:00
ngeoffray@google.com 35d7b79fcc Give a sourceElement to SSA instructions so that if they end up being 'define' in the codegen (ie needing a variable), they can use one related to the original source.
Review URL: https://chromiumcodereview.appspot.com//10035032

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6727 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-19 07:15:30 +00:00
lrn@google.com 54cab43f3a Reapply "Refactoring if block-information."
Fix error in conditional expression handling.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6684 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-18 13:16:27 +00:00
floitsch@google.com ddd7475724 Revert "Refactoring if block-information."
This reverts commit 6630.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6635 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-17 13:29:29 +00:00
lrn@google.com 567f1e4beb Refactoring if block-information.
Generalizes block information handling and adds (yet unused) info blocks
for if and logical-and/or.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6630 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-17 13:02:07 +00:00
ngeoffray@google.com 6843835778 Fix issue 2358: dart methods on native classes must also check if the current prototype has the method. If not, we need to re-do the dynamic dispatch to actually hit the subclass implementation of the method.
Review URL: https://chromiumcodereview.appspot.com//10092012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6617 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-17 08:04:42 +00:00
karlklose@google.com 3fb96bb8f8 Recommit 'Implement interface types'.
Reviewed as https://chromiumcodereview.appspot.com/9431029

TBR=ahe@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6586 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-16 15:23:41 +00:00
floitsch@google.com 07024492b5 Many type fixes.
Review URL: https://chromiumcodereview.appspot.com//10001008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6576 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-16 13:58:20 +00:00
karlklose@google.com 955e04bf65 Revert "Implement interface types."
This reverts commit r6514.

TBR=ahe@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6515 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-13 13:01:29 +00:00
karlklose@google.com edb70a0cb5 Implement interface types.
Review URL: https://chromiumcodereview.appspot.com//9431029

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6514 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-13 12:42:13 +00:00
lrn@google.com 0b2ff11e81 Avoid some unnecessary variables for phis.
Detects some cases where the value of a phi is only used as input to another
phi, and avoids creating an intermediate variable.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6407 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-11 11:57:04 +00:00
floitsch@google.com 3695be92d7 Make constant lists immutable.
Review URL: https://chromiumcodereview.appspot.com//9965047

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6360 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-10 15:19:46 +00:00
floitsch@google.com df78d6220b Some cleanups.
Review URL: https://chromiumcodereview.appspot.com//9969039

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6359 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-10 14:52:55 +00:00
floitsch@google.com bf9e80617e Fix bug where constants were not correctly canonicalized.
Review URL: https://chromiumcodereview.appspot.com//9967001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6056 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-30 18:12:06 +00:00
floitsch@google.com a8d1e46fc7 Fix bug where a parameter was mutated while it was still used.
Review URL: https://chromiumcodereview.appspot.com//9963005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6047 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-30 17:03:31 +00:00
ahe@google.com d94d1010be Eliminate branches on constant conditions during codegen.
Review URL: https://chromiumcodereview.appspot.com//9950014

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6033 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-30 13:34:14 +00:00
lrn@google.com 5163f80703 Generate prettier loops.
Add structure information to HLoopInformation, and use it to generate prettier
loops when the condition can be generated as an expression.
If it can't, it still falls back to the while(true){if(!cond) break;} pattern.
Only handle for/while/for-in, not do-while yet.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6023 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-30 08:59:40 +00:00
ngeoffray@google.com 133b680241 Fix a bug where a block would be visited twice: by a non-dominating loop, and by its dominator.
Review URL: https://chromiumcodereview.appspot.com//9878001

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5968 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-29 09:15:02 +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