{"action":"created","issue":{"url":"https://api.github.com/repos/WebAssembly/binaryen/issues/587","repository_url":"https://api.github.com/repos/WebAssembly/binaryen","labels_url":"https://api.github.com/repos/WebAssembly/binaryen/issues/587/labels{/name}","comments_url":"https://api.github.com/repos/WebAssembly/binaryen/issues/587/comments","events_url":"https://api.github.com/repos/WebAssembly/binaryen/issues/587/events","html_url":"https://github.com/WebAssembly/binaryen/pull/587","id":160252946,"number":587,"title":"Only export functions with default visibility","user":{"login":"dschuff","id":1122856,"avatar_url":"https://avatars.githubusercontent.com/u/1122856?v=3","gravatar_id":"","url":"https://api.github.com/users/dschuff","html_url":"https://github.com/dschuff","followers_url":"https://api.github.com/users/dschuff/followers","following_url":"https://api.github.com/users/dschuff/following{/other_user}","gists_url":"https://api.github.com/users/dschuff/gists{/gist_id}","starred_url":"https://api.github.com/users/dschuff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dschuff/subscriptions","organizations_url":"https://api.github.com/users/dschuff/orgs","repos_url":"https://api.github.com/users/dschuff/repos","events_url":"https://api.github.com/users/dschuff/events{/privacy}","received_events_url":"https://api.github.com/users/dschuff/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-06-14T18:35:48Z","updated_at":"2016-11-09T20:38:53Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/WebAssembly/binaryen/pulls/587","html_url":"https://github.com/WebAssembly/binaryen/pull/587","diff_url":"https://github.com/WebAssembly/binaryen/pull/587.diff","patch_url":"https://github.com/WebAssembly/binaryen/pull/587.patch"},"body":"As discussed in #585, this change makes s2wasm more aware of the\nsymbol visibility output from LLVM, and only exports global functions\nwith default visibility (instead of all globals as before).\n"},"comment":{"url":"https://api.github.com/repos/WebAssembly/binaryen/issues/comments/259520079","html_url":"https://github.com/WebAssembly/binaryen/pull/587#issuecomment-259520079","issue_url":"https://api.github.com/repos/WebAssembly/binaryen/issues/587","id":259520079,"user":{"login":"benvanik","id":75337,"avatar_url":"https://avatars.githubusercontent.com/u/75337?v=3","gravatar_id":"","url":"https://api.github.com/users/benvanik","html_url":"https://github.com/benvanik","followers_url":"https://api.github.com/users/benvanik/followers","following_url":"https://api.github.com/users/benvanik/following{/other_user}","gists_url":"https://api.github.com/users/benvanik/gists{/gist_id}","starred_url":"https://api.github.com/users/benvanik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benvanik/subscriptions","organizations_url":"https://api.github.com/users/benvanik/orgs","repos_url":"https://api.github.com/users/benvanik/repos","events_url":"https://api.github.com/users/benvanik/events{/privacy}","received_events_url":"https://api.github.com/users/benvanik/received_events","type":"User","site_admin":false},"created_at":"2016-11-09T20:38:53Z","updated_at":"2016-11-09T20:38:53Z","body":"That makes sense - tests are good :)\r\nToday wasm-opt can't do any dead function elimination and almost all inlining is prevented on code coming from clang, as s2wasm acting as the linker pins everything as an export. With this PR patched in my binaries get much much better.\r\nDo you see the flow (clang -> s2wasm -> wasm-opt -> wasm-as) changing with LLVM? (guessing maybe clang -> lld -> wasm-opt -> wasm-as?) If lld does the linking and wasm-opt only ever sees things that really are exported that seems fine (I'm assuming from what I've seen discussed that wasm-opt is still used in that flow instead of/in addition-to the llvm optimizer - is that correct?)"}}
{"actor":{"display_login":"benvanik"}}