haikuwebkit/LayoutTests/js/dfg-get-closure-var-put-clo...

11 lines
273 B
Plaintext
Raw Permalink Normal View History

Incorrect behavior on emscripten-compiled cube2hash https://bugs.webkit.org/show_bug.cgi?id=120033 Source/JavaScriptCore: Reviewed by Mark Hahnenberg. If PutClosureVar is may-aliased to another PutClosureVar or GetClosureVar then we should bail attempts to CSE. * dfg/DFGCSEPhase.cpp: (JSC::DFG::CSEPhase::scopedVarLoadElimination): (JSC::DFG::CSEPhase::scopedVarStoreElimination): LayoutTests: Reviewed by Mark Hahnenberg. Add the test that actually failed as a JSRegress test. We should track its performance anyway. Add a regression test for the actual failure. Add .html and -expected.txt files for a JSRegress test that is already in the repo. * fast/js/dfg-get-closure-var-put-closure-var-interference.html: Added. * fast/js/dfg-get-closure-var-put-closure-var-interference-expected.txt: Added. * fast/js/regress/array-nonarray-polymorhpic-access-expected.txt: Added. * fast/js/regress/array-nonarray-polymorhpic-access.html: Added. * fast/js/regress/emscripten-cube2hash-expected.txt: Added. * fast/js/regress/emscripten-cube2hash.html: Added. * fast/js/regress/script-tests/emscripten-cube2hash.js: Added. (.Module.string_appeared_here): (else.Module.string_appeared_here): (else.else.Module.string_appeared_here): (else.else): (globalEval): (Runtime.stackSave): (Runtime.stackRestore): (Runtime.forceAlign): (Runtime.isNumberType): (Runtime.isPointerType): (Runtime.isStructType): (or64): (and64): (xor64): (getNativeTypeSize): (getNativeFieldSize): (dedup): (.set var): (getAlignSize): (calculateStructAlignment): (.else.alignment): (generateStructInfo): (dynCall): (addFunction): (removeFunction): (warnOnce): (.Runtime.funcWrappers.func): (getFuncWrapper): (UTF8Processor.this.processCChar): (UTF8Processor.this.processJSString): (UTF8Processor): (stackAlloc): (staticAlloc): (dynamicAlloc): (alignMemory): (makeBigInt): (assert): (ccall): (getCFunc): (.toC): (.fromC): (ccallFunc): (setValue): (getValue): (.set else): (.set return): (allocate): (Pointer_stringify): (alignMemoryPage): (enlargeMemory): (callRuntimeCallbacks): (preRun): (ensureInitRuntime): (preMain): (exitRuntime): (postRun): (addOnPreRun): (addOnInit): (addOnPreMain): (addOnExit): (addOnPostRun): (intArrayFromString): (intArrayToString): (writeStringToMemory): (writeArrayToMemory): (unSign): (reSign): (Math.string_appeared_here): (addRunDependency): (removeRunDependency): (loadMemoryInitializer.applyData): (loadMemoryInitializer.set addOnPreRun): (__ATINIT__.push): (STATIC_BASE): (copyTempDouble): (___setErrNo): (PATH.splitPath): (PATH.normalizeArray): (PATH.normalize.join): (PATH.normalize): (PATH.dirname): (PATH.basename): (PATH.join): (PATH.trim): (PATH.relative): (TTY.register): (TTY.stream_ops.open): (TTY.stream_ops.close): (TTY.stream_ops.read): (TTY.stream_ops.write): (TTY.default_tty_ops.get_char): (TTY.default_tty_ops.put_char): (TTY.default_tty1_ops.put_char): (MEMFS.mount): (MEMFS.create_node): (MEMFS.node_ops.getattr): (MEMFS.node_ops.setattr): (MEMFS.node_ops.lookup): (MEMFS.node_ops.mknod): (MEMFS.node_ops.rename): (MEMFS.node_ops.unlink): (MEMFS.node_ops.rmdir): (MEMFS.node_ops.readdir): (MEMFS.node_ops.symlink): (MEMFS.node_ops.readlink): (MEMFS.stream_ops.set else): (MEMFS.stream_ops.read): (MEMFS.stream_ops.write): (MEMFS.stream_ops.llseek): (MEMFS.stream_ops.allocate): (MEMFS.stream_ops.set return): (MEMFS.stream_ops.mmap): (_fflush): (FS.ErrnoError): (FS.handleFSError): (FS.hashName): (FS.hashAddNode): (FS.hashRemoveNode): (FS.lookupNode): (FS.): (FS.destroyNode): (FS.isRoot): (FS.isMountpoint): (FS.isFile): (FS.isDir): (FS.isLink): (FS.isChrdev): (FS.isBlkdev): (FS.isFIFO): (FS.cwd): (FS.var): (FS.lookupPath): (FS.getPath): (FS.modeStringToFlags): (FS.flagsToPermissionString): (FS.nodePermissions): (FS.mayLookup): (FS.mayMknod): (FS.mayCreate): (FS.mayDelete): (FS.mayOpen): (FS.chrdev_stream_ops.open): (FS.chrdev_stream_ops.llseek): (FS.major): (FS.minor): (FS.makedev): (FS.registerDevice): (FS.getDevice): (FS.nextfd): (FS.getStream): (FS.closeStream): (FS.getMode): (FS.joinPath): (FS.absolutePath): (FS.standardizePath): (FS.findObject): (FS.analyzePath): (FS.createFolder): (FS.createPath): (FS.createFile): (FS.createDataFile): (FS.createDevice): (FS.createLink): (FS.forceLoadFile): (FS.LazyUint8Array): (FS.LazyUint8Array.prototype.get if): (FS.LazyUint8Array.prototype): (FS.LazyUint8Array.prototype.setDataGetter): (FS.LazyUint8Array.prototype.cacheLength.doXHR): (FS.LazyUint8Array.prototype.cacheLength): (FS.get Object): (FS.get var): (FS.keys.forEach): (FS.processData.finish): (FS.processData): (FS.else): (FS.createPreloadedFile): (FS.createDefaultDirectories): (FS.createDefaultDevices.): (FS.createDefaultDevices): (FS.createStandardStreams): (FS.staticInit): (FS.init): (FS.quit): (FS.mount): (FS.lookup): (FS.mknod): (FS.create): (FS.mkdir): (FS.mkdev): (FS.symlink): (FS.rename): (FS.rmdir): (FS.readdir): (FS.unlink): (FS.readlink): (FS.stat): (FS.lstat): (FS.chmod): (FS.lchmod): (FS.fchmod): (FS.chown): (FS.lchown): (FS.fchown): (FS.truncate): (FS.ftruncate): (FS.utime): (FS.open): (FS.close): (FS.llseek): (FS.read): (FS.write): (FS.allocate): (FS.mmap): (_send): (_pwrite): (_write): (_fwrite): (__reallyNegative): (.getNextArg): (.switch.case.string_appeared_here.case.string_appeared_here.case.string_appeared_here.case.string_appeared_here.case.string_appeared_here.case.string_appeared_here.case.string_appeared_here.break): (.switch.case.string_appeared_here.case.string_appeared_here.case.string_appeared_here.case.string_appeared_here.case.string_appeared_here.case.string_appeared_here.break): (_fprintf): (_printf): (_fputs): (_fputc): (_puts): (_abort): (___errno_location): (_sbrk.Runtime.dynamicAlloc): (_sbrk): (_sysconf): (_time): (Browser.mainLoop.pause): (Browser.mainLoop.resume): (Browser.mainLoop.updateStatus): (Browser.init.imagePlugin.string_appeared_here): (Browser.init.img.onload): (Browser.init.img.onerror): (Browser.init.audioPlugin.string_appeared_here): (Browser.init.finish): (Browser.init.fail): (Browser.init.audio.onerror.encode64): (Browser.init.audio.onerror): (Browser.init.audio): (Browser.init.else): (Browser.init.pointerLockChange): (Browser.init.canvas): (Browser.init): (Browser.destroyContext): (Browser.fullScreenChange): (Browser.requestFullScreen): (Browser.requestAnimationFrame): (Browser.safeRequestAnimationFrame): (Browser.safeSetTimeout): (Browser.safeSetInterval): (Browser.getMimetype): (Browser.getUserMedia): (Browser.getMovementX): (Browser.getMovementY): (Browser.calculateMouseEvent): (Browser.xhr.onload): (Browser.xhrLoad): (Browser.updateResizeListeners): (Browser.setCanvasSize): (Browser.setFullScreenCanvasSize): (Browser.setWindowedCanvasSize): (__ATINIT__.unshift): (__ATMAIN__.push): (__ATEXIT__.push): (Module.string_appeared_here): (invoke_ii): (invoke_v): (invoke_iii): (invoke_vi): (asmPrintInt): (asmPrintFloat): (asm): (Runtime.stackAlloc): (i64Math): (i64Math.): (Module.string_appeared_here.Module.callMain.callMain.pad): (Module.string_appeared_here.Module.callMain): (run.doRun): (run.else): (run): (exit): (abort): * fast/js/script-tests/dfg-get-closure-var-put-closure-var-interference.js: Added. (foo): (thingy.return.bar): (thingy.return.baz): (thingy): (runIt): Canonical link: https://commits.webkit.org/138009@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@154344 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2013-08-20 18:22:08 +00:00
Tests that the DFG is appropriately conservative for may-aliased but not must-aliased PutClosureVar and GetClosureVar.
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS runIt() is 113
PASS successfullyParsed is true
TEST COMPLETE