Commit Graph

22 Commits

Author SHA1 Message Date
regis@google.com 3c063c8d4f Eliminate type checks that can successfully be performed at compile time.
Review URL: https://chromiumcodereview.appspot.com//10051011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6420 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-11 17:42:39 +00:00
srdjan@google.com 570fd35af9 Move HandlerList to shared ExceptionHandlerList.
Review URL: https://chromiumcodereview.appspot.com//9949020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6244 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-05 19:44:49 +00:00
srdjan@google.com c446c19fb7 Intrinsify methods early. Fix some bugs in trinsified code, mark one precision-related bug as SKIP since sometimes it may pass sometimes not.
Review URL: https://chromiumcodereview.appspot.com//9921017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5985 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-29 17:05:00 +00:00
asiva@google.com e360e4d1c9 Second set of changes for implementation of stack map support.
- Added functionality to be able to build stack maps in the compiler and register them into the Code object during Code finalization.
- Merged code_generator_ia32_test.cc and code_generator_x64_test.cc into code_generator_test.cc as the two files were identical.
Review URL: https://chromiumcodereview.appspot.com//9721006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5764 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-23 01:27:35 +00:00
srdjan@google.com d4dcb9fee0 Clean-up CodeGenState: remove unused loop_level and move context_level to CodeGenerator (and add it to FlowGraphBuilder).
Review URL: https://chromiumcodereview.appspot.com//9706086

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5571 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-16 15:38:43 +00:00
srdjan@google.com e2ab4d25fd Added stack overflow checks at backward branches in order to allow interrupting endless loops. Better code will detect if the loop calready contains calls and therefore can omit the extra check (in next compiler).
Review URL: https://chromiumcodereview.appspot.com//9562045

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4889 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-02 17:53:28 +00:00
kmillikin@google.com 888a35df7f Add a stubbed-out implementation of FlowGraphCompiler for ia32 and arm.
It bails out if FlowGraphCompiler::CompileGraph is called, all other public
API functions are UNIMPLEMENTED.

R=srdjan@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4685 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-28 14:17:17 +00:00
kmillikin@google.com 66d243ea7d Allocate and finalize a code object on x64 if the new compiler succeeds.
If the new compiler completed, use the code that it produced.

R=srdjan@google.com
BUG=
TEST=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4674 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-28 11:34:27 +00:00
hausner@google.com 6d9abc5e3b StepOver, StepInto, StepOut
Implement single stepping in the debugger.
- Add PC descriptors for function return
- functions to set temporary breakpoints on all
  locations in a function.
- patching/restoring of function return code pattern
- determine call target of instance calls
Review URL: https://chromiumcodereview.appspot.com//9484002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4639 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-27 22:00:28 +00:00
srdjan@google.com a343a49338 Do not count invocations but usage of a function, i.e., increment a function's counter at IC calls and at return operations in unoptimized code. (TODO: increment count at static calls as well). There is no checking at method entry any more. The function counter reporting is not measuring the invocation count but much more how much time we spend in a method. Removed counter at backward branches.
Renamed flags to:
--optimization_counter_threshold (default 2000)
--report_usage_count
Review URL: https://chromiumcodereview.appspot.com//9460015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4583 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-25 00:33:25 +00:00
hausner@google.com 4d3a5f658a Add PC descriptor for ret instruction
Adding a new kind of PcDescriptor to mark the location of
function returns in generated code. This will be needed to
put a single-step breakpoint just before the function return.

Also adding a NOP instruction after the ret, so that the
function return code pattern adds up to 5 bytes, which is needed
to patch in a breakpoint call.
Review URL: https://chromiumcodereview.appspot.com//9385022

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4159 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-11 01:02:09 +00:00
hausner@google.com 503e2219b8 First part of inspecting local variables
This change introduces variable descriptors that describe the name, stack slot index, and source code stretch in which a variable is valid.

Activation frames in the stack trace now can enumerate the variables that are active in that frame.

Next step: fetch the value of variables from the stack.
Review URL: http://codereview.chromium.org//8992020

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2671 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-20 21:40:28 +00:00
regis@google.com a577991ad5 Port code generator to x64.
Review URL: http://codereview.chromium.org//8984003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2557 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-17 00:56:02 +00:00
srdjan@google.com 7b61cef42b Implement two-arguments-check inline cache. Use it first for Smi binary operations.
Review URL: http://codereview.chromium.org//8827015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2345 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-12 17:24:47 +00:00
srdjan@google.com 17552e9a3c Renaming type classes as discussed:
Type -> AbstractType
ParameterizedType -> Type

TODO: 

TypeArguments -> AbstractTypeArguments
TypeArray -> TypeArguments
Review URL: http://codereview.chromium.org//8761011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1987 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-01 16:54:52 +00:00
srdjan@google.com 35faa6aaa9 Move more nodes to the optimizing code generator.
Review URL: http://codereview.chromium.org//8678033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1829 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-24 01:14:15 +00:00
srdjan@google.com 6b6d16a41e Add type check tracing (--trace_type_checks). Inline type checks with class types that have only Dynamic type arguments (or none) and with List<Dynamic> interface.
Review URL: http://codereview.chromium.org//8503034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1372 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-09 21:36:32 +00:00
srdjan@google.com 1d4dffcaf2 Emit node id at every call to runtime.
Review URL: http://codereview.chromium.org//8475013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1226 260f80e4-7a28-3924-810f-c04153c831b5
2011-11-04 22:51:19 +00:00
regis@google.com ee7aca7f5b Fix type tests involving an implicit closure of a non-parameterized class
extending a parameterized class.
Add corresponding test.
Disable new test for dartc (filed new issue 5516001).
Review URL: http://codereview.chromium.org//8393033

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@771 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-26 19:03:29 +00:00
regis@google.com c09dfa132e Set type argument vector at run time in instantiated closure objects.
Set type argument vector at compile time in type of closure variables.
TODO: Set type argument vector at compile time in type of closure parameters.
Review URL: http://codereview.chromium.org//8271008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@416 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-13 21:34:48 +00:00
regis@google.com db3a736c33 Support optional named arguments at the dart_entry level in the VM.
Fix bug 5422033: Const expressions don't work with named arguments.
Review URL: https://chromereviews.googleplex.com/3552015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@168 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-06 22:40:45 +00:00
dgrove@google.com 4c0f559d23 Initial checkin.
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-05 05:20:07 +00:00