search for: __muldi3

Displaying 20 results from an estimated 35 matches for "__muldi3".

2010 Mar 17
2
[LLVMdev] llvm-gcc promotes i32 mul to i64 inside __muldi3
I'm building tool-chain for processor without integer MUL. So, I've defined __mulsi3 for integer multiplication (int32). Now I've got a problem with int64 multiplication which is implemented in libgcc2.c. Segfualt due to infinite recursion in i64 soft multiplication (libgcc2, __muldi3). LLVM-GCC (for my target) misoptimizes code if -O2 is passed. It promotes i32 multiplication to int64 multiplication and as the result my back-end generates __muldi3 call. I would appreciate if someone can point out where this promotion happens. And how can I disable it? Thanks in advance. ......
2010 Mar 17
0
[LLVMdev] llvm-gcc promotes i32 mul to i64 inside __muldi3
...ol-chain for processor without integer MUL. > So, I've defined __mulsi3 for integer multiplication (int32). > > Now I've got a problem with int64 multiplication which is implemented > in libgcc2.c. > Segfualt due to infinite recursion in i64 soft multiplication > (libgcc2, __muldi3). See http://llvm.org/bugs/show_bug.cgi?id=3101 which is essentially the same issue. -Eli
2010 Mar 17
0
[LLVMdev] llvm-gcc promotes i32 mul to i64 inside __muldi3
> This shouldn't be necessary, IMO. If you were going to implement it, > then the correct thing to do would be to have generic selection dag > lowering of large multiplies, which renders the library mostly > useless. In fact, I would prefer to avoid custom lowering for operations on large types. i64 will be rare in my case (embedded) and their performance is not an issue. I need
2010 Mar 17
2
[LLVMdev] llvm-gcc promotes i32 mul to i64 inside __muldi3
On Wed, Mar 17, 2010 at 4:57 PM, Sergey Yakoushkin <sergey.yakoushkin at gmail.com> wrote: > Thanks, yes, I'm facing the same issue. > > Hm... seems there are no simple fixes. > I have to do one more i64 mul implementation to workaround aggressive > optimizations. > Is that correct? Is this the only way? This shouldn't be necessary, IMO. If you were going to
2010 Mar 17
2
[LLVMdev] llvm-gcc promotes i32 mul to i64 inside __muldi3
...ithout integer MUL. >> So, I've defined __mulsi3 for integer multiplication (int32). >> >> Now I've got a problem with int64 multiplication which is implemented >> in libgcc2.c. >> Segfualt due to infinite recursion in i64 soft multiplication >> (libgcc2, __muldi3). > > See http://llvm.org/bugs/show_bug.cgi?id=3101 which is essentially the > same issue. Alpha has the same problem with 128 Ints, in about the same functions.
2004 Feb 22
3
ARM/Thumb updates and some other minor tweaks
...ill trying to track down. Still more fun to be had it seems :-) Andre -- __________________________________ Do you Yahoo!? Yahoo! Mail SpamGuard - Read only the mail you want. http://antispam.yahoo.com/tools -------------- next part -------------- diff -ruN klibc-0.114_orig/klibc/arch/i386/libgcc/__muldi3.S klibc-0.114/klibc/arch/i386/libgcc/__muldi3.S --- klibc-0.114_orig/klibc/arch/i386/libgcc/__muldi3.S 2002-08-27 16:04:29.000000000 -0700 +++ klibc-0.114/klibc/arch/i386/libgcc/__muldi3.S 2004-02-22 04:39:00.000000000 -0800 @@ -1,7 +1,7 @@ /* * arch/i386/libgcc/__muldi3.S * - * 64*64 = 64 bit...
2010 Mar 17
0
[LLVMdev] llvm-gcc promotes i32 mul to i64 inside __muldi3
Thanks, yes, I'm facing the same issue. Hm... seems there are no simple fixes. I have to do one more i64 mul implementation to workaround aggressive optimizations. Is that correct? Is this the only way? Can I disable only one particular pass which does this promotion from i32 to i64 using some LLVM-GCC option? Are there other libgcc functions affected by this optimization? Regards, Sergey
2006 Jun 26
0
[klibc 24/43] i386 support for klibc
...ch/i386/Makefile.inc | 30 +++++++ usr/klibc/arch/i386/crt0.S | 31 +++++++ usr/klibc/arch/i386/libgcc/__ashldi3.S | 29 +++++++ usr/klibc/arch/i386/libgcc/__ashrdi3.S | 29 +++++++ usr/klibc/arch/i386/libgcc/__lshrdi3.S | 29 +++++++ usr/klibc/arch/i386/libgcc/__muldi3.S | 34 ++++++++ usr/klibc/arch/i386/libgcc/__negdi2.S | 21 +++++ usr/klibc/arch/i386/open.S | 29 +++++++ usr/klibc/arch/i386/openat.S | 26 ++++++ usr/klibc/arch/i386/setjmp.S | 58 ++++++++++++++ usr/klibc/arch/i386/sigreturn.S |...
2007 Apr 26
2
fail to build ssh
...nsl -ldl -lcrypt /opt/sparc-linux/bin/sparc-linux-ld.real: AVERTISSEMENT: ne peut trouver le symbole d'entr?e _start; utilise par d?faut 0000000000012200 readconf.o(.text+0x1014): In function `process_config_line': /usr/src/SparcV8Linux/openssh-4.6p1/readconf.c:527: undefined reference to `__muldi3' readconf.o(.text+0x1028):/usr/src/SparcV8Linux/openssh-4.6p1/readconf.c:529: undefined reference to `__divdi3' ./libssh.a(packet.o)(.text+0xab4): In function `set_newkeys': /usr/src/SparcV8Linux/openssh-4.6p1/packet.c:670: undefined reference to `__ashldi3' /opt/sparc-linux/lib/lib...
2018 Dec 03
3
The builtins library of compiler-rt is a performance HOG^WKILLER
...ions) calls __divsi3 (18 instructions) __udivsi3 (52 instructions) does NOT use DIV, but performs BITWISE division using shifts and additions! __umodsi3 (14 instructions) calls __udivsi3 (52 instructions) __udivmodsi4 (17 instructions) calls __udivsi3 (52 instructions) __muldi3 (41 instructions) performs a "long" multiplication on 16-bit "digits" JFTR: I haven't checked whether clang actually calls these SUPERFLUOUS routines listed above. IT BETTER SHOULD NOT, NEVER! __divdi3 (37 instructions) calls __udivmo...
2018 Dec 03
3
The builtins library of compiler-rt is a performance HOG^WKILLER
...ation too. > They exist for targets that don't support the operations natively. > X86 supports them natively so will never use the library functions. So they SHOULD not be built (or at least not shipped) with the builtins library for x86. > X86 has its own assembly implementation of __muldi3 that uses 32-bit > pieces. I know; that's why I placed this ABOVE my "JFTR:" > We should be using the assembly versions of the "di" division routines on > i386. Except when compiler-rt is built with MSVC because MSVC can't parse > the at&t assembly syn...
2014 Jun 09
3
How to use --once? Does it work?
> On 06/08/2014 02:58 PM, Ady wrote: > >> > >> To be clear, I am not saying there is no bug - there might be. > >> > > > > I performed the following test with several versions of Syslinux: > > > > 1_ Execute: > > 'extlinux --once=non_default_label --install /mnt/sda1' ; > > 2_ In first reboot, the
2014 Jun 09
4
How to use --once? Does it work?
On 06/09/2014 02:58 PM, H. Peter Anvin wrote: > > Actually, it looks more like this might be the problem: > > Info: Symbol __muldi3 is defined more than once > Info: Symbol __divdi3 is defined more than once > Info: Symbol __udivmoddi4 is defined more than once > Info: Symbol __ashrdi3 is defined more than once > Info: Symbol dev_stdcon_w is defined more than once > Info: Symbol __moddi3 is defined more than once...
2006 Jun 26
0
[klibc 22/43] arm support for klibc
...lude/arch/arm/klibc/archstat.h | 40 ++++++++++++ usr/include/arch/arm/klibc/archsys.h | 12 ++++ usr/include/arch/arm/klibc/asmmacros.h | 30 +++++++++ usr/klibc/arch/arm/MCONFIG | 36 +++++++++++ usr/klibc/arch/arm/Makefile.inc | 23 +++++++ usr/klibc/arch/arm/__muldi3.c | 15 +++++ usr/klibc/arch/arm/aeabi_nonsense.S | 9 +++ usr/klibc/arch/arm/crt0.S | 23 +++++++ usr/klibc/arch/arm/setjmp.S | 102 +++++++++++++++++++++++++++++++ usr/klibc/arch/arm/syscall.S | 61 +++++++++++++++++++ usr/klibc/arch/ar...
2010 Mar 18
0
[LLVMdev] how to lower MUL i64 for soft int arithmetic?
...ering of large MUL is supposed to work? What kind of minimalistic support should be provided by target back-end? What can be used from current LegalizeDAG? - Thanks, Sergey 2010/3/18 Sergey Yakoushkin <sergey.yakoushkin at gmail.com>: > Hi, > > LLVM mis-compiles soft int64 mul '__muldi3' (either libgcc or > compiler-rt) unless some specific efforts are taken in the back-end to > custom lower i64 operations back to i32. > > Issue appears also in CellSPU/Alpha, and there exist workarounds which > use custom lowering to vector instructions. > > My case is dif...
2006 Jun 26
0
[klibc 35/43] sparc support for klibc
...m.h | 191 ++++++++++++++++++++ usr/include/arch/sparc/machine/frame.h | 146 +++++++++++++++ usr/include/arch/sparc/machine/trap.h | 140 +++++++++++++++ usr/klibc/arch/sparc/MCONFIG | 19 ++ usr/klibc/arch/sparc/Makefile.inc | 48 +++++ usr/klibc/arch/sparc/__muldi3.S | 27 +++ usr/klibc/arch/sparc/crt0.S | 2 usr/klibc/arch/sparc/crt0i.S | 100 +++++++++++ usr/klibc/arch/sparc/divrem.m4 | 276 +++++++++++++++++++++++++++++ usr/klibc/arch/sparc/pipe.S | 30 +++ usr/klibc/arch/sparc/setjmp....
2008 Dec 04
1
[LLVMdev] 32bit math being promoted to 64 bit
> Do you have a testcase? An .ll file with no 64-bit operations, and one > optimization pass that introduces them? It's pretty common to instcombine to expand 32 bit operations to 64 bit. See, for example, recent issue with CellSPU's 32 =>64 bit muls -- With best regards, Anton Korobeynikov Faculty of Mathematics and Mechanics, Saint Petersburg State University
2010 Feb 02
2
[LLVMdev] __fixunsdfdi and etc with Visual Studio JIT?
Hello > The bitcode was generated by llvm-gcc v2.6 for Mingw32/x86, which is > available for download at the llvm site. > Please let me know, if i should tell more. Well, the answer is pretty obvious then. These calls are not generated by JIT. They are already in your bitcode - they are generated by llvm-gcc. The purpose of these calls were alreade explained by Eli. You should either
2014 Jun 09
0
How to use --once? Does it work?
...guess this is a good starting point. Additionally, > 5.00-pre1 to 5.00-pre7 also failed, so perhaps the correction was > introduced for 5.00-pre8/9 but was not applied to the 6.xx branch on > time (nor since). > Actually, it looks more like this might be the problem: Info: Symbol __muldi3 is defined more than once Info: Symbol __divdi3 is defined more than once Info: Symbol __udivmoddi4 is defined more than once Info: Symbol __ashrdi3 is defined more than once Info: Symbol dev_stdcon_w is defined more than once Info: Symbol __moddi3 is defined more than once Info: Symbol __syslinux_...
2014 Jun 10
0
How to use --once? Does it work?
Op 2014-06-09 om 15:41 schreef H. Peter Anvin: > On 06/09/2014 02:58 PM, H. Peter Anvin wrote: > > > > Actually, it looks more like this might be the problem: > > > > Info: Symbol __muldi3 is defined more than once > > Info: Symbol __divdi3 is defined more than once > > Info: Symbol __udivmoddi4 is defined more than once > > Info: Symbol __ashrdi3 is defined more than once > > Info: Symbol dev_stdcon_w is defined more than once > > Info: Symbol __moddi3...