Yep, quite right, Evan. Any regalloc differences due to that patch are purely coincidence; -Jim> On Jun 16, 2014, at 10:13 AM, Evan Cheng <evan.cheng at apple.com> wrote: > > Hi Niklas, > > The attached patch has nothing to do with register allocation. r206094 changes how cpu auto-detection is done. I believe it's now the responsibility of the tools (e.g. llc) to detect the cpu. My guess is the proper fix is on the RoboVM side to handle the change. > > Jim, can you confirm? > > Evan > > On Jun 1, 2014, at 1:45 PM, Niklas Therning <niklas at therning.org> wrote: > >> I think we have located the revision which fixes this regression: r206094 (or commit 6bb00df in llvm-mirror on GitHub). I have attached a patch which can be applied to the current release_34 branch (tested against the release_34 branch in llvm-mirror). With this patch the attached reg-alloc-test.ll file doesn't fail with the "LLVM ERROR: ran out of registers during register allocation" error any longer. I haven't run any llvm tests to make sure this patch doesn't break anything else but as far as I can see it doesn't at least break anything when used in RoboVM. >> >> Is it too late to get this into 3.4.2? Is there anything else I can do to make it easier for you to include this patch in 3.4.2 or the next possible point release? >> >> >> >> On Wed, May 14, 2014 at 3:25 PM, Renato Golin <renato.golin at linaro.org> wrote: >> On 14 May 2014 14:15, Niklas Therning <niklas at therning.org> wrote: >> > I can confirm that this regression has been fixed in trunk. Should I report >> > this as a bug in 3.4? >> >> The 3.4.2 release is coming, you might want to consider finding the >> patches responsible for the fix and proposing it for back-porting. >> >> Please email Tom (cc'd) if you end up with a proposal. >> >> cheers, >> --renato >> >> <reg-alloc-regression.patch><reg-alloc-test.ll>_______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140616/6d52751c/attachment.html>
Thanks guys! I did some experimenting and it turns out that if I just set a value for CPU in the call to LLVMCreateTargetMachine() the "ran out of registers" error disappears. Easy fix! BTW, if it's up to the tools to do the auto-detection I guess llc in 3.4 is broken then since it fails too? On Mon, Jun 16, 2014 at 7:20 PM, Jim Grosbach <grosbach at apple.com> wrote:> Yep, quite right, Evan. Any regalloc differences due to that patch are > purely coincidence; > > -Jim > > On Jun 16, 2014, at 10:13 AM, Evan Cheng <evan.cheng at apple.com> wrote: > > Hi Niklas, > > The attached patch has nothing to do with register allocation. r206094 > changes how cpu auto-detection is done. I believe it's now the > responsibility of the tools (e.g. llc) to detect the cpu. My guess is the > proper fix is on the RoboVM side to handle the change. > > Jim, can you confirm? > > Evan > > On Jun 1, 2014, at 1:45 PM, Niklas Therning <niklas at therning.org> wrote: > > I think we have located the revision which fixes this regression: r206094 > (or commit 6bb00df in llvm-mirror on GitHub). I have attached a patch which > can be applied to the current release_34 branch (tested against the > release_34 branch in llvm-mirror). With this patch the attached > reg-alloc-test.ll file doesn't fail with the "LLVM ERROR: ran out of > registers during register allocation" error any longer. I haven't run any > llvm tests to make sure this patch doesn't break anything else but as far > as I can see it doesn't at least break anything when used in RoboVM. > > Is it too late to get this into 3.4.2? Is there anything else I can do to > make it easier for you to include this patch in 3.4.2 or the next possible > point release? > > > > On Wed, May 14, 2014 at 3:25 PM, Renato Golin <renato.golin at linaro.org> > wrote: > >> On 14 May 2014 14:15, Niklas Therning <niklas at therning.org> wrote: >> > I can confirm that this regression has been fixed in trunk. Should I >> report >> > this as a bug in 3.4? >> >> The 3.4.2 release is coming, you might want to consider finding the >> patches responsible for the fix and proposing it for back-porting. >> >> Please email Tom (cc'd) if you end up with a proposal. >> >> cheers, >> --renato >> > > <reg-alloc-regression.patch><reg-alloc-test.ll> > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140617/1e64b6e7/attachment.html>
Glad to hear things are back to working for you. Most excellent. llc is an interesting case because it used to do auto-detection, but was change to not do so. It’s purpose is as a test and development driver for LLVM backend work, and for that it’s very important that runs of the tool on different host machines generate the same results. CPU auto-detection is at strong cross purposes to that. Compiler drivers that are meant to be end-user facing have a different set of priorities and so different solutions are better. -Jim> On Jun 17, 2014, at 7:58 AM, Niklas Therning <niklas at therning.org> wrote: > > Thanks guys! I did some experimenting and it turns out that if I just set a value for CPU in the call to LLVMCreateTargetMachine() the "ran out of registers" error disappears. Easy fix! > > BTW, if it's up to the tools to do the auto-detection I guess llc in 3.4 is broken then since it fails too? > > > On Mon, Jun 16, 2014 at 7:20 PM, Jim Grosbach <grosbach at apple.com> wrote: > Yep, quite right, Evan. Any regalloc differences due to that patch are purely coincidence; > > -Jim > >> On Jun 16, 2014, at 10:13 AM, Evan Cheng <evan.cheng at apple.com> wrote: >> >> Hi Niklas, >> >> The attached patch has nothing to do with register allocation. r206094 changes how cpu auto-detection is done. I believe it's now the responsibility of the tools (e.g. llc) to detect the cpu. My guess is the proper fix is on the RoboVM side to handle the change. >> >> Jim, can you confirm? >> >> Evan >> >> On Jun 1, 2014, at 1:45 PM, Niklas Therning <niklas at therning.org> wrote: >> >>> I think we have located the revision which fixes this regression: r206094 (or commit 6bb00df in llvm-mirror on GitHub). I have attached a patch which can be applied to the current release_34 branch (tested against the release_34 branch in llvm-mirror). With this patch the attached reg-alloc-test.ll file doesn't fail with the "LLVM ERROR: ran out of registers during register allocation" error any longer. I haven't run any llvm tests to make sure this patch doesn't break anything else but as far as I can see it doesn't at least break anything when used in RoboVM. >>> >>> Is it too late to get this into 3.4.2? Is there anything else I can do to make it easier for you to include this patch in 3.4.2 or the next possible point release? >>> >>> >>> >>> On Wed, May 14, 2014 at 3:25 PM, Renato Golin <renato.golin at linaro.org> wrote: >>> On 14 May 2014 14:15, Niklas Therning <niklas at therning.org> wrote: >>> > I can confirm that this regression has been fixed in trunk. Should I report >>> > this as a bug in 3.4? >>> >>> The 3.4.2 release is coming, you might want to consider finding the >>> patches responsible for the fix and proposing it for back-porting. >>> >>> Please email Tom (cc'd) if you end up with a proposal. >>> >>> cheers, >>> --renato >>> >>> <reg-alloc-regression.patch><reg-alloc-test.ll>_______________________________________________ >>> LLVM Developers mailing list >>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140617/c0757aa5/attachment.html>