Files
sdk/runtime/vm
fschneider@google.com 253c3f8499 Implement class id checks as a separate instruction and add a local CSE optimization pass.
This CL contains:
A new CheckClassComp instruction. Currently it is used only for instance loads:
(LoadInstanceFieldComp)

A pass LocalCSE that performs block-local common subexpression elimination. To identify
redundant expressions I use a hash map per basic block. Computations that do not have
side effects can participate in CSE. For now, I only enabled it for CheckClass.
Any computation that participates in CSE must implement the AttributesEqual function.


Other smaller fixes:

Places where we can pass the correct initial size for GrowableArrays
that have a known size. We should consider having a FixedLengthArray for this purpose.

Made the accessors ic_data() and set_ic_data() use a const ICData*.
Review URL: https://chromiumcodereview.appspot.com//10824349

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10948 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-20 12:40:14 +00:00
..
2012-08-03 21:51:44 +00:00
2012-08-03 21:51:44 +00:00
2012-08-03 21:51:44 +00:00
2012-08-06 20:24:03 +00:00
2011-10-05 05:20:07 +00:00
2012-08-03 21:51:44 +00:00
2012-08-03 21:51:44 +00:00
2012-08-17 21:06:16 +00:00
2012-04-18 15:53:20 +00:00
2012-04-18 15:53:20 +00:00
2012-05-04 21:55:10 +00:00
2011-10-05 05:20:07 +00:00
2012-08-17 21:06:16 +00:00
2012-06-26 17:43:44 +00:00
2012-08-06 20:24:03 +00:00
2011-11-30 23:12:46 +00:00
2012-08-17 14:04:10 +00:00
2012-08-10 17:20:10 +00:00
2012-03-09 23:21:09 +00:00
2011-12-15 22:37:35 +00:00
2011-10-05 05:20:07 +00:00
2012-08-01 18:29:55 +00:00
2012-06-21 00:02:55 +00:00
2012-06-21 00:02:55 +00:00
2012-07-16 21:34:07 +00:00
2012-08-06 20:24:03 +00:00
2012-02-02 19:05:06 +00:00
2012-02-02 19:05:06 +00:00
2011-10-05 05:20:07 +00:00
2011-10-05 05:20:07 +00:00
2011-10-05 05:20:07 +00:00
2012-08-17 21:06:16 +00:00
2012-08-18 03:25:44 +00:00
2012-08-17 21:06:16 +00:00
2012-08-17 21:06:16 +00:00
2011-10-05 05:20:07 +00:00
2012-08-08 18:02:51 +00:00
2012-08-08 18:02:51 +00:00
2012-06-27 16:13:49 +00:00
2012-06-27 16:13:49 +00:00
2012-08-10 17:01:08 +00:00
2011-10-05 05:20:07 +00:00
2011-10-05 05:20:07 +00:00
2012-06-22 23:48:51 +00:00
2012-08-15 11:25:40 +00:00
2012-08-03 21:51:44 +00:00
2012-08-03 21:51:44 +00:00
2012-08-03 21:51:44 +00:00