- 12 Feb, 2015 3 commits
-
-
loislo authored
1) create beefy RelocInfo table when cpu profiler is active, so if a function was optimized when profiler was active RelocInfo would get separate DeoptInfo for the each deopt case. 2) push DeoptInfo from CodeEntry to ProfileNode. When deopt happens we put the info collected on #1 into CodeEntry and record stack sample. On the sampling thread we grab the deopt data and append it to the corresponding ProfileNode deopts list. Sample profile dump. [Top down]: 0 (root) 0 #1 1 29 #2 1 test 29 #3 2 opt_function 29 #4 2 opt_function 29 #5 deopted at 118 with reason 'not a heap number' deopted at 137 with reason 'division by zero' BUG=452067 LOG=n Committed: https://crrev.com/ce8701b247d3c6604f24f17a90c02d17b4417f54 Cr-Commit-Position: refs/heads/master@{#26615} Review URL: https://codereview.chromium.org/919953002 Cr-Commit-Position: refs/heads/master@{#26630}
-
loislo authored
Revert of CPUProfiler: Push deopt reason further to ProfileNode. (patchset #1 id:1 of https://codereview.chromium.org/919953002/) Reason for revert: static initializers broke the build Original issue's description: > CPUProfiler: Push deopt reason further to ProfileNode. > > 1) create beefy RelocInfo table when cpu profiler is active, so if a function > was optimized when profiler was active RelocInfo would get separate DeoptInfo > for the each deopt case. > > 2) push DeoptInfo from CodeEntry to ProfileNode. > When deopt happens we put the info collected on #1 into CodeEntry and record stack sample. > On the sampling thread we grab the deopt data and append it to the corresponding ProfileNode deopts list. > > Sample profile dump. > [Top down]: > 0 (root) 0 #1 > 1 29 #2 > 5 test 29 #3 > 3 opt_function 29 #4 > deopted at 52 with reason 'not a heap number' > deopted at 71 with reason 'division by zero' > > BUG=452067 > LOG=n > > Committed: https://crrev.com/ce8701b247d3c6604f24f17a90c02d17b4417f54 > Cr-Commit-Position: refs/heads/master@{#26615} TBR=jarin@chromium.org,svenpanne@chromium.org,yurys@chromium.org,alph@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=452067 Review URL: https://codereview.chromium.org/915173005 Cr-Commit-Position: refs/heads/master@{#26616}
-
loislo authored
1) create beefy RelocInfo table when cpu profiler is active, so if a function was optimized when profiler was active RelocInfo would get separate DeoptInfo for the each deopt case. 2) push DeoptInfo from CodeEntry to ProfileNode. When deopt happens we put the info collected on #1 into CodeEntry and record stack sample. On the sampling thread we grab the deopt data and append it to the corresponding ProfileNode deopts list. Sample profile dump. [Top down]: 0 (root) 0 #1 1 29 #2 5 test 29 #3 3 opt_function 29 #4 deopted at 52 with reason 'not a heap number' deopted at 71 with reason 'division by zero' BUG=452067 LOG=n Review URL: https://codereview.chromium.org/919953002 Cr-Commit-Position: refs/heads/master@{#26615}
-
- 10 Feb, 2015 1 commit
-
-
loislo authored
1) Deoptimizer::Reason was replaced with Deoptimizer::DeoptInfo because it also has raw position. Also the old name clashes with DeoptReason enum. 2) c_entry_fp assignment call was added to EntryGenerator::Generate So we can calculate sp and have a chance to record the stack for the deopting function. btw it makes the test stable. 3) new kind of CodeEvents was added to cpu-profiler 4) GetDeoptInfo method was extracted from PrintDeoptLocation. So it could be reused in cpu profiler. BUG=452067 LOG=n Review URL: https://codereview.chromium.org/910773002 Cr-Commit-Position: refs/heads/master@{#26545}
-
- 09 Feb, 2015 4 commits
-
-
chunyang.dai authored
port 2491a639 (r26463) original commit message: Externalize deoptimization reasons. 1) The hardcoded strings were converted into DeoptReason enum. 2) Deopt comment were converted into a pair location and deopt reason entries so the deopt reason tracking mode would less affect the size of the RelocInfo table and heap. 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table. BUG= Review URL: https://codereview.chromium.org/867243005 Cr-Commit-Position: refs/heads/master@{#26526}
-
cdai2 authored
port 634b0f20 (r26454). original commit message: BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/880743005 Cr-Commit-Position: refs/heads/master@{#26520}
-
cdai2 authored
port c7851da4 (r26419) original commit message: Introduce LanguageMode, drop StrictMode. This enables adding more language modes in the future. For maximum flexibility, LanguageMode is a bitmask, so we're not restricted to use a sequence of language modes which are progressively stricter, but we can express the language mode as combination of features. For now, LanguageMode can only be "sloppy" or "strict", and there are STATIC_ASSERTS in places which need to change when more modes are added. LanguageMode is a bit like the old LanguageMode when "extended" mode was still around (see https://codereview.chromium.org/8417035 and https://codereview.chromium.org/181543002 ) except that it's transmitted through all the layers (there's no StrictModeFlag). BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/902053005 Cr-Commit-Position: refs/heads/master@{#26514}
-
cdai2 authored
port 7d363783. original commit message: Continue learning for calls in crankshaft. The type feedback vector makes this easy to do. This is a re-land of https://codereview.chromium.org/868453005/ with a fix for the DCHECK failure. BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/904373002 Cr-Commit-Position: refs/heads/master@{#26506}
-
- 07 Feb, 2015 1 commit
-
-
chunyang.dai authored
port 0deaa4b6 (r26340) (code change in full-codegen-x87.cc is covered by r26340 ). original commit message: Initial switch to Chromium-style CHECK_* and DCHECK_* macros. BUG= Review URL: https://codereview.chromium.org/903353002 Cr-Commit-Position: refs/heads/master@{#26504}
-
- 06 Feb, 2015 1 commit
-
-
cdai2 authored
Fix the failure introduced by 0381acf7 (r26213). When storing Double field to external double array, we need to do special qNaN --> sNan recovery on X87 port. BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/879693006 Cr-Commit-Position: refs/heads/master@{#26477}
-
- 05 Feb, 2015 4 commits
-
-
loislo authored
1) The hardcoded strings were converted into DeoptReason enum. 2) Deopt comment were converted into a pair location and deopt reason entries so the deopt reason tracking mode would less affect the size of the RelocInfo table and heap. 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table. BUG=452067 LOG=n Committed: https://crrev.com/c49820e45b57f128a98690940875c049f612dde6 Cr-Commit-Position: refs/heads/master@{#26434} Committed: https://crrev.com/ec42e002da03adb2db968dd5b7453341ddc59a5c Cr-Commit-Position: refs/heads/master@{#26448} Review URL: https://codereview.chromium.org/874323003 Cr-Commit-Position: refs/heads/master@{#26463}
-
bmeurer authored
Revert of Externalize deoptimization reasons. (patchset #7 id:120001 of https://codereview.chromium.org/874323003/) Reason for revert: This CL breaks RelocInfo::INTERNAL_REFERENCE (and maybe others that come after DEOPT_REASON), which is currently (mostly) unused on tip-of-tree, but will be used for jump tables soon(ish) and should therefore work. It seems to be a problem with implicitly assumptions about the number of reloc info modes. Needs further investigation. Original issue's description: > Externalize deoptimization reasons. > > 1) The hardcoded strings were converted into DeoptReason enum. > > 2) Deopt comment were converted into a pair location and deopt reason entries so > the deopt reason tracking mode would less affect the size of the RelocInfo table and heap. > > 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table. > > BUG=452067 > LOG=n > > Committed: https://crrev.com/c49820e45b57f128a98690940875c049f612dde6 > Cr-Commit-Position: refs/heads/master@{#26434} > > Committed: https://crrev.com/ec42e002da03adb2db968dd5b7453341ddc59a5c > Cr-Commit-Position: refs/heads/master@{#26448} TBR=alph@chromium.org,mstarzinger@chromium.org,svenpanne@chromium.org,yurys@chromium.org,loislo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=452067 Review URL: https://codereview.chromium.org/900223002 Cr-Commit-Position: refs/heads/master@{#26457}
-
loislo authored
1) The hardcoded strings were converted into DeoptReason enum. 2) Deopt comment were converted into a pair location and deopt reason entries so the deopt reason tracking mode would less affect the size of the RelocInfo table and heap. 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table. BUG=452067 LOG=n Committed: https://crrev.com/c49820e45b57f128a98690940875c049f612dde6 Cr-Commit-Position: refs/heads/master@{#26434} Review URL: https://codereview.chromium.org/874323003 Cr-Commit-Position: refs/heads/master@{#26448}
-
Weiliang Lin authored
Port 9eace97b BUG= R=chunyang.dai@intel.com Review URL: https://codereview.chromium.org/895473002 Cr-Commit-Position: refs/heads/master@{#26445}
-
- 04 Feb, 2015 2 commits
-
-
loislo authored
Revert of Externalize deoptimization reasons. (patchset #6 id:100001 of https://codereview.chromium.org/874323003/) Reason for revert: it broke the build Original issue's description: > Externalize deoptimization reasons. > > 1) The hardcoded strings were converted into DeoptReason enum. > > 2) Deopt comment were converted into a pair location and deopt reason entries so > the deopt reason tracking mode would less affect the size of the RelocInfo table and heap. > > 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table. > > BUG=452067 > LOG=n > > Committed: https://crrev.com/c49820e45b57f128a98690940875c049f612dde6 > Cr-Commit-Position: refs/heads/master@{#26434} TBR=alph@chromium.org,mstarzinger@chromium.org,svenpanne@chromium.org,yurys@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=452067 Review URL: https://codereview.chromium.org/892843007 Cr-Commit-Position: refs/heads/master@{#26435}
-
loislo authored
1) The hardcoded strings were converted into DeoptReason enum. 2) Deopt comment were converted into a pair location and deopt reason entries so the deopt reason tracking mode would less affect the size of the RelocInfo table and heap. 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table. BUG=452067 LOG=n Review URL: https://codereview.chromium.org/874323003 Cr-Commit-Position: refs/heads/master@{#26434}
-
- 26 Jan, 2015 1 commit
-
-
ulan authored
BUG= Review URL: https://codereview.chromium.org/873233002 Cr-Commit-Position: refs/heads/master@{#26274}
-
- 22 Jan, 2015 1 commit
-
-
ulan authored
This prevents GC from observing code objects with out-of-sync weak dependencies. BUG=v8:3823 LOG=N Review URL: https://codereview.chromium.org/866723002 Cr-Commit-Position: refs/heads/master@{#26225}
-
- 20 Jan, 2015 1 commit
-
-
ulan authored
There is no need to embed function pointer in code. BUG=v8:3823 LOG=N Review URL: https://codereview.chromium.org/817483005 Cr-Commit-Position: refs/heads/master@{#26152}
-
- 22 Dec, 2014 1 commit
-
-
chunyang.dai authored
This issue is exposed by CL https://codereview.chromium.org/807273003. The DeoptimizeIf(...) function will generate more Assembler code and the distance between the link point and the bind point is larger then near link distance (127) for labels. BUG= Review URL: https://codereview.chromium.org/820963002 Cr-Commit-Position: refs/heads/master@{#25914}
-
- 12 Dec, 2014 2 commits
-
-
Michael Stanton authored
This patch finally allows running and passing tests with vector-based Load and KeyedLoad ICs. BUG= R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/767743002 Cr-Commit-Position: refs/heads/master@{#25800}
-
svenpanne authored
FINAL implies OVERRIDE, which in turn implies virtual, so there's no need to use more than one of these. The Google C++ style guide even requires this, see http://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Inheritance. While we're here, port r24662 to x87. The net result is that v8 compiles again with a current clang. BUG=v8:3753 LOG=y Review URL: https://codereview.chromium.org/797943002 Cr-Commit-Position: refs/heads/master@{#25792}
-
- 10 Nov, 2014 2 commits
-
-
jkummerow@chromium.org authored
BUG=chromium:431602 LOG=y R=jarin@chromium.org Review URL: https://codereview.chromium.org/714663002 Cr-Commit-Position: refs/heads/master@{#25249} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
weiliang.lin@intel.com authored
The incorrect parameter number is set when recording safepoint. BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/716463003 Patch from Chunyang Dai <chunyang.dai@intel.com>. Cr-Commit-Position: refs/heads/master@{#25226} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Nov, 2014 1 commit
-
-
weiliang.lin@intel.com authored
The default double precision control of FPU is extended double-precision. While the number definition for JavaScript is double-precision. We use the FPU control word to set the doulbe precision and replace the original solution which store the data to memory and load it again. This patch also fixes the error that Sunspider 1.0.2 can not run with V8 if sse2 support is disabled. BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/700053003 Patch from Chunyang Dai <chunyang.dai@intel.com>. Cr-Commit-Position: refs/heads/master@{#25125} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Oct, 2014 1 commit
-
-
weiliang.lin@intel.com authored
port r24732. original commit message: vector-based ICs did not update type feedback counts correctly. BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/669823002 Patch from Chunyang Dai <chunyang.dai@intel.com>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Oct, 2014 1 commit
-
-
weiliang.lin@intel.com authored
port r24528. original commit message: Introduce FeedbackVectorSlot type - better than int. It's good to have typing around this value. BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/645323002 Patch from Chunyang Dai <chunyang.dai@intel.com>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Oct, 2014 1 commit
-
-
weiliang.lin@intel.com authored
port r24519. original commit message: Teach TurboFan to call vector-based ICs. Additional static information needs to be passed to Load and KeyedLoad calls if --vector-ics is turned on BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/645273002 Patch from Chunyang Dai <chunyang.dai@intel.com>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Sep, 2014 1 commit
-
-
weiliang.lin@intel.com authored
The test mjsunit/regress/regress-sqrt compares the result of Math.sqrt function when using full-compiler and crankshaft compiler seperately. But according to glibc bug fixing(https://sourceware.org/bugzilla/show_bug.cgi?id=14032). The glibc implementation of std::sqrt() (It is invoked in the generated code when full-compiler is used.) will change since glibc 2.19. In order to keep consistence of Math.sqrt translation in crankshaft compiler and the pass of mjsunit/regress/regress-sqrt. we translate the Math.sqrt func by calling the runtime function. BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/606403002 Patch from Chunyang Dai <chunyang.dai@intel.com>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Sep, 2014 1 commit
-
-
weiliang.lin@intel.com authored
Two more DeoptimizeIf(...) are added so the branch distance changed. we need to use Label::kFar. BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/598353002 Patch from Chunyang Dai <chunyang.dai@intel.com>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Sep, 2014 3 commits
-
-
weiliang.lin@intel.com authored
port r24151. original commit message: Forgot a few kNear occurences, only happens with --deopt-every-n-times. Death to manual jump distance calculation! :-P BUG= R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/595263002 Patch from Chunyang Dai <chunyang.dai@intel.com>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
weiliang.lin@intel.com authored
port r24146. original commit message: Made the detailed reason for deopts mandatory on ia32. Unified and improved things. The number of different detail strings has been reduced a bit without any loss of information. Furthermore, DoubleToI is a bit more informative now. Tiny reason fixes. BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/597003003 Patch from Chunyang Dai <chunyang.dai@intel.com>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
weiliang.lin@intel.com authored
port r24133. On X87 this check should be unnecessary too. original commit message: Removed superfluous deopt for ROR on ia32. We only synthesize a ROR when we have an expression with a toplevel '|', which returns a signed value by definition, so deopting on negative values is not needed. ia32 was the only platform where this was done, all other didn't have the check. BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/589383003 Patch from Chunyang Dai <chunyang.dai@intel.com>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Sep, 2014 1 commit
-
-
weiliang.lin@intel.com authored
port r24123. R24123 does not cover all required code change in X87. original commit message: Further improve deopt reason output. * Make the detailed deopt reason mandatory on x64, other platforms will follow in separate CLs. * Extracted and improved jump table entry sharing logic: When --trace-deopt is on, we get separate entries for different deopt reasons. This enables us to distinguish the several reasons single instructions can have. * Don't emit superfluous jump table comments: The bailout ID is still visible, and the jump table entry number is not interesting (but easy to determine if really needed). * Unify the internal name of the jump table member across platforms. BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/589313002 Patch from Chunyang Dai <chunyang.dai@intel.com>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 22 Sep, 2014 4 commits
-
-
svenpanne@chromium.org authored
* Make the detailed deopt reason mandatory on x64, other platforms will follow in separate CLs. * Extracted and improved jump table entry sharing logic: When --trace-deopt is on, we get separate entries for different deopt reasons. This enables us to distinguish the several reasons single instructions can have. * Don't emit superfluous jump table comments: The bailout ID is still visible, and the jump table entry number is not interesting (but easy to determine if really needed). * Unify the internal name of the jump table member across platforms. R=jarin@chromium.org Review URL: https://codereview.chromium.org/595513002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
This way the deoptimization reasons are actually threaded through to the jump table. Tiny cleanup of related MIPS/MIPS64 code on the way. R=jarin@chromium.org Review URL: https://codereview.chromium.org/585423002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/587223002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
As discussed in https://codereview.chromium.org/582743002/, here a mechanical refactoring... R=jarin@chromium.org Review URL: https://codereview.chromium.org/587623002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 20 Sep, 2014 1 commit
-
-
weiliang.lin@intel.com authored
BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/579713002 Patch from Chunyang Dai <chunyang.dai@intel.com>. git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 19 Sep, 2014 1 commit
-
-
svenpanne@chromium.org authored
For a given address/type pair we should always find a deoptimization bailout ID, otherwise something is wrong. This was already asserted on ARM, but we now do this consistently on all platforms. Removed some usesless naming creativity on the way. R=jarin@chromium.org Review URL: https://codereview.chromium.org/587473003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-