Stefan Kanthak via llvm-dev
2018-Dec-01 17:28 UTC
[llvm-dev] Where's the optimiser gone? (part 5.a): missed tail calls, and more...
Compile the following functions with "-O3 -target amd64" (see <https://godbolt.org/z/5xqYhH>): __int128 div(__int128 foo, __int128 bar) { return foo / bar; } On the left the generated code; on the right the expected, properly optimised code: div: # @div push rbp | mov rbp, rsp | call __divti3 | jmp __divti3 pop rbp | ret | __int128 mod(__int128 foo, __int128 bar) { return foo % bar; } mod: # @mod push rbp | mov rbp, rsp | call __modti3 | jmp __modti3 pop rbp | ret | __int128 mul(__int128 foo, __int128 bar) { return foo * bar; } mul: # @mul push rbp mov rbp, rsp mov r8, rdx mov rax, rdx mul rdi imul rsi, r8 add rdx, rsi imul rcx, rdi add rdx, rcx pop rbp ret
Tim Northover via llvm-dev
2018-Dec-01 20:29 UTC
[llvm-dev] Where's the optimiser gone? (part 5.a): missed tail calls, and more...
Hi, On Sat, 1 Dec 2018 at 17:37, Stefan Kanthak via llvm-dev <llvm-dev at lists.llvm.org> wrote:> Compile the following functions with "-O3 -target amd64"You've been advised before, but you really need to start reporting these as bugs[*] if you actually care about them. llvm-dev is basically a black-hole as far as bugs go: if no-one takes enough of an interest to either fix or file a bug within a day or two, the issue will be completely forgotten. The list is intended for discussion of issues and future designs, not reporting them. It seems you got lucky and someone did file at least one report from one of these threads; you should expect that to become less frequent. People are willing to assume the best of new contributors, but by the time you reach a dozen threads without actually engaging with the community's procedures that goodwill starts to look a bit threadbare. Cheers. Tim. [*] https://llvm.org/docs/Contributing.html
Stefan Kanthak via llvm-dev
2018-Dec-03 14:10 UTC
[llvm-dev] Where's the optimiser gone? (part 5.a): missed tail calls, and more...
"Tim Northover" <t.p.northover at gmail.com> wrote:> Hi, > > On Sat, 1 Dec 2018 at 17:37, Stefan Kanthak via llvm-dev > <llvm-dev at lists.llvm.org> wrote: >> Compile the following functions with "-O3 -target amd64" > > You've been advised before, but you really need to start reporting > these as bugs[*] if you actually care about them.These ain't my bugs, these are LLVM's bugs. I don't use LLVM, I just dared to write some posts which pinpoint deficiencies and bugs in it. You should see this as COURTESY. The least I expect from any software developer, and especially a "foundation", is to take action on bug reports, INDEPENDENT how they are reported.> llvm-dev is > basically a black-hole as far as bugs go: if no-one takes enough of an > interest to either fix or file a bug within a day or two, the issue > will be completely forgotten. The list is intended for discussion of > issues and future designs, not reporting them.That's clearly LLVM's problem.> It seems you got lucky and someone did file at least one report from > one of these threads;You got that backwards: YOU are lucky that I took the time to report these bugs!> you should expect that to become less frequent. > People are willing to assume the best of new contributors, but by the > time you reach a dozen threads without actually engaging with the > community's procedures that goodwill starts to look a bit threadbare. > > Cheers. > > Tim. > > [*] https://llvm.org/docs/Contributing.html| If you are working with LLVM and run into a bug, we definitely want | to know about it. I DONT WORK WITH LLVM. I was just curious whether it shows bugs and deficiencies I saw in two other C compilers, and documented them. You and your users suffer from these bugs and deficiencies, not me. regards Stefan
Seemingly Similar Threads
- Where's the optimiser gone? (part 5.a): missed tail calls, and more...
- Where's the optimiser gone? (part 5.c): missed tail calls, and more...
- Where's the optimiser gone? (part 5.b): missed tail calls, and more...
- Where's the optimiser gone? (part 5.a): missed tail calls, and more...
- Where's the optimiser gone (part 11): use the proper instruction for sign extension