search for: lfb0

Displaying 20 results from an estimated 20 matches for "lfb0".

Did you mean: fb0
2012 Apr 27
2
[LLVMdev] complex library functions (creal and cimag)
...} clang emits a call to crealf, $ clang foo1.c -S -o - -O3 foo1: # @foo1 .cfi_startproc # BB#0: # %entry jmp crealf # TAILCALL while gcc does it in two move instructions: $ gcc foo1.c -S -o -O3 foo1: .LFB0: .cfi_startproc movq %xmm0, -8(%rsp) movss -8(%rsp), %xmm0 Is this an optimization which is missing in llvm? Or is it making a deliberate decision not to expand the call to move instructions? -------------- next part -------------- An HTML attachment was scrubbed... UR...
2012 Mar 02
3
[LLVMdev] how to annotate assembler
Hi, In GCC there is one useful option -dp (or -dP for more verbose output) to annotate assembler with instruction patterns, that was used when assembler was generated. For example: double test(long long s) { return s; } gcc -S -dp -O0 test.c test: .LFB0: .cfi_startproc pushq %rbp # 18 *pushdi2_rex64/1 [length = 1] .cfi_def_cfa_offset 16 movq %rsp, %rbp # 19 *movdi_1_rex64/2 [length = 3] .cfi_offset 6, -16 .cfi_def_cfa_register 6 movq %rdi, -8(%rbp) # 2 *movdi_1_rex64/4 [length = 4] cvtsi2sdq -8(%rbp), %xmm0 # 6 *floatdidf...
2012 Apr 27
0
[LLVMdev] complex library functions (creal and cimag)
...c -S -o - -O3 > foo1:                                   # @foo1 >     .cfi_startproc > # BB#0:                                 # %entry >     jmp    crealf                  # TAILCALL > > while gcc does it in two move instructions: > > $ gcc foo1.c -S -o -O3 > foo1: > .LFB0: >         .cfi_startproc >         movq    %xmm0, -8(%rsp) >         movss   -8(%rsp), %xmm0 > > Is this an optimization which is missing in llvm? Missing optimization. There isn't any reason to avoid inlining the implementation. Probably the simplest place to implement this...
2012 Apr 28
1
[LLVMdev] complex library functions (creal and cimag)
On Apr 27, 2012, at 2:02 PM, Eli Friedman wrote: > On Fri, Apr 27, 2012 at 12:09 PM, Akira Hatanaka <ahatanak at gmail.com> wrote: >> while gcc does it in two move instructions: >> >> $ gcc foo1.c -S -o -O3 >> foo1: >> .LFB0: >> .cfi_startproc >> movq %xmm0, -8(%rsp) >> movss -8(%rsp), %xmm0 >> >> Is this an optimization which is missing in llvm? > > Missing optimization. There isn't any reason to avoid inlining the > implementation. > >...
2018 Sep 20
3
Comparing Clang and GCC: only clang stores updated value in each iteration.
...globl  a         .p2align        2 a:         .long   1                       # 0x1         .size   a, 4 gcc -O3 -march=z13:         .file   "testfun.i"         .machinemode zarch         .machine "z13" .text         .align  8 .globl b         .type   b, @function b: .LFB0:         .cfi_startproc         larl    %r1,a         lt      %r1,0(%r1)         je      .L1         larl    %r1,a         mvhi    0(%r1),0 .L1:         br      %r14         .cfi_endproc .LFE0:         .size   b, .-b .globl a .data         .align  4         .type   a, @object         .s...
2010 Sep 10
4
[LLVMdev] using GCC LTO files as a frontend to dragonegg?
...negg]$ gcc-4.5 -flto -c hello.c[mdaniels at dn002 dragonegg]$ gcc-4.5 -S -x lto hello.o [mdaniels at dn002 dragonegg]$ cat hello.s .file "hello.o" .section .rodata .LC0: .string "Hello World" .text .globl hello .type hello, @function hello: .LFB0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 movq %rsp, %rbp .cfi_offset 6, -16 .cfi_def_cfa_register 6 movl $.LC0, %edi call puts leave .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE0: .size hello, .-hello .ident...
2012 Mar 02
0
[LLVMdev] how to annotate assembler
...st #2000 POP64r ## <MCOperand Reg:106>> ret ## <MCInst #2227 RET> .cfi_endproc - Ben > > double > test(long long s) > { > return s; > } > > gcc -S -dp -O0 test.c > > test: > .LFB0: > .cfi_startproc > pushq %rbp # 18 *pushdi2_rex64/1 [length = 1] > .cfi_def_cfa_offset 16 > movq %rsp, %rbp # 19 *movdi_1_rex64/2 [length = 3] > .cfi_offset 6, -16 > .cfi_def_cfa_register 6 > movq %rdi, -8(%rbp) # 2 *movdi_1_rex64/4 [length = 4] > cvtsi2sd...
2014 Sep 02
3
[LLVMdev] LICM promoting memory to scalar
...globalvar += incr; } return; } GCC output: $ aarch64-linux-gnu-g++ -S -o - -O3 -ffast-math -march=armv8-a+simd test.cpp .arch armv8-a+fp+simd .file "test.cpp" .text .align 2 .global _Z3fooii .type _Z3fooii, %function _Z3fooii: .LFB0: .cfi_startproc cbz w0, .L1 adrp x6, globalvar add w5, w0, w0, lsr 31 ldr w3, [x6,#:lo12:globalvar] <== hoist load of globalvar mov w2, 0 asr w5, w5, 1 .L4: cmp w5, w2 add w2, w2, w1...
2018 Sep 20
3
Aliasing rules difference between GCC and Clang
...    sllg    %r3, %r0, 3         std     %f0, 0(%r3,%r2)    // STORE F ELEMENT         ld      %f0, 0(%r1)        // 2nd LOAD E <<<<<<<         cfdbr   %r0, 5, %f0        // CONVERT         strl    %r0, g             // 2nd USE         br      %r14 gcc -O3-march=z13 : h: .LFB0:         .cfi_startproc         larl    %r1,e         ld      %f0,0(%r1)        // LOAD E         lrl     %r2,g         lgrl    %r3,f         cfdbr   %r1,5,%f0         // CONVERT E         cdfbr   %f0,%r2         lgfr    %r2,%r1           // EXTEND E         sllg    %r2,%r2,3         std ...
2018 Sep 21
2
Aliasing rules difference between GCC and Clang
...E F ELEMENT >         ld      %f0, 0(%r1)        // 2nd LOAD E <<<<<<< >         cfdbr   %r0, 5, %f0        // CONVERT >         strl    %r0, g             // 2nd USE >         br      %r14 > > gcc -O3-march=z13 : > > h: > .LFB0: >         .cfi_startproc >         larl    %r1,e >         ld      %f0,0(%r1)        // LOAD E >         lrl     %r2,g >         lgrl    %r3,f >         cfdbr   %r1,5,%f0         // CONVERT E >         cdfbr   %f0,%r2 >         lgfr    %r2,%r...
2014 Sep 02
2
[LLVMdev] LICM promoting memory to scalar
...+ -S -o - -O3 -ffast-math -march=armv8-a+simd test.cpp >> .arch armv8-a+fp+simd >> .file "test.cpp" >> .text >> .align 2 >> .global _Z3fooii >> .type _Z3fooii, %function >> _Z3fooii: >> .LFB0: >> .cfi_startproc >> cbz w0, .L1 >> adrp x6, globalvar >> add w5, w0, w0, lsr 31 >> ldr w3, [x6,#:lo12:globalvar] <== hoist load of globalvar >> mov w2, 0 >>...
2013 Jan 27
0
[LLVMdev] Code compiling in gcc but not llvm
$ gcc -S test.c $ cat test.s .file "test.c" .text .globl __GI___testfunc .hidden __GI___testfunc .type __GI___testfunc, @function __GI___testfunc: .LFB0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 movl $0, %eax popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE0: .size __GI___testfunc, .-__GI___testfunc .globl __test...
2013 Sep 04
6
[LLVMdev] Aliasing of volatile and non-volatile
...nd ret .Ltmp0: .size foo, .Ltmp0-foo .cfi_endproc .section ".note.GNU-stack","", at progbits For comparison, GCC has only one load in the loop: .text .p2align 4,,15 .globl foo .type foo, @function foo: .LFB0: .cfi_startproc xorl %eax, %eax testl %edx, %edx jle .L3 movl (%rdi), %r8d xorl %ecx, %ecx .p2align 4,,10 .p2align 3 .L4: movl (%rsi), %edi addl $1, %ecx addl %r8d, %edi...
2013 Jan 26
2
[LLVMdev] Code compiling in gcc but not llvm
Hi, This is my first post, sorry if not in the right format. I am stuck at a place where I have a code fragment that runs in normal gcc but fails when I give -fplugin=dragonegg.so extern int *testfunc(); extern __typeof (testfunc) testfunc __asm__ ("" "__GI_testfunc") __attribute__ ((visibility ("hidden"))); extern __typeof(testfunc) __testfunc; extern __typeof
2014 Sep 03
3
[LLVMdev] LICM promoting memory to scalar
...  globalvar += incr;   } return; } GCC output: $ aarch64-linux-gnu-g++ -S -o -  -O3  -ffast-math -march=armv8-a+simd test.cpp         .arch armv8-a+fp+simd         .file   "test.cpp"         .text         .align  2         .global _Z3fooii         .type   _Z3fooii, %function _Z3fooii: .LFB0:         .cfi_startproc         cbz     w0, .L1         adrp    x6, globalvar         add     w5, w0, w0, lsr 31         ldr     w3, [x6,#:lo12:globalvar]                        <== hoist load of globalvar         mov     w2, 0         asr     w5, w5, 1 .L4:         cmp     w5, w2         add   ...
2012 Mar 02
2
[LLVMdev] how to annotate assembler
...g:106>> >        ret                             ## <MCInst #2227 RET> >        .cfi_endproc > > - Ben > >> >> double >> test(long long s) >> { >>  return s; >> } >> >> gcc -S -dp -O0 test.c >> >> test: >> .LFB0: >>  .cfi_startproc >>  pushq %rbp  # 18  *pushdi2_rex64/1  [length = 1] >>  .cfi_def_cfa_offset 16 >>  movq  %rsp, %rbp  # 19  *movdi_1_rex64/2  [length = 3] >>  .cfi_offset 6, -16 >>  .cfi_def_cfa_register 6 >>  movq  %rdi, -8(%rbp)  # 2 *movdi_1_rex64/4...
2013 Sep 07
0
[LLVMdev] Aliasing of volatile and non-volatile
...-foo > .cfi_endproc > .section ".note.GNU-stack","", at progbits > > > For comparison, GCC has only one load in the loop: > > .text > .p2align 4,,15 > .globl foo > .type foo, @function > foo: > .LFB0: > .cfi_startproc > xorl %eax, %eax > testl %edx, %edx > jle .L3 > movl (%rdi), %r8d > xorl %ecx, %ecx > .p2align 4,,10 > .p2align 3 > .L4: > movl (%rsi), %edi > addl...
2009 Sep 25
2
[LLVMdev] MinGW/MSVC++ uses different ABI for sret
Let's go directly to the example struct S { double dummy1; double dummy2; }; S bar(); S foo() { return bar(); } This is the result of g++ -c -S -O2 (focus on the final `ret'): __Z3foov: LFB0: pushl %ebp LCFI0: movl %esp, %ebp LCFI1: pushl %ebx LCFI2: subl $20, %esp LCFI3: movl 8(%ebp), %ebx movl %ebx, (%esp) call __Z3barv pushl %eax movl %ebx, %eax movl -4(%ebp), %ebx leave ret $4 This is the result of cl -O2 -c -Fa (again, focus on the final `ret') PUBLIC ?foo@@YA?A...
2018 Sep 21
2
Comparing Clang and GCC: only clang stores updated value in each iteration.
...gt;> >> >> gcc -O3 -march=z13: >> >>         .file   "testfun.i" >>         .machinemode zarch >>         .machine "z13" >> .text >>         .align  8 >> .globl b >>         .type   b, @function >> b: >> .LFB0: >>         .cfi_startproc >>         larl    %r1,a >>         lt      %r1,0(%r1) >>         je      .L1 >>         larl    %r1,a >>         mvhi    0(%r1),0 >> .L1: >>         br      %r14 >>         .cfi_endproc >> .LFE0: >>       ...
2018 Sep 07
1
[PATCH net-next v2 3/5] virtio_ring: add packed ring support
On Wed, Jul 11, 2018 at 10:27:09AM +0800, Tiwei Bie wrote: > This commit introduces the support (without EVENT_IDX) for > packed ring. > > Signed-off-by: Tiwei Bie <tiwei.bie at intel.com> > --- > drivers/virtio/virtio_ring.c | 495 ++++++++++++++++++++++++++++++++++- > 1 file changed, 487 insertions(+), 8 deletions(-) > > diff --git