{"action":"created","issue":{"url":"https://api.github.com/repos/japaric/rustc-builtins/issues/14","repository_url":"https://api.github.com/repos/japaric/rustc-builtins","labels_url":"https://api.github.com/repos/japaric/rustc-builtins/issues/14/labels{/name}","comments_url":"https://api.github.com/repos/japaric/rustc-builtins/issues/14/comments","events_url":"https://api.github.com/repos/japaric/rustc-builtins/issues/14/events","html_url":"https://github.com/japaric/rustc-builtins/pull/14","id":170031019,"number":14,"title":"add weak memcpy, memmove and memset","user":{"login":"japaric","id":5018213,"avatar_url":"https://avatars.githubusercontent.com/u/5018213?v=3","gravatar_id":"","url":"https://api.github.com/users/japaric","html_url":"https://github.com/japaric","followers_url":"https://api.github.com/users/japaric/followers","following_url":"https://api.github.com/users/japaric/following{/other_user}","gists_url":"https://api.github.com/users/japaric/gists{/gist_id}","starred_url":"https://api.github.com/users/japaric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/japaric/subscriptions","organizations_url":"https://api.github.com/users/japaric/orgs","repos_url":"https://api.github.com/users/japaric/repos","events_url":"https://api.github.com/users/japaric/events{/privacy}","received_events_url":"https://api.github.com/users/japaric/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-08-08T21:33:31Z","updated_at":"2016-08-08T21:48:45Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/japaric/rustc-builtins/pulls/14","html_url":"https://github.com/japaric/rustc-builtins/pull/14","diff_url":"https://github.com/japaric/rustc-builtins/pull/14.diff","patch_url":"https://github.com/japaric/rustc-builtins/pull/14.patch"},"body":"cc @Amanieu \r\n\r\nThe problem is that, with this change, intrinsics like `__aeabi_memcpy` get misoptimized to an infinitely recursive call:\r\n\r\n```\r\n$ cargo build --target arm-unknown-linux-gnueabi\r\n$ arm-linux-gnueabi-objdump -Cd target/arm-unknown-linux-gnueabi/release/librustc_builtins.rlib\r\n00000000 <__aeabi_memcpy>:\r\n   0:   eafffffe        b       0 <__aeabi_memcpy>\r\n(..)\r\n```"},"comment":{"url":"https://api.github.com/repos/japaric/rustc-builtins/issues/comments/238388430","html_url":"https://github.com/japaric/rustc-builtins/pull/14#issuecomment-238388430","issue_url":"https://api.github.com/repos/japaric/rustc-builtins/issues/14","id":238388430,"user":{"login":"japaric","id":5018213,"avatar_url":"https://avatars.githubusercontent.com/u/5018213?v=3","gravatar_id":"","url":"https://api.github.com/users/japaric","html_url":"https://github.com/japaric","followers_url":"https://api.github.com/users/japaric/followers","following_url":"https://api.github.com/users/japaric/following{/other_user}","gists_url":"https://api.github.com/users/japaric/gists{/gist_id}","starred_url":"https://api.github.com/users/japaric/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/japaric/subscriptions","organizations_url":"https://api.github.com/users/japaric/orgs","repos_url":"https://api.github.com/users/japaric/repos","events_url":"https://api.github.com/users/japaric/events{/privacy}","received_events_url":"https://api.github.com/users/japaric/received_events","type":"User","site_admin":false},"created_at":"2016-08-08T21:48:45Z","updated_at":"2016-08-08T21:48:45Z","body":"Hmm, I tested this with branch with one of my projects and I'm still seeing [the recursive bomb](https://travis-ci.org/japaric/cu/builds/150768170#L506-L531). Also:\r\n\r\n```\r\n$ arm-none-eabi-nm target/cortex-m3/release/05-init-data\r\n0800014a T __aeabi_memcpy\r\n08000152 T __aeabi_memcpy4\r\n         U __aeabi_unwind_cpp_pr0\r\n42210000 A __BB_GPIOA\r\n42220000 A __BB_GPIOC\r\n42420000 A __BB_RCC\r\n42028000 A __BB_TIM7\r\n42000000 A __BITBAND_ALIAS\r\n40000000 A __BITBAND_START\r\n20000000 D __DATA_END\r\n0800015c A __DATA_LOAD\r\n20000000 D __DATA_START\r\n08000146 T __default_handler\r\n08000008 R __EXCEPTIONS\r\n40010800 A __GPIOA\r\n40011000 A __GPIOC\r\n08000040 R __INTERRUPTS\r\ne0000000 A __ITM\r\n08000040 r link_exceptions_end\r\n08000008 r link_exceptions_start\r\n08000120 r link_interrupts_end\r\n08000040 r link_interrupts_start\r\n08000008 r link_reset_end\r\n08000004 r link_reset_start\r\ne000e100 A __NVIC\r\n40021000 A __RCC\r\n08000004 R __RESET\r\n08000120 T start\r\n08000146 T __tim7\r\n40001400 A __TIM7\r\n```\r\n\r\nI'm going to try something different."}}
{"actor":{"display_login":"japaric"}}