RevisionLog29000台


r29985 | fschneider@google.com | 2013-11-07 03:28:37 +0900 (木, 07 11月 2013) | 11 lines
VM: Fix double comparisons using != and NaN in optimized code.

With a double x

x == double.NAN should false and x != double.NAN should be true.

TEST=tests/language/double_nan_comparison_test.dart
R=srdjan@google.com



r29966 | fschneider@google.com | 2013-11-06 21:13:29 +0900 (水, 06 11月 2013) | 14 lines
Merge (x & y) == 0 pattern to emit a single test instruction.

This is based on a previous uncommitted CL by vegorov@

It is rebased and fixes a bug in the MIPS implementation: BranchOnCondition
requires the comparison result in fixed registers CMPRES1/CMPRES2.

Remove register alias TMP1 (=TMP) and CMPRES (=CMPRES1). It is confusing to
have them around and easy to forget that they are actually the same.

R=srdjan@google.com, zra@google.com

TestSmiInstrを追加
RecognizedTestPattern (a & b) == 0

普通にtestlアセンブラを出力する。


r29964 | fschneider@google.com | 2013-11-06 20:02:34 +0900 (水, 06 11月 2013) | 8 lines
Avoid redundant assertion code in equality comparisons in checked mode.
The result of an equality operation only needs to be checked if it is negated.
R=srdjan@google.com


r29954 | hausner@google.com | 2013-11-06 10:21:32 +0900 (水, 06 11月 2013) | 8 lines
Undo change 29900
Undo a gratuitous change to the parser.

@kmillikin: please at least be courteous enough to ask one of the front-end
authors to review a change that is not a pressing issue, such as style preferences.


r29950 | iposva@google.com | 2013-11-06 09:59:46 +0900 (水, 06 11月 2013) | 11 lines
  • Add a per-isolate pseudo random number generator to the
VM internals. This PRNG is not used to generate random numbers in Dart code.
  • Use the PRNG to generate JIT cookies for large constants if needed during assembly.
  • Add the possibility to set an external entropy source for the PRNG through the C API.

R=asiva@google.com
entropy_sourceを追加
jit_cookieを乱数で生成。

vm/randomをlibからvm内に移動。
random_seed=0オプションを追加



r29949 | hausner@google.com | 2013-11-06 09:33:36 +0900 (水, 06 11月 2013) | 3 lines
Revert 29947
r29947 | hausner@google.com | 2013-11-06 09:05:25 +0900 (水, 06 11月 2013) | 9 lines
Fix scoping of catch clause variables
Fix recent regression in try-catch and fix scoping of exception
object and stack trace variable. Add test to ensure shadowing of
these variables is possible.

R=regis@google.com





r29933 | zra@google.com | 2013-11-06 05:45:25 +0900 (水, 06 11月 2013) | 5 lines
Impelments IfThenElse instruction for ARM and MIPS.
R=fschneider@google.com
UNREACHABLEが減った。



r29929 | srdjan@google.com | 2013-11-06 04:27:46 +0900 (水, 06 11月 2013) | 8 lines
In preparation of inlining remainder and modulo binary Smi operations:
  • Add REM token
  • Fix checking of function fingerprints.
  • Remove unused intrinsic for remainder (the function gets inlined and intrinsic is not generated)

R=hausner@google.com
オプション追加
check_function_fingerprints=false
Integer_reminderを削除




r29924 | regis@google.com | 2013-11-06 03:46:13 +0900 (水, 06 11月 2013) | 11 lines
Complete latest spec changes regarding malformed types (see issue 14006).
Update language tests and mark them as failing in dart2js as appropriate.
Mark a few co19 tests as failing.
Mark a dart2js test as failing due to unresolved types.

Unfortunately, https://codereview.chromium.org/53583003/ was uncomplete and
missed a few mappings of malformed types to dynamic.
R=hausner@google.com


r29914 | hausner@google.com | 2013-11-06 01:51:50 +0900 (水, 06 11月 2013) | 7 lines
boolean expressions with null are never potentially const
Fix issue 13394
R=srdjan@google.com



r29900 | kmillikin@google.com | 2013-11-05 21:49:14 +0900 (火, 05 11月 2013) | 12 lines
Clean up Parser::ParseTryStatement in the VM.

Streamline the implementation, factor out repeated code, rename some cryptic
identifiers, and fix a misspelling.

Also, disentangle an implicit include dependency: class_finalizer.cc was
getting code_generator.h implicitly from something included (unnecessarily
as it turns out) by parser.h.

R=fschneider@google.com

platformのincludeに変更




r29889 | kmillikin@google.com | 2013-11-05 20:20:59 +0900 (火, 05 11月 2013) | 8 lines
Flatten the AST for try/catch.
Flatten a pair of blocks where the outer one is solely used to hold
the bindings of the parameters and to contain the inner one.

R=fschneider@google.com



r29887 | fschneider@google.com | 2013-11-05 19:46:39 +0900 (火, 05 11月 2013) | 5 lines
Reland bug fix from r29800 for merging into branch.
r29886 | fschneider@google.com | 2013-11-05 19:43:55 +0900 (火, 05 11月 2013) | 3 lines
Revert a bug fix included in r29800 to re-land it for merging.


r29873 | iposva@google.com | 2013-11-05 13:45:14 +0900 (火, 05 11月 2013) | 3 lines
  • Avoid deep recursions when executing type tests.


r29865 | iposva@google.com | 2013-11-05 09:55:41 +0900 (火, 05 11月 2013) | 6 lines
  • Find main in the exported names of the root library.
  • Unify how the main function is called from spawnUri and the initial isolate.


r29849 | johnmccutchan@google.com | 2013-11-05 06:56:59 +0900 (火, 05 11月 2013) | 5 lines
This is the final breaking change in dart:typed_data needed for Dart 1.0.
We need this change because the ECMAScript SIMD specification only includes Int32x4 and Int32x4List
and our types must match.
R=srdjan@google.com

Uint32x4 -> Int32x4に変更!!??


r29835 | hausner@google.com | 2013-11-05 03:53:58 +0900 (火, 05 11月 2013) | 8 lines
Compile time error on forward references to functions
Like variables, names of functions must not be referenced before they are declared.
R=srdjan@google.com


r29822 | iposva@google.com | 2013-11-05 02:27:11 +0900 (火, 05 11月 2013) | 5 lines
  • Remove support for the non-used Dart_kLibraryTag in the C API.
R=asiva@google.com


r29818 | asiva@google.com | 2013-11-05 01:51:48 +0900 (火, 05 11月 2013) | 5 lines
Compute next field offset correctly.
R=iposva@google.com
NextFieldOffset()を追加
return -kWordSize;

リファクタリングっぽい。


r29815 | kmillikin@google.com | 2013-11-05 01:05:08 +0900 (火, 05 11月 2013) | 8 lines
Restore 0-based temporary index numbering in the VM compiler.
Compiler temporary indexes (used for printing) were inadvertently changed to 1-based numbering.
R=fschneider@google.com


r29802 | kmillikin@google.com | 2013-11-04 20:58:14 +0900 (月, 04 11月 2013) | 5 lines
Fix VM compilation.
Compilation was broken by an unclean merge.
r29801 | kmillikin@google.com | 2013-11-04 20:48:45 +0900 (月, 04 11月 2013) | 8 lines
Move temp_index from the graph visitors to the graph builder.

This is the only bit of state that besides the current instruction
that is threaded through the visitors.
R=fschneider@google.com


r29800 | fschneider@google.com | 2013-11-04 20:32:52 +0900 (月, 04 11月 2013) | 15 lines
Change == into an instance call to allow polymorphic inlining of ==.

In unoptimized code equality is now just another instance call.

The optimizer replaces it with a specialized implementation based on static
type information and type feedback.

Many of the manual optimizations of == in the optimizer are now just handled
by the generic inliner, plus polymorphic inlining of == calls is now possible.
This also eliminates the need for a lot of duplicated code in the backend.

I adapted the inlining heuristics to compensate for the slightly larger inital flow graph size.

locations.cc kind() == kQuadStackSlot のケースを追加

new BranchInstr()
leftかrightがnullだったら、
やBuildStrictComapre()経由でStrictCompareInstr()を生成する

TryReplaceWithEqualityOp()で最適化する。
if SmiOnly
if SmiOrMint
if DoubleOrSmi

巨大なパッチ


r29797 | fschneider@google.com | 2013-11-04 19:08:47 +0900 (月, 04 11月 2013) | 48 lines
VM: Fix initialization of statics in presence of exceptions.
In a static- or top-level variable v

var v = expr
static v = expr

If the initializer expression expr throws, the VM throws a
CyclicInitializationError when loading v afterwards, even though
this has nothing to do with cyclic initialization.

I'm changing the way implicit static getters and static initializers are
compiled. Static initializers are invoked from static getters.

They look as follows:

get:v {
if (field.value === transition_sentinel) {
   field.value = null;
   throw new CyclicInitializationError();
 }
 if (field.value === sentinel) {
   field.value = transition_sentinel;
   init:v();
 }
 return field.value;
}


init:v {
try {
   field.value = expr;
 } catch {
   if (field.value === transition_sentinel) {
     field.value = null;
   }
   rethrow;
 }
}

TEST=language/lazy_static3_test,
language/throwing_lazy_variable_test,
co19/Language/12_Expressions/30_Identifier_Reference_A08_t02

R=hausner@google.com

NewStaticInitializerを呼び出して、
set_saved_static_field でnullで初期化する



r29793 | kmillikin@google.com | 2013-11-04 17:12:12 +0900 (月, 04 11月 2013) | 7 lines
Remove some unused fields from class SourceLabel.
We no longer need assembler labels in the AST.
R=fschneider@google.com
scopesのソースコードから削除


r29770 | hausner@google.com | 2013-11-02 06:28:31 +0900 (土, 02 11月 2013) | 16 lines
Compile time error if name is used before variable is declared

Implement proper semantics if a name has been referenced in a
block and later a variable with that same name is declared.

Fix library code that was wrong.

Add new language test, delete a couple of tests that are
outdated, file co19 bug 649.

Dart2js and dart2dart are not yet implementing these compile-time errors.

R=iposva@google.com




r29741 | fschneider@google.com | 2013-11-01 19:39:09 +0900 (金, 01 11月 2013) | 13 lines
Fix bug with guarded fields and deserialization.

Since deserialization does not involve the normal object construction
procedure, any values written there won't be reflected in the guarded field
type. This results in incorrect optimized code because deoptimization of
dependent code objects in not triggered.
This CL adds tracking of field types and guarded list length when creating
objects via deserialization.
R=iposva@google.com
UpdateFieldCid.UpdateGuardedCidAndLength()
deoptimizeをチェックして、DeoptimizeDependentCode()

deoptimizeの条件は、dynamicに繊維するか、
複数の型(List)向けのコードを生成して、そのListが増加した場合。



r29723 | johnmccutchan@google.com | 2013-11-01 16:09:54 +0900 (金, 01 11月 2013) | 5 lines
SIMD shuffle API changes
R=srdjan@google.com, zra@google.com
shuffle, shuffleMixをそれぞれ追加。
APIを新規追加


r29720 | rmacnak@google.com | 2013-11-01 10:19:31 +0900 (金, 01 11月 2013) | 7 lines
Handle metadata with qualified identifiers.
R=gbracha@google.com, hausner@google.com



r29717 | srdjan@google.com | 2013-11-01 08:09:43 +0900 (金, 01 11月 2013) | 5 lines
Cleanups.
R=regis@google.com


r29696 | asiva@google.com | 2013-11-01 05:41:59 +0900 (金, 01 11月 2013) | 5 lines
Cleanup StaticResolveType, it does not seem to be used anywhere.
R=regis@google.com


r29694 | rmacnak@google.com | 2013-11-01 05:36:32 +0900 (金, 01 11月 2013) | 8 lines
Raise an exception instead of crashing when attempting to pass a MirrorReference between isolates.
Fix warnings in isolate illegal values tests.
R=asiva@google.com


r29686 | srdjan@google.com | 2013-11-01 03:16:50 +0900 (金, 01 11月 2013) | 5 lines
Fix issue 14659: intrinsic method must check if the start, end arguments are Smi.
R=zra@google.com



r29683 | zra@google.com | 2013-11-01 02:32:06 +0900 (金, 01 11月 2013) | 5 lines
Fixing fingerprint.
R=srdjan@google.com


r29680 | fschneider@google.com | 2013-11-01 01:49:55 +0900 (金, 01 11月 2013) | 14 lines
VM: Fix checked mode crash (issue 13831).

The AST for static getters differs between parsing the first time, and
subsequent parsings. This leads to a mismatch in deoptimization-ids
between the optimized and the unoptimized code.

This CL avoids creating different ASTs for the same static getters. To allow
better inlining of these getters, the initialization expression is wrapped in a
hidden static initializer-function. As a result the size of such getters is
constant and does not depend on the initializer expression.

R=srdjan@google.com
オプション print_scopes=false
Function::NewStaticInitializerってのが追加



r29674 | kmillikin@google.com | 2013-10-31 23:39:17 +0900 (木, 31 10月 2013) | 9 lines
Fix a bug in typecasts in the VM.
When a typecast is evaluated solely for its side effects and the check
is eliminated in the flow graph builder, the subexpression is not
evaluated. This is wrong. Fix by evaluating the subexpression.
R=fschneider@google.com


r29642 | sgjesse@google.com | 2013-10-31 14:46:57 +0900 (木, 31 10月 2013) | 20 lines
Implement fromEnvironment on bool, int and String
This implements const constructor fromEnvironment on bool, int and String.

The VM have the added -Dname=value option to define the value for the
properties. All values are provided by using the -D - nothing is read from the environment.

If the resulting value is null or - in the case of int.fromEnvironment
  • not a number an ArgumentError is thrown.

This CL does not have any implementation for dart2js.
This is a continuation of the change
R=iposva@google.com
起動時にプロパティ追加できるようになったと。
mainでenvironmentっていうhashmapでパラメータ管理する。

また、
environment_callback()ってのをisolateが管理する。
environmentにcallbackをsetしたり、callbackを呼び出したりできる。
mainで初期化する。



r29639 | johnmccutchan@google.com | 2013-10-31 13:57:38 +0900 (木, 31 10月 2013) | 5 lines
Add Uint32x4List to typed_data
R=asiva@google.com, srdjan@google.com, vsm@google.com
Uint32x4Listを追加


r29610 | srdjan@google.com | 2013-10-31 08:51:42 +0900 (木, 31 10月 2013) | 6 lines
Improve indexOf for one byte string receiver to work with other string classes.
Optimize access to core class’s class-ids.
R=zra@google.com


r29608 | regis@google.com | 2013-10-31 08:30:32 +0900 (木, 31 10月 2013) | 11 lines
Implement latest spec changes regarding malformed types (see issue 14006):
  • a malformed type used in a is, as, or catch type test results in a dynamic
type error being thrown.
  • a malformed type is not mapped to dynamic anymore.

For now, this applies to type tests in checked mode as well, but discussion is still on-going.
R=hausner@google.com


r29577 | zra@google.com | 2013-10-31 03:57:55 +0900 (木, 31 10月 2013) | 11 lines
Adds support for ARM softfp calling convention.

The cross-compiler with the Android NDK doesn't support
the 'hard' calling convention, so we need both. I've
added a preprocessor define to the gyp file for the
standalone vm indicating support for 'hard' so that I
don't have to modify the Dartium gyp files.
R=srdjan@google.com

ifdefでマクロを切っている。ARM_FLOAT_ABI_HARD


r29572 | asiva@google.com | 2013-10-31 02:51:36 +0900 (木, 31 10月 2013) | 3 lines
Fix RawObject::IsVMHeapObject to use Contains instead of relying on the mark bit.
IsVMHeapObject()
IsMarked() -> vm_isolate()->heap()->Contains(ToAddr(this));
に修正



r29537 | lrn@google.com | 2013-10-30 21:25:02 +0900 (水, 30 10月 2013) | 6 lines
Remove deprecated dart:utf library.
R=fschneider@google.com, sgjesse@google.com


r29533 | kmillikin@google.com | 2013-10-30 20:38:39 +0900 (水, 30 10月 2013) | 16 lines
Reapply "Do not directly load smi constants larger than a 16 bit..."
Reapply "Do not directly load smi constants larger than a 16 bit payload on
ia32" with a bugfix. The predicate Assembler::IsSafeSmi incorrectly
returned true for non-smis on non-ia32 platforms.

Original summary: Instead of emitting a large smi constant directly as an
immediate, xor the smi with a random 32-bit cookie at compile time, emit
code to move that into a register and then to xor the register with the cookie.

R=fschneider@google.com


r29458 | whesse@google.com | 2013-10-30 01:49:42 +0900 (水, 30 10月 2013) | 8 lines
Revert "Do not directly load smi constants larger than a 16 bit payload on ia32."
There is an assertion failure on debug VM tests.
R=fschneider@google.com


r29439 | kmillikin@google.com | 2013-10-29 21:19:12 +0900 (火, 29 10月 2013) | 23 lines
Do not directly load smi constants larger than a 16 bit payload on ia32.

Instead of emitting a large smi constant directly as an immediate, xor the
smi with a random 32-bit cookie at compile time, emit code to move that into
a register and then to xor the register with the cookie.

1. In unoptimized code constants are always loaded into a register in
 ConstantInstr::EmitNativeCode.  Change it to load safely.

2. In optimized code constants loaded into a register for use by an
 instruction are loaded by ParallelMoveResolver::EmitMove.  Change it to load safely.

3. In optimized code some instructions allow constants as inputs. These are
 reflected with an input location of Location::RegisterOrConstant (or
  similar) or else Location::Constant.  For the former allocate a register
  if the constant is unsafe, and for the latter check for safety before
  allowing the constant input.

R=iposva@google.com, srdjan@google.com
IsSafe()でない場合、xorlでjit_cookie_でxorするらしい。
IsSafe()は Utils::IsInt(17) でない、16bit以上のconstant payloadの場合xorする。

32bit constantをアセンブラに埋め込むんじゃなくて、
compile時にxorできるmask(cookie)を作成する
今は jit_cookieは固定で1017109444

Constant Blinding ってやつか。

ia32だけ。armとmipsとx64には入ってない。。


r29472 | srdjan@google.com | 2013-10-30 03:18:40 +0900 (水, 30 10月 2013) | 6 lines
Improve string library performance. String concat and indexOf.
Rename String concatAll to concatRange. Optimize concatRange for OneByteStrings (avoids natives),
optimize indexOf for one character onByteStrings.
R=iposva@google.com
renameしただけ。concatAll -> concatRange


r29464 | zra@google.com | 2013-10-30 02:44:56 +0900 (水, 30 10月 2013) | 5 lines
Disables collection of infrequently used unoptimized code.
R=srdjan@google.com
collect_code=false にオプションを修正


r29460 | regis@google.com | 2013-10-30 02:04:21 +0900 (水, 30 10月 2013) | 5 lines
Implement stricter rule about self referencing typedefs (fix issue 13675).
R=rmacnak@google.com
TypeCycle に関連する修正



r29435 | whesse@google.com | 2013-10-29 20:33:34 +0900 (火, 29 10月 2013) | 8 lines
Remove dart:platform library.
This reverts commits r29154, r29244, r29251, r29268, and r29272.
The dart:io Platform class will not be moved to a dart:platform library.
R=ajohnsen@google.com


r29418 | sgjesse@google.com | 2013-10-29 17:45:32 +0900 (火, 29 10月 2013) | 13 lines
Remove the reply port form the native isolate handler
The handler function for a native isolate no longer gets an explicit
reply port. Instead the reply port must be sent as part of the message if required.

The Dart_CObject structure now exposes the send ports in a message to a native isolate.
R=asiva@google.com, floitsch@google.com, whesse@google.com

reply portを送付する場合に、
旧仕様だと、arg1にdata, arg2にreplyportをかえしていたが、
新仕様だと、arg1に全データをリスト形式にして送付する。
[id, replyToPort, request, data]



r29404 | iposva@google.com | 2013-10-29 09:04:59 +0900 (火, 29 10月 2013) | 3 lines
  • Add missing header file to the dependencies.


r29400 | zra@google.com | 2013-10-29 06:58:10 +0900 (火, 29 10月 2013) | 12 lines
Modifies assertion for possibly null code pointer.

A callee function's code pointer may be nulled by a
GC pass during inlining. The code itself is still
around because the inlining function retains a
reference, but a future change will ensure that
the GC pass doesn't null code pointers in inlined functions.
R=srdjan@google.com

pagesの管理
MayDetachCode()では、
hasCode and !hasOptimizedCode and !hasBreakpoint and usage_count > 0 の場合 return true



r29397 | hausner@google.com | 2013-10-29 06:38:57 +0900 (火, 29 10月 2013) | 7 lines
Throw CyclicInitializationError instead of string
For some reason, I had to regenerate the snapshot for test standalone/issue14236_source.dart.
The checked-in snapshot crashed with my change. We don't know yet why. Siva is looking at this separately.
R=srdjan@google.com


r29390 | jacobr@google.com | 2013-10-29 05:23:19 +0900 (火, 29 10月 2013) | 6 lines
Fix to asiva's code review comments on TBR Cl.
R=asiva@google.com


r29389 | fschneider@google.com | 2013-10-29 05:20:11 +0900 (火, 29 10月 2013) | 9 lines
VM: Fix bug in polymorphic inlining of recognized methods.
The inliner has to insert a redefinition of the receiver to
prevent illegal hoisting of instructions that depend on the receiver class id.
R=srdjan@google.com
TryInlineRecognizedMethod()の引数にreceiverを追加

最終的に
TryInlineRecognizedMethod()
receiverからRedefinitionInstrを生成してする、ssa_temp_indexを付加する。



r29388 | turnidge@google.com | 2013-10-29 05:12:37 +0900 (火, 29 10月 2013) | 5 lines
Don't inline functions if they have an active breakpoint.
R=srdjan@google.com
Inlineable()において、
HasBreakpoint の場合にfalseを返す。



r29374 | rmacnak@google.com | 2013-10-29 02:25:47 +0900 (火, 29 10月 2013) | 6 lines
Test reflecting on an object that implements Function but has no call method.
R=asiva@google.com, gbracha@google.com


r29323 | iposva@google.com | 2013-10-27 23:34:23 +0900 (日, 27 10月 2013) | 11 lines

  • Make sure to keep the main/control port opened until the
isolate is finished.
  • Account for the number of opened control ports to be able
to determine whether there are live ports.
  • Ensure that the spawned isolated is kept alive until the
initial startup message can be handled.
  • Add more isolate tracing output.
  • Use the control port for the debugger id.


r29318 | jacobr@google.com | 2013-10-27 07:55:43 +0900 (日, 27 10月 2013) | 6 lines
Add Dart_LibraryId method unblocking landing 45613003. TBR
R=sra@google.com


r29317 | iposva@google.com | 2013-10-27 06:50:38 +0900 (日, 27 10月 2013) | 4 lines
  • Revert parts of r29315 while attempting to reproduce
unexplained buildbot failures locally.


r29315 | iposva@google.com | 2013-10-27 05:50:20 +0900 (日, 27 10月 2013) | 9 lines
  • Make sure to keep the main/control port opened until the
isolate is finished.
  • Account for the number of opened control ports to be able
to determine whether there are live ports.
  • Fix imports in snapshotted test.
R=johnmccutchan@google.com



r29298 | regis@google.com | 2013-10-26 08:02:48 +0900 (土, 26 10月 2013) | 7 lines
Disallow explicit parameter default values in redirecting factory (issue 13662).
Add language test.
Fix usage in core lib.

R=hausner@google.com


r29276 | regis@google.com | 2013-10-26 04:46:32 +0900 (土, 26 10月 2013) | 6 lines
Register synthesized mixin application classes in the library and reuse them
when possible (fix issue 14318).

R=asiva@google.com, hausner@google.com, rmacnak@google.com



r29271 | floitsch@google.com | 2013-10-26 04:23:00 +0900 (土, 26 10月 2013) | 5 lines
Very simple version of Isolates.
R=ajohnsen@google.com, iposva@google.com, kasperl@google.com, lrn@google.com

vm内の修正は、
_RawReceivePortImplに変わったところ
また、spawn時の挙動として、
args0がImplicitStaticClosure
args1がspawn_uri
startIsolateがentry_pointとして、内部で呼び出している。


そのため、spawn(echo, msg)
echo(msg) {}
msgの中身は、arg0がdataで、arg1がreply



r29266 | srdjan@google.com | 2013-10-26 03:00:27 +0900 (土, 26 10月 2013) | 5 lines
Specialize string equality for various string classes.
Add intrinsics for one/two-byte string equality. Improves sudoku_solver by 10%.

R=regis@google.com, zra@google.com
intrinsicsにStringEquality()を追加
OneByteStringとTwoByteStringどちらでも動く。

lengthが同じだったら、loopで1つずつ offsetを取得して比較する。
loopの中でOneByteとTwoByte どちらでもelementを取得できるようになっている。


r29240 | lrn@google.com | 2013-10-25 19:30:34 +0900 (金, 25 10月 2013) | 6 lines
Remove dart:json

R=floitsch@google.com, fschneider@google.com


r29239 | kmillikin@google.com | 2013-10-25 19:17:10 +0900 (金, 25 10月 2013) | 12 lines
Record a correct deoptimization environment for slow-path code.

Slow-path code is not marked as a call, so the deoptimization environment
built by the register allocator can contain unspilled registers. However,
all registers are spilled before the call. Compute the spill slot for all
registers and change the ones in the deoptimization environment to be spilled.
R=fschneider@google.com
SlowPathEnvironmentFor()を追加

FlowGraphCompiler::RecordSafepoint と連携


r29218 | iposva@google.com | 2013-10-25 07:08:33 +0900 (金, 25 10月 2013) | 6 lines
  • Account for hidden frames when concatenating throw and catch traces.

R=asiva@google.com


r29212 | hausner@google.com | 2013-10-25 06:42:39 +0900 (金, 25 10月 2013) | 11 lines
It's a compile-time error if a const constructor call fails

Making it a compile-time error if a const constructor call
fails. Also improve error message when invoking dart code during compilation fails.

Fixes issue 14302
R=srdjan@google.com


r29209 | zra@google.com | 2013-10-25 06:26:15 +0900 (金, 25 10月 2013) | 15 lines
Disconnects code objects from infrequently used unoptimized functions.

Every 30 seconds (configurable by --code-collection-interval),
before a MarkSweep collection, this change halves a function's
usage count if it is unoptimized. If the function's usage count
reaches 0 as a result of this halving, it sets the function's
code pointers to null. Then, if the code object isn't marked
during the MarkSweep, it will be collected.

This change also checks for null code pointers in various
places, and recompiles/reconnects code if needed.

R=srdjan@google.com

DetachCode()
ReattachCode()

GenerateNArgsCheckInlineCacheStub()
に以下の修正が入った。使われていない不要なunoptimized codeは捨てられているかも。
if (FLAG_collect_code) {
もし捨てられている場合はrecompileする。

実際に削除する処理は、vm/pages.h


削除判定は、GCのMark&Sweepの際に行う。
CodeのFunctionオブジェクトを参照し、usage_count / 2を繰り返し、
0になったらcodeを削除する。

MarkSweepにTryDetachingCode()


r29194 | hausner@google.com | 2013-10-25 03:54:52 +0900 (金, 25 10月 2013) | 10 lines
Properly report error for certain expressions that must be const
Issue error message instead of hitting assertion for an expression that
contains an assignment but is expected to be const.

Fixes security issue 13941
R=regis@google.com


r29178 | asiva@google.com | 2013-10-25 01:41:22 +0900 (金, 25 10月 2013) | 10 lines
Fix for issue 14236:
Retain script path of parent isolate when spawnFunction is called so that
it works when using script snapshots.

The test case issue14236_test.dart is a script snapshot whose original source
file path is issue14236_source.dart
R=iposva@google.com, sgjesse@google.com



r29155 | ajohnsen@google.com | 2013-10-24 16:13:25 +0900 (木, 24 10月 2013) | 6 lines
Add missing line to gyp file.
R=sgjesse@google.com
gypファイルに1line追加


r29154 | ajohnsen@google.com | 2013-10-24 15:56:36 +0900 (木, 24 10月 2013) | 18 lines
Add empty dart:platform library.
dart:platform will be a library that contains information about the runtime
platform. While it's not written in stones, this is examples of properties that may be queried:
  • OS
  • Browser
  • Browser version
  • Dart Version
  • numberOfProcessors
  • pathSeparator
  • Native or JS VM

R=ahe@google.com, asiva@google.com, floitsch@google.com, iposva@google.com, kasperl@google.com

lib/Platform_patchをcoreに追加



r29153 | iposva@google.com | 2013-10-24 14:45:09 +0900 (木, 24 10月 2013) | 7 lines
Fix bug 13827:
  • Do not attempt to GC old space while in full growth mode when creating
the token stream for a newly loaded source file.
R=bak@google.com
NoHeapGrowthControlScope


r29136 | iposva@google.com | 2013-10-24 09:16:55 +0900 (木, 24 10月 2013) | 6 lines
  • Don't mix the collection of Error.stackTrace with the collection of
the stack trace for try-catch.
R=asiva@google.com



r29126 | hausner@google.com | 2013-10-24 06:15:25 +0900 (木, 24 10月 2013) | 12 lines
Implement type checks for switch expression

If the switch expression is not compatible with the case clause
constants, we must report a runtime error. Implement this by annotating
the temporary variable holding the switch expression with the correct type.
Issue 7274
R=regis@google.com


r29123 | regis@google.com | 2013-10-24 06:03:11 +0900 (木, 24 10月 2013) | 6 lines
Report compile-time error for const factories redirecting to malformed type
(fix issue 14305).
R=iposva@google.com
const factoryの場合に、finalizerでエラーケースを追加



r29118 | srdjan@google.com | 2013-10-24 05:37:18 +0900 (木, 24 10月 2013) | 5 lines
Move Stringinterpolation constant folding from constant propagator to canonicalizer.
StrinIterpolateInstr cannot directlly refer to interpolation arguments
but only to the array that holds them, therefore constant propagation cannot be applied.
R=fschneider@google.com
StringInterpolateInstr::Canonicalize()
に移動
元はConstantPropagator::Visit


r29110 | iposva@google.com | 2013-10-24 04:08:36 +0900 (木, 24 10月 2013) | 20 lines
  • Ensure that the token stream from generated source matches the
original token stream in the presence of combinations of
 multiline string and string interpolation. If not this will
 cause mismatches when accessing code snippets, e.g when
 reporting parser errors or assertions.
  • Ensure that ScanAll and ScanTo are in sync when adding or
counting tokens.
  • Added unit test for multiline strings and interpolation.
  • Expanded GenerateSource unit test to iterate through all
loaded libraries.
  • Do not report columns for compilation errors in snapshotted
code.
  • Do not report columns from exceptions and errors when dealing
with snapshotted code.
  • Remove length field from TokenDescriptor. It was unused.
  • Remove TokenStream::ComputeTokenPosition. It was unused.

R=fschneider@google.com, hausner@google.com



r29097 | fschneider@google.com | 2013-10-24 01:18:20 +0900 (木, 24 10月 2013) | 9 lines
Fix VM issue 1372: super constructor invocation with redirection.
A redirecting super constructor simply passes the phase parameter
on to the target which executes the corresponding phase.
R=hausner@google.com


r29092 | zra@google.com | 2013-10-24 00:56:35 +0900 (木, 24 10月 2013) | 7 lines
Fixes ARM SIMD IL bug.
Issue 14341
R=fschneider@google.com


r29088 | fschneider@google.com | 2013-10-24 00:29:02 +0900 (木, 24 10月 2013) | 7 lines
VM: Fix evaluation order when throwing an AbstractClassInstantiationError.
TEST=Language/12_Expressions/12_Instance_Creation/1_New_A06_t12
R=zra@google.com



r29087 | fschneider@google.com | 2013-10-24 00:27:09 +0900 (木, 24 10月 2013) | 7 lines
Use enums for the index of IL operands.
Addressing comments from a previous CL (https://codereview.chromium.org/28633003/).
R=srdjan@google.com
magic numberを全部enumに置換


r29066 | johnmccutchan@google.com | 2013-10-23 18:18:52 +0900 (水, 23 10月 2013) | 7 lines
This CL enables the polymorphic inliner to inline loads on typed array views.
It also contains a small cleanup so that the signatures of BuildByteArrayViewLoad
and BuildByteArrayViewStore match.
R=fschneider@google.com

POLYMORPHIC_TARGET_LIST を定義
MethodRecognizer::PolymorphicTarget()
で判定

inline展開の際には、
InlineByteArrayViewLoad()において、
添字のCheckSmiInstr
CheckArrayBoundInstr
adjusted_length
配列へのLoadIndexedInstrを
生成して置換する。




r29049 | rmacnak@google.com | 2013-10-23 09:12:09 +0900 (水, 23 10月 2013) | 6 lines
Test for OscillatorNode.type=. Fix bug in StringGetPeerHelper when passed an immediate object.
Fix asserts when getting typed data address to allow for empty arrays.
R=asiva@google.com, vsm@google.com


r29045 | regis@google.com | 2013-10-23 07:36:42 +0900 (水, 23 10月 2013) | 6 lines
Fix language tests for redirecting factories (issue 14297).
Use target constructor name in redirecting factory errors.
R=hausner@google.com


r29042 | regis@google.com | 2013-10-23 07:12:07 +0900 (水, 23 10月 2013) | 5 lines
Report correct error message in case of super invocation (fix issue 8208).
R=hausner@google.com


r29030 | rmacnak@google.com | 2013-10-23 04:53:14 +0900 (水, 23 10月 2013) | 8 lines
VM: Always return immutable collections from the mirrors.
Fix assert in partial demangling. Fix inappropriate compilation when handling parameters.
R=ahe@google.com, asiva@google.com


r29012 | iposva@google.com | 2013-10-23 02:40:30 +0900 (水, 23 10月 2013) | 5 lines
  • Name the enum containing the bootstrap library ids.
R=asiva@google.com


r29001 | fschneider@google.com | 2013-10-23 01:03:48 +0900 (水, 23 10月 2013) | 12 lines
Fix bug with load elimination in checked mode.
Definitions that are redefined through AssertAssignable must be
unwrapped to number loads/stores correctly for them.

Fix test expectations for tests that are passing now that the
corresponding co19 test was changed.
R=srdjan@google.com
checkedmode用にAssertAssignable()も追加

  • 最終更新:2013-11-10 23:45:53

このWIKIを編集するにはパスワード入力が必要です

認証パスワード