RevisionLog18000台

r18994 | regis@google.com | 2013-02-26 04:30:29 +0900 (火, 26 2月 2013) | 4 lines
Hook up simulator (if needed) when calling Dart code.
Merge identical InvokeDynamic and InvokeStatic to InvokeFunction.
Remove redundant argument from InvokeClosure.
calleeをInvokeFunctionになったと。。
InvokeFunction()本体も修正していて、USING_SIMULATORでifdefが切ってある。
その場合は、Current()->Call()を呼び出す。
そうでない場合は、entryPoint()を呼び出す。
if !HasCode()の場合に、CompileFunction()を読んでいた処理が削除されているようだが、
どこにいったのだろうか。

stub_code側も共通化されていて、InvokeStaticとInvokeDynamicはいらない子に。
stubのTOSも1子減った。

r18991 | vegorov@google.com | 2013-02-26 03:48:49 +0900 (火, 26 2月 2013) | 8 lines
null value can be the receiver of methods on Object (e.g. hashCode).
Fix wrong assumption in the type propagator that marked the receiver as never nullable.
R=srdjan@google.com
BUG=dart:8739
んん? 966の内容が戻ってるんだけど。。比べてみたら修正されただけか。
PropagatorのPrintも、18966風に修正した。
is_nullableの場合のtype propagatorの修正も入っていて、index==0が目印なのか。


r18966 | vegorov@google.com | 2013-02-25 22:09:17 +0900 (月, 25 2月 2013) | 8 lines
Add machine readable markers around code and flow graph output printed for
    • print-flow-graph and --disassemble-optimized.
This allows to quickly preparse large IR/code dumps
when loading then into the tools instead of parsing them line by line and figuring out
where things start and end.
R=fschneider@google.com
PrintGraphの際に、BEGIN CFGとEND CFGに囲まれるようになった。
消されたキーワードは俺parseの目印につかってたんだけどな、、切り替えればいいか。

r18961 | kmillikin@google.com | 2013-02-25 20:24:08 +0900 (月, 25 2月 2013) | 8 lines
Set instruction/use_index when adding an input to an IL instruction.
When setting an input (including in the constructor) of an IL instruction,
automatically set the input use's instruction and use_index fields.
R=vegorov@google.com
SetInputAt()を改良。
生の添字をいじるのではなく、SetInputAt()で操作するようにした。

r18960 | lrn@google.com | 2013-02-25 19:48:09 +0900 (月, 25 2月 2013) | 5 lines
Remove deprecated string features.
Make String.codeUnits return a List.
CharCodeAt -> CodeUnitAt
return List<int>


r18937 | srdjan@google.com | 2013-02-23 09:58:41 +0900 (土, 23 2月 2013) | 2 lines
Making CompileType a Value object.
CompileTypeをValueObject継承。もしかしていままでリークしていた?

r18925 | srdjan@google.com | 2013-02-23 07:43:36 +0900 (土, 23 2月 2013) | 2 lines
Improve performance of String::ToCString for OneByteStrings and parsing of doubles.
Leads to significant speedups in json parsing.
latin-1の場合に高速化。

r18933 | sra@google.com | 2013-02-23 09:21:24 +0900 (土, 23 2月 2013) | 5 lines
Revert "Revert "Use browsers JSON.parse for parsing JSON (#3)""
Fix more IE special cases

r18911 | sra@google.com | 2013-02-23 04:34:08 +0900 (土, 23 2月 2013) | 3 lines
Revert "Use browsers JSON.parse for parsing JSON (#3)"

r18908 | sra@google.com | 2013-02-23 04:21:18 +0900 (土, 23 2月 2013) | 7 lines
Use browsers JSON.parse for parsing JSON (#3)
This version modified to take advantage of dart:json being moved to VM.

r18896 | vegorov@google.com | 2013-02-23 01:39:52 +0900 (土, 23 2月 2013) | 5 lines
Fix arm and mips build.
TBR=kmillikin@google.com
armとmipsの修正漏れ

r18895 | vegorov@google.com | 2013-02-23 01:33:37 +0900 (土, 23 2月 2013) | 14 lines
Ensure that compile time types for comparisons are recomputed once comparison are specialized.

Turn CompileType into a value object instead of zone object.
Provide a transparent zone allocated wrapper for CompileType.
This simplifies code paths that recompute and update type
and reduces number of allocated zone objects.

Split ComputeInitialType into ComputeInitialType and ComputeType.
ComputeType returns values type as a value object.
ComputeInitialType returns a pointer and by default it delegates to ComputeType.
This split reflects differences between instructions:
majority of them have their own type,
but some can return the type of an input which should not be unwrapped and rewrapped
again because this will destroy the connection between types.

R=kmillikin@google.com
CompileTypeをZoneAllocateではなく、ZoneCompileTypeがwrapするようにした。
Typeは1回のコンパイル内でキャッシュされ、ZoneCompileType内でcanonicalizeされる。
wrapした型を更新する場合、UpdateType()
メモリ使用削減が目的かな。

r18890 | fschneider@google.com | 2013-02-22 22:41:24 +0900 (金, 22 2月 2013) | 5 lines
Insert missing test for unboxed mint support when inlining _setIndexed, getInt32, getUint32.
Int32Array and Uint32Array can only be optimized on ia32 when SSE 4.1 is supported.
r18818に追加。ia32の場合、32bit以下のときmintのcheckを追加。
x64ではmintはないが、ia32では必要であり、int32arrayは32bitより小さい場合に有効。


r18865 | asiva@google.com | 2013-02-22 10:24:57 +0900 (金, 22 2月 2013) | 3 lines
Move json, uri, utf and crypto libraries into the VM.
This should ensure that we would not need a patch per embedder for these libraries
in case somebody decides to patch these.
patch対象のクラスに、上記を追加。
準備のみで、ビルド方法を変更したのみ。
LoadScriptはUnreachable

r18859 | srdjan@google.com | 2013-02-22 07:24:42 +0900 (金, 22 2月 2013) | 2 lines
Recognize pattern (a << b) & c with c being a positive Smi and allow left shift to truncate the result.
オプション truncating_left_shift=true
OptimizeLeftShiftBitAndSmiOp()を追加
leftが0以上でなければやらない。
shift後のtempがsinle useだったら、AsSmiShiftLeftInstruction()
(a << b) & c を以下のように特殊化する。method chainingっぽく見えるのがおもしろい。
もしcがBinarySmi and_だったら、
a.<<(b).&(c) --> (Smi)(c) & (Mint)(a).<<(b)

x64の場合、
EmitSmiShiftLeft()
rightがconstant
shll valueが0以下かつtruncatingだったら、xorqで0初期化
上記のいずれかなら、deopt result is mint or exception
is_truncatingだったら、shlqのあとdeopt挿入
不要ならshlqのみ。

rightがnonconstant
leftがconstantでないと難しい。

rightもleftもconstantでない場合も、smi andするのでどうにかなる。
andするSmiに、checksmi挿入。
普通はoverflowしたらMintやBigintに一時的になるが、
無理やりshiftするだけでOK。

いあ、shll sarlしてoverflowしてたらdeoptか?

Math.randomが遅い問題も、そのうちand(mint)版が作成されて速くなるはず。
いあ、x64だと既に大分速くなっている???


r18848 | iposva@google.com | 2013-02-22 03:53:27 +0900 (金, 22 2月 2013) | 3 lines
  • Improve the message for NoSuchMethodErrors that are determined statically at compile time.
NoSuchMethodErrorsを実行時に投げる際に、
EncodeTypeやInvocationMirror型、例をあげると TopLevel, Static Getterのいずれかを投げる。

r18846 | asiva@google.com | 2013-02-22 03:43:44 +0900 (金, 22 2月 2013) | 2 lines
Add typed data interface to Dart API, this only changes the C++ API as dicussed in a previous email.
The dart code in the library has not been changed yet.
ByteArrayからTypedDataへ
全部名称変更。

r18844 | zra@google.com | 2013-02-22 03:36:34 +0900 (金, 22 2月 2013) | 2 lines
Adds ARM arm assembler tests.
ARM向けのUnittestが追加されている。
V8も見てみたけど、and_ は伝統みたい。 コメントで言及し難いからなのか。

r18830 | kmillikin@google.com | 2013-02-21 22:56:40 +0900 (木, 21 2月 2013) | 9 lines
Weaken a bogus assertion in use list verification.
It is allowed for a phi to refer to itself as input without violating properties of SSA form.
R=fschneider@google.com
assertの追加。
use->definition()->IsPhi()

r18827 | kmillikin@google.com | 2013-02-21 21:57:43 +0900 (木, 21 2月 2013) | 10 lines
Reapply "Change the SSA construction pass to also construct def-use chains."

This reapplies svn commit 18813 with a bug fix.
In the case of an inlined call whose value is not used,
the inliner hase inserted a use of the return value's definition, which must be removed.
R=vegorov@google.com

computeUseListの削除、verifyuselists()への置き替えがメイン。
(1) Value* input = phi->InputAt(0);
(2) phi->ReplaceUsesWith(input->definition());
(3) input->RemoveFromUseList();
(* phis)[phi_idx] = NULL;
phiが削除予定だから、inputからの依存を切りたいのか?これ全部依存切れるんじゃないのかな。。


r18826 | kmillikin@google.com | 2013-02-21 21:51:01 +0900 (木, 21 2月 2013) | 10 lines
Fix broken use lists in branch instructions.

BranchInstr::ReplaceWith is used in two different places that have different
expectations about the use lists of their argument.
Split it into two separate functions.
R=fschneider@google.com
BUG=dart:8657

setComparison()で置換処理を行うようになっている。
BranchInstr::ReplaceWith()

r18820 | sgjesse@google.com | 2013-02-21 20:58:11 +0900 (木, 21 2月 2013) | 7 lines
Merge IO v2 branch to bleeding edge
R=ager@google.com, ajohnsen@google.com, whesse@google.com
vm内は、 dart_api_impl.cc
ThrowAgrumentError()
主にruntime/binが多いかな。

r18818 | fschneider@google.com | 2013-02-21 20:35:19 +0900 (木, 21 2月 2013) | 2 lines
Inline ByteArray._setIndexed in the flow graph optimizer.
setIndexed系が、TryInlineByteArraySetIndexed()
すべてIntrinsicではなく、ICDataによるinliningに置き替えられた。
素晴らしい。
Intrinsicの使い方も考え物ですね。
オーバーヘッドが削減されて、2倍くらい速くなった。

r18797 | iposva@google.com | 2013-02-21 08:40:32 +0900 (木, 21 2月 2013) | 3 lines
  • Disable source_filter.gypi.
  • Adjust some more OS dependent files.
18786と同様。source_filter.gypi機能か。。

r18793 | vegorov@google.com | 2013-02-21 07:38:22 +0900 (木, 21 2月 2013) | 8 lines
Ignore definitions that do not have SSA index in FlowGraphAllocator::CollectRepresentations.
SSA building does not assign an index to definitions without uses and the rest of the allocator
can cope with this treating output produced by such an instruction as temporary value.
R=srdjan@google.com
BUG=dart:8655
ssa_temp_indexはデフォルト-1なんだっけ?

r18786 | iposva@google.com | 2013-02-21 06:17:38 +0900 (木, 21 2月 2013) | 4 lines
Prepare for removal of source_filter.gypi:
  • Guard OS-dependent source files with #if TARGET_OS_* in a similar
fashion to the architecture dependent sources.
if definedでTARGET_OSのガードを挿入。
こっちのほうがビルド速いのかね。

r18777 | vegorov@google.com | 2013-02-21 04:40:26 +0900 (木, 21 2月 2013) | 15 lines
Strengthen type assertions post-dominated by checks during type propagation.
If a type assertion for a value is post-dominated by a class
or smi check over the same value then raise the check over the assertion.
This allows to eliminate type assertions in the cases like:
AssertAssignable(x, int)
CheckSmi(x)
Currently post-domination is computed within a single block because post-dominators are not available.
R=fschneider@google.com
AssertAssignable()を挿入して、single block内でCheckSmiに先行してチェックする。
Deoptする前にassertを飛ばすためかな?
CheckClassやCheckSmiの直前にAssertAssignable()を挿入する。

r18769 | regis@google.com | 2013-02-21 02:28:35 +0900 (木, 21 2月 2013) | 3 lines
Implement ARM disassembler.
Implement ARM call patcher.
ObjectPool()をobject.hに追加。
vm/disassembler_arm.ccを追加。

r18767 | fschneider@google.com | 2013-02-21 02:11:41 +0900 (木, 21 2月 2013) | 5 lines
Remove optional CompileType parameter in the constructor of Value.
It is only needed in one place inside the Value class anyway,
so there is no reason to have it visible to the outside.
Value()の引数 typeを隠蔽。


r18750 | kmillikin@google.com | 2013-02-20 22:01:25 +0900 (水, 20 2月 2013) | 12 lines
Remove two more places where we computed use lists and add verification.
Remove computation of use lists after type propagation which was
unnecessary, and a call per inlined function after ApplyICData which was also unnecessary.
Add verification code after all compiler passes.
R=vegorov@google.com
UseListのメンテを置換済みであるため、VerifyUseLists()を追加した。

r18710 | hausner@google.com | 2013-02-20 03:26:55 +0900 (水, 20 2月 2013) | 6 lines
Fix static name resolution in mixing code In mixin code,
static names need to be looked up in the mixin class.
OTOH, in patch classes, we need to resolve static names in the class into with the code is patched.
I'm all for simplicity!
static methodはmixinされないが、mixinされた非static methodから呼び出すことはできるらしい。
謎だ。

r18692 | fschneider@google.com | 2013-02-20 00:25:47 +0900 (水, 20 2月 2013) | 5 lines
Copy propagated type info when inserting conversion.
Use propagated type info to improve smi-checking before
double operations (CheckEitherNonSmi)
CopyWithType()を追加し、insertingでreaching_typeをコピー。
callをspecializeする際に使って型情報を伝搬する。

r18676 | kmillikin@google.com | 2013-02-19 21:09:01 +0900 (火, 19 2月 2013) | 6 lines
Convert some compiler passes to preserve valid def-use chains.
Change the ApplyICData, ApplyClassIds, Canonicalize, and
SelectRepresentations passes to preserve valid use lists.
コンパイラ内部を大幅にリファクタリング。
ComputeUseListにより適時再計算するのを削除し、 各Passでpreserveするように修正。

基本的なメンテのパターンはこちら
use->RemoveFromUseList();
use->set_definition(converted);
converted->AddInputUse(use);

ReplaceCall()
push->ReplaceUsesWith(push->value()->definition());
push->UnuseAllInputs();
push->RemoveFromGraph();
call->ReplaceWith()

普通は、ReplaceCall()を呼んで内部でメンテ。

r18647 | fschneider@google.com | 2013-02-19 01:52:36 +0900 (火, 19 2月 2013) | 5 lines
Use compile type to improve stores to Int32List and Uint32List on ia32.
If the value stored is a smi, we just untag and store it.
There is no need to unbox it into an XMM register first.
Int32ArrayCidとUint32ArrayCidを、これまでMint固定で扱っていたのを、
ia32でもSmiとして扱う。
なんかこれはおかしい気がする。。Mintとして扱わないと、最上位bitが立っていた場合に困るのでは??
どうせia32もxmm使うし問題ないよねということ?

r18645 | vegorov@google.com | 2013-02-19 00:56:59 +0900 (火, 19 2月 2013) | 6 lines
Fix compilation error: enumeral and non-enumeral type in conditional expression.
R=ager@google.com
三項演算子がコンパイルエラーらしい。。普通のif-elseに。

r18641 | vegorov@google.com | 2013-02-19 00:45:55 +0900 (火, 19 2月 2013) | 8 lines
Trust declared type of the receiver to compute its initial compile type.
Fix a bug in the ToNullableCid which was leaving cid_ uninitialized when class has subclasses.
R=fschneider@google.com
GraphEntryInstrにParsedFunctionを持たせて、ComputeInitialType()で使用する。
dynamicか、constructorの型を返す。

r18624 | fschneider@google.com | 2013-02-18 22:18:28 +0900 (月, 18 2月 2013) | 7 lines
Optimize _getIndexed on byte arrays.
Until now we only optimize the [] operator, but don't have a
fast path for polymorphic invocations of [] on byte arrays.
I also added additional test coverage for Uint8Clamped list.
ByteArrayの特殊化がとうとうはじまったか、、ガタッ
ByteArrayの各種GetIndexedをRecognilizerに追加

r18604 | regis@google.com | 2013-02-16 08:55:31 +0900 (土, 16 2月 2013) | 5 lines
Add support for object pool that will be used on ARM and MIPS architectures.
Modify code patching infrastructure to accept code object,
which is necessary to get to the object pool containing patchable target addresses.
Modify assembler test infrastructure to provide associated code object.
本体のほうをARM/MIPS向けにメソッドを抽象化。
おもしろそうなのは、ARMのPP = R10を、Caches object pool pointerとして使うというところ。
code_patcherを修正し、PatchCallにおいて、object poolを参照すると。。
object poolは、ia32 x64では使用しない。
object poolを参照してのpatch callは未実装。

r18525 | srdjan@google.com | 2013-02-15 03:10:21 +0900 (金, 15 2月 2013) | 2 lines
Optimize left shift of a constant: compute max value of right that does not overflow into Mint/Bigint.
shift leftの最適化がとうとう来たか。。
right_rangeと、leftがconstantだった場合に実行。
leftがisSmiだった場合、MintやBigintへのoverflowへのguardを作成してshllを生成。
right_rangeから、guardが不要であると分かれば、shllのみ。

r18519 | fschneider@google.com | 2013-02-15 00:59:18 +0900 (金, 15 2月 2013) | 7 lines
Fix bug in optimizing string .length loads.
We're not allowed to hoist a .length load if the corresponding
class-check is not also hoisted out of a loop.
TEST=tests/language/optimized_string_charcodeat_test.dart
lengthのhoist抑止か。

r18517 | fschneider@google.com | 2013-02-14 21:59:51 +0900 (木, 14 2月 2013) | 4 lines
Optimize stores to ExternalUint8Array and ExternalUint8ClampedArray in the optimizer.
This CL adds support for these two array types to the StoreIndexed instruction.
ExternalUint8Array and ExternalUint8ClampedArray
external arrayの場合、RequiresRegisterをtempに使用する。

r18515 | fschneider@google.com | 2013-02-14 20:41:08 +0900 (木, 14 2月 2013) | 6 lines
Use writable register policy to avoid explicit restoring input register after untagging.
This CL produces more compact code if the writable input
register is the last use by avoiding unnecessary re-tagging.
In that case no extra temp generated by the register allocator.
LoadDoubleOrSmiToFpuを削除。
Re-tagの削除。可能な限りImmediateIndexに置換する。
Location::WritableRegister()とLocation::RequiresRegister()の導入。

r18495 | hausner@google.com | 2013-02-14 08:48:18 +0900 (木, 14 2月 2013) | 7 lines
Minor improvement in mixin application
Build list of functions and attach it to mixing application class on one call.
Takes care of a review comment by Siva.
TBR=asiva
finalizerの書式が揃ってなかった点を修正。
mixinclsee.each(cls) => cloned_funcs.Add(func.Clone(cls))
mixinclsee.each(cls) => cloned_fields.Add(field.Clone(cls))

r18493 | johnmccutchan@google.com | 2013-02-14 08:05:17 +0900 (木, 14 2月 2013) | 3 lines
SSE Assembler + Linux build fixes
大量追加!!!
xxxps系とmovupsを一式追加。

r18492 | srdjan@google.com | 2013-02-14 08:00:09 +0900 (木, 14 2月 2013) | 2 lines
The code size does not scale with architecture word size,
set code size cutoff limit to 200,000 bytes for all architectures
r18485 | srdjan@google.com | 2013-02-14 06:52:02 +0900 (木, 14 2月 2013) | 2 lines
Add flag to block optimizations of large implicit getters. Implicit getters have a 0 size in tokens,
therefore also check the size of unoptimized code to decide if a function is optimizable.
Print more data with --trace-compiler.
huge_method_cutoff_in_tokens=20000
huge_method_cutoff_in_code_size=200000 byte
上記を越えた場合、is_optimizable()がfalse返す。つまりFlowGraphOptimizerが走らない。

r18479 | hausner@google.com | 2013-02-14 06:08:15 +0900 (木, 14 2月 2013) | 6 lines
First stab at mixins in VM compiler
Things not yet supported:
  • Type parameters for super class and mixin class
  • super call limitation check
Object.hのClassに、mixin()やset_mixin()を追加。
ポイントとなるフィールドは、clone, owner, origin

mixinのtokenは、kWITHか
mixinにより、まずparse時のconstructorを解決する。
mixinされたクラスから、Class mixin_applicationを作成し、
AddImplicitConstructor(mixin_application)として取り込む。

その後、mixinはClassFinalizerのApplyMixinにより、
mixinclsee.each(cls) => cloned_funcs.Add(func.Clone(cls))
mixinclsee.each(cls) => cloned_fields.Add(field.Clone(cls))

r18464 | srdjan@google.com | 2013-02-14 03:44:27 +0900 (木, 14 2月 2013) | 2 lines
Fix allocation of array tables (use store barrier if needed, store values directly instead of via stack).
ArrayLiteralVarっていうSymbolが追加。
Arrayだからといって、Stackに全部つまなくなった。。
修正前は、for回して何回もpopqしていた。。
その対象になるのは、ArrayLiteralだけなのかな。

r18456 | vegorov@google.com | 2013-02-14 02:16:35 +0900 (木, 14 2月 2013) | 11 lines
Reapply r18377 it was reverted due to the unrelated bug it surfaced.
Remove SminessPropagator and FlowGraphTypePropagator and all associated infrastructure and fields.
Replace multiple fields (result_cid_, propagated_cid_, propagated_type_, reaching_cid_)
with a single field of type CompileType
which represents an element of type analysis lattice and incorporates information about:
value's nullability, concrete class id and abstract super type.
This ensures that propagated cid and type are always in sync and complement each other
Implement a new FlowGraphPropagator that propagates types over the CompileType-lattice.
R=fschneider@google.com
修正量が多い。。optimizerの処理をファイルとクラスに切り出したはず。
コメントの通りの修正のはずだけど、量が多すぎて妥当性が判断できない。
たしかに、各クラスごとにフィールドを持てば処理できるけれども、
おそらくベンチマークとって問題ないという判断なのだろう。。

r18443 | vegorov@google.com | 2013-02-13 23:14:05 +0900 (水, 13 2月 2013) | 6 lines
When canonicalizing branch on StrictCompare don't fuse comparisons
that can deoptimize or serve as pending deoptimization target for representation changes.
R=fschneider@google.com
return thisしてfuseしないケースを増加。
compがDeoptimizeできるときと、representationが異なる場合。

r18426 | iposva@google.com | 2013-02-13 10:13:02 +0900 (水, 13 2月 2013) | 2 lines
  • Make size of the stack red zone depend on word size.
4 -> kWordSize

r18412 | srdjan@google.com | 2013-02-13 08:34:12 +0900 (水, 13 2月 2013) | 2 lines
Reduce allocation of ArrayNode-s where a GrowableArray could be used instead.
ArrayNodeをGlorableArray<ArrayNode*>に置き替えかな?

r18402 | asiva@google.com | 2013-02-13 06:14:05 +0900 (水, 13 2月 2013) | 4 lines
Minor cleanup
  • added a field parsed_function to the parser
  • remove fields expression_temp_ and saved_current_context_
parsed_functionをフィールドに追加して、current_contextを保存するのに使っている。

r18367 | asiva@google.com | 2013-02-12 11:39:00 +0900 (火, 12 2月 2013) | 2 lines
Add snapshot size to the VM benchmarks suite.
coreとstandalone-coreをsnapshotして、そのsizeを計測するunittestを追加。

r18330 | asiva@google.com | 2013-02-12 04:48:32 +0900 (火, 12 2月 2013) | 3 lines
Provide implementations for Dart_ScalarListAcquireData & Dart_ScalarListReleaseData
apiのDart_ScalarListAcquireDataを実装。
ByteArrayによって既存のArrayへのViewを作るのだと思う。

r18318 | floitsch@google.com | 2013-02-12 02:59:52 +0900 (火, 12 2月 2013) | 6 lines
Allow ambiguous Expect and ExpectException imports.
This patch temporarily allows Expect to come from core and from any other library without
(I wanted to make the CL public reporting an error (or warning).
Once everyone (including co19) has migrated I will revert this CL.
ExpectとExpectExceptionがついた場合、importしない。

r18287 | iposva@google.com | 2013-02-09 08:27:50 +0900 (土, 09 2月 2013) | 2 lines
  • Remove redundant type parameters for internal data.
不要なTypeParameterを削除しただけ。

r18256 | fschneider@google.com | 2013-02-09 00:47:09 +0900 (土, 09 2月 2013) | 2 lines
Optimize branches in polymorphic equality operations.
equalityの処理の見直し。

r18235 | asiva@google.com | 2013-02-08 07:43:16 +0900 (金, 08 2月 2013) | 5 lines
Fix for issues 6080 -
  • Read the saved context from the entry frame when straddling across C++ frames
while iterating over a stack trace in the debugger.
 This ensures that the correct context is setup in the ActivationFrame structure in these scenarios
 (instead of the empty context).
  • Read the saved context from the caller's frame when iterating over a stack trace in the debugger.
The compiler saves the context in the caller frame before invoking closures,
 we read this saved context when iterating the stack trace.
word * -5に、SavedContextOffsetInEntryFrameを追加した。
current contextを保存するのだと。
stack_frameを変更するのは初なのでは?

r18232 | asiva@google.com | 2013-02-08 05:55:21 +0900 (金, 08 2月 2013) | 2 lines
Add unit tests which reliabily reproduces the error condition reported in Issue 6080
without the need for a specialized and inconsistent private environment.
test追加。

r18209 | kmillikin@google.com | 2013-02-07 18:42:36 +0900 (木, 07 2月 2013) | 4 lines
Change CSE, LICM, and range analysis to preserve use lists.
Change the common subexpression elimination, loop-invariant code motion,
and range analysis passes to maintain use lists.
UnuseAllInputs()を追加。削除前にUseをメンテするらしい。

r18200 | regis@google.com | 2013-02-07 09:55:47 +0900 (木, 07 2月 2013) | 4 lines
Generate first ARM assembler test and execute (simulate) it.
RFC: First draft showing how generated ARM code accesses GC'ed objects and
accesses patched call targets.
CanHoldLoadOffset()でいろいろ分岐している。
CanHold()
ああ、shifterで命令を畳み込めるかの判定か。。
全部assemblerの内部に隠蔽するのか。

kBreakpointSvcCodeを埋め込むのか。これはsimulatorで動かしてbreakさせるためか。
arm simulatorが動きそう。
unittestにarm simulatorを動かすコードが入っていて、起点はSimulator::Current()->Call()か
simulatorを介して、まずはunit testにarm assemblerの自動テストを追加していくと。

r18183 | fschneider@google.com | 2013-02-07 04:00:50 +0900 (木, 07 2月 2013) | 6 lines
Add optimized loads from ExternalUint8ClampedArrays.
The generated code is exactly the same as for ExternalUint8Array.
TEST=tests/standalone/byte_array_test.dart
ExternalUint8ClampedArrayの最適化を追加。

r18175 | fschneider@google.com | 2013-02-07 01:21:51 +0900 (木, 07 2月 2013) | 5 lines
Flip test condition when testing for fixed-length array length load.
This addresses additional comments to my previous CL:
ByteArrayBaseLengthもimmutableの仲間入り。

r18173 | fschneider@google.com | 2013-02-07 00:18:57 +0900 (木, 07 2月 2013) | 11 lines
Inline getters of byte array view in the optimized flow graph.
This CL provides inline IL code for the getters _getInt8, _getInt16, etc.
to speed up [] and byte array views.
The code uses the existing LoadIndexed instructions by passing a index
scale factor explicitly: For normal arrays loads, the scale factor is equal
to the element size. For byte array access, the scale factor is always 1.
I'm adding inlined setters in a separate CL.
ByteArrayのgetIntを高速化。
BuildByteArrayViewLoad() を追加。
どう高速化されるかというと、BinarySmiOpInstrに変換される。
あまり変わらないかも、、コードを整理しただけか。。
テストコードたくさん追加。

r18172 | floitsch@google.com | 2013-02-07 00:11:47 +0900 (木, 07 2月 2013) | 6 lines
Hide collection-dev library.
ライブラリ名の先頭に_をつける。

r18162 | asiva@google.com | 2013-02-06 10:45:56 +0900 (水, 06 2月 2013) | 2 lines
Minor cleanup of activation frame creation code.
Get the code object while iterating the frames as that is way faster than doing a code lookup later.
debugger ActivationFrameのCode::Lookupcode()を高速化か。

r18159 | iposva@google.com | 2013-02-06 09:29:48 +0900 (水, 06 2月 2013) | 4 lines
  • Add handling of private dart:_ libraries.
  • Make dart:collection-dev a private library by renaming it to dart:_collection-dev.
  • Predefine the URIs of dart: libraries as VM symbols.
_をつけるとprivate libraryか。
parserの修正。
library名をvm/symbols.hに定義。

r18158 | hausner@google.com | 2013-02-06 07:43:57 +0900 (水, 06 2月 2013) | 4 lines
Save 0.00001% memory
Release the functions and fields array after patching classes.
empty_array()を設定するようにしたらしい。canonical_tableを参照するだけか。

r18157 | asiva@google.com | 2013-02-06 05:42:33 +0900 (水, 06 2月 2013) | 2 lines
Rename the accessor functions saved_context_var and set_saved_context_var
to saved_entry_context_var and set_saved_entry_context_var
so that it matches the local variable name used.
This avoids confusing this with the saved_context_var variable which is used by try statements.
renameとリファクタリング。

r18155 | hausner@google.com | 2013-02-06 05:19:32 +0900 (水, 06 2月 2013) | 4 lines
Remember owner class of patch code
This is a step towards using PatchClass for mixins
PatchClassの引数が、ScriptからClassへ変更。
setScriptがset_source_classになっているなぁ。

r18075 | srdjan@google.com | 2013-02-05 05:29:58 +0900 (火, 05 2月 2013) | 2 lines
Use SAR for divident by a power-of two constant divisor.
SAR? アセンブラのSARだった。。
PowerOfTwoConstantか判定し、
BinarySmiOpInstrにおいて、TRUNCDIVの場合にsarを吐く。

r18055 | kmillikin@google.com | 2013-02-05 02:04:02 +0900 (火, 05 2月 2013) | 9 lines
Add a use list iterator that allows mutation of current.
Add Value::Iterator that supports removing the current use from the
underlying use list, including deleting it or moving it to another use list.
Use it in range analysis and representation selection.
R=fschneider@google.com
Valueクラスの中に、UseのIteratorを作成。
InsertConversionの引数を減らした。defをuse->definition()で代替。

r18048 | kmillikin@google.com | 2013-02-04 23:01:35 +0900 (月, 04 2月 2013) | 7 lines
Move recording of definition uses from the value to the definition.
It was weird that this method mutated an object that wasn't even mentioned in the call.
Also, change Definition::ReplaceUsesWith so that
it appends all at once instead of consing each individual use.
ReplaceUsesWith()で、useのlinked-listを更新する。

r18033 | regis@google.com | 2013-02-04 14:51:02 +0900 (月, 04 2月 2013) | 4 lines
Resubmit reverted r17962, but, for now, only report error about unfinalized
types if flag --error_on_malformed_type is specified.
Fix one more case of unfinalized signature type.
17962を参照。

r18018 | regis@google.com | 2013-02-02 09:18:37 +0900 (土, 02 2月 2013) | 2 lines
Resubmitting r18013.
r18013 | regis@google.com | 2013-02-02 08:43:33 +0900 (土, 02 2月 2013) | 3 lines
Cleanup api for isolate state checking.
This should avoid the breakage on Windows observed by reverted r17962.
CheckIsolateState()をリファクタリング

  • 最終更新:2013-02-27 22:05:14

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

認証パスワード