Displaying 4 results from an estimated 4 matches for "__alldiv".
2018 Dec 01
2
Where's the optimiser gone? (part 5.c): missed tail calls, and more...
...oo, __int64 bar)
{
return foo / bar;
}
On the left the generated code; on the right the expected,
properly optimised code:
push dword ptr [esp + 16] |
push dword ptr [esp + 16] |
push dword ptr [esp + 16] |
push dword ptr [esp + 16] |
call __alldiv | jmp __alldiv
ret 16 |
__int64 __fastcall mod(__int64 foo, __int64 bar)
{
return foo % bar;
}
push dword ptr [esp + 16] |
push dword ptr [esp + 16] |
push dword ptr [esp + 16] |
push dword ptr [e...
2018 Dec 03
3
The builtins library of compiler-rt is a performance HOG^WKILLER
...statements, put the assembler source inside an __asm block,
and add a function definition with __declspec(naked)
But then someone will have to find new filenames; I'd prefer to
leave them as *.ASM, so they can be added to YOUR source tree
without clobbering existing files.
The same holds for __alldiv, __alldvrm, __allrem, __aulldiv,
__aulldvrm and __aullrem, plus __allmul, __allshl, _allshr and
__aullshr.
If you name a reviewer I'll send them to llvm-commits!
regards
Stefan
> On Mon, Dec 3, 2018 at 5:51 AM Stefan Kanthak via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>...
2012 Jan 22
1
Timing related application crash
...ryPerformanceCounter(&PerformanceCount2)
CPUID, RDTSC func
do some math related to something
blah = something * Frequency / (PerformanceCount2 - PerformanceCount1);
The key issue being that PerformanceCount2 == PerformanceCount1 and so
things blow up. Note that the actual exception occurs in __alldiv() @
0x00469CA0 because it got bad input. I think its throwing away the
RDTSC results and from what I read the CPUID is somehow related to
synchronizing it to out or order execution issues...no idea why they
call it multiple times in a row though. Anyway, I ran this in a Windows
VM for comparison...
2018 Dec 03
3
The builtins library of compiler-rt is a performance HOG^WKILLER
Hi @ll,
LLVM-7.0.0-win32.exe contains and installs
lib\clang\7.0.0\lib\windows\clang_rt.builtins-i386.lib
The implementation of (at least) the multiplication and division
routines __[u]{div,mod,divmod,mul}[sdt]i[34] shipped with this
libraries SUCKS: they are factors SLOWER than even Microsoft's
NOTORIOUS POOR implementation of 64-bit division shipped with
MSVC and Windows!
The reasons: 1.