- 21 Jun, 2016 33 commits
-
-
balazs.kilvady authored
MIPS: Fix 'MIPS: Followup [turbofan] Introduce new operators Float32SubPreserveNan and Float64SubPreserveNan.' Port eff959bb Original commit message: Float32SubMinusZero and Float64SubMinusZero tests are failing because MIPS does not preserve NaN payload according to Wasm spec. Implemented macro-assembler methods that check for NaN operands, and return the qNaN value with preserved payload and sign bits. TEST=cctest/test-run-wasm/Run_WasmFloat32SubMinusZero, cctest/test-run-wasm/Run_WasmFloat64SubMinusZero BUG= Review-Url: https://codereview.chromium.org/2081993002 Cr-Commit-Position: refs/heads/master@{#37151}
-
nikolaos authored
R=adamk@chromium.org BUG=chromium:621111 LOG=N Review-Url: https://codereview.chromium.org/2086513002 Cr-Commit-Position: refs/heads/master@{#37150}
-
caitpotter88 authored
BUG=v8:4483 R=yangguo@chromium.org, littledan@chromium.org Review-Url: https://codereview.chromium.org/2082023002 Cr-Commit-Position: refs/heads/master@{#37149}
-
bmeurer authored
Add control dependencies to Projection and Int32Add/SubWithOverflow operators, to prevent the scheduler from moving the Projection nodes into the wrong place. This way the instruction selection can combine the Int32Add/SubWithOverflow operations with the DeoptimizeIf and/or DeoptimizeUnless nodes. This needs new operators CheckedInt32Add and CheckedInt32Sub so that we can delay the actual lowering until the effect/control linearizer. This also makes CheckIf operator obsolete, so we can drop it. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2082993002 Cr-Commit-Position: refs/heads/master@{#37148}
-
rmcilroy authored
Adds back simple dead code elimination to the bytecode pipeline. BUG=v8:4280,chromium:616064 Review-Url: https://codereview.chromium.org/2038083002 Cr-Commit-Position: refs/heads/master@{#37147}
-
bgeron authored
Fixes bug 5128 in product V8. R=danno@chromium.org BUG= Review-Url: https://codereview.chromium.org/2087813002 Cr-Commit-Position: refs/heads/master@{#37146}
-
rmcilroy authored
Make intrinsic ids a contiguous set of ids so that the switch statement can build a table switch rather than doing a large if/else tree. BUG=v8:4822 LOG=N Committed: https://crrev.com/36abd28a8d9932eb55d7c2bf3ad5e7cfe3eb99ea Review-Url: https://codereview.chromium.org/2084623002 Cr-Original-Commit-Position: refs/heads/master@{#37135} Cr-Commit-Position: refs/heads/master@{#37145}
-
neis authored
This CL merely sets the --ignition-generators flag to true. This flag is currently only meaningful in combination with --ignition. BUG= Review-Url: https://codereview.chromium.org/2065963002 Cr-Commit-Position: refs/heads/master@{#37144}
-
rossberg authored
Implements: - WebAssembly object, - WebAssembly.Module constructor, - WebAssembly.Instance constructor, - WebAssembly.compile async method, - and Module and Instance instance objects. Also, changes ErrorThrower to support capturing errors in a promise reject. Since we cannot yet compile without fixing the Wasm memory, and cannot validate a module without compiling, the Module constructor and compile method don't do anything yet but checking that their argument is a suitable BufferSource. Instead of a compiled module, the hidden state of a Module object currently is just that buffer. BUG= Review-Url: https://codereview.chromium.org/2084573002 Cr-Commit-Position: refs/heads/master@{#37143}
-
bmeurer authored
If all uses of a CheckTaggedHole[convert-hole-to-undefined] node truncate to word32, we can replace the hole check with a Smi check and return the result as word32. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2079233006 Cr-Commit-Position: refs/heads/master@{#37142}
-
jarin authored
Review-Url: https://codereview.chromium.org/2087693003 Cr-Commit-Position: refs/heads/master@{#37141}
-
neis authored
This runtime function now also works for Ignition generators. It returns the source position of the yield at which a suspended generator got suspended. This works by storing the current bytecode offset at suspension and using an existing mechanism to map it back to a source position. TBR=littledan@chromium.org BUG= Review-Url: https://codereview.chromium.org/2079613003 Cr-Commit-Position: refs/heads/master@{#37140}
-
machenbach authored
Revert of [heap] Avoid the use of cells to point from code to new-space objects. (patchset #7 id:120001 of https://codereview.chromium.org/2045263002/ ) Reason for revert: [Sheriff] Breaks arm debug: https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/1038 Original issue's description: > [heap] Avoid the use of cells to point from code to new-space objects. > > Cells were needed originally because there was no typed remembered set to > record direct pointers from code space to new space. A previous > CL (https://codereview.chromium.org/2003553002/) already introduced > the remembered set, this CL uses it. > > This CL > * stores direct pointers in code objects, even if the target is in new space, > * records the slot of the pointer in typed-old-to-new remembered set, > * adds a list which stores weak code-to-new-space references, > * adds a test to test-heap.cc for weak code-to-new-space references, > * removes prints in tail-call-megatest.js > > R=ulan@chromium.org > > Committed: https://crrev.com/2d2087b79a293a92a6ed34a2775e481ff2173b3c > Cr-Commit-Position: refs/heads/master@{#37134} TBR=titzer@chromium.org,ulan@chromium.org,ahaas@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2087463004 Cr-Commit-Position: refs/heads/master@{#37139}
-
machenbach authored
Lsan only works with x64. This broke when landing: https://codereview.chromium.org/2085513002/ BUG=616035 TBR=jochen@chromium.org, vogelheim@chromium.org, kjellander@chromium.org NOTRY=true NOTREECHECKS=true Review-Url: https://codereview.chromium.org/2086623003 Cr-Commit-Position: refs/heads/master@{#37138}
-
machenbach authored
Revert of [Interpreter] Map runtime id's to intrinsic id's in InvokeIntrinsic bytecode. (patchset #3 id:40001 of https://codereview.chromium.org/2084623002/ ) Reason for revert: [Sheriff] Breaks gc stress: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/builds/6304 Original issue's description: > [Interpreter] Map runtime id's to intrinsic id's in InvokeIntrinsic bytecode. > > Make intrinsic ids a contiguous set of ids so that the switch statement can build > a table switch rather than doing a large if/else tree. > > BUG=v8:4822 > LOG=N > > Committed: https://crrev.com/36abd28a8d9932eb55d7c2bf3ad5e7cfe3eb99ea > Cr-Commit-Position: refs/heads/master@{#37135} TBR=epertoso@chromium.org,oth@chromium.org,rmcilroy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4822 Review-Url: https://codereview.chromium.org/2085823003 Cr-Commit-Position: refs/heads/master@{#37137}
-
oth authored
Add explicit state in BytecodeSourceInfo to simplify checks for validity and whether a statement or expression position. Remove BytecodeSourceInfo::Update which inherited rules for updating source position information during bytecode building. BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/2048203002 Cr-Commit-Position: refs/heads/master@{#37136}
-
rmcilroy authored
Make intrinsic ids a contiguous set of ids so that the switch statement can build a table switch rather than doing a large if/else tree. BUG=v8:4822 LOG=N Review-Url: https://codereview.chromium.org/2084623002 Cr-Commit-Position: refs/heads/master@{#37135}
-
ahaas authored
Cells were needed originally because there was no typed remembered set to record direct pointers from code space to new space. A previous CL (https://codereview.chromium.org/2003553002/) already introduced the remembered set, this CL uses it. This CL * stores direct pointers in code objects, even if the target is in new space, * records the slot of the pointer in typed-old-to-new remembered set, * adds a list which stores weak code-to-new-space references, * adds a test to test-heap.cc for weak code-to-new-space references, * removes prints in tail-call-megatest.js R=ulan@chromium.org Review-Url: https://codereview.chromium.org/2045263002 Cr-Commit-Position: refs/heads/master@{#37134}
-
bmeurer authored
We need to trim the graph before we execute the MemoryOptimizer, because that just walks the effect chain from Start to End and cannot deal with dead nodes in the use lists. R=jarin@chromium.org BUG=chromium:614292 Review-Url: https://codereview.chromium.org/2080703003 Cr-Commit-Position: refs/heads/master@{#37133}
-
ahaas authored
With the tail call, pointers to the JS heap could be pushed on a js-to-wasm frame. On the js-to-wasm frame, however, this pointer would not be updated by the GC. R=bmeurer@chromium.org, v8-arm-ports@googlegroups.com, v8-mips-ports@googlegroups.com BUG=617084 TEST=mjsunit/wasm/gc-frame.js:GCInJSToWasmTest() Review-Url: https://codereview.chromium.org/2079393003 Cr-Commit-Position: refs/heads/master@{#37132}
-
mlippautz authored
Base the fast-path in AdjustAmountOfExternalMemory on a value + limit. To preserve the behavior the limit is just set using kExternalAllocationLimit. Redo naming of related members. R=jochen@chromium.org BUG=chromium:621829 LOG=N Review-Url: https://codereview.chromium.org/2085893002 Cr-Commit-Position: refs/heads/master@{#37131}
-
Michael Achenbach authored
Cr-Commit-Position: refs/heads/master@{#37130}
-
machenbach authored
BUG=chromium:616035 NOTRY=true Review-Url: https://codereview.chromium.org/2085513002 Cr-Commit-Position: refs/heads/master@{#37129}
-
bmeurer authored
While the EcmaScript specification doesn't define precise values for the Math constants or the Math functions, we should at least ensure that the values of the constants and the functions agree, i.e. Math.E should be exactly the same value as Math.exp(1). Also make sure that Math.exp(1) returns the expected value; we should revisit the fdlibm algorithm and figure out why it's wrong in the last bit. CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel BUG=chromium:626111,v8:3266,v8:3468,v8:3493,v8:5086,v8:5108 R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2079233005 Cr-Commit-Position: refs/heads/master@{#37128}
-
zhengxing.li authored
port 757221e5(r36876) original commit message: Neither globals nor lookup slots can be hole-initialized anymore, thus removing some dead code from the code generators and runtime-scopes. BUG= Review-Url: https://codereview.chromium.org/2086813002 Cr-Commit-Position: refs/heads/master@{#37127}
-
mtrofin authored
Yanking out in an effort to reduce dependencies. We probably want to separate codegen into instance-specific and module-generic purpose - eventually. BUG= Review-Url: https://codereview.chromium.org/2085863003 Cr-Commit-Position: refs/heads/master@{#37126}
-
zhengxing.li authored
port 406146ff(r36870) original commit message: This makes sure we do not compile ToNumber stub on demand. This makes it easier to use during concurrent compilation. BUG= Review-Url: https://codereview.chromium.org/2088633003 Cr-Commit-Position: refs/heads/master@{#37125}
-
zhengxing.li authored
port 40b5c1d4(r36842) original commit message: BUG= Review-Url: https://codereview.chromium.org/2080873003 Cr-Commit-Position: refs/heads/master@{#37124}
-
zhengxing.li authored
port 3cfcc7e1 (r36786) original commit message: It may be that we have a feedback vector, but no literals. In this case we can store into the OptimizedCodeMap directly instead of using a WeakCell, because all data in the feedback vector is already held weakly. The use of a WeakCell in the OptimizedCodeMap is only required when there are literals which may hold maps strongly. This is to address a performance regression caused by the creation of a large number of WeakCells. BUG= Review-Url: https://codereview.chromium.org/2081663004 Cr-Commit-Position: refs/heads/master@{#37123}
-
yangguo authored
R=jochen@chromium.org, verwaest@chromium.org BUG=chromium:617892 Review-Url: https://codereview.chromium.org/2076083002 Cr-Commit-Position: refs/heads/master@{#37122}
-
v8-autoroll authored
Rolling v8/build to 7580e8854eb309008f00f115ea0adb13dac454a4 Rolling v8/buildtools to 4dcb5ed1079e7a527061925637b8cc627e289e82 Rolling v8/tools/clang to ea64c667cd841b2c3268bd7dfd223269f3ea23ba Rolling v8/tools/gyp to 35eafcd939515d51d19556c543f9cf97faf75ee6 Rolling v8/tools/mb to 8b4a59c463a697a3e418c28e85f534e87337ba7f TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review-Url: https://codereview.chromium.org/2078333005 Cr-Commit-Position: refs/heads/master@{#37121}
-
mtrofin authored
When separating compile from instantiation, I accidentally elided size reporting for wasm functions. This change fixes that (verified with re-running benchmarks), and also consolidates the responsibility of size reporting within the instantiation method, away from the various compile phases. We should probably rethink this reporting when we move wasm codegen off the JS Heap, if the wasm module code ends up being shared. BUG= Review-Url: https://codereview.chromium.org/2079353002 Cr-Commit-Position: refs/heads/master@{#37120}
-
zhengxing.li authored
BUG= Review-Url: https://codereview.chromium.org/2080693002 Cr-Commit-Position: refs/heads/master@{#37119}
-
- 20 Jun, 2016 7 commits
-
-
bjaideep authored
Port 198e09de Original commit message: Construct a BUILTIN frame before throwing an exception from runtime. R=jgruber@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= Review-Url: https://codereview.chromium.org/2083523004 Cr-Commit-Position: refs/heads/master@{#37118}
-
bjaideep authored
Port cbc6adc8 Original commit message: Runtime_DeclareLookupSlot is used when generating code for var and function declarations originating in an eval. Over time, it's accumulated quite a bit of cruft, which this CL removes: - With legacy const gone, lookup slots never have any property attributes. - There was a bit signaling that the variable was from an eval, but that was redundant since DeclareLookupSlot is only used for eval. - Some Proxy-related code didn't make sense here. Its name was also not terribly clear: while "LookupSlot" is used in several places, this particular function is only used for declaring variables and functions inside sloppy eval. Renamed (and split into two) to make this clear for future archeologists. Also added various DCHECKs to check the assumptions being made. R=adamk@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= LOG=N Review-Url: https://codereview.chromium.org/2085623003 Cr-Commit-Position: refs/heads/master@{#37117}
-
bjaideep authored
Port c1d01aea Original commit message: Compilation of wasm functions happens before instantiation. Imports are linked afterwards, at instantiation time. Globals and memory are also allocated and then tied in via relocation at instantiation time. This paves the way for implementing Wasm.compile, a prerequisite to offering the compiled code serialization feature. Currently, the WasmModule::Compile method just returns a fixed array containing the code objects. More appropriate modeling of the compiled module to come. Opportunistically centralized the logic on how to update memory references, size, and globals, since that logic is the exact same on each architecture, except for the actual storing of values back in the instruction stream. R=mtrofin@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=v8:5072 LOG=N Review-Url: https://codereview.chromium.org/2087453002 Cr-Commit-Position: refs/heads/master@{#37116}
-
bjaideep authored
Port c87168bc Original commit message: Import base::ieee754::tan() from fdlibm and introduce Float64Tan TurboFan operator based on that, similar to what we do for Float64Cos and Float64Sin. Rewrite Math.tan() as TurboFan builtin and use those operators to also inline Math.tan() into optimized TurboFan functions. Drive-by-fix: Kill the %_ConstructDouble intrinsics, and provide only the %ConstructDouble runtime entry for writing tests. R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=v8:5086,v8:5126 LOG=N Review-Url: https://codereview.chromium.org/2080303002 Cr-Commit-Position: refs/heads/master@{#37115}
-
brettw authored
This brings some more flags in line with the GYP build on Windows. In particular, this ads the SSE2 flag on x86, and the stack linker flag on x64. Review-Url: https://codereview.chromium.org/2077173002 Cr-Commit-Position: refs/heads/master@{#37114}
-
lpy authored
Revert of Refactor CpuProfiler. (patchset #13 id:240001 of https://codereview.chromium.org/2053523003/ ) Reason for revert: MIPS compilation error. Original issue's description: > Refactor CpuProfiler. > > Currently CpuProfiler is a subclass of CodeEventListener, it listens code events > from Logger, constructs and stores CodeEventsContainer. This patch is part of > the effort to split the logic of CodeEventListener as ProfilerListener out of > the profiling functionality logic in CpuProfiler. A ProfilerListener will listen > to code events, construct code event to CodeEventsContainer and pass it to code > event handler. > > The reason we refactor CpuProfiler is that eventually we want to move > CpuProfiler as part of sampler library and code event listener should stay > inside V8. > > Main changes: > 1. Refactored CpuProfiler into two parts, the CpuProfiler with profling > functionality and the ProfilerListener listening to code events from Logger. > 2. Created CodeEventObserver and made CpuProfiler inherit from it. > ProfilerListener will have a list of observers and call CodeEventHandler once a > code event is created. > 3. Moved code entry list from CodeEntry to ProfilerListener. > > Minor changes: > 1. Moved static code entry as part of CodeEntry. > 2. Added ProfilerListener to Logger. > > BUG=v8:4789 > > Committed: https://crrev.com/cb59fc1facc9b390e2c7544b4da56a4e0a9b3222 > Cr-Commit-Position: refs/heads/master@{#37112} TBR=alph@chromium.org,jochen@chromium.org,yangguo@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4789 Review-Url: https://codereview.chromium.org/2079273003 Cr-Commit-Position: refs/heads/master@{#37113}
-
lpy authored
Currently CpuProfiler is a subclass of CodeEventListener, it listens code events from Logger, constructs and stores CodeEventsContainer. This patch is part of the effort to split the logic of CodeEventListener as ProfilerListener out of the profiling functionality logic in CpuProfiler. A ProfilerListener will listen to code events, construct code event to CodeEventsContainer and pass it to code event handler. The reason we refactor CpuProfiler is that eventually we want to move CpuProfiler as part of sampler library and code event listener should stay inside V8. Main changes: 1. Refactored CpuProfiler into two parts, the CpuProfiler with profling functionality and the ProfilerListener listening to code events from Logger. 2. Created CodeEventObserver and made CpuProfiler inherit from it. ProfilerListener will have a list of observers and call CodeEventHandler once a code event is created. 3. Moved code entry list from CodeEntry to ProfilerListener. Minor changes: 1. Moved static code entry as part of CodeEntry. 2. Added ProfilerListener to Logger. BUG=v8:4789 Review-Url: https://codereview.chromium.org/2053523003 Cr-Commit-Position: refs/heads/master@{#37112}
-