=========================================================== .___ __ __ _________________ __ __ __| _/|__|/ |_ / ___\_` __ \__ \ | | \/ __ | | \\_ __\ / /_/ > | \// __ \| | / /_/ | | || | \___ /|__| (____ /____/\____ | |__||__| /_____/ \/ \/ grep rough audit - static analysis tool v2.8 written by @Wireghoul =================================[justanotherhacker.com]=== binaryen-98/CHANGELOG.md-122- local to each function. binaryen-98/CHANGELOG.md:123:- Binaryen.js can now be compiled to Wasm using the `binaryen_wasm` target. binaryen-98/CHANGELOG.md:124: Unlike the JS variant, the Wasm variant requires asynchronously awaiting the binaryen-98/CHANGELOG.md:125: Wasm blob's instantiation and initialization before being usable, using the binaryen-98/CHANGELOG.md-126- `binaryen.ready` promise, e.g. `binaryen.ready.then(() => ...)`. ############################################## binaryen-98/CMakeLists.txt-202- if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$") binaryen-98/CMakeLists.txt:203: # wasm doesn't allow for x87 floating point math binaryen-98/CMakeLists.txt-204- add_compile_flag("-msse2") ############################################## binaryen-98/CMakeLists.txt-267-# Current (partial) dependency structure is as follows: binaryen-98/CMakeLists.txt:268:# passes -> wasm -> asmjs -> support binaryen-98/CMakeLists.txt:269:# TODO: It's odd that wasm should depend on asmjs, maybe we should fix that. binaryen-98/CMakeLists.txt-270-add_subdirectory(src/ir) ############################################## binaryen-98/CMakeLists.txt-350- ${binaryen_emscripten_SOURCES}) binaryen-98/CMakeLists.txt:351: target_link_libraries(binaryen_wasm wasm asmjs emscripten-optimizer passes ir cfg support wasm) binaryen-98/CMakeLists.txt:352: target_link_libraries(binaryen_wasm "-s NO_FILESYSTEM=0") binaryen-98/CMakeLists.txt:353: target_link_libraries(binaryen_wasm "-s NODERAWFS=0") binaryen-98/CMakeLists.txt:354: target_link_libraries(binaryen_wasm "-s EXPORT_NAME=binaryen") binaryen-98/CMakeLists.txt:355: target_link_libraries(binaryen_wasm "--post-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-post.js") binaryen-98/CMakeLists.txt:356: target_link_libraries(binaryen_wasm "--extern-pre-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-extern-pre.js") binaryen-98/CMakeLists.txt:357: target_link_libraries(binaryen_wasm "--extern-post-js ${CMAKE_CURRENT_SOURCE_DIR}/src/js/binaryen.js-extern-post.js") binaryen-98/CMakeLists.txt:358: target_link_libraries(binaryen_wasm optimized "--closure 1") binaryen-98/CMakeLists.txt:359: target_link_libraries(binaryen_wasm optimized "--closure-args \"--language_in=ECMASCRIPT6 --language_out=ECMASCRIPT6\"") binaryen-98/CMakeLists.txt:360: target_link_libraries(binaryen_wasm optimized "-flto") binaryen-98/CMakeLists.txt:361: target_link_libraries(binaryen_wasm debug "--profiling") binaryen-98/CMakeLists.txt:362: set_property(TARGET binaryen_wasm PROPERTY CXX_STANDARD ${CXX_STANDARD}) binaryen-98/CMakeLists.txt:363: set_property(TARGET binaryen_wasm PROPERTY CXX_STANDARD_REQUIRED ON) binaryen-98/CMakeLists.txt:364: install(TARGETS binaryen_wasm DESTINATION ${CMAKE_INSTALL_BINDIR}) binaryen-98/CMakeLists.txt-365- ############################################## binaryen-98/CMakeLists.txt-368- ${binaryen_emscripten_SOURCES}) binaryen-98/CMakeLists.txt:369: target_link_libraries(binaryen_js wasm asmjs emscripten-optimizer passes ir cfg support wasm) binaryen-98/CMakeLists.txt-370- target_link_libraries(binaryen_js "-s WASM=0") ############################################## binaryen-98/README.md-23- (that general-purpose compilers might not do), which you can think of as binaryen-98/README.md:24: wasm [minification], similar to minification for JavaScript, CSS, etc., all binaryen-98/README.md-25- of which are language-specific. ############################################## binaryen-98/README.md-37- WebAssembly, optimize it using Binaryen, and re-emit it, thus implementing a binaryen-98/README.md:38: wasm-to-wasm optimizer in a single command. binaryen-98/README.md-39- * **Interpret** WebAssembly as well as run the WebAssembly spec tests. ############################################## binaryen-98/README.md-65- (with s-expression extensions). Binaryen can't read the linear style, but binaryen-98/README.md:66: it can read a wasm text file if it contains only s-expressions. binaryen-98/README.md-67- * Binaryen uses Stack IR to optimize "stacky" code (that can't be ############################################## binaryen-98/README.md-78- know the global context][unreachable]. As a result, Binaryen's default binaryen-98/README.md:79: text output is not necessarily valid wasm text. (To get valid wasm text, binaryen-98/README.md-80- you can do `--generate-stack-ir --print-stack-ir`, which prints Stack IR, binaryen-98/README.md:81: this is guaranteed to be valid for wasm parsers.) binaryen-98/README.md-82- * Binaryen ignores unreachable code when reading WebAssembly binaries. That binaryen-98/README.md:83: means that if you read a wasm file with unreachable code, that code will be binaryen-98/README.md-84- discarded as if it were optimized out (often this is what you want anyhow, ############################################## binaryen-98/README.md-123- binaryen-98/README.md:124:As a result, you might notice that round-trip conversions (wasm => Binaryen IR binaryen-98/README.md-125-=> wasm) change code a little in some corner cases. ############################################## binaryen-98/README.md-130- IR is less efficient for general optimizations than the main Binaryen IR). If binaryen-98/README.md:131: you have a wasm file that has been particularly well-optimized, a simple binaryen-98/README.md-132- round-trip conversion (just read and write, without optimization) may cause ############################################## binaryen-98/README.md-134- structured format. If you also optimize during the round-trip conversion then binaryen-98/README.md:135: Stack IR opts will be run and the final wasm will be better optimized. binaryen-98/README.md-136- ############################################## binaryen-98/README.md-157- generate JavaScript as an alternative to WebAssembly. binaryen-98/README.md:158: * **wasm-reduce**: A testcase reducer for WebAssembly files. Given a wasm file binaryen-98/README.md-159- that is interesting for some reason (say, it crashes a specific VM), binaryen-98/README.md:160: wasm-reduce can find a smaller wasm file that has the same property, which is binaryen-98/README.md-161- often easier to debug. See the ############################################## binaryen-98/README.md-165- also run the spec test suite. binaryen-98/README.md:166: * **wasm-emscripten-finalize**: Takes a wasm binary produced by llvm+lld and binaryen-98/README.md-167- performs emscripten-specific passes over it. ############################################## binaryen-98/README.md-169- time. Used by Emscripten. binaryen-98/README.md:170: * **binaryen.js**: A standalone JavaScript library that exposes Binaryen methods for [creating and optimizing WASM modules](https://github.com/WebAssembly/binaryen/blob/master/test/binaryen.js/hello-world.js). For builds, see [binaryen.js on npm](https://www.npmjs.com/package/binaryen) (or download it directly from [github](https://raw.githubusercontent.com/AssemblyScript/binaryen.js/master/index.js), [rawgit](https://cdn.rawgit.com/AssemblyScript/binaryen.js/master/index.js), or [unpkg](https://unpkg.com/binaryen@latest/index.js)). binaryen-98/README.md-171- ############################################## binaryen-98/README.md-225- expression). binaryen-98/README.md:226:* **ReReloop** - Transforms wasm structured control flow to a CFG and then goes binaryen-98/README.md-227- back to structured form using the Relooper algorithm, which may find more ############################################## binaryen-98/README.md-313-```` binaryen-98/README.md:314:bin/wasm-opt [.wasm or .wat file] [options] [passes, see --help] [--help] binaryen-98/README.md-315-```` binaryen-98/README.md-316- binaryen-98/README.md:317:The wasm optimizer receives WebAssembly as input, and can run transformation binaryen-98/README.md-318-passes on it, as well as print it (before and/or after the transformations). For ############################################## binaryen-98/README.md-349-``` binaryen-98/README.md:350:bin/wasm2js [input.wasm file] binaryen-98/README.md-351-``` ############################################## binaryen-98/README.md-405- or another optimization level. That will optimize along the entire pipeline binaryen-98/README.md:406: (wasm and JS). It won't do everything a JS minifer would, though, like binaryen-98/README.md-407- minify whitespace, so you should still run a normal JS minifer afterwards. ############################################## binaryen-98/auto_update_tests.py-130- support.run_command(shared.WASM_AS + [t, '-o', 'a.wasm']) binaryen-98/auto_update_tests.py:131: print(support.run_command(shared.WASM_REDUCE + ['a.wasm', '--command=%s b.wasm --fuzz-exec' % shared.WASM_OPT[0], '-t', 'b.wasm', '-w', 'c.wasm'])) binaryen-98/auto_update_tests.py-132- expected = t + '.txt' ############################################## binaryen-98/check.py-32-if shared.options.interpreter: binaryen-98/check.py:33: print('[ using wasm interpreter at "%s" ]' % shared.options.interpreter) binaryen-98/check.py-34- assert os.path.exists(shared.options.interpreter), 'interpreter not found' ############################################## binaryen-98/check.py-167- support.run_command(shared.WASM_AS + [t, '-o', 'a.wasm']) binaryen-98/check.py:168: support.run_command(shared.WASM_REDUCE + ['a.wasm', '--command=%s b.wasm --fuzz-exec --detect-features ' % shared.WASM_OPT[0], '-t', 'b.wasm', '-w', 'c.wasm', '--timeout=4']) binaryen-98/check.py-169- expected = t + '.txt' ############################################## binaryen-98/check.py-180- before = os.stat('a.wasm').st_size binaryen-98/check.py:181: support.run_command(shared.WASM_REDUCE + ['a.wasm', '--command=%s b.wasm --fuzz-exec --detect-features' % shared.WASM_OPT[0], '-t', 'b.wasm', '-w', 'c.wasm']) binaryen-98/check.py-182- after = os.stat('c.wasm').st_size ############################################## binaryen-98/scripts/embedwat.py-38- binaryen-98/scripts/embedwat.py:39:namespace wasm { binaryen-98/scripts/embedwat.py-40-const char* IntrinsicsModuleWast = theModule; ############################################## binaryen-98/scripts/fuzz_opt.py-368- def v8_run(wasm): binaryen-98/scripts/fuzz_opt.py:369: run([in_bin('wasm-opt'), wasm, '--emit-js-wrapper=' + wasm + '.js'] + FEATURE_OPTS) binaryen-98/scripts/fuzz_opt.py:370: return run_vm([shared.V8, wasm + '.js'] + shared.V8_OPTS + ['--', wasm]) binaryen-98/scripts/fuzz_opt.py-371- ############################################## binaryen-98/scripts/fuzz_opt.py-421- def can_compare_to_others(self): binaryen-98/scripts/fuzz_opt.py:422: # C won't trap on OOB, and NaNs can differ from wasm VMs binaryen-98/scripts/fuzz_opt.py-423- return not OOB and not NANS ############################################## binaryen-98/scripts/fuzz_opt.py-436- compile_cmd = ['emcc', 'main.c', 'wasm.c', os.path.join(self.wasm2c_dir, 'wasm-rt-impl.c'), '-I' + self.wasm2c_dir, '-lm'] binaryen-98/scripts/fuzz_opt.py:437: # disable the signal handler: emcc looks like unix, but wasm has binaryen-98/scripts/fuzz_opt.py-438- # no signals ############################################## binaryen-98/scripts/fuzz_opt.py-447- # avoid pass-debug on the emcc invocation itself (which runs binaryen-98/scripts/fuzz_opt.py:448: # binaryen to optimize the wasm), as the wasm here can be very binaryen-98/scripts/fuzz_opt.py-449- # large and it isn't what we are focused on testing here ############################################## binaryen-98/scripts/fuzz_opt.py-457- return False binaryen-98/scripts/fuzz_opt.py:458: # prefer not to run if the wasm is very large, as it can OOM binaryen-98/scripts/fuzz_opt.py-459- # the JS engine. ############################################## binaryen-98/scripts/fuzz_opt.py-463- def can_compare_to_others(self): binaryen-98/scripts/fuzz_opt.py:464: # NaNs can differ from wasm VMs binaryen-98/scripts/fuzz_opt.py-465- return not NANS ############################################## binaryen-98/scripts/fuzz_opt.py-525- def handle_pair(self, input, before_wasm, after_wasm, opts): binaryen-98/scripts/fuzz_opt.py:526: before_wasm_temp = before_wasm + '.temp.wasm' binaryen-98/scripts/fuzz_opt.py:527: after_wasm_temp = after_wasm + '.temp.wasm' binaryen-98/scripts/fuzz_opt.py-528- # legalize the before wasm, so that comparisons to the interpreter binaryen-98/scripts/fuzz_opt.py:529: # later make sense (if we don't do this, the wasm may have i64 exports). binaryen-98/scripts/fuzz_opt.py-530- # after applying other necessary fixes, we'll recreate the after wasm ############################################## binaryen-98/scripts/fuzz_opt.py-535- if compare_before_to_after: binaryen-98/scripts/fuzz_opt.py:536: # to compare the wasm before and after optimizations, we must binaryen-98/scripts/fuzz_opt.py-537- # remove operations that wasm2js does not support with full ############################################## binaryen-98/scripts/fuzz_opt.py-541- if compare_to_interpreter: binaryen-98/scripts/fuzz_opt.py:542: # unexpectedly-unaligned loads/stores work fine in wasm in general but binaryen-98/scripts/fuzz_opt.py-543- # not in wasm2js, since typed arrays silently round down, effectively. ############################################## binaryen-98/scripts/fuzz_opt.py-548- run([in_bin('wasm-opt'), before_wasm_temp, '-o', before_wasm_temp] + simplification_passes + FEATURE_OPTS) binaryen-98/scripts/fuzz_opt.py:549: # now that the before wasm is fixed up, generate a proper after wasm binaryen-98/scripts/fuzz_opt.py-550- run([in_bin('wasm-opt'), before_wasm_temp, '-o', after_wasm_temp] + opts + FEATURE_OPTS) ############################################## binaryen-98/scripts/fuzz_opt.py-557- return binaryen-98/scripts/fuzz_opt.py:558: # we also cannot compare if the wasm hits a trap, as wasm2js does not binaryen-98/scripts/fuzz_opt.py:559: # trap on many things wasm would, and in those cases it can do weird binaryen-98/scripts/fuzz_opt.py-560- # undefined things. in such a case, at least compare up until before ############################################## binaryen-98/scripts/fuzz_opt.py-624- # those differs; we don't want to care about this because it binaryen-98/scripts/fuzz_opt.py:625: # would trap in wasm anyhow) binaryen-98/scripts/fuzz_opt.py-626- cmd += ['-O', '--deterministic'] ############################################## binaryen-98/scripts/fuzz_opt.py-629- glue = f.read() binaryen-98/scripts/fuzz_opt.py:630: js_file = wasm + '.js' binaryen-98/scripts/fuzz_opt.py-631- with open(js_file, 'w') as f: ############################################## binaryen-98/scripts/fuzz_opt.py-647- run([in_bin('wasm-opt'), after_wasm, '--legalize-js-interface', '-o', 'async.' + after_wasm] + FEATURE_OPTS) binaryen-98/scripts/fuzz_opt.py:648: before_wasm = 'async.' + before_wasm binaryen-98/scripts/fuzz_opt.py:649: after_wasm = 'async.' + after_wasm binaryen-98/scripts/fuzz_opt.py-650- before = fix_output(run_d8_wasm(before_wasm)) ############################################## binaryen-98/scripts/fuzz_opt.py-712- if given_wasm: binaryen-98/scripts/fuzz_opt.py:713: # if given a wasm file we want to use it as is, but we also want to binaryen-98/scripts/fuzz_opt.py-714- # apply properties like not having any NaNs, which the original fuzz binaryen-98/scripts/fuzz_opt.py:715: # wasm had applied. that is, we need to preserve properties like not binaryen-98/scripts/fuzz_opt.py-716- # having nans through reduction. ############################################## binaryen-98/scripts/fuzz_opt.py-729- bytes = wasm_size binaryen-98/scripts/fuzz_opt.py:730: print('pre wasm size:', wasm_size) binaryen-98/scripts/fuzz_opt.py-731- binaryen-98/scripts/fuzz_opt.py:732: # create a second wasm for handlers that want to look at pairs. binaryen-98/scripts/fuzz_opt.py-733- generate_command = [in_bin('wasm-opt'), 'a.wasm', '-o', 'b.wasm'] + opts + FUZZ_OPTS + FEATURE_OPTS ############################################## binaryen-98/scripts/fuzz_opt.py-741- bytes += wasm_size binaryen-98/scripts/fuzz_opt.py:742: print('post wasm size:', wasm_size) binaryen-98/scripts/fuzz_opt.py-743- ############################################## binaryen-98/scripts/fuzz_opt.py-753- # run only some of the pair handling handlers. if we ran them all all the binaryen-98/scripts/fuzz_opt.py:754: # time that would mean we have less variety in wasm files and passes run binaryen-98/scripts/fuzz_opt.py-755- # on them in the same amount of time. ############################################## binaryen-98/scripts/fuzz_opt.py-883- # run new ones until we fail binaryen-98/scripts/fuzz_opt.py:884: # if we are given a seed, we can also be given a wasm file, which we use binaryen-98/scripts/fuzz_opt.py-885- # instead of the randomly generating one. this can be useful for binaryen-98/scripts/fuzz_opt.py-886- # reduction. binaryen-98/scripts/fuzz_opt.py:887: given_wasm = None binaryen-98/scripts/fuzz_opt.py-888- if len(shared.requested) >= 1: ############################################## binaryen-98/scripts/fuzz_opt.py-891- if len(shared.requested) >= 2: binaryen-98/scripts/fuzz_opt.py:892: given_wasm = shared.requested[1] binaryen-98/scripts/fuzz_opt.py:893: print('using given wasm file', given_wasm) binaryen-98/scripts/fuzz_opt.py-894- else: ############################################## binaryen-98/scripts/fuzz_opt.py-950- # We want to generate a template reducer script only when there is binaryen-98/scripts/fuzz_opt.py:951: # no given wasm file. That we have a given wasm file means we are no binaryen-98/scripts/fuzz_opt.py-952- # longer working on the original test case but modified one, which binaryen-98/scripts/fuzz_opt.py-953- # is likely to be called within wasm-reduce script itself, so binaryen-98/scripts/fuzz_opt.py:954: # original.wasm and reduce.sh should not be overwritten. binaryen-98/scripts/fuzz_opt.py-955- if not given_wasm: ############################################## binaryen-98/scripts/fuzz_opt.py-959- # which we use internally) binaryen-98/scripts/fuzz_opt.py:960: original_wasm = os.path.abspath('original.wasm') binaryen-98/scripts/fuzz_opt.py-961- shutil.copyfile('a.wasm', original_wasm) ############################################## binaryen-98/scripts/fuzz_opt.py-964- reduce_sh.write('''\ binaryen-98/scripts/fuzz_opt.py:965:# check the input is even a valid wasm file binaryen-98/scripts/fuzz_opt.py-966-%(wasm_opt)s --detect-features %(temp_wasm)s ############################################## binaryen-98/scripts/fuzz_opt.py-1013- binaryen-98/scripts/fuzz_opt.py:1014:The initial wasm file used here is saved as %(original_wasm)s binaryen-98/scripts/fuzz_opt.py-1015- ############################################## binaryen-98/scripts/test/binaryenjs.py-25- binaryen-98/scripts/test/binaryenjs.py:26: node_has_wasm = shared.NODEJS and support.node_has_webassembly(shared.NODEJS) binaryen-98/scripts/test/binaryenjs.py-27- if not os.path.exists(which): ############################################## binaryen-98/scripts/test/binaryenjs.py-62- if shared.NODEJS: binaryen-98/scripts/test/binaryenjs.py:63: if node_has_wasm or 'WebAssembly.' not in test_src: binaryen-98/scripts/test/binaryenjs.py-64- test(shared.NODEJS) ############################################## binaryen-98/scripts/test/binaryenjs.py-78- print('\n[ checking binaryen.js testcases... ]\n') binaryen-98/scripts/test/binaryenjs.py:79: node_has_wasm = shared.NODEJS and support.node_has_webassembly(shared.NODEJS) binaryen-98/scripts/test/binaryenjs.py-80- for s in shared.get_tests(shared.get_test_dir('binaryen.js'), ['.js']): ############################################## binaryen-98/scripts/test/binaryenjs.py-87- f.close() binaryen-98/scripts/test/binaryenjs.py:88: if shared.MOZJS or node_has_wasm or 'WebAssembly.' not in test_src: binaryen-98/scripts/test/binaryenjs.py-89- cmd = [shared.MOZJS or shared.NODEJS, 'a.js'] ############################################## binaryen-98/scripts/test/env.js:1:// This is the name by which the tests import the wasm table. binaryen-98/scripts/test/env.js-2-export const table = []; ############################################## binaryen-98/scripts/test/generate_lld_tests.py-89- finally: binaryen-98/scripts/test/generate_lld_tests.py:90: # Don't need the .o or .wasm files, don't leave them around binaryen-98/scripts/test/generate_lld_tests.py-91- shared.delete_from_orbit(obj_path) ############################################## binaryen-98/scripts/test/node-esm-loader.mjs-7-const binaryen_root = path.dirname(path.dirname(process.cwd())); binaryen-98/scripts/test/node-esm-loader.mjs:8:baseURL.pathname = `${binaryen_root}/`; binaryen-98/scripts/test/node-esm-loader.mjs-9- ############################################## binaryen-98/scripts/test/shared.py-52- '--interpreter', dest='interpreter', default='', binaryen-98/scripts/test/shared.py:53: help='Specifies the wasm interpreter executable to run tests on.') binaryen-98/scripts/test/shared.py-54- parser.add_argument( ############################################## binaryen-98/scripts/test/shared.py-192-WASM_DIS = [os.path.join(options.binaryen_bin, 'wasm-dis')] binaryen-98/scripts/test/shared.py:193:ASM2WASM = [os.path.join(options.binaryen_bin, 'asm2wasm')] binaryen-98/scripts/test/shared.py-194-WASM2JS = [os.path.join(options.binaryen_bin, 'wasm2js')] ############################################## binaryen-98/scripts/test/shared.py-201-BINARYEN_JS = os.path.join(options.binaryen_bin, 'binaryen_js.js') binaryen-98/scripts/test/shared.py:202:BINARYEN_WASM = os.path.join(options.binaryen_bin, 'binaryen_wasm.js') binaryen-98/scripts/test/shared.py-203- ############################################## binaryen-98/scripts/test/shared.py-217- WASM_DIS = wrap_with_valgrind(WASM_DIS) binaryen-98/scripts/test/shared.py:218: ASM2WASM = wrap_with_valgrind(ASM2WASM) binaryen-98/scripts/test/shared.py-219- WASM_SHELL = wrap_with_valgrind(WASM_SHELL) ############################################## binaryen-98/scripts/test/shared.py-271-if MOZJS is None: binaryen-98/scripts/test/shared.py:272: warn('no mozjs found (did not check native wasm support nor asm.js' binaryen-98/scripts/test/shared.py-273- ' validation)') ############################################## binaryen-98/scripts/test/wasm2js.py-54- binaryen-98/scripts/test/wasm2js.py:55: asm = basename.replace('.wast', '.2asm.js') binaryen-98/scripts/test/wasm2js.py-56- expected_file = os.path.join(shared.get_test_dir('wasm2js'), asm) ############################################## binaryen-98/scripts/test/wasm2js.py-121-def test_asserts_output(): binaryen-98/scripts/test/wasm2js.py:122: for wasm in assert_tests: binaryen-98/scripts/test/wasm2js.py-123- print('..', wasm) ############################################## binaryen-98/scripts/test/wasm2js.py-129- binaryen-98/scripts/test/wasm2js.py:130: wasm = os.path.join(shared.get_test_dir('wasm2js'), wasm) binaryen-98/scripts/test/wasm2js.py-131- cmd = shared.WASM2JS + [wasm, '--allow-asserts', '-all', ############################################## binaryen-98/scripts/test/wasm2js.py-153- for opt in (0, 1): binaryen-98/scripts/test/wasm2js.py:154: for wasm in tests + spec_tests + wasm2js_tests: binaryen-98/scripts/test/wasm2js.py-155- if not wasm.endswith('.wast'): ############################################## binaryen-98/scripts/test/wasm2js.py-160- binaryen-98/scripts/test/wasm2js.py:161: asm = os.path.basename(wasm).replace('.wast', '.2asm.js') binaryen-98/scripts/test/wasm2js.py-162- expected_file = os.path.join(shared.get_test_dir('wasm2js'), asm) ############################################## binaryen-98/scripts/test/wasm2js.py-169- # we run all of those. binaryen-98/scripts/test/wasm2js.py:170: if wasm not in wasm2js_tests and not os.path.exists(expected_file): binaryen-98/scripts/test/wasm2js.py-171- continue ############################################## binaryen-98/scripts/test/wasm2js.py-197- binaryen-98/scripts/test/wasm2js.py:198: for wasm in assert_tests: binaryen-98/scripts/test/wasm2js.py-199- print('..', wasm) ############################################## binaryen-98/scripts/test/wasm_opt.py-93- print('..', os.path.basename(t)) binaryen-98/scripts/test/wasm_opt.py:94: wasm = os.path.basename(t).replace('.wast', '') binaryen-98/scripts/test/wasm_opt.py-95- cmd = shared.WASM_OPT + [t, '--print', '-all'] ############################################## binaryen-98/scripts/test/wasm_opt.py-97- actual, err = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True).communicate() binaryen-98/scripts/test/wasm_opt.py:98: expected_file = os.path.join(shared.get_test_dir('print'), wasm + '.txt') binaryen-98/scripts/test/wasm_opt.py-99- shared.fail_if_not_identical_to_file(actual, expected_file) ############################################## binaryen-98/scripts/test/wasm_opt.py-102- actual, err = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True).communicate() binaryen-98/scripts/test/wasm_opt.py:103: shared.fail_if_not_identical(actual.strip(), open(os.path.join(shared.get_test_dir('print'), wasm + '.minified.txt')).read().strip()) binaryen-98/scripts/test/wasm_opt.py-104- ############################################## binaryen-98/scripts/test/wasm_opt.py-145- print('..', os.path.basename(t)) binaryen-98/scripts/test/wasm_opt.py:146: wasm = t.replace('.wast', '') binaryen-98/scripts/test/wasm_opt.py-147- cmd = shared.WASM_OPT + [t, '--print', '-all'] ############################################## binaryen-98/scripts/test/wasm_opt.py-150- print(cmd, actual) binaryen-98/scripts/test/wasm_opt.py:151: with open(wasm + '.txt', 'wb') as o: binaryen-98/scripts/test/wasm_opt.py-152- o.write(actual) ############################################## binaryen-98/scripts/test/wasm_opt.py-155- actual = subprocess.check_output(cmd) binaryen-98/scripts/test/wasm_opt.py:156: with open(wasm + '.minified.txt', 'wb') as o: binaryen-98/scripts/test/wasm_opt.py-157- o.write(actual) ############################################## binaryen-98/scripts/validation_shell.js-25- binaryen-98/scripts/validation_shell.js:26:// Test the wasm for validity by compiling it. binaryen-98/scripts/validation_shell.js-27-new WebAssembly.Module(binary); ############################################## binaryen-98/src/abi/abi.h-21- binaryen-98/src/abi/abi.h:22:namespace wasm { binaryen-98/src/abi/abi.h-23- ############################################## binaryen-98/src/abi/js.h-22- binaryen-98/src/abi/js.h:23:namespace wasm { binaryen-98/src/abi/js.h-24- ############################################## binaryen-98/src/abi/stack.h-27- binaryen-98/src/abi/stack.h:28:namespace wasm { binaryen-98/src/abi/stack.h-29- ############################################## binaryen-98/src/abi/stack.h-42-// FIXME: This function assumes that the stack grows upward, per the convention binaryen-98/src/abi/stack.h:43:// used by fastcomp. The stack grows downward when using the WASM backend. binaryen-98/src/abi/stack.h-44- ############################################## binaryen-98/src/abi/wasm-object.h-17-// binaryen-98/src/abi/wasm-object.h:18:// Contains definitions used for wasm object files. binaryen-98/src/abi/wasm-object.h-19-// See: https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md ############################################## binaryen-98/src/abi/wasm-object.h-24- binaryen-98/src/abi/wasm-object.h:25:namespace wasm { binaryen-98/src/abi/wasm-object.h-26- ############################################## binaryen-98/src/asm_v_wasm.h-23- binaryen-98/src/asm_v_wasm.h:24:namespace wasm { binaryen-98/src/asm_v_wasm.h-25- ############################################## binaryen-98/src/asmjs/asm_v_wasm.cpp-19- binaryen-98/src/asmjs/asm_v_wasm.cpp:20:namespace wasm { binaryen-98/src/asmjs/asm_v_wasm.cpp-21- ############################################## binaryen-98/src/asmjs/asmangle.cpp-19- binaryen-98/src/asmjs/asmangle.cpp:20:namespace wasm { binaryen-98/src/asmjs/asmangle.cpp-21- binaryen-98/src/asmjs/asmangle.cpp-22-std::string asmangle(std::string name) { binaryen-98/src/asmjs/asmangle.cpp:23: // Wasm allows empty names as exports etc., but JS doesn't allow such binaryen-98/src/asmjs/asmangle.cpp-24- // identifiers. ############################################## binaryen-98/src/asmjs/asmangle.h-21- binaryen-98/src/asmjs/asmangle.h:22:namespace wasm { binaryen-98/src/asmjs/asmangle.h-23- ############################################## binaryen-98/src/asmjs/shared-constants.cpp-18- binaryen-98/src/asmjs/shared-constants.cpp:19:namespace wasm { binaryen-98/src/asmjs/shared-constants.cpp-20- ############################################## binaryen-98/src/asmjs/shared-constants.h-21- binaryen-98/src/asmjs/shared-constants.h:22:namespace wasm { binaryen-98/src/asmjs/shared-constants.h-23- ############################################## binaryen-98/src/binaryen-c.cpp-1369- BinaryenExpressionRef exnref) { binaryen-98/src/binaryen-c.cpp:1370: auto* wasm = (Module*)module; binaryen-98/src/binaryen-c.cpp-1371- auto* event = wasm->getEventOrNull(eventName); ############################################## binaryen-98/src/binaryen-c.cpp-3401- uint8_t shared) { binaryen-98/src/binaryen-c.cpp:3402: auto* wasm = (Module*)module; binaryen-98/src/binaryen-c.cpp-3403- wasm->memory.initial = initial; ############################################## binaryen-98/src/binaryen-c.cpp-3428- BinaryenIndex id) { binaryen-98/src/binaryen-c.cpp:3429: auto* wasm = (Module*)module; binaryen-98/src/binaryen-c.cpp-3430- if (wasm->memory.segments.size() <= id) { ############################################## binaryen-98/src/binaryen-c.cpp-3507-BinaryenModuleRef BinaryenModuleParse(const char* text) { binaryen-98/src/binaryen-c.cpp:3508: auto* wasm = new Module; binaryen-98/src/binaryen-c.cpp-3509- try { ############################################## binaryen-98/src/binaryen-c.cpp-3514- p.dump(std::cerr); binaryen-98/src/binaryen-c.cpp:3515: Fatal() << "error in parsing wasm text"; binaryen-98/src/binaryen-c.cpp-3516- } ############################################## binaryen-98/src/binaryen-c.cpp-3524-void BinaryenModulePrintAsmjs(BinaryenModuleRef module) { binaryen-98/src/binaryen-c.cpp:3525: auto* wasm = (Module*)module; binaryen-98/src/binaryen-c.cpp-3526- Wasm2JSBuilder::Flags flags; ############################################## binaryen-98/src/binaryen-c.cpp-3642-void BinaryenModuleAutoDrop(BinaryenModuleRef module) { binaryen-98/src/binaryen-c.cpp:3643: auto* wasm = (Module*)module; binaryen-98/src/binaryen-c.cpp-3644- PassRunner runner(wasm, globalPassOptions); ############################################## binaryen-98/src/binaryen-c.cpp-3739-BinaryenModuleRef BinaryenModuleRead(char* input, size_t inputSize) { binaryen-98/src/binaryen-c.cpp:3740: auto* wasm = new Module; binaryen-98/src/binaryen-c.cpp-3741- std::vector<char> buffer(false); ############################################## binaryen-98/src/binaryen-c.cpp-3748- p.dump(std::cerr); binaryen-98/src/binaryen-c.cpp:3749: Fatal() << "error in parsing wasm binary"; binaryen-98/src/binaryen-c.cpp-3750- } ############################################## binaryen-98/src/binaryen-c.cpp-4099- binaryen-98/src/binaryen-c.cpp:4100:namespace wasm { binaryen-98/src/binaryen-c.cpp-4101- ############################################## binaryen-98/src/binaryen-c.cpp-4206- binaryen-98/src/binaryen-c.cpp:4207:// TODO: Remove these once Wasm supports multiple memories. binaryen-98/src/binaryen-c.cpp-4208- ############################################## binaryen-98/src/binaryen-c.h-67-#define BINARYEN_REF(NAME) \ binaryen-98/src/binaryen-c.h:68: namespace wasm { \ binaryen-98/src/binaryen-c.h-69- class NAME; \ ############################################## binaryen-98/src/binaryen-c.h-2476- binaryen-98/src/binaryen-c.h:2477:// Generate structed wasm control flow from the CFG of blocks and branches that binaryen-98/src/binaryen-c.h-2478-// were created on this relooper instance. This returns the rendered output, and ############################################## binaryen-98/src/binaryen-c.h-2491-#ifdef __cplusplus binaryen-98/src/binaryen-c.h:2492:namespace wasm { binaryen-98/src/binaryen-c.h-2493-class CExpressionRunner; ############################################## binaryen-98/src/binaryen-c.h-2551- binaryen-98/src/binaryen-c.h:2552:// Enable or disable coloring for the WASM printer binaryen-98/src/binaryen-c.h-2553-BINARYEN_API void BinaryenSetColorsEnabled(int enabled); binaryen-98/src/binaryen-c.h-2554- binaryen-98/src/binaryen-c.h:2555:// Query whether color is enable for the WASM printer binaryen-98/src/binaryen-c.h-2556-BINARYEN_API int BinaryenAreColorsEnabled(); ############################################## binaryen-98/src/cfg/Relooper.h-62- binaryen-98/src/cfg/Relooper.h:63: // breaks are on blocks, as they can be specific, we make one wasm block per binaryen-98/src/cfg/Relooper.h-64- // basic block ############################################## binaryen-98/src/cfg/Relooper.h-257- int Id = -1; // A unique identifier, defined when added to relooper binaryen-98/src/cfg/Relooper.h:258: // The code in this block. This can be arbitrary wasm code, including internal binaryen-98/src/cfg/Relooper.h-259- // control flow, it should just not branch to the outside ############################################## binaryen-98/src/cfg/cfg-traversal.h-35- binaryen-98/src/cfg/cfg-traversal.h:36:namespace wasm { binaryen-98/src/cfg/cfg-traversal.h-37- ############################################## binaryen-98/src/cfg/liveness-traversal.h-30- binaryen-98/src/cfg/liveness-traversal.h:31:namespace wasm { binaryen-98/src/cfg/liveness-traversal.h-32- ############################################## binaryen-98/src/dataflow/graph.h-33- binaryen-98/src/dataflow/graph.h:34:namespace wasm { binaryen-98/src/dataflow/graph.h-35- ############################################## binaryen-98/src/dataflow/graph.h-60- // The same, for nodes. Note that we currently don't know the parents binaryen-98/src/dataflow/graph.h:61: // of nodes like phis that don't exist in wasm - we need to add more binaryen-98/src/dataflow/graph.h-62- // stuff to handle that. But we will know the parent of anything using ############################################## binaryen-98/src/dataflow/graph.h-730- // If the node returns an i1, then we are called from a context that needs binaryen-98/src/dataflow/graph.h:731: // to use it normally as in wasm - extend it binaryen-98/src/dataflow/graph.h-732- Node* expandFromI1(Node* node, Expression* origin) { ############################################## binaryen-98/src/dataflow/graph.h-775- if (node->isPhi()) { binaryen-98/src/dataflow/graph.h:776: // The index is the wasm local that we assign to when implementing binaryen-98/src/dataflow/graph.h-777- // the phi; get from there. ############################################## binaryen-98/src/dataflow/node.h-30- binaryen-98/src/dataflow/node.h:31:namespace wasm { binaryen-98/src/dataflow/node.h-32- ############################################## binaryen-98/src/dataflow/node.h-61- Block, // a source of phis binaryen-98/src/dataflow/node.h:62: Zext, // zero-extend an i1 (from an op where Souper returns i1 but wasm does binaryen-98/src/dataflow/node.h-63- // not, and so we need a special way to get back to an i32/i64 if we ############################################## binaryen-98/src/dataflow/node.h-91- binaryen-98/src/dataflow/node.h:92: // The wasm expression that we originate from (if such exists). A single binaryen-98/src/dataflow/node.h:93: // wasm instruction may be turned into multiple dataflow IR nodes, and some binaryen-98/src/dataflow/node.h:94: // nodes have no wasm origin (like phis). binaryen-98/src/dataflow/node.h-95- Expression* origin = nullptr; ############################################## binaryen-98/src/dataflow/node.h-152- binaryen-98/src/dataflow/node.h:153: // Gets the wasm type of the node. If there isn't a valid one, binaryen-98/src/dataflow/node.h-154- // return unreachable. ############################################## binaryen-98/src/dataflow/users.h-29- binaryen-98/src/dataflow/users.h:30:namespace wasm { binaryen-98/src/dataflow/users.h-31- ############################################## binaryen-98/src/dataflow/utils.h-31- binaryen-98/src/dataflow/utils.h:32:namespace wasm { binaryen-98/src/dataflow/utils.h-33- ############################################## binaryen-98/src/emscripten-optimizer/simple_ast.h-924- // `NaN` and `Infinity` from the global environment, and those names are binaryen-98/src/emscripten-optimizer/simple_ast.h:925: // bound locally in an asm function as `nan` and `infinity`. binaryen-98/src/emscripten-optimizer/simple_ast.h-926- // ############################################## binaryen-98/src/ir/ExpressionAnalyzer.cpp-24- binaryen-98/src/ir/ExpressionAnalyzer.cpp:25:namespace wasm { binaryen-98/src/ir/ExpressionAnalyzer.cpp-26- ############################################## binaryen-98/src/ir/ExpressionManipulator.cpp-19- binaryen-98/src/ir/ExpressionManipulator.cpp:20:namespace wasm { binaryen-98/src/ir/ExpressionManipulator.cpp-21- ############################################## binaryen-98/src/ir/LocalGraph.cpp-24- binaryen-98/src/ir/LocalGraph.cpp:25:namespace wasm { binaryen-98/src/ir/LocalGraph.cpp-26- ############################################## binaryen-98/src/ir/ReFinalize.cpp-20- binaryen-98/src/ir/ReFinalize.cpp:21:namespace wasm { binaryen-98/src/ir/ReFinalize.cpp-22- ############################################## binaryen-98/src/ir/abstract.h-23- binaryen-98/src/ir/abstract.h:24:namespace wasm { binaryen-98/src/ir/abstract.h-25- ############################################## binaryen-98/src/ir/abstract.h-68- binaryen-98/src/ir/abstract.h:69:// Provide a wasm type and an abstract op and get the concrete one. For example, binaryen-98/src/ir/abstract.h-70-// you can provide i32 and Add and receive the specific opcode for a 32-bit ############################################## binaryen-98/src/ir/bits.h-24- binaryen-98/src/ir/bits.h:25:namespace wasm { binaryen-98/src/ir/bits.h-26- ############################################## binaryen-98/src/ir/block-utils.h-26- binaryen-98/src/ir/block-utils.h:27:namespace wasm { binaryen-98/src/ir/block-utils.h-28- ############################################## binaryen-98/src/ir/branch-utils.h-23- binaryen-98/src/ir/branch-utils.h:24:namespace wasm { binaryen-98/src/ir/branch-utils.h-25- ############################################## binaryen-98/src/ir/cost.h-22- binaryen-98/src/ir/cost.h:23:namespace wasm { binaryen-98/src/ir/cost.h-24- ############################################## binaryen-98/src/ir/debug.h-21- binaryen-98/src/ir/debug.h:22:namespace wasm { binaryen-98/src/ir/debug.h-23- ############################################## binaryen-98/src/ir/effects.h-22- binaryen-98/src/ir/effects.h:23:namespace wasm { binaryen-98/src/ir/effects.h-24- ############################################## binaryen-98/src/ir/equivalent_sets.h-21- binaryen-98/src/ir/equivalent_sets.h:22:namespace wasm { binaryen-98/src/ir/equivalent_sets.h-23- ############################################## binaryen-98/src/ir/features.h-24- binaryen-98/src/ir/features.h:25:namespace wasm { binaryen-98/src/ir/features.h-26- ############################################## binaryen-98/src/ir/find_all.h-21- binaryen-98/src/ir/find_all.h:22:namespace wasm { binaryen-98/src/ir/find_all.h-23- ############################################## binaryen-98/src/ir/flat.h-65- binaryen-98/src/ir/flat.h:66:namespace wasm { binaryen-98/src/ir/flat.h-67- ############################################## binaryen-98/src/ir/function-utils.h-22- binaryen-98/src/ir/function-utils.h:23:namespace wasm { binaryen-98/src/ir/function-utils.h-24- ############################################## binaryen-98/src/ir/global-utils.h-26- binaryen-98/src/ir/global-utils.h:27:namespace wasm { binaryen-98/src/ir/global-utils.h-28- ############################################## binaryen-98/src/ir/hashed.h-23- binaryen-98/src/ir/hashed.h:24:namespace wasm { binaryen-98/src/ir/hashed.h-25- ############################################## binaryen-98/src/ir/import-utils.h-22- binaryen-98/src/ir/import-utils.h:23:namespace wasm { binaryen-98/src/ir/import-utils.h-24- ############################################## binaryen-98/src/ir/iteration.h-23- binaryen-98/src/ir/iteration.h:24:namespace wasm { binaryen-98/src/ir/iteration.h-25- ############################################## binaryen-98/src/ir/label-utils.h-22- binaryen-98/src/ir/label-utils.h:23:namespace wasm { binaryen-98/src/ir/label-utils.h-24- ############################################## binaryen-98/src/ir/literal-utils.h-22- binaryen-98/src/ir/literal-utils.h:23:namespace wasm { binaryen-98/src/ir/literal-utils.h-24- ############################################## binaryen-98/src/ir/load-utils.h-21- binaryen-98/src/ir/load-utils.h:22:namespace wasm { binaryen-98/src/ir/load-utils.h-23- ############################################## binaryen-98/src/ir/local-graph.h-21- binaryen-98/src/ir/local-graph.h:22:namespace wasm { binaryen-98/src/ir/local-graph.h-23- ############################################## binaryen-98/src/ir/local-graph.h-79- // line cannot exist, and it is valid to replace f(y) with f(x + 20). (This binaryen-98/src/ir/local-graph.h:80: // could be simpler, but in wasm the zero init always exists.) binaryen-98/src/ir/local-graph.h-81- ############################################## binaryen-98/src/ir/local-utils.h-22- binaryen-98/src/ir/local-utils.h:23:namespace wasm { binaryen-98/src/ir/local-utils.h-24- ############################################## binaryen-98/src/ir/localize.h-21- binaryen-98/src/ir/localize.h:22:namespace wasm { binaryen-98/src/ir/localize.h-23- ############################################## binaryen-98/src/ir/manipulation.h-21- binaryen-98/src/ir/manipulation.h:22:namespace wasm { binaryen-98/src/ir/manipulation.h-23- ############################################## binaryen-98/src/ir/match.h-29- binaryen-98/src/ir/match.h:30:namespace wasm { binaryen-98/src/ir/match.h-31- ############################################## binaryen-98/src/ir/memory-utils.h-27- binaryen-98/src/ir/memory-utils.h:28:namespace wasm { binaryen-98/src/ir/memory-utils.h-29- ############################################## binaryen-98/src/ir/module-utils.h-26- binaryen-98/src/ir/module-utils.h:27:namespace wasm { binaryen-98/src/ir/module-utils.h-28- ############################################## binaryen-98/src/ir/module-utils.h-242-// some computation that the operation performs. binaryen-98/src/ir/module-utils.h:243:// The operation performend should not modify the wasm module in any way. binaryen-98/src/ir/module-utils.h-244-// TODO: enforce this ############################################## binaryen-98/src/ir/names.h-21- binaryen-98/src/ir/names.h:22:namespace wasm { binaryen-98/src/ir/names.h-23- ############################################## binaryen-98/src/ir/parents.h-19- binaryen-98/src/ir/parents.h:20:namespace wasm { binaryen-98/src/ir/parents.h-21- ############################################## binaryen-98/src/ir/properties.h-23- binaryen-98/src/ir/properties.h:24:namespace wasm { binaryen-98/src/ir/properties.h-25- ############################################## binaryen-98/src/ir/stack-utils.cpp-20- binaryen-98/src/ir/stack-utils.cpp:21:namespace wasm { binaryen-98/src/ir/stack-utils.cpp-22- ############################################## binaryen-98/src/ir/stack-utils.h-76- binaryen-98/src/ir/stack-utils.h:77:namespace wasm { binaryen-98/src/ir/stack-utils.h-78- ############################################## binaryen-98/src/ir/table-utils.h-23- binaryen-98/src/ir/table-utils.h:24:namespace wasm { binaryen-98/src/ir/table-utils.h-25- ############################################## binaryen-98/src/ir/trapping.h-23- binaryen-98/src/ir/trapping.h:24:namespace wasm { binaryen-98/src/ir/trapping.h-25- ############################################## binaryen-98/src/ir/type-updating.h-21- binaryen-98/src/ir/type-updating.h:22:namespace wasm { binaryen-98/src/ir/type-updating.h-23- ############################################## binaryen-98/src/ir/utils.h-25- binaryen-98/src/ir/utils.h:26:namespace wasm { binaryen-98/src/ir/utils.h-27- ############################################## binaryen-98/src/literal.h-29- binaryen-98/src/literal.h:30:namespace wasm { binaryen-98/src/literal.h-31- ############################################## binaryen-98/src/parsing.h-32- binaryen-98/src/parsing.h:33:namespace wasm { binaryen-98/src/parsing.h-34- ############################################## binaryen-98/src/pass.h-26- binaryen-98/src/pass.h:27:namespace wasm { binaryen-98/src/pass.h-28- ############################################## binaryen-98/src/passes/AlignmentLowering.cpp-26- binaryen-98/src/passes/AlignmentLowering.cpp:27:namespace wasm { binaryen-98/src/passes/AlignmentLowering.cpp-28- ############################################## binaryen-98/src/passes/Asyncify.cpp-44-// binaryen-98/src/passes/Asyncify.cpp:45:// * The code rewrite is done in Binaryen, that is, at the wasm level. At binaryen-98/src/passes/Asyncify.cpp:46:// this level we will only need to save wasm locals, which is a much smaller binaryen-98/src/passes/Asyncify.cpp-47-// number than LLVM's SSA registers. ############################################## binaryen-98/src/passes/Asyncify.cpp-55-// level and added branches there; new Asyncify on the other hand works on the binaryen-98/src/passes/Asyncify.cpp:56:// structured control flow of wasm and simply "skips over" code when rewinding binaryen-98/src/passes/Asyncify.cpp-57-// the stack, and jumps out when unwinding. The transformed code looks ############################################## binaryen-98/src/passes/Asyncify.cpp-165-// calls to the functions that it creates. Note that when doing everything binaryen-98/src/passes/Asyncify.cpp:166:// in wasm like this, Asyncify must not instrument your "runtime" support binaryen-98/src/passes/Asyncify.cpp-167-// code, that is, the code that initiates unwinds and rewinds and stops them. binaryen-98/src/passes/Asyncify.cpp:168:// If it did, the unwind would not stop until you left the wasm module binaryen-98/src/passes/Asyncify.cpp-169-// entirely, etc. Therefore we do not instrument a function if it has ############################################## binaryen-98/src/passes/Asyncify.cpp-185-// is valid, checking if the current location is past the end. If so, they binaryen-98/src/passes/Asyncify.cpp:186:// will throw a wasm unreachable. No check is done during unwinding or binaryen-98/src/passes/Asyncify.cpp-187-// rewinding, to keep things fast - in principle, from when unwinding begins ############################################## binaryen-98/src/passes/Asyncify.cpp-293-// binaryen-98/src/passes/Asyncify.cpp:294:// TODO When wasm has GC, extending the live ranges of locals can keep things binaryen-98/src/passes/Asyncify.cpp-295-// alive unnecessarily. We may want to set locals to null at the end ############################################## binaryen-98/src/passes/Asyncify.cpp-311- binaryen-98/src/passes/Asyncify.cpp:312:namespace wasm { binaryen-98/src/passes/Asyncify.cpp-313- ############################################## binaryen-98/src/passes/AvoidReinterprets.cpp-28- binaryen-98/src/passes/AvoidReinterprets.cpp:29:namespace wasm { binaryen-98/src/passes/AvoidReinterprets.cpp-30- ############################################## binaryen-98/src/passes/CoalesceLocals.cpp-42- binaryen-98/src/passes/CoalesceLocals.cpp:43:namespace wasm { binaryen-98/src/passes/CoalesceLocals.cpp-44- ############################################## binaryen-98/src/passes/CodeFolding.cpp-18-// Folds duplicate code together, saving space (and possibly phis in binaryen-98/src/passes/CodeFolding.cpp:19:// the wasm VM, which can save time). binaryen-98/src/passes/CodeFolding.cpp-20-// ############################################## binaryen-98/src/passes/CodeFolding.cpp-68- binaryen-98/src/passes/CodeFolding.cpp:69:namespace wasm { binaryen-98/src/passes/CodeFolding.cpp-70- ############################################## binaryen-98/src/passes/CodeFolding.cpp-724- // then it might be marked as having a type, but not actually binaryen-98/src/passes/CodeFolding.cpp:725: // returning it (we marked it as such for wasm type-checking binaryen-98/src/passes/CodeFolding.cpp-726- // rules, and now it won't be toplevel in the function, it can ############################################## binaryen-98/src/passes/CodePushing.cpp-26- binaryen-98/src/passes/CodePushing.cpp:27:namespace wasm { binaryen-98/src/passes/CodePushing.cpp-28- ############################################## binaryen-98/src/passes/ConstHoisting.cpp-39- binaryen-98/src/passes/ConstHoisting.cpp:40:namespace wasm { binaryen-98/src/passes/ConstHoisting.cpp-41- ############################################## binaryen-98/src/passes/DWARF.cpp-29- binaryen-98/src/passes/DWARF.cpp:30:namespace wasm { binaryen-98/src/passes/DWARF.cpp-31- ############################################## binaryen-98/src/passes/DataFlowOpts.cpp-36- binaryen-98/src/passes/DataFlowOpts.cpp:37:namespace wasm { binaryen-98/src/passes/DataFlowOpts.cpp-38- ############################################## binaryen-98/src/passes/DeAlign.cpp-24- binaryen-98/src/passes/DeAlign.cpp:25:namespace wasm { binaryen-98/src/passes/DeAlign.cpp-26- ############################################## binaryen-98/src/passes/DeNaN.cpp-17-// binaryen-98/src/passes/DeNaN.cpp:18:// Instrument the wasm to convert NaN values at runtime into 0s. That is, every binaryen-98/src/passes/DeNaN.cpp-19-// operation that might produce a NaN will go through a helper function which ############################################## binaryen-98/src/passes/DeNaN.cpp-29- binaryen-98/src/passes/DeNaN.cpp:30:namespace wasm { binaryen-98/src/passes/DeNaN.cpp-31- ############################################## binaryen-98/src/passes/DeadArgumentElimination.cpp-48- binaryen-98/src/passes/DeadArgumentElimination.cpp:49:namespace wasm { binaryen-98/src/passes/DeadArgumentElimination.cpp-50- ############################################## binaryen-98/src/passes/DeadCodeElimination.cpp-38- binaryen-98/src/passes/DeadCodeElimination.cpp:39:namespace wasm { binaryen-98/src/passes/DeadCodeElimination.cpp-40- ############################################## binaryen-98/src/passes/Directize.cpp-32- binaryen-98/src/passes/Directize.cpp:33:namespace wasm { binaryen-98/src/passes/Directize.cpp-34- ############################################## binaryen-98/src/passes/DuplicateFunctionElimination.cpp-19-// and also due to types being different at the source level, but binaryen-98/src/passes/DuplicateFunctionElimination.cpp:20:// identical when finally lowered into concrete wasm code. binaryen-98/src/passes/DuplicateFunctionElimination.cpp-21-// ############################################## binaryen-98/src/passes/DuplicateFunctionElimination.cpp-30- binaryen-98/src/passes/DuplicateFunctionElimination.cpp:31:namespace wasm { binaryen-98/src/passes/DuplicateFunctionElimination.cpp-32- ############################################## binaryen-98/src/passes/DuplicateImportElimination.cpp-28- binaryen-98/src/passes/DuplicateImportElimination.cpp:29:namespace wasm { binaryen-98/src/passes/DuplicateImportElimination.cpp-30- ############################################## binaryen-98/src/passes/EmscriptenPIC.cpp-24-// However emscripten uses a different ABI where function and data addresses binaryen-98/src/passes/EmscriptenPIC.cpp:25:// are available at runtime via special `g$foo` and `fp$bar` function calls. binaryen-98/src/passes/EmscriptenPIC.cpp-26-// binaryen-98/src/passes/EmscriptenPIC.cpp:27:// Here we internalize all such wasm globals and generte code that sets their binaryen-98/src/passes/EmscriptenPIC.cpp:28:// value based on the result of call `g$foo` and `fp$bar` functions at runtime. binaryen-98/src/passes/EmscriptenPIC.cpp-29-// ############################################## binaryen-98/src/passes/EmscriptenPIC.cpp-43- binaryen-98/src/passes/EmscriptenPIC.cpp:44:namespace wasm { binaryen-98/src/passes/EmscriptenPIC.cpp-45- ############################################## binaryen-98/src/passes/ExtractFunction.cpp-23- binaryen-98/src/passes/ExtractFunction.cpp:24:namespace wasm { binaryen-98/src/passes/ExtractFunction.cpp-25- ############################################## binaryen-98/src/passes/Flatten.cpp-29- binaryen-98/src/passes/Flatten.cpp:30:namespace wasm { binaryen-98/src/passes/Flatten.cpp-31- ############################################## binaryen-98/src/passes/FuncCastEmulation.cpp-20-// to an int (int, float, int) and call it natively, on most archs it will binaryen-98/src/passes/FuncCastEmulation.cpp:21:// happen to work, ignoring the extra param, whereas in wasm it will trap. binaryen-98/src/passes/FuncCastEmulation.cpp-22-// When porting code that relies on such casts working (like e.g. Python), ############################################## binaryen-98/src/passes/FuncCastEmulation.cpp-36- binaryen-98/src/passes/FuncCastEmulation.cpp:37:namespace wasm { binaryen-98/src/passes/FuncCastEmulation.cpp-38- ############################################## binaryen-98/src/passes/GenerateDynCalls.cpp-33- binaryen-98/src/passes/GenerateDynCalls.cpp:34:namespace wasm { binaryen-98/src/passes/GenerateDynCalls.cpp-35- ############################################## binaryen-98/src/passes/GenerateDynCalls.cpp-77- // because any other function can be called directly from JavaScript using the binaryen-98/src/passes/GenerateDynCalls.cpp:78: // wasm table. binaryen-98/src/passes/GenerateDynCalls.cpp-79- for (auto t : sig.results) { ############################################## binaryen-98/src/passes/GenerateDynCalls.cpp-110- binaryen-98/src/passes/GenerateDynCalls.cpp:111: Module* wasm = getModule(); binaryen-98/src/passes/GenerateDynCalls.cpp-112- Builder builder(*wasm); ############################################## binaryen-98/src/passes/I64ToI32Lowering.cpp-37- binaryen-98/src/passes/I64ToI32Lowering.cpp:38:namespace wasm { binaryen-98/src/passes/I64ToI32Lowering.cpp-39- ############################################## binaryen-98/src/passes/I64ToI32Lowering.cpp-543- void lowerReinterpretFloat64(Unary* curr) { binaryen-98/src/passes/I64ToI32Lowering.cpp:544: // Assume that the wasm file assumes the address 0 is invalid and roundtrip binaryen-98/src/passes/I64ToI32Lowering.cpp-545- // our f64 through memory at address 0 ############################################## binaryen-98/src/passes/I64ToI32Lowering.cpp-563- void lowerReinterpretInt64(Unary* curr) { binaryen-98/src/passes/I64ToI32Lowering.cpp:564: // Assume that the wasm file assumes the address 0 is invalid and roundtrip binaryen-98/src/passes/I64ToI32Lowering.cpp-565- // our i64 through memory at address 0 ############################################## binaryen-98/src/passes/Inlining.cpp-44- binaryen-98/src/passes/Inlining.cpp:45:namespace wasm { binaryen-98/src/passes/Inlining.cpp-46- ############################################## binaryen-98/src/passes/InstrumentLocals.cpp-52- binaryen-98/src/passes/InstrumentLocals.cpp:53:namespace wasm { binaryen-98/src/passes/InstrumentLocals.cpp-54- ############################################## binaryen-98/src/passes/InstrumentMemory.cpp-61- binaryen-98/src/passes/InstrumentMemory.cpp:62:namespace wasm { binaryen-98/src/passes/InstrumentMemory.cpp-63- ############################################## binaryen-98/src/passes/LegalizeJSInterface.cpp-26-// components, that only JS will care about, such as dynCall methods binaryen-98/src/passes/LegalizeJSInterface.cpp:27:// (wasm will never call them, as it can share the table directly). E.g. binaryen-98/src/passes/LegalizeJSInterface.cpp:28:// is dynamic linking, where we can avoid legalizing wasm=>wasm calls binaryen-98/src/passes/LegalizeJSInterface.cpp-29-// across modules, we still want to legalize dynCalls so JS can call into the ############################################## binaryen-98/src/passes/LegalizeJSInterface.cpp-43- binaryen-98/src/passes/LegalizeJSInterface.cpp:44:namespace wasm { binaryen-98/src/passes/LegalizeJSInterface.cpp-45- ############################################## binaryen-98/src/passes/LegalizeJSInterface.cpp-68- // not normally useful for JS, except in cases like dynamic linking binaryen-98/src/passes/LegalizeJSInterface.cpp:69: // where the JS loader code must copy exported wasm functions into binaryen-98/src/passes/LegalizeJSInterface.cpp:70: // the table, and they must not be legalized as other wasm code will binaryen-98/src/passes/LegalizeJSInterface.cpp-71- // do an indirect call to them. However, don't do this for imported ############################################## binaryen-98/src/passes/LegalizeJSInterface.cpp-214- // JS calls the export, so it must call a legal stub that calls the actual binaryen-98/src/passes/LegalizeJSInterface.cpp:215: // wasm function binaryen-98/src/passes/LegalizeJSInterface.cpp-216- Name makeLegalStub(Function* func, Module* module) { ############################################## binaryen-98/src/passes/LegalizeJSInterface.cpp-266- binaryen-98/src/passes/LegalizeJSInterface.cpp:267: // wasm calls the import, so it must call a stub that calls the actual legal binaryen-98/src/passes/LegalizeJSInterface.cpp-268- // JS import ############################################## binaryen-98/src/passes/LimitSegments.cpp-22- binaryen-98/src/passes/LimitSegments.cpp:23:namespace wasm { binaryen-98/src/passes/LimitSegments.cpp-24- ############################################## binaryen-98/src/passes/LimitSegments.cpp-28- std::cerr << "Unable to merge segments. " binaryen-98/src/passes/LimitSegments.cpp:29: << "wasm VMs may not accept this binary" << std::endl; binaryen-98/src/passes/LimitSegments.cpp-30- } ############################################## binaryen-98/src/passes/LocalCSE.cpp-49- binaryen-98/src/passes/LocalCSE.cpp:50:namespace wasm { binaryen-98/src/passes/LocalCSE.cpp-51- ############################################## binaryen-98/src/passes/LogExecution.cpp-37- binaryen-98/src/passes/LogExecution.cpp:38:namespace wasm { binaryen-98/src/passes/LogExecution.cpp-39- ############################################## binaryen-98/src/passes/LoopInvariantCodeMotion.cpp-33- binaryen-98/src/passes/LoopInvariantCodeMotion.cpp:34:namespace wasm { binaryen-98/src/passes/LoopInvariantCodeMotion.cpp-35- ############################################## binaryen-98/src/passes/MemoryPacking.cpp-38- binaryen-98/src/passes/MemoryPacking.cpp:39:namespace wasm { binaryen-98/src/passes/MemoryPacking.cpp-40- ############################################## binaryen-98/src/passes/MergeBlocks.cpp-81- binaryen-98/src/passes/MergeBlocks.cpp:82:namespace wasm { binaryen-98/src/passes/MergeBlocks.cpp-83- ############################################## binaryen-98/src/passes/MergeLocals.cpp-53- binaryen-98/src/passes/MergeLocals.cpp:54:namespace wasm { binaryen-98/src/passes/MergeLocals.cpp-55- ############################################## binaryen-98/src/passes/Metrics.cpp-26- binaryen-98/src/passes/Metrics.cpp:27:namespace wasm { binaryen-98/src/passes/Metrics.cpp-28- ############################################## binaryen-98/src/passes/MinifyImportsAndExports.cpp-20-// can then be used to minify the JS calling the wasm, together enabling binaryen-98/src/passes/MinifyImportsAndExports.cpp:21:// minification of the identifiers on the JS/wasm boundary. binaryen-98/src/passes/MinifyImportsAndExports.cpp-22-// ############################################## binaryen-98/src/passes/MinifyImportsAndExports.cpp-44- binaryen-98/src/passes/MinifyImportsAndExports.cpp:45:namespace wasm { binaryen-98/src/passes/MinifyImportsAndExports.cpp-46- ############################################## binaryen-98/src/passes/MinifyImportsAndExports.cpp-164- // Otherwise, assume we just want to minify "normal" imports like env binaryen-98/src/passes/MinifyImportsAndExports.cpp:165: // and wasi, but not special things like asm2wasm or custom user things. binaryen-98/src/passes/MinifyImportsAndExports.cpp-166- if (minifyModules || curr->module == ENV || ############################################## binaryen-98/src/passes/NameList.cpp-25- binaryen-98/src/passes/NameList.cpp:26:namespace wasm { binaryen-98/src/passes/NameList.cpp-27- ############################################## binaryen-98/src/passes/NoExitRuntime.cpp-29- binaryen-98/src/passes/NoExitRuntime.cpp:30:namespace wasm { binaryen-98/src/passes/NoExitRuntime.cpp-31- ############################################## binaryen-98/src/passes/NoExitRuntime.cpp-36- binaryen-98/src/passes/NoExitRuntime.cpp:37: // Remove all possible manifestations of atexit, across asm2wasm and llvm wasm binaryen-98/src/passes/NoExitRuntime.cpp-38- // backend. ############################################## binaryen-98/src/passes/OptimizeAddedConstants.cpp-39- binaryen-98/src/passes/OptimizeAddedConstants.cpp:40:namespace wasm { binaryen-98/src/passes/OptimizeAddedConstants.cpp-41- ############################################## binaryen-98/src/passes/OptimizeInstructions.cpp-41- binaryen-98/src/passes/OptimizeInstructions.cpp:42:namespace wasm { binaryen-98/src/passes/OptimizeInstructions.cpp-43- ############################################## binaryen-98/src/passes/OptimizeInstructions.cpp-1450- { binaryen-98/src/passes/OptimizeInstructions.cpp:1451: // Wasm binary encoding uses signed LEBs, which slightly favor negative binaryen-98/src/passes/OptimizeInstructions.cpp-1452- // numbers: -64 is more efficient than +64 etc., as well as other powers ############################################## binaryen-98/src/passes/PickLoadSigns.cpp-20- binaryen-98/src/passes/PickLoadSigns.cpp:21:namespace wasm { binaryen-98/src/passes/PickLoadSigns.cpp-22- ############################################## binaryen-98/src/passes/PostAssemblyScript.cpp-34- binaryen-98/src/passes/PostAssemblyScript.cpp:35:namespace wasm { binaryen-98/src/passes/PostAssemblyScript.cpp-36- ############################################## binaryen-98/src/passes/PostEmscripten.cpp-35- binaryen-98/src/passes/PostEmscripten.cpp:36:namespace wasm { binaryen-98/src/passes/PostEmscripten.cpp-37- ############################################## binaryen-98/src/passes/Precompute.cpp-39- binaryen-98/src/passes/Precompute.cpp:40:namespace wasm { binaryen-98/src/passes/Precompute.cpp-41- ############################################## binaryen-98/src/passes/Print.cpp-27- binaryen-98/src/passes/Print.cpp:28:namespace wasm { binaryen-98/src/passes/Print.cpp-29- ############################################## binaryen-98/src/passes/Print.cpp-110- binaryen-98/src/passes/Print.cpp:111:// Printing "unreachable" as a instruction prefix type is not valid in wasm text binaryen-98/src/passes/Print.cpp-112-// format. Print something else to make it pass. ############################################## binaryen-98/src/passes/PrintCallGraph.cpp-29- binaryen-98/src/passes/PrintCallGraph.cpp:30:namespace wasm { binaryen-98/src/passes/PrintCallGraph.cpp-31- ############################################## binaryen-98/src/passes/PrintFeatures.cpp-24- binaryen-98/src/passes/PrintFeatures.cpp:25:namespace wasm { binaryen-98/src/passes/PrintFeatures.cpp-26- ############################################## binaryen-98/src/passes/PrintFunctionMap.cpp-29- binaryen-98/src/passes/PrintFunctionMap.cpp:30:namespace wasm { binaryen-98/src/passes/PrintFunctionMap.cpp-31- ############################################## binaryen-98/src/passes/ReReloop.cpp-37- binaryen-98/src/passes/ReReloop.cpp:38:namespace wasm { binaryen-98/src/passes/ReReloop.cpp-39- ############################################## binaryen-98/src/passes/RedundantSetElimination.cpp-44- binaryen-98/src/passes/RedundantSetElimination.cpp:45:namespace wasm { binaryen-98/src/passes/RedundantSetElimination.cpp-46- ############################################## binaryen-98/src/passes/RemoveImports.cpp-28- binaryen-98/src/passes/RemoveImports.cpp:29:namespace wasm { binaryen-98/src/passes/RemoveImports.cpp-30- ############################################## binaryen-98/src/passes/RemoveMemory.cpp-23- binaryen-98/src/passes/RemoveMemory.cpp:24:namespace wasm { binaryen-98/src/passes/RemoveMemory.cpp-25- ############################################## binaryen-98/src/passes/RemoveNonJSOps.cpp-48- binaryen-98/src/passes/RemoveNonJSOps.cpp:49:namespace wasm { binaryen-98/src/passes/RemoveNonJSOps.cpp-50- ############################################## binaryen-98/src/passes/RemoveUnusedBrs.cpp-30- binaryen-98/src/passes/RemoveUnusedBrs.cpp:31:namespace wasm { binaryen-98/src/passes/RemoveUnusedBrs.cpp-32- ############################################## binaryen-98/src/passes/RemoveUnusedModuleElements.cpp-30- binaryen-98/src/passes/RemoveUnusedModuleElements.cpp:31:namespace wasm { binaryen-98/src/passes/RemoveUnusedModuleElements.cpp-32- ############################################## binaryen-98/src/passes/RemoveUnusedNames.cpp-24- binaryen-98/src/passes/RemoveUnusedNames.cpp:25:namespace wasm { binaryen-98/src/passes/RemoveUnusedNames.cpp-26- ############################################## binaryen-98/src/passes/ReorderFunctions.cpp-34- binaryen-98/src/passes/ReorderFunctions.cpp:35:namespace wasm { binaryen-98/src/passes/ReorderFunctions.cpp-36- ############################################## binaryen-98/src/passes/ReorderLocals.cpp-29- binaryen-98/src/passes/ReorderLocals.cpp:30:namespace wasm { binaryen-98/src/passes/ReorderLocals.cpp-31- ############################################## binaryen-98/src/passes/ReplaceStackPointer.cpp-31- binaryen-98/src/passes/ReplaceStackPointer.cpp:32:namespace wasm { binaryen-98/src/passes/ReplaceStackPointer.cpp-33- ############################################## binaryen-98/src/passes/RoundTrip.cpp-29- binaryen-98/src/passes/RoundTrip.cpp:30:namespace wasm { binaryen-98/src/passes/RoundTrip.cpp-31- ############################################## binaryen-98/src/passes/SSAify.cpp-60- binaryen-98/src/passes/SSAify.cpp:61:namespace wasm { binaryen-98/src/passes/SSAify.cpp-62- ############################################## binaryen-98/src/passes/SafeHeap.cpp-31- binaryen-98/src/passes/SafeHeap.cpp:32:namespace wasm { binaryen-98/src/passes/SafeHeap.cpp-33- ############################################## binaryen-98/src/passes/SimplifyGlobals.cpp-45- binaryen-98/src/passes/SimplifyGlobals.cpp:46:namespace wasm { binaryen-98/src/passes/SimplifyGlobals.cpp-47- ############################################## binaryen-98/src/passes/SimplifyLocals.cpp-59- binaryen-98/src/passes/SimplifyLocals.cpp:60:namespace wasm { binaryen-98/src/passes/SimplifyLocals.cpp-61- ############################################## binaryen-98/src/passes/Souperify.cpp-47- binaryen-98/src/passes/Souperify.cpp:48:namespace wasm { binaryen-98/src/passes/Souperify.cpp-49- ############################################## binaryen-98/src/passes/Souperify.cpp-378- void findExternalUses() { binaryen-98/src/passes/Souperify.cpp:379: // Find all the wasm code represented in this trace. binaryen-98/src/passes/Souperify.cpp-380- std::unordered_set<Expression*> origins; ############################################## binaryen-98/src/passes/SpillPointers.cpp-34- binaryen-98/src/passes/SpillPointers.cpp:35:namespace wasm { binaryen-98/src/passes/SpillPointers.cpp-36- ############################################## binaryen-98/src/passes/StackCheck.cpp-31- binaryen-98/src/passes/StackCheck.cpp:32:namespace wasm { binaryen-98/src/passes/StackCheck.cpp-33- ############################################## binaryen-98/src/passes/StackIR.cpp-26- binaryen-98/src/passes/StackIR.cpp:27:namespace wasm { binaryen-98/src/passes/StackIR.cpp-28- ############################################## binaryen-98/src/passes/Strip.cpp-29- binaryen-98/src/passes/Strip.cpp:30:namespace wasm { binaryen-98/src/passes/Strip.cpp-31- ############################################## binaryen-98/src/passes/StripTargetFeatures.cpp-18- binaryen-98/src/passes/StripTargetFeatures.cpp:19:namespace wasm { binaryen-98/src/passes/StripTargetFeatures.cpp-20- ############################################## binaryen-98/src/passes/TrapMode.cpp-17-// binaryen-98/src/passes/TrapMode.cpp:18:// Pass that supports potentially-trapping wasm operations. binaryen-98/src/passes/TrapMode.cpp-19-// For example, integer division traps when dividing by zero, so this pass ############################################## binaryen-98/src/passes/TrapMode.cpp-33- binaryen-98/src/passes/TrapMode.cpp:34:namespace wasm { binaryen-98/src/passes/TrapMode.cpp-35- ############################################## binaryen-98/src/passes/TrapMode.cpp-254- binaryen-98/src/passes/TrapMode.cpp:255: // the wasm operation might trap if done over 0, so generate a safe call binaryen-98/src/passes/TrapMode.cpp-256- Type type = curr->type; binaryen-98/src/passes/TrapMode.cpp:257: Module& wasm = trappingFunctions.getModule(); binaryen-98/src/passes/TrapMode.cpp-258- Builder builder(wasm); ############################################## binaryen-98/src/passes/TrapMode.cpp-270- binaryen-98/src/passes/TrapMode.cpp:271: Module& wasm = trappingFunctions.getModule(); binaryen-98/src/passes/TrapMode.cpp-272- Builder builder(wasm); ############################################## binaryen-98/src/passes/Untee.cpp-28- binaryen-98/src/passes/Untee.cpp:29:namespace wasm { binaryen-98/src/passes/Untee.cpp-30- ############################################## binaryen-98/src/passes/Vacuum.cpp-29- binaryen-98/src/passes/Vacuum.cpp:30:namespace wasm { binaryen-98/src/passes/Vacuum.cpp-31- ############################################## binaryen-98/src/passes/intrinsics-module.h-19- binaryen-98/src/passes/intrinsics-module.h:20:namespace wasm { binaryen-98/src/passes/intrinsics-module.h-21- ############################################## binaryen-98/src/passes/opt-utils.h-25- binaryen-98/src/passes/opt-utils.h:26:namespace wasm { binaryen-98/src/passes/opt-utils.h-27- ############################################## binaryen-98/src/passes/pass.cpp-32- binaryen-98/src/passes/pass.cpp:33:namespace wasm { binaryen-98/src/passes/pass.cpp-34- ############################################## binaryen-98/src/passes/pass.cpp-110- registerPass("denan", binaryen-98/src/passes/pass.cpp:111: "instrument the wasm to convert NaNs into 0 at runtime", binaryen-98/src/passes/pass.cpp-112- createDeNaNPass); ############################################## binaryen-98/src/passes/pass.cpp-151- "functions with i64 in their signature (which cannot be invoked " binaryen-98/src/passes/pass.cpp:152: "via the wasm table without JavaScript BigInt support).", binaryen-98/src/passes/pass.cpp-153- createGenerateI64DynCallsPass); ############################################## binaryen-98/src/passes/pass.cpp-364- registerPass("strip-producers", binaryen-98/src/passes/pass.cpp:365: "strip the wasm producers section", binaryen-98/src/passes/pass.cpp-366- createStripProducersPass); binaryen-98/src/passes/pass.cpp-367- registerPass("strip-target-features", binaryen-98/src/passes/pass.cpp:368: "strip the wasm target features section", binaryen-98/src/passes/pass.cpp-369- createStripTargetFeaturesPass); ############################################## binaryen-98/src/passes/passes.h-19- binaryen-98/src/passes/passes.h:20:namespace wasm { binaryen-98/src/passes/passes.h-21- ############################################## binaryen-98/src/shared-constants.h-21- binaryen-98/src/shared-constants.h:22:namespace wasm { binaryen-98/src/shared-constants.h-23- ############################################## binaryen-98/src/shell-interface.h-30- binaryen-98/src/shell-interface.h:31:namespace wasm { binaryen-98/src/shell-interface.h-32- ############################################## binaryen-98/src/support/alloc.h-29- binaryen-98/src/support/alloc.h:30:namespace wasm { binaryen-98/src/support/alloc.h-31- ############################################## binaryen-98/src/support/archive.cpp-173- binaryen-98/src/support/archive.cpp:174: std::string addr(parent->stringTable.data + offset, binaryen-98/src/support/archive.cpp-175- parent->stringTable.data + parent->stringTable.len); ############################################## binaryen-98/src/support/bits.cpp-24- binaryen-98/src/support/bits.cpp:25:namespace wasm { binaryen-98/src/support/bits.cpp-26- ############################################## binaryen-98/src/support/bits.h-33- binaryen-98/src/support/bits.h:34:namespace wasm { binaryen-98/src/support/bits.h-35- ############################################## binaryen-98/src/support/command-line.h-31- binaryen-98/src/support/command-line.h:32:namespace wasm { binaryen-98/src/support/command-line.h-33- ############################################## binaryen-98/src/support/debug.h-29- binaryen-98/src/support/debug.h:30:namespace wasm { binaryen-98/src/support/debug.h-31-bool isDebugEnabled(const char* type); ############################################## binaryen-98/src/support/file.h-28- binaryen-98/src/support/file.h:29:namespace wasm { binaryen-98/src/support/file.h-30- ############################################## binaryen-98/src/support/hash.h-22- binaryen-98/src/support/hash.h:23:namespace wasm { binaryen-98/src/support/hash.h-24- ############################################## binaryen-98/src/support/learning.h-22- binaryen-98/src/support/learning.h:23:namespace wasm { binaryen-98/src/support/learning.h-24- ############################################## binaryen-98/src/support/name.h-23- binaryen-98/src/support/name.h:24:namespace wasm { binaryen-98/src/support/name.h-25- ############################################## binaryen-98/src/support/path.cpp-22- binaryen-98/src/support/path.cpp:23:namespace wasm { binaryen-98/src/support/path.cpp-24- ############################################## binaryen-98/src/support/path.h-26- binaryen-98/src/support/path.h:27:namespace wasm { binaryen-98/src/support/path.h-28- ############################################## binaryen-98/src/support/permutations.h-23- binaryen-98/src/support/permutations.h:24:namespace wasm { binaryen-98/src/support/permutations.h-25- ############################################## binaryen-98/src/support/safe_integer.h-21- binaryen-98/src/support/safe_integer.h:22:namespace wasm { binaryen-98/src/support/safe_integer.h-23- ############################################## binaryen-98/src/support/small_vector.h-29- binaryen-98/src/support/small_vector.h:30:namespace wasm { binaryen-98/src/support/small_vector.h-31- ############################################## binaryen-98/src/support/sorted_vector.h-25- binaryen-98/src/support/sorted_vector.h:26:namespace wasm { binaryen-98/src/support/sorted_vector.h-27- ############################################## binaryen-98/src/support/string.h-27- binaryen-98/src/support/string.h:28:namespace wasm { binaryen-98/src/support/string.h-29- ############################################## binaryen-98/src/support/threads.cpp-45- binaryen-98/src/support/threads.cpp:46:namespace wasm { binaryen-98/src/support/threads.cpp-47- ############################################## binaryen-98/src/support/threads.h-33- binaryen-98/src/support/threads.h:34:namespace wasm { binaryen-98/src/support/threads.h-35- ############################################## binaryen-98/src/support/timing.h-25- binaryen-98/src/support/timing.h:26:namespace wasm { binaryen-98/src/support/timing.h-27- ############################################## binaryen-98/src/support/unique_deferring_queue.h-28- binaryen-98/src/support/unique_deferring_queue.h:29:namespace wasm { binaryen-98/src/support/unique_deferring_queue.h-30- ############################################## binaryen-98/src/support/utilities.h-30- binaryen-98/src/support/utilities.h:31:namespace wasm { binaryen-98/src/support/utilities.h-32- ############################################## binaryen-98/src/support/utilities.h-45- binaryen-98/src/support/utilities.h:46:inline size_t alignAddr(size_t address, size_t alignment) { binaryen-98/src/support/utilities.h-47- assert(alignment && Bits::isPowerOf2((uint32_t)alignment) && ############################################## binaryen-98/src/tools/execution-results.h-23- binaryen-98/src/tools/execution-results.h:24:namespace wasm { binaryen-98/src/tools/execution-results.h-25- ############################################## binaryen-98/src/tools/execution-results.h-47- binaryen-98/src/tools/execution-results.h:48:// gets execution results from a wasm module. this is useful for fuzzing binaryen-98/src/tools/execution-results.h-49-// ############################################## binaryen-98/src/tools/fuzzing.h-17-// binaryen-98/src/tools/fuzzing.h:18:// Translate a binary stream of bytes into a valid wasm module, *somehow*. binaryen-98/src/tools/fuzzing.h-19-// This is helpful for fuzzing. ############################################## binaryen-98/src/tools/fuzzing.h-38- binaryen-98/src/tools/fuzzing.h:39:namespace wasm { binaryen-98/src/tools/fuzzing.h-40- ############################################## binaryen-98/src/tools/js-wrapper.h-17-// binaryen-98/src/tools/js-wrapper.h:18:// Emit a JavaScript wrapper to run a wasm module with some test binaryen-98/src/tools/js-wrapper.h-19-// values, useful for fuzzing. ############################################## binaryen-98/src/tools/js-wrapper.h-21- binaryen-98/src/tools/js-wrapper.h:22:namespace wasm { binaryen-98/src/tools/js-wrapper.h-23- ############################################## binaryen-98/src/tools/optimization-options.h-25- binaryen-98/src/tools/optimization-options.h:26:namespace wasm { binaryen-98/src/tools/optimization-options.h-27- ############################################## binaryen-98/src/tools/optimization-options.h-127- "-g", binaryen-98/src/tools/optimization-options.h:128: "Emit names section in wasm binary (or full debuginfo in wast)", binaryen-98/src/tools/optimization-options.h-129- Options::Arguments::Zero, ############################################## binaryen-98/src/tools/spec-wrapper.h-17-// binaryen-98/src/tools/spec-wrapper.h:18:// Emit a wasm spec interpreter wrapper to run a wasm module with some test binaryen-98/src/tools/spec-wrapper.h-19-// values, useful for fuzzing. ############################################## binaryen-98/src/tools/spec-wrapper.h-21- binaryen-98/src/tools/spec-wrapper.h:22:namespace wasm { binaryen-98/src/tools/spec-wrapper.h-23- ############################################## binaryen-98/src/tools/tool-options.h-27- binaryen-98/src/tools/tool-options.h:28:namespace wasm { binaryen-98/src/tools/tool-options.h-29- ############################################## binaryen-98/src/tools/tool-utils.h-22- binaryen-98/src/tools/tool-utils.h:23:namespace wasm { binaryen-98/src/tools/tool-utils.h-24- ############################################## binaryen-98/src/tools/wasm-as.cpp-17-// binaryen-98/src/tools/wasm-as.cpp:18:// wasm2asm console tool binaryen-98/src/tools/wasm-as.cpp-19-// ############################################## binaryen-98/src/tools/wasm-as.cpp-38- ToolOptions options("wasm-as", binaryen-98/src/tools/wasm-as.cpp:39: "Assemble a .wat (WebAssembly text format) into a .wasm " binaryen-98/src/tools/wasm-as.cpp-40- "(WebAssembly binary format)"); ############################################## binaryen-98/src/tools/wasm-ctor-eval.cpp-17-// binaryen-98/src/tools/wasm-ctor-eval.cpp:18:// Loads wasm plus a list of functions that are global ctors, i.e., binaryen-98/src/tools/wasm-ctor-eval.cpp-19-// are to be executed. It then executes as many of them as it can, ############################################## binaryen-98/src/tools/wasm-ctor-eval.cpp-171- void init(Module& wasm_, EvallingModuleInstance& instance_) override { binaryen-98/src/tools/wasm-ctor-eval.cpp:172: wasm = &wasm_; binaryen-98/src/tools/wasm-ctor-eval.cpp-173- instance = &instance_; ############################################## binaryen-98/src/tools/wasm-ctor-eval.cpp-234- } else { binaryen-98/src/tools/wasm-ctor-eval.cpp:235: // wasm spec only allows const and global.get there binaryen-98/src/tools/wasm-ctor-eval.cpp-236- WASM_UNREACHABLE("invalid expr type"); ############################################## binaryen-98/src/tools/wasm-dis.cpp-17-// binaryen-98/src/tools/wasm-dis.cpp:18:// wasm2asm console tool binaryen-98/src/tools/wasm-dis.cpp-19-// ############################################## binaryen-98/src/tools/wasm-dis.cpp-32- Options options("wasm-dis", binaryen-98/src/tools/wasm-dis.cpp:33: "Un-assemble a .wasm (WebAssembly binary format) into a " binaryen-98/src/tools/wasm-dis.cpp-34- ".wat (WebAssembly text format)"); ############################################## binaryen-98/src/tools/wasm-dis.cpp-67- std::cerr << '\n'; binaryen-98/src/tools/wasm-dis.cpp:68: Fatal() << "error in parsing wasm binary"; binaryen-98/src/tools/wasm-dis.cpp-69- } catch (MapParseException& p) { ############################################## binaryen-98/src/tools/wasm-dis.cpp-71- std::cerr << '\n'; binaryen-98/src/tools/wasm-dis.cpp:72: Fatal() << "error in parsing wasm source mapping"; binaryen-98/src/tools/wasm-dis.cpp-73- } ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-18-// wasm-emscripten-finalize console tool binaryen-98/src/tools/wasm-emscripten-finalize.cpp:19:// Performs Emscripten-specific transforms on .wasm files binaryen-98/src/tools/wasm-emscripten-finalize.cpp-20-// ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-58- uint64_t globalBase = INVALID_BASE; binaryen-98/src/tools/wasm-emscripten-finalize.cpp:59: bool standaloneWasm = false; binaryen-98/src/tools/wasm-emscripten-finalize.cpp-60- // TODO: remove after https://github.com/WebAssembly/binaryen/issues/3043 ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-65- ToolOptions options("wasm-emscripten-finalize", binaryen-98/src/tools/wasm-emscripten-finalize.cpp:66: "Performs Emscripten-specific transforms on .wasm files"); binaryen-98/src/tools/wasm-emscripten-finalize.cpp-67- options ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-77- "-g", binaryen-98/src/tools/wasm-emscripten-finalize.cpp:78: "Emit names section in wasm binary (or full debuginfo in wast)", binaryen-98/src/tools/wasm-emscripten-finalize.cpp-79- Options::Arguments::Zero, ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-136- "-bi", binaryen-98/src/tools/wasm-emscripten-finalize.cpp:137: "Assume JS will use wasm/JS BigInt integration, so wasm i64s will " binaryen-98/src/tools/wasm-emscripten-finalize.cpp-138- "turn into JS BigInts, and there is no need for any legalization at " ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-171- "", binaryen-98/src/tools/wasm-emscripten-finalize.cpp:172: "Emit a wasm file that does not depend on JS, as much as possible," binaryen-98/src/tools/wasm-emscripten-finalize.cpp-173- " using wasi and other standard conventions etc. where possible", ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-175- [&standaloneWasm](Options* o, const std::string&) { binaryen-98/src/tools/wasm-emscripten-finalize.cpp:176: standaloneWasm = true; binaryen-98/src/tools/wasm-emscripten-finalize.cpp-177- }) ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-179- "", binaryen-98/src/tools/wasm-emscripten-finalize.cpp:180: "Modify the wasm as little as possible. This is useful during " binaryen-98/src/tools/wasm-emscripten-finalize.cpp-181- "development as we reduce the number of changes to the wasm, as it " ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-221- std::cerr << '\n'; binaryen-98/src/tools/wasm-emscripten-finalize.cpp:222: Fatal() << "error in parsing wasm source map"; binaryen-98/src/tools/wasm-emscripten-finalize.cpp-223- } ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-263- binaryen-98/src/tools/wasm-emscripten-finalize.cpp:264: // The wasm backend emits "__indirect_function_table" as the import name for binaryen-98/src/tools/wasm-emscripten-finalize.cpp-265- // the table, while older emscripten expects "table" ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-303- if (!noDynCalls && !standaloneWasm) { binaryen-98/src/tools/wasm-emscripten-finalize.cpp:304: // If not standalone wasm then JS is relevant and we need dynCalls. binaryen-98/src/tools/wasm-emscripten-finalize.cpp-305- if (onlyI64DynCalls) { ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-344- } binaryen-98/src/tools/wasm-emscripten-finalize.cpp:345: // Costructors get called from crt1 in wasm standalone mode. binaryen-98/src/tools/wasm-emscripten-finalize.cpp-346- // Unless there is no entry point. binaryen-98/src/tools/wasm-emscripten-finalize.cpp:347: if (!standaloneWasm || !wasm.getExportOrNull("_start")) { binaryen-98/src/tools/wasm-emscripten-finalize.cpp-348- if (auto* e = wasm.getExportOrNull(WASM_CALL_CTORS)) { ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-354- BYN_TRACE("generated metadata\n"); binaryen-98/src/tools/wasm-emscripten-finalize.cpp:355: // Substantial changes to the wasm are done, enough to create the metadata. binaryen-98/src/tools/wasm-emscripten-finalize.cpp-356- std::string metadata = ############################################## binaryen-98/src/tools/wasm-emscripten-finalize.cpp-372- binaryen-98/src/tools/wasm-emscripten-finalize.cpp:373: // Write the modified wasm if the user asked us to, either by specifying an binaryen-98/src/tools/wasm-emscripten-finalize.cpp-374- // output file, or requesting text output (which goes to stdout by default). ############################################## binaryen-98/src/tools/wasm-metadce.cpp-17-// binaryen-98/src/tools/wasm-metadce.cpp:18:// Performs DCE on a graph containing a wasm module. The caller provides binaryen-98/src/tools/wasm-metadce.cpp:19:// the graph, this tool fills in the wasm module's parts. It can then binaryen-98/src/tools/wasm-metadce.cpp-20-// remove exports that are unused, for example, which is impossible ############################################## binaryen-98/src/tools/wasm-metadce.cpp-49- binaryen-98/src/tools/wasm-metadce.cpp:50:// A meta DCE graph with wasm integration binaryen-98/src/tools/wasm-metadce.cpp-51-struct MetaDCEGraph { ############################################## binaryen-98/src/tools/wasm-metadce.cpp-409- "This tool performs dead code elimination (DCE) on a larger space " binaryen-98/src/tools/wasm-metadce.cpp:410: "that the wasm module is just a part of. For example, if you have " binaryen-98/src/tools/wasm-metadce.cpp:411: "JS and wasm that are connected, this can DCE the combined graph. " binaryen-98/src/tools/wasm-metadce.cpp:412: "By doing so, it is able to eliminate wasm module exports, which " binaryen-98/src/tools/wasm-metadce.cpp-413- "otherwise regular optimizations cannot.\n\n" binaryen-98/src/tools/wasm-metadce.cpp-414- "This tool receives a representation of the reachability graph " binaryen-98/src/tools/wasm-metadce.cpp:415: "that the wasm module resides in, which contains abstract nodes " binaryen-98/src/tools/wasm-metadce.cpp-416- "and connections showing what they reach. Some of those nodes " binaryen-98/src/tools/wasm-metadce.cpp:417: "can represent the wasm module's imports and exports. The tool " binaryen-98/src/tools/wasm-metadce.cpp-418- "then completes the graph by adding the internal parts of the " binaryen-98/src/tools/wasm-metadce.cpp-419- "module, and does DCE on the entire thing.\n\n" binaryen-98/src/tools/wasm-metadce.cpp:420: "This tool will output a wasm module with dead code eliminated, " binaryen-98/src/tools/wasm-metadce.cpp-421- "and metadata describing the things in the rest of the graph " ############################################## binaryen-98/src/tools/wasm-metadce.cpp-505- p.dump(std::cerr); binaryen-98/src/tools/wasm-metadce.cpp:506: Fatal() << "error in parsing wasm input"; binaryen-98/src/tools/wasm-metadce.cpp-507- } ############################################## binaryen-98/src/tools/wasm-opt.cpp-139- "-ttf", binaryen-98/src/tools/wasm-opt.cpp:140: "Translate the input into a valid wasm module *somehow*, useful for " binaryen-98/src/tools/wasm-opt.cpp-141- "fuzzing", ############################################## binaryen-98/src/tools/wasm-opt.cpp-161- "-ejw", binaryen-98/src/tools/wasm-opt.cpp:162: "Emit a JavaScript wrapper file that can run the wasm with some test " binaryen-98/src/tools/wasm-opt.cpp-163- "values, useful for fuzzing", ############################################## binaryen-98/src/tools/wasm-opt.cpp-169- "-esw", binaryen-98/src/tools/wasm-opt.cpp:170: "Emit a wasm spec interpreter wrapper file that can run the wasm with " binaryen-98/src/tools/wasm-opt.cpp-171- "some test values, useful for fuzzing", ############################################## binaryen-98/src/tools/wasm-opt.cpp-177- "-esw", binaryen-98/src/tools/wasm-opt.cpp:178: "Emit a C wrapper file that can run the wasm after it is compiled " binaryen-98/src/tools/wasm-opt.cpp-179- "with wasm2c, useful for fuzzing", ############################################## binaryen-98/src/tools/wasm-opt.cpp-215- binaryen-98/src/tools/wasm-opt.cpp:216: auto exitOnInvalidWasm = [&](const char* message) { binaryen-98/src/tools/wasm-opt.cpp-217- // If the user asked to print the module, print it even if invalid, ############################################## binaryen-98/src/tools/wasm-opt.cpp-242- std::cerr << '\n'; binaryen-98/src/tools/wasm-opt.cpp:243: Fatal() << "error parsing wasm source map"; binaryen-98/src/tools/wasm-opt.cpp-244- } catch (std::bad_alloc&) { ############################################## binaryen-98/src/tools/wasm-reduce.cpp-17-// binaryen-98/src/tools/wasm-reduce.cpp:18:// Tries to reduce the input wasm into the smallest possible wasm binaryen-98/src/tools/wasm-reduce.cpp-19-// that still generates the same result on a given command. This is ############################################## binaryen-98/src/tools/wasm-reduce.cpp-242- // runs passes in order to reduce, until we can't reduce any more binaryen-98/src/tools/wasm-reduce.cpp:243: // the criterion here is wasm binary size binaryen-98/src/tools/wasm-reduce.cpp-244- void reduceUsingPasses() { ############################################## binaryen-98/src/tools/wasm-reduce.cpp-319- // the criterion here is a logical change in the program. this may actually binaryen-98/src/tools/wasm-reduce.cpp:320: // increase wasm size in some cases, but it should allow more reduction later. binaryen-98/src/tools/wasm-reduce.cpp-321- // @param factor how much to ignore. starting with a high factor skips through ############################################## binaryen-98/src/tools/wasm-reduce.cpp-375- // than the previous - each destructive reduction removes logical code, binaryen-98/src/tools/wasm-reduce.cpp:376: // and so is strictly better, even if the wasm binary format happens to binaryen-98/src/tools/wasm-reduce.cpp-377- // encode things slightly less efficiently. ############################################## binaryen-98/src/tools/wasm-reduce.cpp-1072- Options options("wasm-reduce", binaryen-98/src/tools/wasm-reduce.cpp:1073: "Reduce a wasm file to a smaller one that has the same " binaryen-98/src/tools/wasm-reduce.cpp-1074- "behavior on a given command"); ############################################## binaryen-98/src/tools/wasm-reduce.cpp-1285- // no point in a factor lorger than the size binaryen-98/src/tools/wasm-reduce.cpp:1286: assert(newSize > 4); // wasm modules are >4 bytes anyhow binaryen-98/src/tools/wasm-reduce.cpp-1287- factor = std::min(factor, int(newSize) / 4); ############################################## binaryen-98/src/tools/wasm-shell.cpp-194- Colors::normal(std::cerr); binaryen-98/src/tools/wasm-shell.cpp:195: Fatal() << &wasm << '\n'; binaryen-98/src/tools/wasm-shell.cpp-196- } ############################################## binaryen-98/src/tools/wasm2c-wrapper.h-17-// binaryen-98/src/tools/wasm2c-wrapper.h:18:// Emit a C wrapper file that can run the wasm after it is compiled with binaryen-98/src/tools/wasm2c-wrapper.h-19-// wasm2c, useful for fuzzing. ############################################## binaryen-98/src/tools/wasm2c-wrapper.h-25- binaryen-98/src/tools/wasm2c-wrapper.h:26:namespace wasm { binaryen-98/src/tools/wasm2c-wrapper.h-27- ############################################## binaryen-98/src/tools/wasm2c-wrapper.h-84- // so we can do all this with a single setjmp. A setjmp is needed to handle binaryen-98/src/tools/wasm2c-wrapper.h:85: // wasm traps, and emitting a single one helps compilation speed into wasm as binaryen-98/src/tools/wasm2c-wrapper.h-86- // compile times are O(size * num_setjmps). ############################################## binaryen-98/src/tools/wasm2js.cpp-37- // Perform various optimizations that will be good for JS, but would not be binaryen-98/src/tools/wasm2js.cpp:38: // great for wasm in general binaryen-98/src/tools/wasm2js.cpp-39- struct OptimizeForJS : public WalkerPass<PostWalker<OptimizeForJS>> { ############################################## binaryen-98/src/tools/wasm2js.cpp-775- // When equating floating point values in spec tests we want to use bitwise binaryen-98/src/tools/wasm2js.cpp:776: // equality like wasm does. Unfortunately though NaN makes this tricky. JS binaryen-98/src/tools/wasm2js.cpp-777- // implementations like Spidermonkey and JSC will canonicalize NaN loads from ############################################## binaryen-98/src/wasm-binary.h-40- binaryen-98/src/wasm-binary.h:41:namespace wasm { binaryen-98/src/wasm-binary.h-42- ############################################## binaryen-98/src/wasm-binary.h-47- binaryen-98/src/wasm-binary.h:48:// wasm VMs on the web have decided to impose some limits on what they binaryen-98/src/wasm-binary.h-49-// accept ############################################## binaryen-98/src/wasm-binary.h-1064- binaryen-98/src/wasm-binary.h:1065:// Writes out wasm to the binary format binaryen-98/src/wasm-binary.h-1066- binaryen-98/src/wasm-binary.h-1067-class WasmBinaryWriter { binaryen-98/src/wasm-binary.h:1068: // Computes the indexes in a wasm binary, i.e., with function imports binaryen-98/src/wasm-binary.h-1069- // and function implementations sharing a single index space, etc., ############################################## binaryen-98/src/wasm-binary.h-1383- binaryen-98/src/wasm-binary.h:1384: // set when we know code is unreachable in the sense of the wasm spec: we are binaryen-98/src/wasm-binary.h-1385- // in a block and after an unreachable element. this helps parse stacky wasm ############################################## binaryen-98/src/wasm-binary.h-1393- // (block $b binaryen-98/src/wasm-binary.h:1394: // ;; code here is reachable in the wasm sense, even though $b as a whole binaryen-98/src/wasm-binary.h-1395- // ;; is not binaryen-98/src/wasm-binary.h-1396- // (unreachable) binaryen-98/src/wasm-binary.h:1397: // ;; code here is unreachable in the wasm sense binaryen-98/src/wasm-binary.h-1398- // ) ############################################## binaryen-98/src/wasm-builder.h-22- binaryen-98/src/wasm-builder.h:23:namespace wasm { binaryen-98/src/wasm-builder.h-24- ############################################## binaryen-98/src/wasm-builder.h-723- binaryen-98/src/wasm-builder.h:724: // Make a constant expression. This might be a wasm Const, or something binaryen-98/src/wasm-builder.h-725- // else of constant value like ref.null. ############################################## binaryen-98/src/wasm-debug.h-27- binaryen-98/src/wasm-debug.h:28:namespace wasm { binaryen-98/src/wasm-debug.h-29- ############################################## binaryen-98/src/wasm-emscripten.h-23- binaryen-98/src/wasm-emscripten.h:24:namespace wasm { binaryen-98/src/wasm-emscripten.h-25- ############################################## binaryen-98/src/wasm-emscripten.h-27- binaryen-98/src/wasm-emscripten.h:28:// Class which modifies a wasm module for use with emscripten. Generates binaryen-98/src/wasm-emscripten.h-29-// runtime functions and emits metadata. ############################################## binaryen-98/src/wasm-emscripten.h-55- // Emits the data segments to a file. The file contains data from address base binaryen-98/src/wasm-emscripten.h:56: // onwards (we must pass in base, as we can't tell it from the wasm - the binaryen-98/src/wasm-emscripten.h-57- // first segment may start after a run of zeros, but we need those zeros in ############################################## binaryen-98/src/wasm-interpreter.h-40- binaryen-98/src/wasm-interpreter.h:41:namespace wasm { binaryen-98/src/wasm-interpreter.h-42- ############################################## binaryen-98/src/wasm-interpreter.h-1193- Flow visitAtomicFence(AtomicFence* curr) { binaryen-98/src/wasm-interpreter.h:1194: // Wasm currently supports only sequentially consistent atomics, in which binaryen-98/src/wasm-interpreter.h-1195- // case atomic_fence can be lowered to nothing. ############################################## binaryen-98/src/wasm-interpreter.h-2454- for (size_t i = 0; i < sizeVal; ++i) { binaryen-98/src/wasm-interpreter.h:2455: Literal addr(destVal + i); binaryen-98/src/wasm-interpreter.h-2456- instance.externalInterface->store8( ############################################## binaryen-98/src/wasm-io.h-27- binaryen-98/src/wasm-io.h:28:namespace wasm { binaryen-98/src/wasm-io.h-29- ############################################## binaryen-98/src/wasm-io.h-47- read(std::string filename, Module& wasm, std::string sourceMapFilename = ""); binaryen-98/src/wasm-io.h:48: // check whether a file is a wasm binary binaryen-98/src/wasm-io.h-49- bool isBinaryFile(std::string filename); ############################################## binaryen-98/src/wasm-module-building.h-22- binaryen-98/src/wasm-module-building.h:23:namespace wasm { binaryen-98/src/wasm-module-building.h-24- ############################################## binaryen-98/src/wasm-module-building.h-40-// binaryen-98/src/wasm-module-building.h:41:// Helps build wasm modules efficiently. If you build a module by binaryen-98/src/wasm-module-building.h-42-// adding function by function, and you want to optimize them, this class ############################################## binaryen-98/src/wasm-printing.h-24- binaryen-98/src/wasm-printing.h:25:namespace wasm { binaryen-98/src/wasm-printing.h-26- ############################################## binaryen-98/src/wasm-s-parser.h-29- binaryen-98/src/wasm-s-parser.h:30:namespace wasm { binaryen-98/src/wasm-s-parser.h-31- ############################################## binaryen-98/src/wasm-stack.h-26- binaryen-98/src/wasm-stack.h:27:namespace wasm { binaryen-98/src/wasm-stack.h-28- binaryen-98/src/wasm-stack.h:29:// Stack IR: an IR that represents code at the wasm binary format level, binaryen-98/src/wasm-stack.h-30-// that is, a stack machine. Binaryen IR is *almost* identical to this, ############################################## binaryen-98/src/wasm-stack.h-77- binaryen-98/src/wasm-stack.h:78: // the type - usually identical to the origin type, but e.g. wasm has no binaryen-98/src/wasm-stack.h-79- // unreachable blocks, they must be none ############################################## binaryen-98/src/wasm-traversal.h-33- binaryen-98/src/wasm-traversal.h:34:namespace wasm { binaryen-98/src/wasm-traversal.h-35- ############################################## binaryen-98/src/wasm-type.h-31- binaryen-98/src/wasm-type.h:32:namespace wasm { binaryen-98/src/wasm-type.h-33- ############################################## binaryen-98/src/wasm-validator.h-48- binaryen-98/src/wasm-validator.h:49:namespace wasm { binaryen-98/src/wasm-validator.h-50- ############################################## binaryen-98/src/wasm.h-39- binaryen-98/src/wasm.h:40:namespace wasm { binaryen-98/src/wasm.h-41- binaryen-98/src/wasm.h:42:// An index in a wasm module binaryen-98/src/wasm.h-43-typedef uint32_t Index; ############################################## binaryen-98/src/wasm.h-49- address64_t addr; binaryen-98/src/wasm.h:50: Address() : addr(0) {} binaryen-98/src/wasm.h:51: Address(uint64_t a) : addr(a) {} binaryen-98/src/wasm.h-52- Address& operator=(uint64_t a) { ############################################## binaryen-98/src/wasm.h-494-// and it would be better to write new Something(name=a, leftOperand=b... binaryen-98/src/wasm.h:495:// etc., but C++ lacks named operands, so in asm2wasm etc. you will see things binaryen-98/src/wasm.h-496-// like ############################################## binaryen-98/src/wasm.h-888- binaryen-98/src/wasm.h:889: // Current wasm threads only supports sequentialy consistent atomics, but binaryen-98/src/wasm.h-890- // other orderings may be added in the future. This field is reserved for ############################################## binaryen-98/src/wasm.h-1345- binaryen-98/src/wasm.h:1346:// Represents an offset into a wasm binary file. This is used for debug info. binaryen-98/src/wasm.h:1347:// For now, assume this is 32 bits as that's the size limit of wasm files binaryen-98/src/wasm.h-1348-// anyhow. ############################################## binaryen-98/src/wasm.h-1350- binaryen-98/src/wasm.h:1351:// Represents a mapping of wasm module elements to their location in the binaryen-98/src/wasm.h-1352-// binary representation. This is used for general debugging info support. ############################################## binaryen-98/src/wasm.h-1422- // If present, this stack IR was generated from the main Binaryen IR body, binaryen-98/src/wasm.h:1423: // and possibly optimized. If it is present when writing to wasm binary, binaryen-98/src/wasm.h-1424- // it will be emitted instead of the main Binaryen IR. ############################################## binaryen-98/src/wasm.h-1521- binaryen-98/src/wasm.h:1522: // Currently the wasm object always 'has' one Table. It 'exists' if it has binaryen-98/src/wasm.h-1523- // been defined or imported. The table can exist but be empty and have no ############################################## binaryen-98/src/wasm.h-1613- binaryen-98/src/wasm.h:1614:// "Opaque" data, not part of the core wasm spec, that is held in binaries. binaryen-98/src/wasm.h-1615-// May be parsed/handled by utility code elsewhere, but not in wasm.h ############################################## binaryen-98/src/wasm.h-1630-public: binaryen-98/src/wasm.h:1631: // wasm contents (generally you shouldn't access these from outside, except binaryen-98/src/wasm.h-1632- // maybe for iterating; use add*() and the get() functions) ############################################## binaryen-98/src/wasm/CMakeLists.txt-16-) binaryen-98/src/wasm/CMakeLists.txt:17:add_library(wasm OBJECT ${wasm_SOURCES}) ############################################## binaryen-98/src/wasm/literal.cpp-27- binaryen-98/src/wasm/literal.cpp:28:namespace wasm { binaryen-98/src/wasm/literal.cpp-29- ############################################## binaryen-98/src/wasm/wasm-binary.cpp-28- binaryen-98/src/wasm/wasm-binary.cpp:29:namespace wasm { binaryen-98/src/wasm/wasm-binary.cpp-30- ############################################## binaryen-98/src/wasm/wasm-binary.cpp-855- } binaryen-98/src/wasm/wasm-binary.cpp:856: // If this is an instruction in a function, and if the original wasm had binaryen-98/src/wasm/wasm-binary.cpp-857- // binary locations tracked, then track it in the output as well. ############################################## binaryen-98/src/wasm/wasm-binary.cpp-1101- << "warning: linking section is present, so this is not a standard " binaryen-98/src/wasm/wasm-binary.cpp:1102: "wasm file - binaryen cannot handle this properly!\n"; binaryen-98/src/wasm/wasm-binary.cpp-1103- } ############################################## binaryen-98/src/wasm/wasm-binary.cpp-1255- default: binaryen-98/src/wasm/wasm-binary.cpp:1256: throwError("invalid wasm type: " + std::to_string(type)); binaryen-98/src/wasm/wasm-binary.cpp-1257- } ############################################## binaryen-98/src/wasm/wasm-binary.cpp-1283- default: binaryen-98/src/wasm/wasm-binary.cpp:1284: throwError("invalid wasm heap type: " + std::to_string(type)); binaryen-98/src/wasm/wasm-binary.cpp-1285- } ############################################## binaryen-98/src/wasm/wasm-debug.cpp-31- binaryen-98/src/wasm/wasm-debug.cpp:32:namespace wasm { binaryen-98/src/wasm/wasm-debug.cpp-33- ############################################## binaryen-98/src/wasm/wasm-emscripten.cpp-34- binaryen-98/src/wasm/wasm-emscripten.cpp:35:namespace wasm { binaryen-98/src/wasm/wasm-emscripten.cpp-36- ############################################## binaryen-98/src/wasm/wasm-emscripten.cpp-184- } else { binaryen-98/src/wasm/wasm-emscripten.cpp:185: // TODO(sbc): Wasm shared libraries have data segments with non-const binaryen-98/src/wasm/wasm-emscripten.cpp-186- // offset. ############################################## binaryen-98/src/wasm/wasm-emscripten.cpp-221- binaryen-98/src/wasm/wasm-emscripten.cpp:222:const char* stringAtAddr(Module& wasm, binaryen-98/src/wasm/wasm-emscripten.cpp-223- std::vector<Address> const& segmentOffsets, ############################################## binaryen-98/src/wasm/wasm-emscripten.cpp-235- binaryen-98/src/wasm/wasm-emscripten.cpp:236:std::string codeForConstAddr(Module& wasm, binaryen-98/src/wasm/wasm-emscripten.cpp-237- std::vector<Address> const& segmentOffsets, binaryen-98/src/wasm/wasm-emscripten.cpp-238- int32_t address) { binaryen-98/src/wasm/wasm-emscripten.cpp:239: const char* str = stringAtAddr(wasm, segmentOffsets, address); binaryen-98/src/wasm/wasm-emscripten.cpp-240- if (!str) { ############################################## binaryen-98/src/wasm/wasm-emscripten.cpp-370- int32_t address = value->value.geti32(); binaryen-98/src/wasm/wasm-emscripten.cpp:371: auto code = codeForConstAddr(wasm, segmentOffsets, address); binaryen-98/src/wasm/wasm-emscripten.cpp-372- createAsmConst(address, code, sig, importName); ############################################## binaryen-98/src/wasm/wasm-emscripten.cpp-467- int32_t address = addrConst->value.geti32(); binaryen-98/src/wasm/wasm-emscripten.cpp:468: auto code = codeForConstAddr(wasm, segmentOffsets, address); binaryen-98/src/wasm/wasm-emscripten.cpp-469- codeByName[funcName] = code; ############################################## binaryen-98/src/wasm/wasm-interpreter.cpp-2- binaryen-98/src/wasm/wasm-interpreter.cpp:3:namespace wasm { binaryen-98/src/wasm/wasm-interpreter.cpp-4- ############################################## binaryen-98/src/wasm/wasm-io.cpp-31- binaryen-98/src/wasm/wasm-io.cpp:32:namespace wasm { binaryen-98/src/wasm/wasm-io.cpp-33- ############################################## binaryen-98/src/wasm/wasm-s-parser.cpp-50- binaryen-98/src/wasm/wasm-s-parser.cpp:51:namespace wasm { binaryen-98/src/wasm/wasm-s-parser.cpp-52- ############################################## binaryen-98/src/wasm/wasm-s-parser.cpp-528- if (i != 1) { binaryen-98/src/wasm/wasm-s-parser.cpp:529: throw ParseException("invalid wasm type", s[i]->line, s[i]->col); binaryen-98/src/wasm/wasm-s-parser.cpp-530- } ############################################## binaryen-98/src/wasm/wasm-s-parser.cpp-886- } binaryen-98/src/wasm/wasm-s-parser.cpp:887: throw ParseException(std::string("invalid wasm type: ") + str); binaryen-98/src/wasm/wasm-s-parser.cpp-888-} ############################################## binaryen-98/src/wasm/wasm-s-parser.cpp-921- } binaryen-98/src/wasm/wasm-s-parser.cpp:922: throw ParseException(std::string("invalid wasm heap type: ") + str); binaryen-98/src/wasm/wasm-s-parser.cpp-923-} ############################################## binaryen-98/src/wasm/wasm-stack.cpp-20- binaryen-98/src/wasm/wasm-stack.cpp:21:namespace wasm { binaryen-98/src/wasm/wasm-stack.cpp-22- ############################################## binaryen-98/src/wasm/wasm-type.cpp-27- binaryen-98/src/wasm/wasm-type.cpp:28:namespace wasm { binaryen-98/src/wasm/wasm-type.cpp-29- ############################################## binaryen-98/src/wasm/wasm-type.cpp-230- binaryen-98/src/wasm/wasm-type.cpp:231:namespace wasm { binaryen-98/src/wasm/wasm-type.cpp-232- ############################################## binaryen-98/src/wasm/wasm-validator.cpp-31- binaryen-98/src/wasm/wasm-validator.cpp:32:namespace wasm { binaryen-98/src/wasm/wasm-validator.cpp-33- ############################################## binaryen-98/src/wasm/wasm-validator.cpp-2572- // If the memory is imported we don't actually know its initial size. binaryen-98/src/wasm/wasm-validator.cpp:2573: // Specifically wasm dll's import a zero sized memory which is perfectly binaryen-98/src/wasm/wasm-validator.cpp-2574- // valid. ############################################## binaryen-98/src/wasm/wasm-validator.cpp-2660- binaryen-98/src/wasm/wasm-validator.cpp:2661:// TODO: If we want the validator to be part of libwasm rather than libpasses, binaryen-98/src/wasm/wasm-validator.cpp-2662-// then Using PassRunner::getPassDebug causes a circular dependence. We should ############################################## binaryen-98/src/wasm/wasm-validator.cpp-2668- info.quiet = (flags & Quiet) != 0; binaryen-98/src/wasm/wasm-validator.cpp:2669: // parallel wasm logic validation binaryen-98/src/wasm/wasm-validator.cpp-2670- PassRunner runner(&module); ############################################## binaryen-98/src/wasm/wasm.cpp-21- binaryen-98/src/wasm/wasm.cpp:22:namespace wasm { binaryen-98/src/wasm/wasm.cpp-23- ############################################## binaryen-98/src/wasm2js.h-17-// binaryen-98/src/wasm2js.h:18:// WebAssembly-to-JS code translator. Converts wasm functions into binaryen-98/src/wasm2js.h-19-// valid JavaScript (with a somewhat asm.js-ish flavor). ############################################## binaryen-98/src/wasm2js.h-50- binaryen-98/src/wasm2js.h:51:namespace wasm { binaryen-98/src/wasm2js.h-52- ############################################## binaryen-98/src/wasm2js.h-96- binaryen-98/src/wasm2js.h:97:// Used when taking a wasm name and generating a JS identifier. Each scope here binaryen-98/src/wasm2js.h:98:// is used to ensure that all names have a unique name but the same wasm name binaryen-98/src/wasm2js.h-99-// within a scope always resolves to the same symbol. ############################################## binaryen-98/src/wasm2js.h-115-// binaryen-98/src/wasm2js.h:116:// In general, JS (asm.js) => wasm is very straightforward, as can binaryen-98/src/wasm2js.h-117-// be seen in asm2wasm.h. Just a single pass, plus a little binaryen-98/src/wasm2js.h-118-// state bookkeeping (breakStack, etc.), and a few after-the binaryen-98/src/wasm2js.h:119:// fact corrections for imports, etc. However, wasm => JS binaryen-98/src/wasm2js.h:120:// is tricky because wasm has statements == expressions, or in binaryen-98/src/wasm2js.h-121-// other words, things like `break` and `if` can show up ############################################## binaryen-98/src/wasm2js.h-144- // implicit traps like those when optimizing. (When not optimizing, it's binaryen-98/src/wasm2js.h:145: // nice to see codegen that matches wasm more precisely.) binaryen-98/src/wasm2js.h-146- if (options.optimizeLevel > 0) { ############################################## binaryen-98/src/wasm2js.h-215- // binaryen-98/src/wasm2js.h:216: // Identifiers here generated are of the form `${name}_${n}` where `_${n}` binaryen-98/src/wasm2js.h-217- // is omitted if `n==0` and otherwise `n` is just looped over to find the ############################################## binaryen-98/src/wasm2js.h-290-Ref Wasm2JSBuilder::processWasm(Module* wasm, Name funcName) { binaryen-98/src/wasm2js.h:291: // Scan the wasm for important things. binaryen-98/src/wasm2js.h-292- for (auto& exp : wasm->exports) { ############################################## binaryen-98/src/wasm2js.h-839- bool standaloneFunction) { binaryen-98/src/wasm2js.h:840: // Switches are tricky to handle - in wasm they often come with binaryen-98/src/wasm2js.h-841- // massively-nested "towers" of blocks, which if naively translated ############################################## binaryen-98/src/wasm2js.h-1219- ValueBuilder::makeCall(fromName(curr->target, NameScope::Top)); binaryen-98/src/wasm2js.h:1220: // For wasm => wasm calls, we don't need coercions. TODO: even imports binaryen-98/src/wasm2js.h-1221- // might be safe? ############################################## binaryen-98/src/wasm2js.h-2696- // binaryen-98/src/wasm2js.h:2697: // (Note how the single wasm instruction for a 64-bit reinterpret turns into binaryen-98/src/wasm2js.h-2698- // multiple operations. We have to do such splitting, because in JS we will ############################################## binaryen-98/src/wasm2js.h-2704- // the optimizer (which is true, as they modify scratch memory), but the binaryen-98/src/wasm2js.h:2705: // reinterpret_32 is still a normal wasm instruction without side effects, so binaryen-98/src/wasm2js.h-2706- // the optimizer might do this: ############################################## binaryen-98/test/binaryen.js/debug-names.js-5- (global $ld i32 (i32.const 0)) binaryen-98/test/binaryen.js/debug-names.js:6: (func $of (param $wasm i32) binaryen-98/test/binaryen.js/debug-names.js-7- (local $!#$%&'*+-./:<=>?@\\^_\`|~ f64) ############################################## binaryen-98/test/binaryen.js/debug-names.js.txt-5- (global $ld i32 (i32.const 0)) binaryen-98/test/binaryen.js/debug-names.js.txt:6: (func $of (param $wasm i32) binaryen-98/test/binaryen.js/debug-names.js.txt-7- (local $!#$%&'*+-./:<=>?@\^_`|~ f64) ############################################## binaryen-98/test/binaryen.js/debug-names.js.txt-16- (global $ld i32 (i32.const 0)) binaryen-98/test/binaryen.js/debug-names.js.txt:17: (func $of (param $wasm i32) binaryen-98/test/binaryen.js/debug-names.js.txt-18- (local $!#$%&'*+-./:<=>?@\^_`|~ f64) ############################################## binaryen-98/test/binaryen.js/hello-world.js-43-// Compile the binary and create an instance binaryen-98/test/binaryen.js/hello-world.js:44:var wasm = new WebAssembly.Instance(new WebAssembly.Module(binary), {}) binaryen-98/test/binaryen.js/hello-world.js-45-console.log("exports: " + Object.keys(wasm.exports).sort().join(",")); ############################################## binaryen-98/test/i64-setTempRet0.asm.js-3-// not asm.js, it will only ever run as wasm, and contains special intrinsics for binaryen-98/test/i64-setTempRet0.asm.js:4:// asm2wasm that map LLVM IR into i64s. binaryen-98/test/i64-setTempRet0.asm.js-5-// ############################################## binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-454- (f64.abs binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast:455: (block ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-456- (drop (i32.const 1)) ############################################## binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-461- (func $unreachable-block-toplevel (result i32) binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast:462: (block ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-463- (drop (i32.const 1)) ############################################## binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-468- (f64.abs binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast:469: (block ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-470- (return (i32.const 2)) ############################################## binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-474- (func $unreachable-block0-toplevel (result i32) binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast:475: (block ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-476- (return (i32.const 2)) ############################################## binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-487- (f64.abs binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast:488: (if ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-489- (i32.const 3) ############################################## binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-495- (func $unreachable-if-toplevel (result i32) binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast:496: (if ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-497- (i32.const 3) ############################################## binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-503- (f64.abs binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast:504: (loop ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-505- (nop) ############################################## binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-511- (f64.abs binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast:512: (loop ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-513- (return (i32.const 1)) ############################################## binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-517- (func $unreachable-loop-toplevel (result i32) binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast:518: (loop ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-519- (nop) ############################################## binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-523- (func $unreachable-loop0-toplevel (result i32) binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast:524: (loop ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/passes/generate-stack-ir_optimize-stack-ir_print-stack-ir_optimize-level=3.wast-525- (return (i32.const 1)) ############################################## binaryen-98/test/spec/README.md-6-``` binaryen-98/test/spec/README.md:7:./run.py --wasm <path-to-wasm-interpreter> binaryen-98/test/spec/README.md-8-``` ############################################## binaryen-98/test/spec/imports.wast-568-;; This module is required to validate, regardless of whether it can be binaryen-98/test/spec/imports.wast:569:;; linked. Overloading is not possible in wasm itself, but it is possible binaryen-98/test/spec/imports.wast:570:;; in modules from which wasm can import. binaryen-98/test/spec/imports.wast-571-(module) ############################################## binaryen-98/test/threads.wasm-only.asm.js-3-// not asm.js, it will only ever run as wasm, and contains special intrinsics for binaryen-98/test/threads.wasm-only.asm.js:4:// asm2wasm that map LLVM IR into i64s. binaryen-98/test/threads.wasm-only.asm.js-5-// ############################################## binaryen-98/test/unit.wat-454- (f64.abs binaryen-98/test/unit.wat:455: (block ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/unit.wat-456- (drop (i32.const 1)) ############################################## binaryen-98/test/unit.wat-461- (func $unreachable-block-toplevel (result i32) binaryen-98/test/unit.wat:462: (block ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/unit.wat-463- (drop (i32.const 1)) ############################################## binaryen-98/test/unit.wat-468- (f64.abs binaryen-98/test/unit.wat:469: (block ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/unit.wat-470- (return (i32.const 2)) ############################################## binaryen-98/test/unit.wat-474- (func $unreachable-block0-toplevel (result i32) binaryen-98/test/unit.wat:475: (block ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/unit.wat-476- (return (i32.const 2)) ############################################## binaryen-98/test/unit.wat-487- (f64.abs binaryen-98/test/unit.wat:488: (if ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/unit.wat-489- (i32.const 3) ############################################## binaryen-98/test/unit.wat-495- (func $unreachable-if-toplevel (result i32) binaryen-98/test/unit.wat:496: (if ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/unit.wat-497- (i32.const 3) ############################################## binaryen-98/test/unit.wat-503- (f64.abs binaryen-98/test/unit.wat:504: (loop ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/unit.wat-505- (nop) ############################################## binaryen-98/test/unit.wat-511- (f64.abs binaryen-98/test/unit.wat:512: (loop ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/unit.wat-513- (return (i32.const 1)) ############################################## binaryen-98/test/unit.wat-517- (func $unreachable-loop-toplevel (result i32) binaryen-98/test/unit.wat:518: (loop ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/unit.wat-519- (nop) ############################################## binaryen-98/test/unit.wat-523- (func $unreachable-loop0-toplevel (result i32) binaryen-98/test/unit.wat:524: (loop ;; note no type - valid in binaryen IR, in wasm must be i32 binaryen-98/test/unit.wat-525- (return (i32.const 1)) ############################################## binaryen-98/test/unit/input/asyncify-sleep.wat-135- (local.set $x binaryen-98/test/unit/input/asyncify-sleep.wat:136: (call $tunnel (local.get $x)) ;; calls js which calls back into wasm for end_tunnel binaryen-98/test/unit/input/asyncify-sleep.wat-137- ) ############################################## binaryen-98/test/unit/input/update.sh-8- binaryen-98/test/unit/input/update.sh:9:$WASM_OPT atomics_target_feature.wasm --enable-threads -g --emit-target-features -o atomics_target_feature.wasm binaryen-98/test/unit/input/update.sh:10:$WASM_OPT bulkmem_data.wasm --enable-bulk-memory -g --emit-target-features -o bulkmem_data.wasm binaryen-98/test/unit/input/update.sh:11:$WASM_OPT bulkmem_target_feature.wasm --enable-bulk-memory -g --emit-target-features -o bulkmem_target_feature.wasm binaryen-98/test/unit/input/update.sh:12:$WASM_OPT exception_handling_target_feature.wasm --enable-exception-handling --enable-reference-types -g --emit-target-features -o exception_handling_target_feature.wasm binaryen-98/test/unit/input/update.sh:13:$WASM_OPT gc_target_feature.wasm --enable-reference-types --enable-gc -g --emit-target-features -o gc_target_feature.wasm binaryen-98/test/unit/input/update.sh:14:$WASM_OPT mutable_globals_target_feature.wasm --enable-mutable-globals -g --emit-target-features -o mutable_globals_target_feature.wasm binaryen-98/test/unit/input/update.sh:15:$WASM_OPT reference_types_target_feature.wasm --enable-reference-types -g --emit-target-features -o reference_types_target_feature.wasm binaryen-98/test/unit/input/update.sh:16:$WASM_OPT signext_target_feature.wasm --enable-sign-ext -g --emit-target-features -o signext_target_feature.wasm binaryen-98/test/unit/input/update.sh:17:$WASM_OPT simd_target_feature.wasm --enable-simd -g --emit-target-features -o simd_target_feature.wasm binaryen-98/test/unit/input/update.sh:18:$WASM_OPT truncsat_target_feature.wasm --enable-nontrapping-float-to-int -g --emit-target-features -o truncsat_target_feature.wasm binaryen-98/test/unit/input/update.sh:19:$WASM_OPT tail_call_target_feature.wasm --enable-tail-call -g --emit-target-features -o tail_call_target_feature.wasm ############################################## binaryen-98/test/unit/test_asyncify.py-38- binaryen-98/test/unit/test_asyncify.py:39: # test wasm input binaryen-98/test/unit/test_asyncify.py-40- shared.run_process(shared.WASM_AS + [wat, '-o', 'a.wasm']) ############################################## binaryen-98/test/unit/test_stack_ir.py-15- self.assertLess(len(opt), len(nonopt)) binaryen-98/test/unit/test_stack_ir.py:16: # see a difference in the actual emitted wasm binary. binaryen-98/test/unit/test_stack_ir.py-17- opt_size = os.path.getsize('a.wasm') ############################################## binaryen-98/test/unit/test_wasm2c.py-8- # that is present. binaryen-98/test/unit/test_wasm2c.py:9: empty_wasm = self.input_path('empty.wasm') binaryen-98/test/unit/test_wasm2c.py-10- args = [empty_wasm, '--emit-wasm2c-wrapper=output.c'] ############################################## binaryen-98/test/unit/test_wasm2c.py-13- normal_output = f.read() binaryen-98/test/unit/test_wasm2c.py:14: # running with ttf generates a new wasm for fuzzing, which always binaryen-98/test/unit/test_wasm2c.py-15- # includes the hang limit initializer function ############################################## binaryen-98/test/wasm-only.asm.js-3-// not asm.js, it will only ever run as wasm, and contains special intrinsics for binaryen-98/test/wasm-only.asm.js:4:// asm2wasm that map LLVM IR into i64s. binaryen-98/test/wasm-only.asm.js-5-// ############################################## binaryen-98/third_party/llvm-project/Unix/Path.inc-241- Dl_info DLInfo; binaryen-98/third_party/llvm-project/Unix/Path.inc:242: int err = dladdr(MainAddr, &DLInfo); binaryen-98/third_party/llvm-project/Unix/Path.inc-243- if (err == 0) ############################################## binaryen-98/third_party/llvm-project/include/llvm/ADT/Triple.h-636- binaryen-98/third_party/llvm-project/include/llvm/ADT/Triple.h:637: /// Tests whether the OS uses the Wasm binary format. binaryen-98/third_party/llvm-project/include/llvm/ADT/Triple.h-638- bool isOSBinFormatWasm() const { ############################################## binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Dwarf.h-66- DWARF_VENDOR_MIPS = 6, binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Dwarf.h:67: DWARF_VENDOR_WASM = 7 binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Dwarf.h-68-}; ############################################## binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h:1://===- Wasm.h - Wasm object file format -------------------------*- C++ -*-===// binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h-2-// ############################################## binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h-8-// binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h:9:// This file defines manifest constants for the wasm object file format. binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h-10-// See: https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md ############################################## binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h-21-namespace llvm { binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h:22:namespace wasm { binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h-23- ############################################## binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h-25-const char WasmMagic[] = {'\0', 'a', 's', 'm'}; binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h:26:// Wasm binary format version binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h-27-const uint32_t WasmVersion = 0x1; binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h:28:// Wasm linking metadata version binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h-29-const uint32_t WasmMetadataVersion = 0x2; binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h:30:// Wasm uses a 64k page size binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h-31-const uint32_t WasmPageSize = 65536; ############################################## binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h-155- binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h:156:// Represents the location of a Wasm data symbol within a WasmDataSegment, as binaryen-98/third_party/llvm-project/include/llvm/BinaryFormat/Wasm.h-157-// the index of the segment, and the offset and size within the segment. ############################################## binaryen-98/third_party/llvm-project/include/llvm/MC/MCInst.h-162- // These flags could be used to pass some info from one target subcomponent binaryen-98/third_party/llvm-project/include/llvm/MC/MCInst.h:163: // to another, for example, from disassembler to asm printer. The values of binaryen-98/third_party/llvm-project/include/llvm/MC/MCInst.h-164- // the flags have any sense on target level only (e.g. prefixes on x86). ############################################## binaryen-98/third_party/llvm-project/include/llvm/MC/MCSymbol.h-70- /// If this is a variable symbol, this caches the variable value's fragment. binaryen-98/third_party/llvm-project/include/llvm/MC/MCSymbol.h:71: /// FIXME: We might be able to simplify this by having the asm streamer create binaryen-98/third_party/llvm-project/include/llvm/MC/MCSymbol.h-72- /// dummy fragments. ############################################## binaryen-98/third_party/llvm-project/include/llvm/MC/MCSymbolWasm.h-15- binaryen-98/third_party/llvm-project/include/llvm/MC/MCSymbolWasm.h:16:class MCSymbolWasm : public MCSymbol { binaryen-98/third_party/llvm-project/include/llvm/MC/MCSymbolWasm.h-17- wasm::WasmSymbolType Type = wasm::WASM_SYMBOL_TYPE_DATA; ############################################## binaryen-98/third_party/llvm-project/include/llvm/Object/ELF.h-167- binaryen-98/third_party/llvm-project/include/llvm/Object/ELF.h:168: Expected<const uint8_t *> toMappedAddr(uint64_t VAddr) const; binaryen-98/third_party/llvm-project/include/llvm/Object/ELF.h-169- ############################################## binaryen-98/third_party/llvm-project/include/llvm/Object/Wasm.h:1://===- Wasm.h - Wasm object file implementation -----------------*- C++ -*-===// binaryen-98/third_party/llvm-project/include/llvm/Object/Wasm.h-2-// ############################################## binaryen-98/third_party/llvm-project/include/llvm/Object/Wasm.h-9-// This file declares the WasmObjectFile class, which implements the ObjectFile binaryen-98/third_party/llvm-project/include/llvm/Object/Wasm.h:10:// interface for Wasm files. binaryen-98/third_party/llvm-project/include/llvm/Object/Wasm.h-11-// ############################################## binaryen-98/third_party/llvm-project/include/llvm/Object/Wasm.h-294-public: binaryen-98/third_party/llvm-project/include/llvm/Object/Wasm.h:295: // We define orders for all core wasm sections and known custom sections. binaryen-98/third_party/llvm-project/include/llvm/Object/Wasm.h-296- enum : int { ############################################## binaryen-98/third_party/llvm-project/include/llvm/Support/ARMBuildAttributes.h-26-enum SpecialAttr { binaryen-98/third_party/llvm-project/include/llvm/Support/ARMBuildAttributes.h:27: // This is for the .cpu asm attr. It translates into one or more binaryen-98/third_party/llvm-project/include/llvm/Support/ARMBuildAttributes.h-28- // AttrType (below) entries in the .ARM.attributes section in the ELF. ############################################## binaryen-98/third_party/llvm-project/include/llvm/Support/Alignment.h-183-/// Aligns `Addr` to `Alignment` bytes, rounding up. binaryen-98/third_party/llvm-project/include/llvm/Support/Alignment.h:184:inline uintptr_t alignAddr(const void *Addr, Align Alignment) { binaryen-98/third_party/llvm-project/include/llvm/Support/Alignment.h-185- uintptr_t ArithAddr = reinterpret_cast<uintptr_t>(Addr); ############################################## binaryen-98/third_party/llvm-project/include/llvm/Support/Alignment.h-198-/// bytes, rounding up. binaryen-98/third_party/llvm-project/include/llvm/Support/Alignment.h:199:inline uint64_t offsetToAlignedAddr(const void *Addr, Align Alignment) { binaryen-98/third_party/llvm-project/include/llvm/Support/Alignment.h-200- return offsetToAlignment(reinterpret_cast<uintptr_t>(Addr), Alignment); ############################################## binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h-218- binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h:219: size_t Adjustment = offsetToAlignedAddr(CurPtr, Alignment); binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h-220- assert(Adjustment + Size >= Size && "Adjustment + Size must not overflow"); ############################################## binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h-249- binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h:250: uintptr_t AlignedAddr = alignAddr(NewSlab, Alignment); binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h-251- assert(AlignedAddr + Size <= (uintptr_t)NewSlab + PaddedSize); ############################################## binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h-259- StartNewSlab(); binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h:260: uintptr_t AlignedAddr = alignAddr(CurPtr, Alignment); binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h-261- assert(AlignedAddr + SizeToAllocate <= (uintptr_t)End && ############################################## binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h-468- auto DestroyElements = [](char *Begin, char *End) { binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h:469: assert(Begin == (char *)alignAddr(Begin, Align::Of<T>())); binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h-470- for (char *Ptr = Begin; Ptr + sizeof(T) <= End; Ptr += sizeof(T)) ############################################## binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h-477- std::distance(Allocator.Slabs.begin(), I)); binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h:478: char *Begin = (char *)alignAddr(*I, Align::Of<T>()); binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h-479- char *End = *I == Allocator.Slabs.back() ? Allocator.CurPtr ############################################## binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h-487- size_t Size = PtrAndSize.second; binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h:488: DestroyElements((char *)alignAddr(Ptr, Align::Of<T>()), binaryen-98/third_party/llvm-project/include/llvm/Support/Allocator.h-489- (char *)Ptr + Size); ############################################## binaryen-98/third_party/llvm-project/include/llvm/Support/TargetRegistry.h-74-/// binaryen-98/third_party/llvm-project/include/llvm/Support/TargetRegistry.h:75:/// \param TAB - If given, a target asm backend to use to show the fixup binaryen-98/third_party/llvm-project/include/llvm/Support/TargetRegistry.h-76-/// information in conjunction with encoding information. This method takes ############################################## binaryen-98/third_party/llvm-project/include/llvm/Support/TargetRegistry.h-277- binaryen-98/third_party/llvm-project/include/llvm/Support/TargetRegistry.h:278: /// Construction function for this target's asm TargetStreamer, if binaryen-98/third_party/llvm-project/include/llvm/Support/TargetRegistry.h-279- /// registered (default = nullptr). ############################################## binaryen-98/third_party/wabt/wasm2c/wasm-rt-impl.h-41- binaryen-98/third_party/wabt/wasm2c/wasm-rt-impl.h:42:/** Convenience macro to use before calling a wasm function. On first execution binaryen-98/third_party/wabt/wasm2c/wasm-rt-impl.h-43- * it will return `WASM_RT_TRAP_NONE` (i.e. 0). If the function traps, it will ############################################## binaryen-98/debian/control-38- WebAssembly-specific optimizations (that general-purpose compilers might not binaryen-98/debian/control:39: do), which you can think of as wasm minification , similar to minification binaryen-98/debian/control-40- for JavaScript, CSS, etc., all of which are language-specific (an example of