{"action":"closed","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/50543","repository_url":"https://api.github.com/repos/rust-lang/rust","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/50543/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/50543/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/50543/events","html_url":"https://github.com/rust-lang/rust/issues/50543","id":321311431,"node_id":"MDU6SXNzdWUzMjEzMTE0MzE=","number":50543,"title":"LLVM 7.0 tracking issue","user":{"login":"alexcrichton","id":64996,"node_id":"MDQ6VXNlcjY0OTk2","avatar_url":"https://avatars1.githubusercontent.com/u/64996?v=4","gravatar_id":"","url":"https://api.github.com/users/alexcrichton","html_url":"https://github.com/alexcrichton","followers_url":"https://api.github.com/users/alexcrichton/followers","following_url":"https://api.github.com/users/alexcrichton/following{/other_user}","gists_url":"https://api.github.com/users/alexcrichton/gists{/gist_id}","starred_url":"https://api.github.com/users/alexcrichton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexcrichton/subscriptions","organizations_url":"https://api.github.com/users/alexcrichton/orgs","repos_url":"https://api.github.com/users/alexcrichton/repos","events_url":"https://api.github.com/users/alexcrichton/events{/privacy}","received_events_url":"https://api.github.com/users/alexcrichton/received_events","type":"User","site_admin":false},"labels":[{"id":108333,"node_id":"MDU6TGFiZWwxMDgzMzM=","url":"https://api.github.com/repos/rust-lang/rust/labels/A-LLVM","name":"A-LLVM","color":"d7e102","default":false},{"id":650846969,"node_id":"MDU6TGFiZWw2NTA4NDY5Njk=","url":"https://api.github.com/repos/rust-lang/rust/labels/C-tracking-issue","name":"C-tracking-issue","color":"f5f1fd","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-05-08T19:11:06Z","updated_at":"2018-07-13T18:40:33Z","closed_at":"2018-07-13T18:40:33Z","author_association":"MEMBER","body":"I'm opening this to track upgrading to LLVM 7.0. This version of LLVM has not been release and is currently in development on the master branch of LLVM itself, but I'd like to track possible regressions over time and otherwise try to routinely build rustc with LLVM 7 and make sure it keeps working\r\n\r\n* [Current rustc branch](https://github.com/alexcrichton/rust/tree/llvm7) - based on 56e541ddf1ee9a4e9d65a3cf6f952c31c3edf5ef\r\n* [Current LLVM fork](https://github.com/alexcrichton/llvm/tree/rust-llvm-release-7-0-0) - based on https://github.com/alexcrichton/llvm/commit/d9367a91972e6631f831c329a47856785031d58e\r\n* [Latest test results](https://travis-ci.org/rust-lang/rust/builds/376432459)\r\n\r\n### Reasons to upgrade to LLVM 7\r\n\r\n* [LLD has implemented `--gc-sections` for wasm](https://github.com/llvm-mirror/lld/commit/c69119a92799a8dd09b7e47c3be52e13b81a2cdc)\r\n* [LLD has implemented DWARF debugging information sections for wasm](https://github.com/llvm-mirror/lld/commit/b5c6a5aca8d591cf1ead4e7f2947b4c21affb713)\r\n* [LLD has natively implemented concatenation of custom sections for wasm](https://github.com/llvm-mirror/lld/commit/e1964ff6e9e3c9dc464b09a83b8640229b9e4f2f)\r\n* [LLD has gained the ability to place the stack first in a wasm module's memory layout, reducing the corruption that happens on a stack overflow](https://github.com/llvm-mirror/lld/commit/0db522bf2237c7265f962c38404334e2bc78b9df)\r\n* [LLD option to not merge data segments](https://github.com/llvm-mirror/lld/commit/4a118b5f8d03cc5090f148b71cd8db4b707dba63)\r\n* [Some SIMD generic float intrinsics have been fixed](https://github.com/llvm-mirror/llvm/commit/e271f8c46c6bee271f75848b6110588da5df7d2f)\r\n* [LLD optimizing further the size of release binaries](https://reviews.llvm.org/D46416)\r\n* [LLD supports `@`-file syntax](https://reviews.llvm.org/D47500)\r\n\r\n... and likely more coming soon!\r\n\r\n### Changes required\r\n\r\n* [ ] Track down and fix rustdoc panic on x86_64 (and maybe i686?)\r\n  * https://travis-ci.org/rust-lang/rust/jobs/376432495\r\n  * https://travis-ci.org/rust-lang/rust/jobs/376432502\r\n  * currently [hacked around](https://github.com/alexcrichton/rust/commit/ef4f3c09330c965a62c628eaa4707f03a8cb5853#diff-4b7132e898719f35d3030ab5ec0d94b3)\r\n* [x] [Track](https://travis-ci.org/rust-lang/rust/jobs/376432470) down, [report](https://bugs.llvm.org/show_bug.cgi?id=37382), and pull in [fix](https://reviews.llvm.org/D48846) for codegen failure on Thumb platform\r\n* [x] `fs::tests::realpath_works_tricky` is failing on x86_64 MSVC\r\n* [x] PGO run-make-fulldeps tests failing on x86_64 MSVC\r\n* [x] Update LLD's `@`-syntax to always use GNU quoting\r\n* [x] Serialize custom sections to LLVM IR for wasm instead of manually handling them\r\n* [x] IR syntax for memcpy/memmove has changed with argument alignments\r\n* [x] getelementptr syntax has changed with argument alignment\r\n* [x] Pass `--gc-sections` to `wasm-ld`\r\n* [x] Leverage LLVM for wasm custom sections instead of implementing custom support\r\n* [x] Pass the `--stack-first` option to `wasm-ld` by default\r\n* [x] The wasm target is now named `wasm32-unknown-unkonwn` (no trailing `-wasm`)\r\n* [x] Pass `-O2` to LLD on wasm\r\n\r\n### Changes hoped for\r\n\r\n* [LLD preserving wasm import modules](https://bugs.llvm.org/show_bug.cgi?id=37168)\r\n\r\n"}}
{"actor":{"display_login":"alexcrichton"}}