RevisionLog28000台

r28856 | fschneider@google.com | 2013-10-18 21:56:47 +0900 (金, 18 10月 2013) | 9 lines
VM: Fix bug in optimization of identical comparisons.

When the propagated type information of a value refers to a generic
type parameter, assume that it can be a number. In that case we can't eliminate the number check.
TBR=srdjan@google.com
MaybeNumber()において、isTypeParameter()追加

CanonicalizeStrictCompare()でチェックする。
numberでない場合、set_needs_check()


r28851 | fschneider@google.com | 2013-10-18 20:13:59 +0900 (金, 18 10月 2013) | 17 lines
Optimize identical-comparisons based on propagated type information.

If the propagated type allows, eliminate the check for numbers at
identical operations in optimized code.

The previous optimizaton was done before full type propagation was run
and was therefore not very effective.

Made flow-graph printing having no side-effects: calling Type() lazily

initializes the type_ and reaching_type_ fields of Value and Definition.
 Access fields directly when printing instead.

Also, fixed two random spelling mistakes.
R=srdjan@google.com
MayBeBoxableNumber()とMaybeNumber()を追加

CanonicalizeStrictCompare()
初期にmaybeでざっくり処理、set_needs_numer_check(false)

ApplyICData()でvisitする処理を、
後々のCanonicalizeで実行する。


r28827 | zra@google.com | 2013-10-18 06:29:57 +0900 (金, 18 10月 2013) | 10 lines
Adds special case in ARM cpu feature detection.

Qualcomm Krait CPUs in Nexus 4 and 7 misreport non-support
for integer division. This change checks the model string
reported by /proc/cpuinfo and enables integer division if
we are on one of these CPUs.
R=regis@google.com

Qualcomm Krait CPUがQCT APQ8064である場合、
/proc/cpuには記述されていないけれども、
integer_division_supported_ = true
に設定する。



r28815 | rmacnak@google.com | 2013-10-18 03:49:27 +0900 (金, 18 10月 2013) | 6 lines
Remove conflict between type parameter and method/field from typevariable_mirror_metadata_test.
Remove irregularity in metadata lookup naming that dealt with allow their co-existence.
MakeTypeParameterMetaName()
cname + paramでくっつける。


r28809 | asiva@google.com | 2013-10-18 02:49:45 +0900 (金, 18 10月 2013) | 5 lines
Fix issue 13942 - Dart_Error function invokes OS::VSNPrint with the "format" string
containing data derived from the string
R=iposva@google.com
Dart_Errorをconst char* errorに修正
OS::VSNPrintを使用しないようにして、DartUtilsのほうで呼び出す。



r28808 | hausner@google.com | 2013-10-18 02:39:08 +0900 (金, 18 10月 2013) | 15 lines
Check that class member names do not conflict with type parameters

Implement check that member names do not conflict with type
parameters. Simplify name checks in class namespace.
Mark typevariable_mirror_metadata_test as failing now that we
report the proper compile time errors. (The test expects no errors.)
Some co19 tests expect a name conflict between a setter X= and type
parameter X. This is still in flux from a language perspective. This
change list does not introduce an compile error for this case.

Fix for issue 13701.
R=srdjan@google.com

parser
CheckMemberNameConflict()を追加
問答無用でErrorMsgを投げる
処理の重複を取り除いたのかな。


r28803 | zra@google.com | 2013-10-18 00:08:59 +0900 (金, 18 10月 2013) | 12 lines
Fixes a bug in runtime call stub on arm and mips.

GC was failing to visit the last argument to
runtime calls because the stack frame iterator
expects the same layout in the runtime call
stub as with other frames. Using the stub entry
macro ensures that the last argument is in the expected place.
R=regis@google.com
stub_codeにおいて、
mips arm向けに修正

EnterStubFrame()
LeaveStubFrameAndReturn()
に置き換え



r28802 | fschneider@google.com | 2013-10-17 23:01:04 +0900 (木, 17 10月 2013) | 15 lines
Improve canonicalization of strict comparisons and bool negation.
This CL generalizes the existing optimization to handle all combinations

expr === true
expr !== true
expr === false
expr !== false

including lhs and rhs swapped. It also adds canonicalization of boolean negation.
R=kmillikin@google.com

CanonicalizeStrictCompare()を修正
visitする際の処理

StrictCompareInstr* compare
expr === true
expr !== true
expr === false
expr !== false
のいずれかを判定して結果を返す。


r28768 | rmacnak@google.com | 2013-10-17 09:16:34 +0900 (木, 17 10月 2013) | 7 lines
Generic instantiations of mixins and interfaces. Equality of type parameters.
R=regis@google.com
objectにDeclarationType()に追加

mirrorから呼び出すらしい。
bootstrap_natives.h に以下を追加
ClassMirror_interfaces_instantiated
ClassMirror_mixin_instantiated


r28759 | iposva@google.com | 2013-10-17 08:15:11 +0900 (木, 17 10月 2013) | 6 lines
  • Add more data collection to the scavenger.
  • Fix runtime/PRESUBMIT.py script.
R=asiva@google.com

scavengerのData Enumを修正
StoreBufferBlockEntriesを削除

下記を追加
StoreBufferVisited
kStoreBufferPointers
ToKBAfterStoreBuffer

Scavengerのコンストラクタを拡張
visited_count
handled_count
を追加して、heap RecordDataで記録するように修正



r28749 | srdjan@google.com | 2013-10-17 05:53:03 +0900 (木, 17 10月 2013) | 3 lines
Temporary disable string-interpolation constant folding until failures witj
    • optimization-counter-threshold=5 are resolved.
一時的に以下を無効化


r28741 | srdjan@google.com | 2013-10-17 03:12:08 +0900 (木, 17 10月 2013) | 6 lines
Add new style of string interpolation optimization: new nodes, working constant folding.
TODO: partial constant fold of incoming arguments.
R=kmillikin@google.com

ast
StringInterpolateNodeを追加

StringInterpolateInstrの中間表現を追加

EmitNativeCodeでは、
今のところStaticCallしているだけ。
CallFunction()で引いてきた関数
ResolveStatic でStringBase::Symbols::Interpolate()を引いてきて呼び出す。


visitor::VisitStringInterpolateNode
Optimizeでは、

IsNonConstantの場合、即return

組み込み関数化して、
vmの中でStringのarrayを構築して
compile時に結合する。


r28736 | asiva@google.com | 2013-10-17 02:40:07 +0900 (木, 17 10月 2013) | 7 lines
  • Rearrange bits in the bitfields to get better compaction, this reduces
initial snapshot size by about 500 bytes.
  • Fix initialization problem with redirecting factory bit
R=rmacnak@google.com, srdjan@google.com

objectのbitを整理した
並べ替えただけのように見えるけど。
bootstrap時のsnapshotのサイズが減ったらしいけど、

KindTagBitsは12 -> 15に増えたみたい。
redirecting factory bitを追加


r28723 | fschneider@google.com | 2013-10-16 22:07:58 +0900 (水, 16 10月 2013) | 16 lines
VM: Fix bug with evaluation order of static setter invocation.

This fixes the case for an assignment of the form
v=e
where v is unknown. The right-hand side of the assignment
has to be evaluated before throwing a NoSuchMethodError.

I moved the generation of the NoSuchMethodError out of
the parser to the flow-graph builder, where the right-hand side
argument is evaluated before throwing.

TEST=co19/Language/12_Expressions/18_Assignment_A01_t07
R=hausner@google.com
parserのbugらしい。
ThrowNoSuchMethodError -> StaticGetterNode


r28712 | lrn@google.com | 2013-10-16 18:02:46 +0900 (水, 16 10月 2013) | 5 lines
Change "typedef" to "class" in core library and related tests.
R=floitsch@google.com, johnniwinther@google.com
typedefからclassに変更


r28698 | regis@google.com | 2013-10-16 09:38:55 +0900 (水, 16 10月 2013) | 7 lines
Throw a dynamic type error instead of a CastError in a type cast with a
malbounded type (fix issue 14123).
Regression test is not checked in yet (see https://codereview.chromium.org/27378002/)
R=rmacnak@google.com

IsMalformed IsMalbounded
のifのチェックを削除



r28695 | rmacnak@google.com | 2013-10-16 09:15:10 +0900 (水, 16 10月 2013) | 6 lines
Do not hide membership of implementation classes in dart:core.
R=ahe@google.com, asiva@google.com, gbracha@google.com
mirrorから呼び出す、IsImplementationClassId()を削除



r28684 | regis@google.com | 2013-10-16 06:24:44 +0900 (水, 16 10月 2013) | 7 lines
Allow an interface to be (mal)bounded (fix issue 14118).
Regression test is pending, but not checked in yet
R=rmacnak@google.com
Type -> AbstractType


r28671 | turnidge@google.com | 2013-10-16 03:35:07 +0900 (水, 16 10月 2013) | 10 lines
When a value has been optimized away by the compiler, set its value to
"<optimized out>". This will make it less confusing for people using the debugger.

  • Added constant_dead() to the flow graph.
  • Added Symbols::OptimizedOut().
R=fschneider@google.com

constant_dead_ ってのを用意。Symbols::OptimizedOut()

RenameRecursive()
の中で設定している。
constant_nullと区別して、OptimizedOutを設定する。


r28670 | regis@google.com | 2013-10-16 03:31:31 +0900 (水, 16 10月 2013) | 6 lines
Cache number of type arguments in class object instead of recalculating it.
Reduce size of num_native_fields field in class object.
R=asiva@google.com
objectからnum_native_fieldsを省略


r28669 | turnidge@google.com | 2013-10-16 03:17:36 +0900 (水, 16 10月 2013) | 5 lines
Allow access to context variables in optimized/inlined frames.
R=asiva@google.com
ActiveFrame()の引数に deopt_frameとdeopt_frame_offsetを追加


r28652 | hausner@google.com | 2013-10-16 01:13:02 +0900 (水, 16 10月 2013) | 9 lines
Implement new mixin application syntax

Implment the class X = S with M syntax, add warning on deprecated
typedef syntax. Also convert a handful of tests. More tests to
be converted subsequently.
R=regis@google.com
オプション warn_mixin_typedefを追加。
syntaxが変わったらしい。。

mixinまわりのtypedefが変わったと。


r28646 | fschneider@google.com | 2013-10-16 00:15:47 +0900 (水, 16 10月 2013) | 10 lines
VM: Fix bug in canonicalization of identical in the optimizing compiler.

Make sure that BranchInstr::Canonicalize does not mutate it's input before
all conditions for the optimzations to take place are met. Otherwise, bailing out
leaves the affected comparison instruction in an invalid state.

R=srdjan@google.com
CanonicalizeStrictCompare()を追加
後のrevでいろいろ追加される。


r28620 | srdjan@google.com | 2013-10-15 08:32:00 +0900 (火, 15 10月 2013) | 3 lines
Forgot to submit the cleanup.
comment


r28619 | srdjan@google.com | 2013-10-15 08:21:52 +0900 (火, 15 10月 2013) | 5 lines
Cleanups, refactoring in anticipation of new string interpolation nodes.
Removed unnecessary code.
R=hausner@google.com
string intepolateをrecognizerから削除


r28614 | srdjan@google.com | 2013-10-15 06:47:39 +0900 (火, 15 10月 2013) | 5 lines
Add back native tracing to optimized code.
Tracing natives is an important part of perfromance analysis and should therefore be available
in optiumized VM as well. No performance implications are expected.
R=asiva@google.com
FLAG_trace_natives


r28594 | turnidge@google.com | 2013-10-15 02:35:35 +0900 (火, 15 10月 2013) | 8 lines
Fix a typo in debugger.cc that was causing variable bounds checking to
be done on the frame context instead of the variable's context.
Update the unit test.

R=hausner@google.com


r28578 | fschneider@google.com | 2013-10-14 21:21:40 +0900 (月, 14 10月 2013) | 11 lines
Improve --optimization-filter to accept a comma-separated list of strings.

Only functions where the fully-qualified name contains one of the strings supplied
as substring will be optimized.
This helps tracking down bugs in the optimizing compiler that occur when a
large number of optimized functions are involved.

R=kmillikin@google.com
codegenにフィルターを追加
FLAG_optimization_filter の機能ね。



r28551 | rmacnak@google.com | 2013-10-12 05:56:14 +0900 (土, 12 10月 2013) | 7 lines
Add proper API for creating private symbols wrt a library.
R=ahe@google.com, asiva@google.com, gbracha@google.com


r28539 | regis@google.com | 2013-10-12 03:36:25 +0900 (土, 12 10月 2013) | 8 lines
Overlap type arguments of a type with the type arguments of its super type
when possible. Overlapping may be partial.
Add flag --overlap-type-arguments controlling this optimization for debugging
and performance measurement (default is true).
R=hausner@google.com


r28538 | turnidge@google.com | 2013-10-12 03:15:32 +0900 (土, 12 10月 2013) | 8 lines
Add unit tests to cover stack inspect in the presence of closure calls
for both optimized and non-optimized code.
Fix an assert which was broken.
R=iposva@google.com


r28521 | fschneider@google.com | 2013-10-12 00:44:36 +0900 (土, 12 10月 2013) | 13 lines
VM: Fix performance regression introduced by r28408.

Change the AST for static consts so that they don't
end up translated as calls, and so that we don't rely
on the inliner to fold them away).

Instead I generate a LoadStatic AST node that will be
constant folded in the flow graph builder.

R=kmillikin@google.com

constはLoadStaticFieldNodeが生成されて、
ConstantInstrに畳み込まれるらしい。



r28495 | rmacnak@google.com | 2013-10-11 10:51:11 +0900 (金, 11 10月 2013) | 7 lines
Substitution for type variables in mirrors on instantiated generics.

R=gbracha@google.com, regis@google.com


r28488 | regis@google.com | 2013-10-11 08:30:42 +0900 (金, 11 10月 2013) | 6 lines
Disallow extending a malformed type (issue 13940).
Add language test and update dart2js status (issue 13994 filed).

R=rmacnak@google.com




r28474 | regis@google.com | 2013-10-11 05:45:09 +0900 (金, 11 10月 2013) | 5 lines
Allow malbounded literal types (fix issue 13952).
R=rmacnak@google.com


r28470 | turnidge@google.com | 2013-10-11 04:00:31 +0900 (金, 11 10月 2013) | 3 lines
Fix checked mode failure


r28469 | turnidge@google.com | 2013-10-11 03:22:56 +0900 (金, 11 10月 2013) | 3 lines
Fix compiler error that wasn't showing up on my platform.


r28468 | turnidge@google.com | 2013-10-11 03:15:53 +0900 (金, 11 10月 2013) | 25 lines
Allow the debugger to inspect local variables from optimized and
inlined frames.

      • ---------

Most remaining deoptimization code from the code generator moves to
DeoptContext. This allows the code to be reused by the debugger.
There is some rework of the code along the way. The remaining code in
the code generator is simpler.

Implement the ability to deopt a frame to an Array. Each inlined
frame accesses its locals from this array at some fixed offset.

Refactor the Debugger::CollectStackTrace code. New code is int
Debugger::CollectStackTraceNew. There is a flag --use_new_stacktrace
which can be used to revert back to the old version. I intend to
remove this flag shortly, after any dust clears.

Added a unit test which makes sure that we can inspect locals from
optimized and inlined frames. Tested this code in the dart editor debugger as well.
R=iposva@google.com, srdjan@google.com

修正量が多い。


r28467 | johnmccutchan@google.com | 2013-10-11 02:43:50 +0900 (金, 11 10月 2013) | 5 lines
Forward stores to loads for SIMD arrays
R=srdjan@google.com
Float32x4もforward storesに追加


r28454 | fschneider@google.com | 2013-10-10 23:28:01 +0900 (木, 10 10月 2013) | 10 lines
Bump inlining size threshold.
This is to compensate for the increase in AST/flow graph size
after changing the way access to static final consts is compiled in r28408.

R=srdjan@google.com
inlining_size_threshold=25に修正



r28423 | hausner@google.com | 2013-10-10 07:05:27 +0900 (木, 10 10月 2013) | 5 lines
Optimize away empty string sections in string interpolation
R=srdjan@google.com


r28416 | rmacnak@google.com | 2013-10-10 05:40:11 +0900 (木, 10 10月 2013) | 6 lines
Implement constructor kinds in the VM mirrors.
R=asiva@google.com, hausner@google.com


r28408 | hausner@google.com | 2013-10-10 02:33:10 +0900 (木, 10 10月 2013) | 12 lines
Final variables induce a setter that throws NSME
Clean up handling of const and final variables. They induce a
setter that throws a NSME, rather than a compile-time error.

Delay the AST conversion of loading a const field into loading
the literal value. The conversion is now done when we know
that the load in on the right hand side of an expression.
R=srdjan@google.com

performance regression

astでIsPotentiallyConstってが。。

static constとstatic finalはinitializerを持つべき。


r28391 | asiva@google.com | 2013-10-09 08:10:39 +0900 (水, 09 10月 2013) | 12 lines
Fix snapshot generation to ensure that the snapshot does not contain
the instance size of internal VM defined classes. These classes have
non word fields and the instance_size_in_words will not be correct
across different platforms.

This fixes the Dartium for Android build issue (snapshot is generated
on the host which is 64 bit and loaded later into a 32 bit process on Android).

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


r28378 | zra@google.com | 2013-10-09 05:42:43 +0900 (水, 09 10月 2013) | 8 lines
Use the methods recommended by ARM to flush ICache.

This allows us to remove selecting different versions of
inline assembly depending on ABI, thumb, etc. in our code.
R=regis@google.com
cpu_arm.ccの修正
linuxの場合、__clear_cache
Androidの場合、cacheflush
それ以外は未サポート


r28372 | srdjan@google.com | 2013-10-09 03:54:00 +0900 (水, 09 10月 2013) | 5 lines
Last cleanup int -> intptr_t. Also removed a hack (boolean is not an integer).
R=asiva@google.com


r28367 | asiva@google.com | 2013-10-09 02:09:01 +0900 (水, 09 10月 2013) | 5 lines
Use HasTypeArguments instead of first computing NumTypeArguments();
R=regis@google.com


r28366 | asiva@google.com | 2013-10-09 01:42:30 +0900 (水, 09 10月 2013) | 8 lines
  • Dart_ObjectIsType was allowing classes as parameter, changed it to only
allow types.
  • Return canonical Dart_Null, Dart_True and Dart_False handles instead of
creating a new handle
R=srdjan@google.com


r28365 | zra@google.com | 2013-10-09 01:08:48 +0900 (水, 09 10月 2013) | 5 lines
Adds Android as an allowed OS for ARM build.
R=regis@google.com

!defined(ANDROID) を削除


r28349 | rmacnak@google.com | 2013-10-08 10:08:59 +0900 (火, 08 10月 2013) | 6 lines
Correctly report the type of initializing formals declared
without an explicit type to be the type of the corresponding field.
R=gbracha@google.com, hausner@google.com



r28324 | srdjan@google.com | 2013-10-08 05:19:37 +0900 (火, 08 10月 2013) | 5 lines
Cleanups: int -> intptr_t for "array" lengths, memory sizes.
R=asiva@google.com


r28319 | regis@google.com | 2013-10-08 03:38:31 +0900 (火, 08 10月 2013) | 5 lines
Rewrite Class::HasTypeArguments() for efficiency.
R=asiva@google.com


r28289 | regis@google.com | 2013-10-05 07:56:53 +0900 (土, 05 10月 2013) | 6 lines
It is not an error anymore to leave an instance final field uninitialized.
Fix issues 11054 and 12157.
R=srdjan@google.com

CheckFieldsInitialized()
に置き換えて、
is_finalの場合にerror吐いていたのを削除。


r28286 | srdjan@google.com | 2013-10-05 07:08:55 +0900 (土, 05 10月 2013) | 5 lines
Fix runtimeType for strings, integers and double: return their interface type.
R=asiva@google.com
bootstrap_nativesに
InstanceMirror_computeTyeを追加
mirrorの修正


r28282 | iposva@google.com | 2013-10-05 05:50:16 +0900 (土, 05 10月 2013) | 9 lines
  • Harden coverage generation, by not attempting to compile
un-compilable functions.
  • Only register closure functions in the class when they
have been properly setup.
  • Make sure to compile closure functions when calling CompileAll.
R=hausner@google.com
builderに
AddClosureFunction()
を追加

CompileAllFunctions()
において、cls内のclosures()を取得して、CompileFunction()


r28276 | asiva@google.com | 2013-10-05 05:00:48 +0900 (土, 05 10月 2013) | 6 lines
Add a new method Dart_InvokeConstructor to allow invocation of generative
constructors on an object that has already been allocated using Dart_Allocate.
R=regis@google.com
dart_apiに追加
Dart_InvokeConstructor()


r28275 | srdjan@google.com | 2013-10-05 04:43:18 +0900 (土, 05 10月 2013) | 5 lines
Fix issue 13474. Simplify graph builder for Boolean operators AND, OR:
do not optimize code when the result of the Boolean operator is not used.
R=kmillikin@google.com
VisitBinaryOpNode()において、
FLAG_enable_type_checks
node->kind()== Token::kAND
のケースを追加


r28257 | fschneider@google.com | 2013-10-04 18:51:27 +0900 (金, 04 10月 2013) | 9 lines
Fix bug in inlining of []= operators.
When inserting the StoreIndexedInstruction, it needs the environment of the call attached to it.
R=kmillikin@google.com
NULL -> call->env()



r28248 | asiva@google.com | 2013-10-04 07:17:48 +0900 (金, 04 10月 2013) | 10 lines
Fix for 12312 (Dartium crash when reloading after running tests).
Add framework for Dart_Cleanup which will cleanup stuff on exit.
Ideally the VM isolate should be shutdown in Dart_Terminate but we don't
seem to have a clean thread pool shutdown as a result of which there are racing isolates.
R=iposva@google.com
Dart::Cleanup()
CodeObservers::DeleteAll(); をcleanupに移動


r28235 | regis@google.com | 2013-10-04 03:32:09 +0900 (金, 04 10月 2013) | 6 lines
Skip AssertAssignable in code generator if optimizer could establish that
destination type is dynamic or Object (issue 13795).
R=srdjan@google.com
new_dst_typeがIsMalformed() IsObjectType() Malbounded()
などなどの場合に、definitionを返す。


r28234 | hausner@google.com | 2013-10-04 03:17:16 +0900 (金, 04 10月 2013) | 9 lines
Compile error on const instance variables
Another little step towards full spec compliance.
Issue 11051
R=srdjan@google.com
parser
ParseFieldDefinition()において、
!has_static && has_const
の場合にエラー出力



r28229 | rmacnak@google.com | 2013-10-04 01:38:19 +0900 (金, 04 10月 2013) | 5 lines
Make the implementations of InstanceMirror.hashCode use dart:core's identityHashCode.
R=ahe@google.com, lrn@google.com
bootstrap_natives
InstanceMirror_identityHashを削除
mirrorの修正


r28202 | fschneider@google.com | 2013-10-03 18:43:50 +0900 (木, 03 10月 2013) | 9 lines
Polymorphic inlining for []= operators.

This CL allows the inliner to do polymorphic inlining of recognized
[]= operators. Before, only monomorphic calls were handled in the optimizer.
R=srdjan@google.com
[]=をpolymorphic inliningの対称に加えた
optimizerの修正量が多い。
以前は[]=を個別にoptimizeしていたの。


r28190 | iposva@google.com | 2013-10-03 11:37:32 +0900 (木, 03 10月 2013) | 4 lines
Fix build:
  • Update Symbol name.
Symbols::_List()に置換


r28189 | iposva@google.com | 2013-10-03 09:15:14 +0900 (木, 03 10月 2013) | 8 lines
  • Rename arrays to lists:
_ObjectArray -> _List
 _GrowableObjectArray -> _GrowableList
 _ImmutableArray -> _ImmutableList
R=srdjan@google.com
ObjectArray -> List
メソッドの名称を変更
libの下もいろいろsymbolを変更してるみたい。


r28182 | hausner@google.com | 2013-10-03 06:08:24 +0900 (木, 03 10月 2013) | 7 lines
Add type check to const conditional expression evaluation
issue 13746
R=srdjan@google.com
EvalConstExprはBoolである必要がある。


r28180 | iposva@google.com | 2013-10-03 05:52:15 +0900 (木, 03 10月 2013) | 5 lines
  • Fix typos and add comments.
R=srdjan@google.com
commentのみ。


r28176 | srdjan@google.com | 2013-10-03 03:48:07 +0900 (木, 03 10月 2013) | 3 lines
Disable string interpolation optimization until fixed.
無理やりreturn挿入してます。。


r28175 | srdjan@google.com | 2013-10-03 02:49:14 +0900 (木, 03 10月 2013) | 5 lines
Optimize string interpolation by running it at compile time if all inputs are constant.
This is done during constant propagation, however,
the argument construction instructions must be removed manually.
It is unclear how safe it is to modify graph during constant propagation.
R=kmillikin@google.com
_interpolateを最適化

VisitStaticCallの際に
ConstantなStringの最適化を行う。



r28167 | johnmccutchan@google.com | 2013-10-03 00:57:31 +0900 (木, 03 10月 2013) | 6 lines
Fix GuardFieldInstr on IA32
R=srdjan@google.com
field_length -> Smi::RawValue(field_length)


r28159 | fschneider@google.com | 2013-10-02 22:27:55 +0900 (水, 02 10月 2013) | 14 lines
Bug fix in load elimination, constant propagation for LoadClassId.

Handle LoadClassId in constant propagation. This helps with eliminating
unreachable code after polymorphic inlining. It exposed a bug which is
also fixed in this CL.

Redefinitions of values have to be considered for load/store forwarding:
Loads/stores to an object defined by a RedefinitionInstr (inserted by
polymorphic inlining) must be treated properly as loads/stores to the original object.
R=kmillikin@google.com
VisitLoadClassId()を修正
kDynamicなケースを考慮

not dynamic
dynamic and constant
dynamic



r28158 | bak@google.com | 2013-10-02 22:01:56 +0900 (水, 02 10月 2013) | 8 lines
  • Eliminated the excessive prefixing in the renamer of dart2dart.
  • Increased a table size from 128 to 1024. Used in the parser for token compression.
Startup is now twice as fast for app that has been through dart2dart.
 (this is a temporary fix for issue 13747)
R=kasperl@google.com
kTableSize 128 -> 1024


r28135 | jacobr@google.com | 2013-10-02 08:48:45 +0900 (水, 02 10月 2013) | 6 lines
Respond to Ivan's code review comments from previous TBR cl.
R=iposva@google.com
New() -> raw(Symbols::



r28131 | hausner@google.com | 2013-10-02 08:00:08 +0900 (水, 02 10月 2013) | 7 lines
Support compile time constant conditional expressions

Per latest spec (section 12.1, 0.61 draft)
R=regis@google.com
astに追加
IsPotentiallyConst()
EvalconstExpr()



r28112 | turnidge@google.com | 2013-10-02 04:34:12 +0900 (水, 02 10月 2013) | 16 lines
Refactor some deoptimization code.

Primarily this change moves deoptimization state/code out of Isolate
and into DeoptContext (formerly DeoptimizationContext). The lifetime
of DeoptizationContext changes to survive through the entire
deoptimization process.

Some minor renaming. DeoptizationContext -> DeoptContext to make it
consistent with DeoptInstr and to save my wrists.

New files deferred_object.{cc,h} contain a bunch of the stuff lifted from isolate.{cc,h}.
R=fschneider@google.com, srdjan@google.com

deferred_objectsを管理するファイルを新規追加
isolateから移動。

DeferredSlot
DeferredDouble
DeferredMint
DeferredFloatxxx



r28109 | srdjan@google.com | 2013-10-02 03:48:37 +0900 (水, 02 10月 2013) | 5 lines
Factor out throwing of argument error.
R=asiva@google.com


r28107 | regis@google.com | 2013-10-02 03:26:05 +0900 (水, 02 10月 2013) | 7 lines
Do not share type arguments of mixin types, but clone them to avoid finalization
errors when cycles are involved (issue 13688).
Add regression test.
R=hausner@google.com



r28106 | rmacnak@google.com | 2013-10-02 03:23:24 +0900 (水, 02 10月 2013) | 7 lines
Make ClassMirror.newInstance deal with reordered etc type arguments for redirecting factories.

R=regis@google.com


r28104 | hausner@google.com | 2013-10-02 02:22:39 +0900 (水, 02 10月 2013) | 7 lines
Disallow double in case clauses and const map literal keys
Implements the latest Spec decisions and clarifications.
R=srdjan@google.com


r28102 | srdjan@google.com | 2013-10-02 01:48:12 +0900 (水, 02 10月 2013) | 5 lines
Improve performance of string buffer by modifying concatAll native to allow growable array
and an interval. Eliminate unnecessary check for String elements in release mode.
R=asiva@google.com
concatの引数にstart,endを追加


r28087 | kmillikin@google.com | 2013-10-01 20:17:44 +0900 (火, 01 10月 2013) | 6 lines
x64: Use a short encoding of addq and subq for 32-bit immediates.
R=fschneider@google.com



r28085 | kmillikin@google.com | 2013-10-01 19:22:47 +0900 (火, 01 10月 2013) | 11 lines
Pattern match on generated code to find edge counters.

In unoptimized code, use platform-specific pattern matching on generated
code to find edge counter arrays. Previously we searched pointer offsets,
but that does not work on platforms that encode the edge counters as indexes
into an object pool (i.e., x64, ARM, MIPS).
R=fschneider@google.com, zra@google.com

InstructionPatternクラスを新規追加
したのは、mipsとarm

code_patcherの各アーキテクチャにEdgeCounterを追加
EmitInstructionPrologueをアーキ共通処理に変更

26773で新規追加されたものだが、
TargetEntryInstrとGotoInstrのEmitNativeCodeにcounter incrを埋め込んでいた。

EmitEdgeCounter()にくくりだして、処理を共通にした。
EdgeCounterはEAXでcounterのoffsetを拾って、add 1するのみ。


r28084 | fschneider@google.com | 2013-10-01 19:10:50 +0900 (火, 01 10月 2013) | 14 lines
Dart VM: Simplify code generation for equality operators.

By inserting the necessary checks for null inside the callee
at the AST level, the code generation of == operations can be greatly simplified.

This is a performance-neutral change and a step for allowing
generic inlining of arbitrary == methods. So far we could only
inline them for a common set of types in the flow graph optimizer.

R=srdjan@google.com
EqualityWithNullArgをstubから削除
GenerateEqualityWithNullArgStub()
stubを削除。

IRで行うように修正した。
この後いろいろと最適化されているのだと思う。



r28076 | jacobr@google.com | 2013-10-01 09:45:13 +0900 (火, 01 10月 2013) | 5 lines
TBR: fix build break


r28075 | jacobr@google.com | 2013-10-01 09:27:50 +0900 (火, 01 10月 2013) | 5 lines
TBR: fix build break


r28073 | jacobr@google.com | 2013-10-01 09:08:01 +0900 (火, 01 10月 2013) | 6 lines
Fix for issue where external one byte strings cannot be escaped.
This occured in practice when requesting all library names for a Polymer.dart example
The likely reason why the issue occurs in this case
but not others is that some of the libraries are generated using data urls.
Added some tests for EscapeSpecialCharacters as it did not have any tests.
R=hausner@google.com
EscapeSpecialCharacters()を追加


r28069 | zra@google.com | 2013-10-01 07:11:24 +0900 (火, 01 10月 2013) | 5 lines
Fixed x64 assembler tests that load large immediates.
R=asiva@google.com


r28067 | zra@google.com | 2013-10-01 05:19:23 +0900 (火, 01 10月 2013) | 5 lines
Eliminates more large immediates from x64 code.
R=fschneider@google.com



r28066 | zra@google.com | 2013-10-01 05:17:48 +0900 (火, 01 10月 2013) | 9 lines
Adds the BreakpointRuntime stub to ARM and MIPS.
Also:
  • Makes some stub calls patachable.
  • Updates pkg.status for an unrelated failing test.

R=regis@google.com


r28064 | hausner@google.com | 2013-10-01 03:49:32 +0900 (火, 01 10月 2013) | 9 lines
Fix expression evaluation in library context
  • Use correct source for patch functions when class
finalizer reports error
  • Reinstate support for class in Dart_EvaluateExpr
R=regis@google.com



r28052 | fschneider@google.com | 2013-09-30 23:29:44 +0900 (月, 30 9月 2013) | 5 lines
Revert r28050 due to crashes with --optimization-counter-threshold=5.
TBR=kmillikin@google.com
r28050 | fschneider@google.com | 2013-09-30 21:41:28 +0900 (月, 30 9月 2013) | 20 lines
Optimize conditional branches that have same true/false targets.

Branches that have the same true/false target, or where both
target blocks reach the same common join block via empty blocks
can be replaced by a goto to the common join block.

In code like this

var a = unknown();
var b = null;
if (a == null | | b == null) {
...
}

it eliminates the test (a == null) if b is known to be null. Until now,
the compiler could only eliminate the test for b, if a was known.

R=kmillikin@google.com

EliminateRedundantBranches()
ってのを追加
OptimizeBranches()で実行

true thenとfalse thenで同じbbに飛ぶ場合に冗長と見直して削除する。


r28032 | asiva@google.com | 2013-09-28 08:50:13 +0900 (土, 28 9月 2013) | 4 lines
Rename NativeReceiver to NativeArg0 as this method is used not necessarily
to access the receiver in dartium. It is used to access the first argument.



r28030 | mlippautz@google.com | 2013-09-28 08:22:49 +0900 (土, 28 9月 2013) | 19 lines
Improve code coverage generation.
  • Remove function name from output.
  • Remove column from output (side effect: We can use fast version of
GetTokenLocation())
  • Insert HANDLESCOPES
  • Fold source file entries where easily possible, i.e., fold consecutive entries
created by functions in the same source file.
  • Change format to

[{
"source": "...",
 "hits": [<line>,<hitcount>, ...]
}, ... ]
R=iposva@google.com
covorageを修正

CompileAndAdd()
JSONArray&を引数に設定

kIcCallとkUnoptStaticCall
だった場合に
AddValue(line) aggregateCount()するらしい。

line,col,countから修正


r28028 | asiva@google.com | 2013-09-28 07:22:23 +0900 (土, 28 9月 2013) | 7 lines
  • Add special access for receiver as it is a frequently used operation
  • Merge closure/instance function bitfields into one bitfield to simplify access to arguments.
R=regis@google.com


r28026 | srdjan@google.com | 2013-09-28 06:00:59 +0900 (土, 28 9月 2013) | 5 lines
Add a is_recognized bit to function kind field.
Improves performance of method recognizer and thus the compilation speed.
R=asiva@google.com

kRecognizedBitを追加
bitを参照して即判定できるようにした。


r28017 | asiva@google.com | 2013-09-28 01:55:20 +0900 (土, 28 9月 2013) | 5 lines
Fix 13594.
R=iposva@google.com



r28015 | hausner@google.com | 2013-09-28 01:40:33 +0900 (土, 28 9月 2013) | 5 lines
Slight optimization of case clause type checks
Address review comment.


r28000 | fschneider@google.com | 2013-09-27 19:27:47 +0900 (金, 27 9月 2013) | 11 lines
Bug fix and cleanup of inlining of recognized [] methods.

1. Fix a bug with polymorphic inlining of [] on platforms that
 don't support inlined SIMD ops (e.g. MIPS),
  or unboxed int32/uint32. (ia32 with SSE <4.1).

2. Cleanup of duplicate code.
R=kmillikin@google.com

  • 最終更新:2013-10-20 04:30:53

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

認証パスワード