Commit Graph

7 Commits

Author SHA1 Message Date
srdjan@google.com 3485989ae7 Do not eagerly finalize classes in CHA, instead regard unfinalized classes as ’non-existent’ and only invalidate optimized code at finalization of the class.
Rename FinalizePendingClasses to FinalizePendingClassInterfaces as the class finalization occurs lazily.
TODO: add dependency information to deoptimize/remove only relevant optimized code.

R=regis@google.com

Review URL: https://codereview.chromium.org//81333003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30582 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-22 17:59:23 +00:00
fschneider@google.com 46f3bea12f VM: Fix CHA for Object.
Class hierarchy analysis does not track subclasses of Object.
Therefore, it needs to safely assume that any functions has an override.

This fixes test failures when running with --optimization-counter-threshold=5.

R=kmillikin@google.com

Review URL: https://codereview.chromium.org//24558002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27874 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-25 11:04:55 +00:00
asiva@google.com f4fe42c280 Added macros OBJECT_IMPLEMENTATION and FINAL_OBJECT_IMPLEMENTATION
which have different implementations of 'operator=' and 'operator^='.
In the case of FINAL_OBJECT_IMPLEMENTATION we do not do the vtable setting
in these methods (Note the |= operator functionality is now subsumed into
the new implementation of "operator^=")
Review URL: https://codereview.chromium.org//12052033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17491 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-23 20:01:31 +00:00
srdjan@google.com d1c4735609 Transition ^= to |=
Review URL: https://codereview.chromium.org//11867022

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17309 260f80e4-7a28-3924-810f-c04153c831b5
2013-01-18 19:53:17 +00:00
srdjan@google.com 251169951b Do not recompute unary_checks repeatedly. Add special (and quicker) way to check for method overrides using CHA.
Review URL: https://codereview.chromium.org//11275110

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14434 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-01 21:06:36 +00:00
asiva@google.com 596a5f1af9 Use kInstanceCid instead of object_store()->object_class() when checking to see if the class is object class.
Review URL: https://chromiumcodereview.appspot.com//10873004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11190 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-22 22:21:44 +00:00
regis@google.com 3790edb5e1 Move class hierarchy analysis to its own source.
Review URL: https://chromiumcodereview.appspot.com//10827450

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11097 260f80e4-7a28-3924-810f-c04153c831b5
2012-08-21 21:09:28 +00:00