RevisionLog30000台

r30996 | turnidge@google.com | 2013-12-10 04:47:23 +0900 (火, 10 12月 2013) | 44 lines
Add Instance::ToUserCString.

      • --

Often ToCString returns a representation which would be weighty or
unsightly to users. Instance::ToUserCString tries to return a
representation that will be more familiar to end users.

ToUserCString will be used in the vmservice to produce interesting
instance preview strings w/o calling toString. No doubt we will find
other uses for it too.

For example, strings are represented more as they would be in a user
program, with quotes and escapes: ("this\nis\ta\n\ntest") instead of (this is a test).

I intend to add better representations for short lists and maps
later, e.g. ([1,2]) instead of (Instance(length:2) of '_GrowableList').
I've added some tests to track current behavior.

Fix a problem where the vm internal names for private classes were
leaking out through ToCString. This is problematic because Dart's
default toString relies on ToCString (which surprised me). This fix
will be user-visible and, darn it, it's the right thing to do. For
example, before toString (in Dart) might yield:

Instance of '_MyPrivateClass@43df89GARBAGE4389'

Now it will yield:

Instance of '_MyPrivateClass'

(as an aside, do those single-quotes around the class name add any
meaning here?)

Massage the output of ToString for GrowableObjectArray to be more
consistent with other instance ToString output. This should not be user
visible, as lists define a reasonable toString.

R=johnmccutchan@google.com
UserCStringをObjectクラスに追加。maxLen = 40
ToUserCString, EscapedString関数を追加
まだどこで使うとかはない。



r30970 | hausner@google.com | 2013-12-07 07:06:15 +0900 (土, 07 12月 2013) | 8 lines
Fix source location of mixins in stack trace

We need to use the origin library, not the owner library,
for the source location of functions. This fixes issue 15185.
R=turnidge@google.com



r30909 | hausner@google.com | 2013-12-06 04:15:00 +0900 (金, 06 12月 2013) | 9 lines
Fix assignable syntax analysis

My previous change has a bug in it that I didn’t trip over
because I ran test with a version that masked the assertion with a compilation error.
R=srdjan@google.com



r30904 | hausner@google.com | 2013-12-06 03:15:21 +0900 (金, 06 12月 2013) | 18 lines
Detect illegal assignable expressions

The AST cannot distinguish between (x) and x. Adding a check
to the VM compiler that detects syntactically illegal assignments
like (x) = 0. The existing checks only analyze the AST so we
didn’t detect some illegal cases.

Looking at the source to detect syntactically illegal left hand
expressions is a bit ugly because we can’t easily look at
previous tokens. This change rewinds the token iterator a few
positions and then moves forward to check whether the last token
of the expression is an identifier or a closing bracket ].

Added new test. We did not have a single test case for this :)
R=regis@google.com
IsLegalAssignableSyntax()を追加
ErrorMsgを出力する。


r30887 | fschneider@google.com | 2013-12-05 20:17:06 +0900 (木, 05 12月 2013) | 10 lines
Small cleanup and more test coverage for guarded fields.
Some cases of field guards for guarded length were not covered by our tests.

Otherwise I removed redundant conditions that are either impossible
or always true from the code generator for GuardFieldInstr.
R=johnmccutchan@google.com
cleanup
deoptのパスをfall_througする経路含めて綺麗に整理した。



r30849 | kmillikin@google.com | 2013-12-04 19:37:01 +0900 (水, 04 12月 2013) | 9 lines
Remove extraneous assembly comment.
It is not necessary to have a comment at deferred code for each live floating-point register.
R=fschneider@google.com
Commentマクロによるコメント削除



r30846 | fschneider@google.com | 2013-12-04 19:32:43 +0900 (水, 04 12月 2013) | 14 lines
Mark native functions when they are created.

Until now the parser marked native functions as native when parsing.

This may be too late for some functions. E.g. the native typed list
constructor may not be invoked because the intrinsic code is executed
instead (unless for example new-space allocation fails).

This causes missing type information when optimizing functions using
those recognized factory functions like Uint8List._new.

R=srdjan@google.com
Functionの識別用にisNativeフラグを追加

static RawFunction* New(const String& name,
                      RawFunction::Kind kind,
                       bool is_static,
                       bool is_const,
                       bool is_abstract,
                       bool is_external,
                       bool is_native,
                       const Object& owner,
                       intptr_t token_pos);

is_nativeはrecognized関数になるっぽい。

r30829 | srdjan@google.com | 2013-12-04 07:07:16 +0900 (水, 04 12月 2013) | 3 lines
Removed debuggging printf.


r30827 | srdjan@google.com | 2013-12-04 07:00:27 +0900 (水, 04 12月 2013) | 6 lines
Merge sin(a), cos(a) into one instruction.
On IA32 use x87 fsincos operation, on x64 call runtime routine whihc merges sin/cos intos sincos.
TODO: Implement for ARM and MIPS.
R=fschneider@google.com
SupportsSinCos()を追加
x87向け

MergedMathInstrでkSinCosを追加
TryMargeMathUnary()
AppendLoadIndeedForMerged()

if (kind() == MergedMathInstr::kSinCos) {
  __ EnterFrame(0);
   // +-------------------------------+
   // | double-argument               |  <- TOS
   // +-------------------------------+
   // | address-cos-result            |  +8
   // +-------------------------------+
   // | address-sin-result            |  +16
   // +-------------------------------+
   // | double-storage-for-cos-result |  +24
   // +-------------------------------+
   // | double-storage-for-sin-result |  +32
   // +-------------------------------+
   // ....



r30823 | hausner@google.com | 2013-12-04 04:19:54 +0900 (水, 04 12月 2013) | 8 lines
VM debugger: fix closures in mixed-in functions
Avoid assertion in debugger when compiling closures in mixin functions.
R=asiva@google.com

r30737 | johnmccutchan@google.com | 2013-11-28 07:21:22 +0900 (木, 28 11月 2013) | 5 lines
Disable profiler
profilerはまだまだ不安定らしく、disable


r30733 | johnmccutchan@google.com | 2013-11-28 06:51:02 +0900 (木, 28 11月 2013) | 6 lines
Switch SetupIsolateForProfiling to use calloc instead of new []
R=asiva@google.com


r30732 | johnmccutchan@google.com | 2013-11-28 04:54:52 +0900 (木, 28 11月 2013) | 6 lines
List scripts in library and display script source
R=iposva@google.com


r30728 | johnmccutchan@google.com | 2013-11-28 03:03:20 +0900 (木, 28 11月 2013) | 5 lines
Fix race discovered by Valgrind
R=asiva@google.com



r30688 | srdjan@google.com | 2013-11-27 09:11:32 +0900 (水, 27 11月 2013) | 5 lines
Rename FinalizeTypeHierarchy to ProcessPendingClasses.
R=regis@google.com


r30686 | johnmccutchan@google.com | 2013-11-27 08:46:27 +0900 (水, 27 11月 2013) | 7 lines
Support Bigint parameters in Int32x4 constructor
R=srdjan@google.com
truncateToUint32()を追加


r30680 | johnmccutchan@google.com | 2013-11-27 07:03:58 +0900 (水, 27 11月 2013) | 5 lines
Disable profiler on Windows
TBR


r30673 | srdjan@google.com | 2013-11-27 03:18:24 +0900 (水, 27 11月 2013) | 5 lines
Use range information to omit checks in TRUNCDIV/MOD operations.
R=fschneider@google.com


r30669 | johnmccutchan@google.com | 2013-11-26 23:28:47 +0900 (火, 26 11月 2013) | 5 lines
Guard against profiler shutdown race


r30666 | ajohnsen@google.com | 2013-11-26 18:41:19 +0900 (火, 26 11月 2013) | 12 lines
Disable profiler, as profiler shutdown is racing with isolates.
Some tests using isolates, crashes with the following assertion error:
runtime/vm/profiler.cc:237: error: expected: initialized_
It turns out that ProfileManager::Shutdown is called,
while there are still isolates running.
The comment in runtime/vm/dart.cc:152 seams to explain the issue.
R=sgjesse@google.com


r30655 | johnmccutchan@google.com | 2013-11-26 09:48:09 +0900 (火, 26 11月 2013) | 3 lines
Ensure profiler manager thread has shutdown before main thread


r30647 | johnmccutchan@google.com | 2013-11-26 07:06:33 +0900 (火, 26 11月 2013) | 7 lines
  • Fix MonitorData ASSERT failure in thread_win:
E:\b\build\slave\vm-win32-debug-russian-be\build\dart\runtime\platform/thread_win.h:66:
 error: expected: next_ == NULL.
  • Reduce sample buffer size by an order of magnitude (this should fix .
  • Disable profiler on simulators.
  • Only sample when scheduled thread id matches current thread id.


r30642 | iposva@google.com | 2013-11-26 05:47:21 +0900 (火, 26 11月 2013) | 5 lines
  • Add missing header file to vm_sources.gypi.
R=johnmccutchan@google.com


r30636 | rmacnak@google.com | 2013-11-26 03:31:20 +0900 (火, 26 11月 2013) | 6 lines
Add demangle utility to Dartium's dart:html. Demangle typedef names in UserVisibleName.
R=asiva@google.com, vsm@google.com


r30633 | johnmccutchan@google.com | 2013-11-26 00:41:10 +0900 (火, 26 11月 2013) | 5 lines
Always update scheduled thread id


r30622 | fschneider@google.com | 2013-11-25 21:57:21 +0900 (月, 25 11月 2013) | 12 lines
Generalize if-conversion to arbitrary smi comparisons.

Until now only == and != comparisons were supported.

Further changes are:
Remove flag FLAG_new_identity_spec: It is not needed anymore.
Invoke Canonicalize another time before branch optimizations.
Fixes support for TestSmiInstr with the branch-simplifier pass.

R=kmillikin@google.com
でかい。。
比較系を大幅にリファクタリング



r30608 | johnmccutchan@google.com | 2013-11-25 10:42:50 +0900 (月, 25 11月 2013) | 5 lines
Guard against an isolate being scheduled twice
TBR



r30607 | johnmccutchan@google.com | 2013-11-25 08:33:41 +0900 (月, 25 11月 2013) | 8 lines
  • SetupIsolateForProfiling before SetCurrent is called on an isolate for the first time.
  • ProfilerManager::Shutdown no longer frees isolate profiling data for registered isolates.
Each isolate will free its own data when shutdown.
  • Fix monitor timeout test to disable signal delivery.
  • Do not walk the call stack in signal handler.
TBR



r30604 | zra@google.com | 2013-11-24 04:09:23 +0900 (日, 24 11月 2013) | 11 lines
Fixes FindCodeObject test.

After enabling GC of unoptimized code, functions cannot be
used as proxies for unoptimized code. This change, creates
ZoneHanldes for compiled code in the FindCodeObject test,
so that later when functions are used to refer to code,
we can be sure that the code will be there.
TBR: iposva


r30603 | johnmccutchan@google.com | 2013-11-24 01:20:41 +0900 (日, 24 11月 2013) | 5 lines
Implement PC, FP, and SP getters on Linux ARM
TBR



r30602 | johnmccutchan@google.com | 2013-11-23 09:26:35 +0900 (土, 23 11月 2013) | 8 lines
  • Fix shutdown race.
  • Move signal blocking out of dart.cc and isolate.cc and into profiler.cc.
  • Nest scope objects explicitly.
  • Add missing signal block in ProfilerManager::ShutdownIsolateForProfiling.

R=iposva@google.com

profile=true
trace_profiled_isolates=false
sample_interval_micros=1000

大改造。


r30600 | zra@google.com | 2013-11-23 09:17:28 +0900 (土, 23 11月 2013) | 14 lines
Fixes a couple problems with GC of unoptimized code.

1. Instead of making a pass before the Marking phase,
 this change does not visit code pointers in functions
  during marking. Then after marking, if the code has
  still not been marked, code pointers in functions
  are nulled out.
2. Since code pointers in functions may be nulled out,
 functions are no longer used as proxies for code in
  deoptimization info.
R=iposva@google.com, srdjan@google.com

SkipCode()
DetachCode()
前からあるけど、不要と判断したコードをGCで回収。

条件としては、
!IsNull
!is_optimized
unoptimized_code
!HasBreakpoint
usage_counter >= 0
オプションで、always_drop_code, usage_counter == 0

オプションを変更
always_drop_code=false



r30596 | turnidge@google.com | 2013-11-23 08:02:11 +0900 (土, 23 11月 2013) | 5 lines
Add field and function view for libraries. Rough cut.
R=iposva@google.com


r30587 | zra@google.com | 2013-11-23 06:53:14 +0900 (土, 23 11月 2013) | 5 lines
Removes obsolete MIPS ifdef from FindCodeObject test.
R=regis@google.com



r30582 | srdjan@google.com | 2013-11-23 02:59:23 +0900 (土, 23 11月 2013) | 7 lines
Do not eagerly finalize classes in CHA,
instead regard unfinalized classes as ’non-existent’ and only invalidate optimized code
at finalization of the class.
Rename FinalizePendingClasses to FinalizePendingClassInterfaces as the class finalization occurs lazily.
TODO: add dependency information to deoptimize/remove only relevant optimized code.
R=regis@google.com


r30559 | johnmccutchan@google.com | 2013-11-22 09:57:24 +0900 (金, 22 11月 2013) | 5 lines
Disable profiler
TBR
option profile=false


r30558 | iposva@google.com | 2013-11-22 09:41:11 +0900 (金, 22 11月 2013) | 3 lines
  • Update use of kPageSize in ifdef'd MIPS code.


r30557 | iposva@google.com | 2013-11-22 08:48:41 +0900 (金, 22 11月 2013) | 5 lines
  • Convert HeapPages to use word sizes.
R=asiva@google.com


r30555 | zra@google.com | 2013-11-22 08:18:53 +0900 (金, 22 11月 2013) | 5 lines
Pushes 0 for PC marker in runtime call stubs on ARM and MIPS.
R=iposva@google.com, regis@google.com


r30546 | regis@google.com | 2013-11-22 06:30:51 +0900 (金, 22 11月 2013) | 5 lines
Improve type test and type equality for generics (issue 15148).
R=srdjan@google.com


r30545 | johnmccutchan@google.com | 2013-11-22 06:30:19 +0900 (金, 22 11月 2013) | 5 lines
Disable native symbol resolver on WindowsDisable native symbol resolver on Windows
TBR


r30536 | srdjan@google.com | 2013-11-22 02:56:54 +0900 (金, 22 11月 2013) | 5 lines
Merge TRUNCDIV and MOD into one instruction.
Icorporated feedback from CL https://codereview.chromium.org/68663003
R=fschneider@google.com


r30533 | iposva@google.com | 2013-11-22 02:26:22 +0900 (金, 22 11月 2013) | 9 lines
  • Ensure that classes are finalized before their description is
being generated for the observatory.
  • Reset the state that a class is being currently parsed.
  • Move the deployed polymer app to a location where it is not
being overwritten by the tools.
  • Do not rely on Dart SDK binaries being in your path.
  • Check for errors when invoking dart2js as part of build.dart.


r30529 | zra@google.com | 2013-11-22 01:41:02 +0900 (金, 22 11月 2013) | 5 lines
Fixes ARM SIMD vabsqs instruction in the simulator.
R=srdjan@google.com


r30496 | ajohnsen@google.com | 2013-11-21 15:12:01 +0900 (木, 21 11月 2013) | 6 lines
Add optimized String.fromCharCodes path for Uint8List and Int8List.
R=srdjan@google.com

bootstrap allocateFromOneByteList



r30491 | rmacnak@google.com | 2013-11-21 09:11:31 +0900 (木, 21 11月 2013) | 5 lines
Fix crash evaluating metadata with super in a const constructor argument.
R=hausner@google.com


r30489 | rmacnak@google.com | 2013-11-21 08:48:24 +0900 (木, 21 11月 2013) | 3 lines
Revert "De-mangle private identifiers returned by the debugger API."


r30488 | johnmccutchan@google.com | 2013-11-21 08:42:15 +0900 (木, 21 11月 2013) | 5 lines
Disable profiler


r30478 | johnmccutchan@google.com | 2013-11-21 02:57:56 +0900 (木, 21 11月 2013) | 5 lines
Attempt at enabling profiler


r30442 | lrn@google.com | 2013-11-20 18:14:30 +0900 (水, 20 11月 2013) | 9 lines
Fix VM not accepting static methods for Isolate.spawn.
R=iposva@google.com

staticメソッドじゃなくてもOKになった。
local functionもlookupして登録できる。


r30436 | rmacnak@google.com | 2013-11-20 10:40:17 +0900 (水, 20 11月 2013) | 6 lines
De-mangle private identifiers returned by the debugger API.
R=asiva@google.com


r30433 | rmacnak@google.com | 2013-11-20 10:21:22 +0900 (水, 20 11月 2013) | 7 lines
Remove an invalid assert in converting a dart.core.Stacktrace to a debugger stacktrace.
Fixes an Aw, Snap when trying to debug an OutOfMemory error on debug builds of Dartium.
R=asiva@google.com


r30431 | johnmccutchan@google.com | 2013-11-20 09:14:40 +0900 (水, 20 11月 2013) | 5 lines
Fix Android build ?



r30430 | srdjan@google.com | 2013-11-20 08:43:40 +0900 (水, 20 11月 2013) | 5 lines
Better printing of MathUnaryInstr.
R=johnmccutchan@google.com


r30429 | johnmccutchan@google.com | 2013-11-20 08:39:26 +0900 (水, 20 11月 2013) | 5 lines
Android build
BUG=


r30428 | johnmccutchan@google.com | 2013-11-20 08:25:28 +0900 (水, 20 11月 2013) | 5 lines
Fix Android build and disable profiler
TBR


r30424 | johnmccutchan@google.com | 2013-11-20 07:14:43 +0900 (水, 20 11月 2013) | 5 lines
Always use the isolate's stack range.
The SP register value from the signal handler context may be in kernel space
and cannot be used to narrow the safe stack range.
TBR


r30420 | johnmccutchan@google.com | 2013-11-20 04:11:41 +0900 (水, 20 11月 2013) | 5 lines
Post landing fixes
TBR


r30419 | johnmccutchan@google.com | 2013-11-20 03:26:10 +0900 (水, 20 11月 2013) | 6 lines
Sampling profiler
BUG=4350
R=asiva@google.com

sampling処理を追加

ProfilerManagerを追加

Scheduleして、定期的に測定するっぽい。 interval_microsがある。

内部データは全部jsonで作成し、traceとして出力したりwriteできる。

isolate == threadなので、thread単位で測定、isolate単位でscheduleする。

os単位依存のファイルがあるのは、thread idやmonitorに依存するため。

profilerの対象は、PC,FP,SP,stack_lower/upper なんかもある。

ProfileSignalAction()
signal_handlerを使って、osレベルのイベントも取得するっぽい。

測定データはこれかな。

struct Sample {
static const char* kLookupSymbol;
 static const char* kNoSymbol;
 static const intptr_t kNumStackFrames = 4;
 enum SampleState {
   kIdle = 0,
   kExecuting = 1,
   kNumSampleStates
 };
 int64_t timestamp;
 int64_t cpu_usage;
 uintptr_t pcs[kNumStackFrames];
 uint16_t vm_tags;
 uint16_t runtime_tags;
 Sample();
};


オプション profile=true


r30414 | fschneider@google.com | 2013-11-19 22:50:55 +0900 (火, 19 11月 2013) | 6 lines
Move and clean up some class declarations in intermediate_language.h.
This way definitions of inline methods in BranchInstr can reside inside the class declarations.



r30397 | kmillikin@google.com | 2013-11-19 20:37:11 +0900 (火, 19 11月 2013) | 13 lines
Use the VM's graph builder nesting stack for loop depth and context level.

Use the code's nesting to maintain the context level rather than explicitly
tracking it in the graph builder. Nested blocks know their scope and the
nesting stack can be searched to find the current context level.

Nested loops now increment and decrement the graph builder's loop depth
while they are on the nesting stack, though the loop depth state is still
kept in the graph builder itself.

R=fschneider@google.com


r30393 | fschneider@google.com | 2013-11-19 19:38:37 +0900 (火, 19 11月 2013) | 10 lines
Remove dead code from IfThenElse and StrictCompare in the compiler.

The code for these cases is either completely unused or can only be hit with
canonicalization and constant propagation turned off. Since this is not tested,
and does not bring any performance benefit for the default configuration it is
best to just remove it.

R=srdjan@google.com
removeのみ



r30385 | rmacnak@google.com | 2013-11-19 10:02:26 +0900 (火, 19 11月 2013) | 6 lines
Handle undefined field/getter access from arguments to const constructors in metadata,
and related problematic cases.
R=hausner@google.com


r30383 | regis@google.com | 2013-11-19 08:31:12 +0900 (火, 19 11月 2013) | 6 lines
Distinguish between malformed and malbounded types more efficiently using the
recently introduced LanguageError 'kind' field.
R=hausner@google.com


r30367 | srdjan@google.com | 2013-11-19 03:56:23 +0900 (火, 19 11月 2013) | 5 lines
Remove intrinsified version of fsin, fcos.
The optimized code calls into runtime, which may use different way to compute sin/cos.
R=johnmccutchan@google.com

たくさん削除。intrinsics
TrigonometricFunctions

r30339 | fschneider@google.com | 2013-11-18 21:30:03 +0900 (月, 18 11月 2013) | 5 lines
Add another internal function to the list of invisible functions.
R=kmillikin@google.com

substringUncheckedNative
を追加



r30336 | kmillikin@google.com | 2013-11-18 20:39:14 +0900 (月, 18 11月 2013) | 12 lines
Introduce a nesting stack to the flow graph builder.

Statically track nested blocks, loops, and switches while constructing
the flow graph. Use the nesting stack as a mapping from source labels
(class SourceLabel) to their flow-graph targets (class JoinEntryInstr).

This removes the indirect dependence of the AST on the intermediate
language and the mutable compiler state from the AST.

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

NestedStatementクラスを追加

continue_targetとか追加されている。

continue_targetに対して代入できる。


r30325 | iposva@google.com | 2013-11-16 09:17:52 +0900 (土, 16 11月 2013) | 5 lines
  • Convert heap sizes to words from bytes.
R=asiva@google.com


r30323 | rmacnak@google.com | 2013-11-16 08:42:23 +0900 (土, 16 11月 2013) | 6 lines
Add an API function to get a debugger stack trace from an error handle.
R=asiva@google.com


r30321 | rmacnak@google.com | 2013-11-16 07:44:44 +0900 (土, 16 11月 2013) | 5 lines
Drop "Impl" suffix from local mirror class names.
R=asiva@google.com


r30308 | regis@google.com | 2013-11-16 03:54:24 +0900 (土, 16 11月 2013) | 5 lines
Lazily format LanguageError messages (fix issue 15069).
R=iposva@google.com
SendInternalの引数を3->2に変更
reply_idは必須ではない。



r30302 | lrn@google.com | 2013-11-15 20:28:23 +0900 (金, 15 11月 2013) | 9 lines
Make SendPortImpl_internalSend not take a reply port as argument.

The reply port is still there in the internal Message structure,
where it is used by control messages.
R=fschneider@google.com


r30301 | lrn@google.com | 2013-11-15 20:23:47 +0900 (金, 15 11月 2013) | 5 lines
Revert "Fix VM not accepting static methods for Isolate.spawn."
Comitted by mistake.
r30300 | lrn@google.com | 2013-11-15 19:28:32 +0900 (金, 15 11月 2013) | 5 lines
Fix VM not accepting static methods for Isolate.spawn.

dart のisolateって、TopLevelじゃなくても使えるようになるっぽい。
IsClosure -> IsImplicitClosureに変更


r30293 | hausner@google.com | 2013-11-15 07:19:23 +0900 (金, 15 11月 2013) | 3 lines
Address comment from vm-based keyword symbols CL


r30289 | hausner@google.com | 2013-11-15 04:42:14 +0900 (金, 15 11月 2013) | 5 lines
Add closure object type to debugger wire protocol
R=devoncarew@google.com


r30285 | hausner@google.com | 2013-11-15 04:14:16 +0900 (金, 15 11月 2013) | 8 lines
Add Dart keyword symbols to the VM isolate

Remove the keyword symbol table from object store, and remove
keyword table initialization from Scanner constructor.
R=regis@google.com


r30280 | rmacnak@google.com | 2013-11-15 03:37:50 +0900 (金, 15 11月 2013) | 5 lines
Filter frames from debugger stack based on visibility rather than "debuggability" (steppability).
R=asiva@google.com, hausner@google.com


r30277 | regis@google.com | 2013-11-15 02:42:39 +0900 (金, 15 11月 2013) | 5 lines
Rename mixin typedef to mixin application alias in VM.
R=hausner@google.com, rmacnak@google.com


r30250 | regis@google.com | 2013-11-14 05:58:17 +0900 (木, 14 11月 2013) | 7 lines
Do not skip unfinalized interfaces while checking type bounds at finalization
time (fix issue 14721).
Fix BoundedType::ToCString() to handle a null type parameter.
R=hausner@google.com


r30243 | fschneider@google.com | 2013-11-14 03:21:27 +0900 (木, 14 11月 2013) | 16 lines
Streamline code generator for branches and comparisons.

This is another refactoring step. It turn all comparisons
to be generated after the same pattern and removes duplicated
code from each of the different comparisons (smi, mint, double, etc.)

A comparison as an expression now follows the same patterns as a comparison
inside a branch. It just adds a common epilogue to materialize the boolean
result.

In another CL this common epilogue will be generated by reusing the IfThenElse
IL instruction.

R=kmillikin@google.com
branchのlabel付けを作成、EmitBranchOnCondtionで抽象化。



r30239 | johnmccutchan@google.com | 2013-11-14 03:09:41 +0900 (木, 14 11月 2013) | 6 lines
Add ability for Function to generate source
R=hausner@google.com


r30237 | johnmccutchan@google.com | 2013-11-14 02:49:50 +0900 (木, 14 11月 2013) | 5 lines
TraceBuffer implementation with tests
R=iposva@google.com
TraceBufferを新規追加
Traceとmillisを追加できる。ring indexになっている。



r30234 | fschneider@google.com | 2013-11-14 01:22:58 +0900 (木, 14 11月 2013) | 12 lines
Fix bug with deoptimization targets.

In the second pass of inserting representation conversions (SelectRepresentations)
we may insert sequences of Unbox/Box instructions that are eliminated
by canonicalization later. However, inserting conversions requires a deoptimization id as
deoptimization target. Return kNoDeoptId for Box-instructions since they don't need a real
deoptimization target.

BUG=dartbug.com/14808
R=srdjan@google.com
DeoptimizationTarget()を追加


r30233 | srdjan@google.com | 2013-11-14 01:01:41 +0900 (木, 14 11月 2013) | 5 lines
Fixes issue 14742. Dart API may allocate objects without calling the constructor,
this messes up the nullability tracking in the VM.
Simple fix for now: initialize fields nullability, type, length if allocated via Dart API.
R=asiva@google.com


r30232 | fschneider@google.com | 2013-11-14 00:57:26 +0900 (木, 14 11月 2013) | 5 lines
Constant propagation support for type asserts.
R=kmillikin@google.com
IsAssignableToを挿入



r30227 | kmillikin@google.com | 2013-11-13 23:08:11 +0900 (水, 13 11月 2013) | 10 lines
Simplify the desugaring of catch clauses.

Rather than if/then/continue (where the continue does not match the
semantics of Dart's continue), use if/then/else. This removes the
unnecessary goto and label as a step toward streamlining support for
jumping in the compiler backend.

R=hausner@google.com
ParseTryStatementを削除


r30204 | iposva@google.com | 2013-11-13 04:43:44 +0900 (水, 13 11月 2013) | 5 lines
  • Fix string conversion warnings.
R=johnmccutchan@google.com


r30178 | rmacnak@google.com | 2013-11-12 08:08:38 +0900 (火, 12 11月 2013) | 5 lines
Ensure constructorName symbols include private manglings.
R=asiva@google.com, gbracha@google.com


r30177 | regis@google.com | 2013-11-12 07:59:48 +0900 (火, 12 11月 2013) | 7 lines
Check type bounds of redirecting factories (issue 14699).
Add tests for malbounded redirecting factories.
Clean up bound checking code and type error reporting code.

R=hausner@google.com


r30162 | hausner@google.com | 2013-11-12 03:22:05 +0900 (火, 12 11月 2013) | 7 lines
Add Dart_GetClosureInfo
Will be used by debugger wire protocol.

R=regis@google.com


r30153 | fschneider@google.com | 2013-11-11 22:01:54 +0900 (月, 11 11月 2013) | 9 lines
Cleanup of code generation for StrictCompare.

The case of two constant operands does not occur unless certain optimizations
are turned off. It is not necessary to have a special handling in the code
generator for this case.

R=kmillikin@google.com
constant同士のEmitBranchOnValueを削除


r30124 | asiva@google.com | 2013-11-09 04:40:07 +0900 (土, 09 11月 2013) | 6 lines
ARM and MIPS changes which correspond to the initial change submitted in
R=regis@google.com, zra@google.com


r30120 | rmacnak@google.com | 2013-11-09 02:54:59 +0900 (土, 09 11月 2013) | 7 lines
Use the runtime for generic subsitution of variable types, return types, parameter types.
R=gbracha@google.com, regis@google.com
bootstrap_nativesの修正
mirrorを修正


r30119 | srdjan@google.com | 2013-11-09 02:42:45 +0900 (土, 09 11月 2013) | 5 lines
Constant fold strict comparison based on incoming types:
different (exact) types means that the result is false.
LoadStaticField computes type for final fields. Make a temporary buffer final.
R=kmillikin@google.com
特定条件化でdynamicでない場合、kEQ_STRICT に変換



r30098 | asiva@google.com | 2013-11-08 13:23:08 +0900 (金, 08 11月 2013) | 3 lines
Fix build break.


r30097 | asiva@google.com | 2013-11-08 11:41:03 +0900 (金, 08 11月 2013) | 3 lines
Fix build break on the bots.


r30088 | asiva@google.com | 2013-11-08 09:25:40 +0900 (金, 08 11月 2013) | 14 lines
Fix for issue 14790 - Crash when using dartium devtools
The stack frame iteration during GC was missing one slot in stub frames that
did not save the pool pointer.

  • This change makes all stub frames uniform, i.e they always save/restore the pool pointer.
This ensures that we will traverse all slots on the stack.
  • A new constant called kFirstObjectSlotFromFp has been added
which is used as the slot to start stack traversal.
(The ARM and MIPs changes will be in a different CL)
R=iposva@google.com, regis@google.com, zra@google.com


r30080 | hausner@google.com | 2013-11-08 07:43:07 +0900 (金, 08 11月 2013) | 8 lines
Fix breakpoints in mixin methods

When a function is compiled that originates from a mixing class, we
must use the original function to check for pending breakpoints.

Fixes issue 12361




r30075 | srdjan@google.com | 2013-11-08 06:50:26 +0900 (金, 08 11月 2013) | 5 lines
Inline integer modulo operation.
R=zra@google.com
emit
Token::kMOD 追加



r30063 | turnidge@google.com | 2013-11-08 03:53:28 +0900 (金, 08 11月 2013) | 15 lines
Deoptimize closure functions in DeoptimizeWorld. This was causing
some breakpoints to be skipped when set in optimized closure functions.

Update implicit_closure_function() to always return null for
factories. Factories use the shared data_ field for another purpose.
This fixes an assertion failure when HasImplicitClosureFunciton is called for a factory.

Add a TODO for an assertion failure in Class::Name which is not in the scope of this change.
(patched from an earlier review)


r30058 | fschneider@google.com | 2013-11-08 02:27:16 +0900 (金, 08 11月 2013) | 10 lines
VM: Fix identical comparisons with bigints.

The optimizing compiler did not properly preserve registers across
the runtime call that occurs when using identical with bigints.

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



r30042 | fschneider@google.com | 2013-11-07 20:47:04 +0900 (木, 07 11月 2013) | 31 lines
Cleanup of branch code generation (no change in functionality).
This CL is the first step in refactoring the way branches and comparisons are generated.

1. Move helper functions from flow_graph_compiler_xyz.cc to
 intermediate_language_xyz.cc.

2. Remove IL class ControlInstruction. It was only implemented by BranchInstr.
 All functions provided are moved to BranchInstr.

3. When generating branch code for comparisons, pass the successor labels explicitly
 instead of getting them from the branch. This will allow us to provide different labels
  when materialize a bool value of a comparison.

4. Move some common code for IfThenElseInstr from the platform-specific files
 into intermediate_language.cc and simplify it.

The goal is to enable if-conversion of arbitrary comparisons. Right now,
the code for == is hard-coded in IfThenElseInstr (and duplicated, too). This
means that e.g. "a < b ? 0 : 1" cannot be optimized.

As a result, IfThenElseInstr can be used to materialize the boolean value of
a comparison. This way the complication of having ComparisonInstr both as a
normal instruction and as wrapped inside a BranchInstr can be simplified.
Comparisons would no longer appear as plain instructions in the IL, but only
wrapped inside either a Branch or an IfThenElse(true, false).

R=zra@google.com
これもcompareの最適化


r30021 | asiva@google.com | 2013-11-07 09:52:24 +0900 (木, 07 11月 2013) | 5 lines
Temporary fix for Bug 14790
Use EnterStubFrameWithPP for breakpoint handler stubs that have result objects on the stack.
R=iposva@google.com



r30012 | johnmccutchan@google.com | 2013-11-07 08:47:54 +0900 (木, 07 11月 2013) | 6 lines
Take representation into account in ConstantPropagator::VisitInstanceOfInstr
R=fschneider@google.com, srdjan@google.com

VisitInstanceOfの、IsNonConstant()のケースを追加
typed_dataやnative型の場合にguarante可能にした



r30003 | hausner@google.com | 2013-11-07 07:07:31 +0900 (木, 07 11月 2013) | 8 lines
Fix try-catch for sure
Fix scoping of user-defined exception and stack trace variables in catch clause.

R=regis@google.com

  • 最終更新:2013-12-23 18:18:10

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

認証パスワード