- 18 Mar, 2015 17 commits
-
-
bmeurer authored
R=jarin@chromium.org Review URL: https://codereview.chromium.org/1019443002 Cr-Commit-Position: refs/heads/master@{#27266}
-
jochen authored
BUG=v8:3862 R=hpayer@chromium.org LOG=y Review URL: https://codereview.chromium.org/1013133002 Cr-Commit-Position: refs/heads/master@{#27265}
-
loislo authored
I found some strange split in deopt entry points generator. The code for table entry generator had two classes. It is safe to join these classes together and drop virtual. BUG= LOG=n Review URL: https://codereview.chromium.org/1010413003 Cr-Commit-Position: refs/heads/master@{#27264}
-
mstarzinger authored
This relands commit 96f79568. This makes the Isolate::Throw logic not depend on a prediction of whether an exception is caught or uncaught. Such a prediction is inherently undecidable because a finally block can decide between consuming or re-throwing an exception depending on arbitray control flow. There still is a conservative prediction mechanism in place that components like the debugger or tracing can use for reporting. With this change we can get rid of the StackHandler::kind field, a pre-requisite to do table-based lookups of exception handlers. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/997213003 Cr-Commit-Position: refs/heads/master@{#27263}
-
vegorov authored
Some native counters (e.g. KeyedLoadGenericSlow) are referenced from stubs that are generated very early in the Isolate lifecycle before v8::Isolate::New returns. Thus counter lookup callback also needs to be installed early prior to v8::internal::Isolate::Init call. Otherwise assembler will just assume that the counter is not enabled and produce no code from IncrementCounter - because address of the counter is not yet available. Histogram related callbacks are moved for consistency to make them able to collect samples which occur at isolate initialization time. BUG= Review URL: https://codereview.chromium.org/1010233002 Cr-Commit-Position: refs/heads/master@{#27262}
-
jochen authored
BUG=v8:3862 R=hpayer@chromium.org LOG=n Review URL: https://codereview.chromium.org/1014873002 Cr-Commit-Position: refs/heads/master@{#27261}
-
bmeurer authored
R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/1015053002 Cr-Commit-Position: refs/heads/master@{#27260}
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1012023002 Cr-Commit-Position: refs/heads/master@{#27259}
-
loislo authored
This is the fifth part of https://codereview.chromium.org/1012633002 In this part we collect the offsets of deopt calls and save it into an inlined function info. On the Next: Later when deopt happens we will get the offset of deopt call and search it among inlined infos. BUG=chromium:452067 LOG=n Review URL: https://codereview.chromium.org/1011113004 Cr-Commit-Position: refs/heads/master@{#27258}
-
jarin authored
We also need to fix the weakening to weaken unions with ranges in them. BUG= Review URL: https://codereview.chromium.org/1011103003 Cr-Commit-Position: refs/heads/master@{#27257}
-
bmeurer authored
R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/1015953002 Cr-Commit-Position: refs/heads/master@{#27256}
-
michael_dawson authored
We were able to remove most of our changes needed to compile on AIX with an earlier compiler level. These changes are the remaining ones. The changes in heap/heap.cc are needed because otherwise the compiler complains that result is potentially used before it is initialized. The changes in heap/mark-compact.cc are required because AIX supports the full 64 bit address range so the check being guarded is invalid. The changes in build/toolchain.gypi and test/cctest/cctest/gyp are aix only and are adjust the compile/link options to allow the AIX build to succeed. modified: build/toolchain.gypi modified: src/heap/heap.cc modified: src/heap/mark-compact.cc modified: test/cctest/cctest.gyp R=danno@chromium.org, svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/1013833002 Cr-Commit-Position: refs/heads/master@{#27255}
-
michael_dawson authored
- We don't have clang for PPC, force use of gcc. - Changes needed to compile/build on AIX with gcc 4.8.3 missed from last review modified: build/standalone.gypi R=danno@chromium.org, svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/1018543003 Cr-Commit-Position: refs/heads/master@{#27254}
-
loislo authored
CpuProfiler: x64. put right address to the stack, so the callee would be able to resolve it into the right deopt_info. 'from' is using for Code object lookup and will be used for inline_id lookup. see https://codereview.chromium.org/1012633002 So we should be able to map it. BUG=chromium:452067 LOG=n Review URL: https://codereview.chromium.org/1012743002 Cr-Commit-Position: refs/heads/master@{#27253}
-
loislo authored
CpuProfiler: ia32. put right address to the stack, so the callee would be able to resolve it into the right deopt_info. 'from' is using for Code object lookup and will be used for inline_id lookup. see https://codereview.chromium.org/1012633002 So we should be able to map it. BUG=chromium:452067 LOG=n Review URL: https://codereview.chromium.org/1014783002 Cr-Commit-Position: refs/heads/master@{#27252}
-
loislo authored
CpuProfiler: x87. put right address to the stack, so the callee would be able to resolve it into the right deopt_info. 'from' is using for Code object lookup and will be used for inline_id lookup. see https://codereview.chromium.org/1012633002 So we should be able to map it. BUG=chromium:452067 LOG=n Review URL: https://codereview.chromium.org/1013243002 Cr-Commit-Position: refs/heads/master@{#27251}
-
bmeurer authored
- Use representation information provided by the type system to skip SMI checks. - Fix combining of ChangeTaggedToFloat64 with JSToNumber now that JS operators can produce control. - Remove the unnecessary abstraction of smi/field offsets. - Improve unit test coverage. - Various cosmetic fixes. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/1018873002 Cr-Commit-Position: refs/heads/master@{#27250}
-
- 17 Mar, 2015 22 commits
-
-
wtc authored
Define V8_TARGET_ARCH_MIPS or V8_TARGET_ARCH_MIPS64 if the target arch is mipsel or mips64el. R=dpranke@chromium.org,jochen@chromium.org,machenbach@chromium.org BUG=v8:3972 LOG=N Review URL: https://codereview.chromium.org/1016923002 Cr-Commit-Position: refs/heads/master@{#27249}
-
titzer authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1014853002 Cr-Commit-Position: refs/heads/master@{#27248}
-
loislo authored
this is a fourth part of https://codereview.chromium.org/1012633002 In another patch I'll collect the inlining tree in cpu-profiler CodeEntry Each leaf for an inlined function will have a list of deopts and their pc offsets. So when deopt happens I'll be able to map the deopt pc_offset into inlined function id and point the web developer to the exact place where deopt has happened even if it was in the inlined function. BUG=chromium:452067 LOG=n Review URL: https://codereview.chromium.org/1013753007 Cr-Commit-Position: refs/heads/master@{#27247}
-
titzer authored
In constructing the transfer between loop copies, we need to merge the backedges from all the previous copies of the given loop. The control reduction will work out which ones are really reachable. R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1004993004 Cr-Commit-Position: refs/heads/master@{#27246}
-
dusan.milosavljevic authored
TEST=cctest/test-branch-combine BUG= Review URL: https://codereview.chromium.org/1017733002 Cr-Commit-Position: refs/heads/master@{#27245}
-
paul.lind authored
Add mips support for the changes in https://codereview.chromium.org/1000373003. On mips, these support the long-branch mechanism. TEST=test-serialize/SerializeToplevelLargeCodeObject BUG= Review URL: https://codereview.chromium.org/1014763003 Cr-Commit-Position: refs/heads/master@{#27244}
-
mstarzinger authored
This ensures that there is only one stub that deals with unwinding the stack. Having more than one place containing that logic is brittle and error prone, especially when it is a corner case only for RangeErrors. R=titzer@chromium.org TEST=mjsunit/regress/regress-crbug-467047 BUG=chromium:467047 LOG=N Review URL: https://codereview.chromium.org/1012103002 Cr-Commit-Position: refs/heads/master@{#27243}
-
ulan authored
BUG=v8:3969 LOG=NO TBR=yangguo@chromium.org Review URL: https://codereview.chromium.org/1016743003 Cr-Commit-Position: refs/heads/master@{#27242}
-
mvstanton authored
The cause was dynamic allocation of an accounting structure used to create/initialize the type feedback vector, done at the end of the numbering pass. The solution is to Zone-allocate the structure to bring it's lifetime in line with the compilation unit. BUG= Review URL: https://codereview.chromium.org/1014793003 Cr-Commit-Position: refs/heads/master@{#27241}
-
mstarzinger authored
The evaluation order of receiver versus arguments is not properly defined by C++. This caused issues with Clang where the environment changed after the receiveing environment was already loaded. R=jarin@chromium.org BUG=chromium:467531 LOG=N Review URL: https://codereview.chromium.org/1011123002 Cr-Commit-Position: refs/heads/master@{#27240}
-
dcarney authored
additionally, remove unnecessary deopts when transitioning to global accessor properties from data properties R=verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/996133002 Cr-Commit-Position: refs/heads/master@{#27239}
-
mstarzinger authored
The evaluation order of receiver versus arguments is not properly defined by C++. This caused issues with Clang where the environment changed after the receiveing environment was already loaded. R=jarin@chromium.org BUG=chromium:467531 TEST=mjsunit/regress/regress-crbug-467531 LOG=N Review URL: https://codereview.chromium.org/1015683002 Cr-Commit-Position: refs/heads/master@{#27238}
-
bmeurer authored
Ranges and bitset types now work together, so we don't need these weird hacks anymore. R=jarin@chromium.org Review URL: https://codereview.chromium.org/994283005 Cr-Commit-Position: refs/heads/master@{#27237}
-
dcarney authored
R=svenpanne@chromium.org BUG=v8:3929 LOG=n Review URL: https://codereview.chromium.org/1010803008 Cr-Commit-Position: refs/heads/master@{#27236}
-
mvstanton authored
A hydrogen code stub is not the best approach because it builds a frame and doesn't have the technology to discard roots at tail call exits. Platform-specific stubs provide much better performance at this point. R=verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/988653003 Cr-Commit-Position: refs/heads/master@{#27235}
-
yangguo authored
R=vogelheim@chromium.org Review URL: https://codereview.chromium.org/1011703003 Cr-Commit-Position: refs/heads/master@{#27234}
-
ulan authored
BUG=v8:3664 LOG=NO Review URL: https://codereview.chromium.org/1009343002 Cr-Commit-Position: refs/heads/master@{#27233}
-
jarin authored
This change introduces a liveness analyzer for local variables in frame states. The main idea is to use the AstGraphBuilder::Environment class to build the control flow graph, and record local variable loads, stores and checkpoints in the CFG basic blocks (LivenessAnalyzerBlock class). After the graph building finishes, we run a simple data flow analysis over the CFG to figure out liveness of each local variable at each checkpoint. Finally, we run a pass over all the checkpoints and replace dead local variables in the frame states with the 'undefined' value. Performance numbers for Embenchen are below. ----------- box2d.js Current --turbo-deoptimization: EmbenchenBox2d(RunTime): 11265 ms. d8-master --turbo-deoptimization: EmbenchenBox2d(RunTime): 11768 ms. d8-master: EmbenchenBox2d(RunTime): 10996 ms. ----------- bullet.js Current --turbo-deoptimization: EmbenchenBullet(RunTime): 17049 ms. d8-master --turbo-deoptimization: EmbenchenBullet(RunTime): 17384 ms. d8-master: EmbenchenBullet(RunTime): 16153 ms. ----------- copy.js Current --turbo-deoptimization: EmbenchenCopy(RunTime): 4877 ms. d8-master --turbo-deoptimization: EmbenchenCopy(RunTime): 4938 ms. d8-master: EmbenchenCopy(RunTime): 4940 ms. ----------- corrections.js Current --turbo-deoptimization: EmbenchenCorrections(RunTime): 7068 ms. d8-master --turbo-deoptimization: EmbenchenCorrections(RunTime): 6718 ms. d8-master: EmbenchenCorrections(RunTime): 6858 ms. ----------- fannkuch.js Current --turbo-deoptimization: EmbenchenFannkuch(RunTime): 4167 ms. d8-master --turbo-deoptimization: EmbenchenFannkuch(RunTime): 4608 ms. d8-master: EmbenchenFannkuch(RunTime): 4149 ms. ----------- fasta.js Current --turbo-deoptimization: EmbenchenFasta(RunTime): 9981 ms. d8-master --turbo-deoptimization: EmbenchenFasta(RunTime): 9848 ms. d8-master: EmbenchenFasta(RunTime): 9640 ms. ----------- lua_binarytrees.js Current --turbo-deoptimization: EmbenchenLuaBinaryTrees(RunTime): 11571 ms. d8-master --turbo-deoptimization: EmbenchenLuaBinaryTrees(RunTime): 13089 ms. d8-master: EmbenchenLuaBinaryTrees(RunTime): 10957 ms. ----------- memops.js Current --turbo-deoptimization: EmbenchenMemOps(RunTime): 7766 ms. d8-master --turbo-deoptimization: EmbenchenMemOps(RunTime): 7346 ms. d8-master: EmbenchenMemOps(RunTime): 7738 ms. ----------- primes.js Current --turbo-deoptimization: EmbenchenPrimes(RunTime): 7459 ms. d8-master --turbo-deoptimization: EmbenchenPrimes(RunTime): 7453 ms. d8-master: EmbenchenPrimes(RunTime): 7451 ms. ----------- skinning.js Current --turbo-deoptimization: EmbenchenSkinning(RunTime): 15564 ms. d8-master --turbo-deoptimization: EmbenchenSkinning(RunTime): 15611 ms. d8-master: EmbenchenSkinning(RunTime): 15583 ms. ----------- zlib.js Current --turbo-deoptimization: EmbenchenZLib(RunTime): 10825 ms. d8-master --turbo-deoptimization: EmbenchenZLib(RunTime): 11180 ms. d8-master: EmbenchenZLib(RunTime): 10823 ms. BUG= Review URL: https://codereview.chromium.org/949743002 Cr-Commit-Position: refs/heads/master@{#27232}
-
loislo authored
the third part of the patch https://codereview.chromium.org/1012633002 this patch 1) moves DeoptInfo builder code to platform independent file lithium-codegen.cc 2) adds inlining_id property to HEnterInlined so we can use it on lithium level. BUG=chromium:452067 LOG=n Review URL: https://codereview.chromium.org/1011733005 Cr-Commit-Position: refs/heads/master@{#27231}
-
yangguo authored
R=vogelheim@chromium.org Review URL: https://codereview.chromium.org/1008923003 Cr-Commit-Position: refs/heads/master@{#27230}
-
dcarney authored
R=svenpanne@chromium.org BUG=v8:3929 LOG=n Review URL: https://codereview.chromium.org/1017663002 Cr-Commit-Position: refs/heads/master@{#27229}
-
v8-autoroll authored
Rolling v8/build/gyp to d174d75bf69c682cb62af9187879e01513b35e52 TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/1014683004 Cr-Commit-Position: refs/heads/master@{#27228}
-
- 16 Mar, 2015 1 commit
-
-
jacob.bramley authored
Improve the code generated for construction of a 64-bit floating point number from two 32-bit integers. Previously, this moved FP->core, inserted, then moved core->FP for each half. Now, we construct the double in an X register and move core->FP. Typically, the temporary register aliases the input register, so the sequence improves from six to two instructions. Patch from Martyn Capewell <m.m.capewell@googlemail.com>. BUG= Review URL: https://codereview.chromium.org/1008003004 Cr-Commit-Position: refs/heads/master@{#27227}
-