search for: lbb1_4

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

Did you mean: lbb0_4
2006 Jul 09
2
[LLVMdev] Critical edges
...creating infinite loops. Could someone help me fixing the code below? It is creating assembly like this one below. Block LBB1_9 was inserted to break the critical edge between blocks LBB1_3 and LBB1_8. But it changes the semantics of the original program, because, before, LBB1_8 was falling through LBB1_4, and now it is falling on LBB1_9. LBB1_3: ;no_exit lis r4, 21845 ori r4, r4, 21846 mulhw r4, r2, r4 addi r5, r2, -1 li r6, -1 srwi r6, r4, 31 add r4, r4, r6 mulli r4, r4, 3 li r6, 1 subf r2, r4, r2 cmpwi cr0, r...
2013 Oct 14
2
[LLVMdev] MI scheduler produce badly code with inline function
...t=arm -mfloat-abi=hard -mcpu=cortex-a9 * *$opt foo.bc -O3 -unroll-count=4 -o foo.opt.bc* * * *$llc foo.opt.bc -o foo.opt.s -march=arm -mcpu=cortex-a9 -enable-misched* (ps. I had checked with debug-pass=structure, so I think they are equivalently) but the result is different: You can find the LBB1_4 of foo.s, it always reuses the same reg for computation, but LBB1_4 of foo.opt.s doesn't. My question is how to just use clang (method A) to achieve B result? Or i am missing something here? I really appreciate any help and suggestions. Thanks Kuan-Hsu ------- file link ------- foo.c:...
2018 Nov 06
4
Rather poor code optimisation of current clang/LLVM targeting Intel x86 (both -64 and -32)
...mov eax, edx | and edx, -306674912 cmovns eax, r8d | xor eax, edx add ecx, 1 jne .LBB0_3 jmp .LBB0_4 .LBB0_5: ret crc32le: # @crc32le test esi, esi je .LBB1_1 mov eax, -1 .LBB1_4: # =>This Loop Header: Depth=1 add esi, -1 movzx ecx, byte ptr [rdi] xor eax, ecx mov r8d, -8 .LBB1_5: # Parent Loop BB1_4 Depth=1 | # 4 instructions instead of 7, and mov edx, eax | # neither r8 nor rcx clobbered! sh...
2006 Jul 09
0
[LLVMdev] Critical edges
...ops. Could someone help me fixing the > code below? It is creating assembly like this one below. Block LBB1_9 was > inserted to break the critical edge between blocks LBB1_3 and LBB1_8. But > it changes the semantics of the original program, because, before, LBB1_8 > was falling through LBB1_4, and now it is falling on LBB1_9. > > LBB1_3: ;no_exit > lis r4, 21845 > ori r4, r4, 21846 > mulhw r4, r2, r4 > addi r5, r2, -1 > li r6, -1 > srwi r6, r4, 31 > add r4, r4, r6 > mulli r4, r4, 3 > li r6, 1...
2013 Oct 16
3
[LLVMdev] MI scheduler produce badly code with inline function
...rereading the IR can affect the optimizations. > > Sorry. I’ve been trying to think of a way to improve this situation. > > -Andy > > (ps. I had checked with debug-pass=structure, so I think they are > equivalently) > > but the result is different: > You can find the LBB1_4 of foo.s, it always reuses the same reg for > computation, but LBB1_4 of foo.opt.s doesn't. > > My question is how to just use clang (method A) to achieve B result? > Or i am missing something here? > > I really appreciate any help and suggestions. > Thanks > > Kuan-H...
2013 Oct 16
0
[LLVMdev] MI scheduler produce badly code with inline function
...IR can affect the optimizations. > > Sorry. I’ve been trying to think of a way to improve this situation. > > -Andy > >> (ps. I had checked with debug-pass=structure, so I think they are equivalently) >> >> but the result is different: >> You can find the LBB1_4 of foo.s, it always reuses the same reg for computation, but LBB1_4 of foo.opt.s doesn't. >> >> My question is how to just use clang (method A) to achieve B result? >> Or i am missing something here? >> >> I really appreciate any help and suggestions. >> T...
2016 Feb 11
3
Expected constant simplification not happening
...rcx), %rax cmovneq %r15, %rax movl $2298949, %esi ## imm = 0x231445 movq %r12, %rdi movq %r14, %rdx callq *(%rax) --- and clang -O3: --- movq -16(%r12), %rax movl -4(%rax), %ecx andl $2298949, %ecx ## imm = 0x231445 cmpl $2298949, (%rax,%rcx) ## imm = 0x231445 jne LBB1_4 leaq 8(%rax,%rcx), %rax jmp LBB1_5 .align 4, 0x90 LBB1_4: movq %r15, %rax LBB1_5: movl $2298949, %esi ## imm = 0x231445 movq %r12, %rdi movq %r14, %rdx callq *(%rax) --- As you can see in both cases the constant $2298949 is replicated 3 times. I would have expected something like...
2013 Oct 15
0
[LLVMdev] MI scheduler produce badly code with inline function
...process of serializing and rereading the IR can affect the optimizations. Sorry. I’ve been trying to think of a way to improve this situation. -Andy > (ps. I had checked with debug-pass=structure, so I think they are equivalently) > > but the result is different: > You can find the LBB1_4 of foo.s, it always reuses the same reg for computation, but LBB1_4 of foo.opt.s doesn't. > > My question is how to just use clang (method A) to achieve B result? > Or i am missing something here? > > I really appreciate any help and suggestions. > Thanks > > Kuan-Hs...
2018 Nov 27
2
Rather poor code optimisation of current clang/LLVM targeting Intel x86 (both -64 and -32)
...| xor eax, edx >> add ecx, 1 >> jne .LBB0_3 >> jmp .LBB0_4 >> .LBB0_5: >> ret >> crc32le: # @crc32le >> test esi, esi >> je .LBB1_1 >> mov eax, -1 >> .LBB1_4: # =>This Loop Header: Depth=1 >> add esi, -1 >> movzx ecx, byte ptr [rdi] >> xor eax, ecx >> mov r8d, -8 >> .LBB1_5: # Parent Loop BB1_4 Depth=1 | # 4 instructions instead of 7, and >> mov edx, eax...
2011 Dec 22
1
[LLVMdev] tail call optimization question
...il call instruction: <snip> _ack.15: ## @ack.15 Leh_func_begin1: ## BB#0: ## %entry pushq %rbx Ltmp1: Ltmp2: testq %rdi, %rdi jle LBB1_3 ## BB#1: ## %if.no movq %rdi, %rbx testq %rsi, %rsi jle LBB1_4 ## BB#2: ## %if.no2 decq %rsi movq %rbx, %rdi callq _ack.15 movq %rbx, %rdi decq %rdi movq %rax, %rsi popq %rbx jmp _ack.15 ## TAILCALL LBB1_3: ## %if.yes incq %rsi movq %rsi, %rax popq %rbx ret LBB1_4:...
2016 Dec 07
1
Expected constant simplification not happening
...--- > > > and clang -O3: > --- > movq -16(%r12), %rax > movl -4(%rax), %ecx > andl $2298949, %ecx ## imm = 0x231445 > cmpl $2298949, (%rax,%rcx) ## imm = 0x231445 > jne LBB1_4 > leaq 8(%rax,%rcx), %rax > jmp LBB1_5 > .align 4, 0x90 > LBB1_4: > movq %r15, %rax > LBB1_5: > movl $2298949, %esi ## imm = 0x231445 > movq %r12, %rdi >...
2013 Oct 21
1
[LLVMdev] MI scheduler produce badly code with inline function
...ations. >> >> Sorry. I’ve been trying to think of a way to improve this situation. >> >> -Andy >> >> (ps. I had checked with debug-pass=structure, so I think they are >> equivalently) >> >> but the result is different: >> You can find the LBB1_4 of foo.s, it always reuses the same reg for >> computation, but LBB1_4 of foo.opt.s doesn't. >> >> My question is how to just use clang (method A) to achieve B result? >> Or i am missing something here? >> >> I really appreciate any help and suggestions. >...
2006 Jul 05
0
[LLVMdev] Critical edges
> If you don't want critical edges in the machine code CFG, you're going to > have to write a machine code CFG critical edge splitting pass: LLVM > doesn't currently have one. > > -Chris Hey guys, I've coded a pass to break the critical edges of the machine control flow graph. The program works fine, but I am sure it is not the right way of implementing it.
2006 Jul 04
2
[LLVMdev] Critical edges
On Tue, 4 Jul 2006, Fernando Magno Quintao Pereira wrote: > However, it does not remove all the critical edges. I am getting a very > weird dataflow graph (even without the Break Critical edges pass). The > dataflow generated by MachineFunction::dump() for the program below is > given here: > http://compilers.cs.ucla.edu/fernando/projects/soc/images/loop_no_crit2.pdf ... > The
2007 May 26
0
[LLVMdev] Problems compiling llvm-gcc4 frontend on x86_64
...t; call frame_dummy > .text > # End of file scope inline assembly > > > .text > .align 16 > .type __do_global_dtors_aux, at function > __do_global_dtors_aux: > subq $8, %rsp > movq %rbp, (%rsp) > movq %rsp, %rbp > cmpb $0, completed.4705(%rip) > jne .LBB1_4 #UnifiedReturnBlock > .LBB1_1: #bb9.preheader > movq p.4704(%rip), %rax > movq (%rax), %rax > cmpq $0, %rax > je .LBB1_3 #bb16 > .LBB1_2: #bb > addq $4, p.4704(%rip) > call *%rax > movq p.4704(%rip), %rax > movq (%rax), %rax > cmpq $0, %rax > jne .LBB1_...
2007 May 26
1
[LLVMdev] Problems compiling llvm-gcc4 frontend on x86_64
...t; > .text > > .align 16 > > .type __do_global_dtors_aux, at function > > __do_global_dtors_aux: > > subq $8, %rsp > > movq %rbp, (%rsp) > > movq %rsp, %rbp > > cmpb $0, completed.4705(%rip) > > jne .LBB1_4 #UnifiedReturnBlock > > .LBB1_1: #bb9.preheader > > movq p.4704(%rip), %rax > > movq (%rax), %rax > > cmpq $0, %rax > > je .LBB1_3 #bb16 > > .LBB1_2: #bb > > addq $4, p.4704(%rip) > > call *%rax &...
2007 May 25
3
[LLVMdev] Problems compiling llvm-gcc4 frontend on x86_64
Hi all, I've run into problems compiling the llvm-gcc frontend on x86_64. Is this not supported, or am I making an error somewhere? The procedure I followed was: 1. Download LLVM 2.0 source as a tarball (from a few days ago, during the testing phase). 2. Download the llvm-gcc4 source today, as a tarball. 3. Extract both. 4. Configure LLVM as: ../src/configure --prefix=`pwd`../install
2018 Nov 28
2
Rather poor code optimisation of current clang/LLVM targeting Intel x86 (both -64 and -32)
...jne .LBB0_3 >> >> jmp .LBB0_4 >> >> .LBB0_5: >> >> ret >> >> crc32le: # @crc32le >> >> test esi, esi >> >> je .LBB1_1 >> >> mov eax, -1 >> >> .LBB1_4: # =>This Loop Header: Depth=1 >> >> add esi, -1 >> >> movzx ecx, byte ptr [rdi] >> >> xor eax, ecx >> >> mov r8d, -8 >> >> .LBB1_5: # Parent Loop BB1_4 Depth=1 | # 4 instructions instead of &...
2009 Jul 17
2
[LLVMdev] regression: double spaced asm output for thumb-2
...] sub sp, sp, #872 mov r4, r1 mov r5, r0 cmp r0, #2 ble LBB1_133 @ entry.bb2.i_crit_edge LBB1_1: @ bb.i ldr r0, [r4, #+8] bl L_atoi$stub LBB1_2: @ bb2.i str r0, [sp, #+80] cmp r5, #1 ble LBB1_134 @ bb2.i.dealwithargs.exit_crit_edge LBB1_3: @ bb3.i ldr r0, [r4, #+4] bl L_atoi$stub LBB1_4: @ dealwithargs.exit mov r4, r0 str r4, [sp, #+64] mov r0, #32 ldr r5, [sp, #+80] mov r1, r5 bl L___divsi3$stub str r0, [sp, #+72] mov r0, #64 mov r1, r5 bl L___divsi3$stub str r0, [sp, #+76] ldr r0, LCPI1_30 -------------- next part -------------- An HTML attachment was scrubbed.....
2018 Sep 11
3
OpenJDK8 failed to work after compiled by LLVM 8 for X86
Hi Dimitry, Thanks for your kind response! Thanks for the commit message of Jung's patch, I found that the bug had been fixed in OpenJDK 12 by Zhengyu https://bugs.openjdk.java.net/browse/JDK-8205965 But only backported to 11. So Jung could backport it for OpenJDK 8, thanks a lot! But I argue that the root cause might be in the compiler side, why clang-3.9.1, gcc-6.4.1 couldn't