srdjan@google.com
|
76dffe600c
|
Removed loop depth info tracking at graph build time.
60% compilation speed improvement on pathological case. Improvements for dart2js
The loop depth signal was made unnecessary by the call frequency signal.
Review URL: https://codereview.chromium.org//11975061
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17408 260f80e4-7a28-3924-810f-c04153c831b5
|
2013-01-22 16:15:54 +00:00 |
|
asiva@google.com
|
4c069867e4
|
- Make Boolean 'true' and 'false' singleton VM isolate objects.
- Change all uses of it
Review URL: https://codereview.chromium.org//11745022
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16623 260f80e4-7a28-3924-810f-c04153c831b5
|
2013-01-04 01:52:05 +00:00 |
|
zerny@google.com
|
8f5aa24ec9
|
More inlining flags and tuned heuristics.
The heuristics should be examined further, but these maintain about the same
runtime for the benchmarks while decreasing compile time for dart2js.
R=kmillikin@google.com
Review URL: https://codereview.chromium.org//11269040
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14463 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-11-02 12:26:07 +00:00 |
|
kmillikin@google.com
|
63fa392807
|
Reapply "A simpler scheme for garbage collection of ureachable phi inputs."
Fix two issues:
* Unreachable code elimination did not correctly identify all unreachable
blocks.
* Loop detection in the register allocator relied on the block IDs.
R=vegorov@google.com
BUG=
Review URL: https://codereview.chromium.org//10956013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12756 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-09-24 07:27:36 +00:00 |
|
kmillikin@google.com
|
52af2225e9
|
Revert "A simpler scheme for garbage collection of ureachable phi inputs."
This reverts svn revision 12621. It causes unexpected test timouts.
TBR=sgjesse@google.com
BUG=
Review URL: https://codereview.chromium.org//10964012
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12624 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-09-20 09:11:44 +00:00 |
|
kmillikin@google.com
|
13ef2a994e
|
A simpler scheme for garbage collection of ureachable phi inputs.
Simplify the garbage collection of unreachable phi inputs. Assign immutable
block ids to basic blocks and ensure that both predecessor blocks and phi
inputs are kept sorted by block id.
R=vegorov@google.com
BUG=
Review URL: https://codereview.chromium.org//10939036
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@12621 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-09-20 08:47:57 +00:00 |
|
kmillikin@google.com
|
0750c472dc
|
Reapply "Remove classes Computation and BindInstr."
Reapply svn revision 11868 with a bugfix.
Original code review at http://codereview.chromium.org/10908091/
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10912094
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11890 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-09-05 17:04:49 +00:00 |
|
kmillikin@google.com
|
7e36720fa8
|
Revert "Remove classes Computation and BindInstr."
This reverts svn revision 11868.
TBR=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10917085
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11869 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-09-05 11:20:14 +00:00 |
|
kmillikin@google.com
|
bd84c7ee22
|
Remove classes Computation and BindInstr.
The former Computation classes are folded into the Instruction class
hierarchy.
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10908091
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11868 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-09-05 11:15:34 +00:00 |
|
fschneider@google.com
|
528a73268a
|
Landing: Remove the is_used_ field from BindInstr.
Original CL: https://chromiumcodereview.appspot.com/10916078/
Review URL: https://chromiumcodereview.appspot.com//10908058
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11768 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-09-03 14:35:02 +00:00 |
|
vegorov@google.com
|
a573d2dec8
|
Unbox phis that were proven to be of type Double.
Eliminate Boxing/Unboxing pairs.
Allow boxing, unboxing and double binary operations to participate in CSE.
Allow double comparisons to operate on unboxed inputs.
Support XMM registers and double spill slots in deoptimization.
Save XMM registers when calling to runtime from WriteBarrier stub.
R=srdjan@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10919008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11652 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-08-30 20:39:48 +00:00 |
|
kmillikin@google.com
|
ea925449f6
|
Eliminate class UseVal.
This was the only subclass of Value. All functionality is moved to the base
class, and all functions are made non-virtual.
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10891025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11590 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-08-30 09:08:27 +00:00 |
|
vegorov@google.com
|
855629ccae
|
Stop attaching try_index to individual instructions put it at block entry instead.
This simplifies code motion and insertion of instructions that make calls after graph is constructed.
R=srdjan@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10892037
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11528 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-08-29 16:44:18 +00:00 |
|
kmillikin@google.com
|
58d842d6d7
|
Make constants computations instead of values.
This change requires a pool of global constants that don't have an easy
place to go in the instruction stream. Currently, that is only the constant
null used to mark eliminated phis in deoptimization environments.
R=fschneider@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10894034
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11518 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-08-29 12:56:57 +00:00 |
|
zerny@google.com
|
50b114c606
|
Compute the def-use list on-demand by walking the dominator tree.
This replaces the previous implementation that maintained the def-use lists.
R=vegorov@google.com,kmillikin@google.com
Review URL: https://chromiumcodereview.appspot.com//10879036
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11241 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-08-23 16:23:05 +00:00 |
|
fschneider@google.com
|
855e718f5b
|
Make Value not a subclass of Computation.
Instead I introduce one new computation to materialize constants.
sizeof(UseVal) drops from 64 to 32.
sizeof(ConstantVal) drops from 48 to 16.
Review URL: https://chromiumcodereview.appspot.com//10829451
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11041 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-08-21 13:36:36 +00:00 |
|
fschneider@google.com
|
33efb39372
|
Fix a bug in Equals for UseVal and ConstantVal.
TEST=vm/intermediate_language_test.cc
Review URL: https://chromiumcodereview.appspot.com//10828414
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@11037 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-08-21 13:07:40 +00:00 |
|
fschneider@google.com
|
2b3ea645f3
|
Fix crash bug when replacing a definition with a definition that has no uses.
TEST=vm/intermediate_language_test.cc
Review URL: https://chromiumcodereview.appspot.com//10826299
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10630 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-08-14 11:18:48 +00:00 |
|
zerny@google.com
|
24771817a2
|
Added def-use chain to the intermediate language.
R=fschneider@google.com,kmillikin@google.com
BUG=
Review URL: https://chromiumcodereview.appspot.com//10826230
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@10497 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-08-10 12:35:59 +00:00 |
|
kmillikin@google.com
|
5f541253ad
|
Eliminate the type distinction between BindInstr and DoInstr.
Represent the distinction between computations whose value is used and
computations whose value is unused with a data member (instead of a
separate type).
R=fschneider@google.com,srdjan@google.com
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com//10700111
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9416 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-07-05 10:06:28 +00:00 |
|
srdjan@google.com
|
eeda4b5810
|
First step toward an optimizing compiler:
- Fix ic-data instrumentation
- Optimize '+' for Smi-s only, by replacing the instance call with inlined operations.
- Add deoptimization stub
- Add deoptimzation support.
Review URL: https://chromiumcodereview.appspot.com//10431006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7952 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-05-24 16:50:57 +00:00 |
|
srdjan@google.com
|
e8114222fe
|
New compiler, intermediate language, type testing and casting changes as agreed with Kevin.
Review URL: https://chromiumcodereview.appspot.com//9454022
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4554 260f80e4-7a28-3924-810f-c04153c831b5
|
2012-02-23 22:51:18 +00:00 |
|