Displaying 11 results from an estimated 11 matches for "lbb1_5".
Did you mean:
lbb0_5
2016 May 13
4
RFC: callee saved register verifier
...bsq $0xCA5FCA5FCA5FCA5F, %rbx # can also be movq %rbp, %rbx etc.
movabsq $0xCA5FCA5FCA5FCA5F, %r12
movabsq $0xCA5FCA5FCA5FCA5F, %r13
movabsq $0xCA5FCA5FCA5FCA5F, %r14
movabsq $0xCA5FCA5FCA5FCA5F, %r15
callq foo
movabsq $0xCA5FCA5FCA5FCA5F, %rax
cmpq %rax, %rbp
jne .LBB1_5
movabsq $0xCA5FCA5FCA5FCA5F, %rax
cmpq %rax, %rbx
jne .LBB1_5
movabsq $0xCA5FCA5FCA5FCA5F, %rax
cmpq %rax, %r12
jne .LBB1_5
movabsq $0xCA5FCA5FCA5FCA5F, %rax
cmpq %rax, %r13
jne .LBB1_5
movabsq $0xCA5FCA5FCA5FCA5F, %rax
cmpq %rax, %r14
jne...
2016 May 13
2
RFC: callee saved register verifier
....
> > movabsq $0xCA5FCA5FCA5FCA5F, %r12
> > movabsq $0xCA5FCA5FCA5FCA5F, %r13
> > movabsq $0xCA5FCA5FCA5FCA5F, %r14
> > movabsq $0xCA5FCA5FCA5FCA5F, %r15
> > callq foo
> > movabsq $0xCA5FCA5FCA5FCA5F, %rax
> > cmpq %rax, %rbp
> > jne .LBB1_5
> > movabsq $0xCA5FCA5FCA5FCA5F, %rax
> > cmpq %rax, %rbx
> > jne .LBB1_5
> > movabsq $0xCA5FCA5FCA5FCA5F, %rax
> > cmpq %rax, %r12
> > jne .LBB1_5
> > movabsq $0xCA5FCA5FCA5FCA5F, %rax
> > cmpq %rax, %r13
> > jne ....
2018 Nov 06
4
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 7, and
mov edx, eax | # neither r8 nor rcx clobbered!
shr edx | shr eax, 1
mov ecx, edx | # CF is set from the LSB of EAX
xor ecx, 797649...
2016 Feb 11
3
Expected constant simplification not happening
...vl $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 the following code at least
for -Os...
2018 Nov 27
2
Rather poor code optimisation of current clang/LLVM targeting Intel x86 (both -64 and -32)
...e
>> 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!
>> shr edx | shr eax, 1
>> mov ecx, edx | # CF is set from the LSB of EAX...
2016 Dec 07
1
Expected constant simplification not happening
...-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)
> ---
>...
2006 Jul 09
2
[LLVMdev] Critical edges
...li r6, -1
srwi r6, r4, 31
add r4, r4, r6
mulli r4, r4, 3
li r6, 1
subf r2, r4, r2
cmpwi cr0, r2, 0
beq cr0, LBB1_9 ;no_exit
LBB1_7: ;no_exit
mr r2, r6
LBB1_8: ;no_exit
cmpwi cr0, r5, 0
add r2, r2, r3
bgt cr0, LBB1_5 ;no_exit.no_exit_llvm_crit_edge
LBB1_9: ;no_exit
mr r2, r6
b LBB1_8 ;no_exit
LBB1_4: ;no_exit.loopexit_llvm_crit_edge
The code is this one below:
void CriticalEdgeRemoval_Fer::split_critical_edge
(MachineBasicBlock & src, MachineBasicBlock & dst, MachineFunctio...
2018 Nov 28
2
Rather poor code optimisation of current clang/LLVM targeting Intel x86 (both -64 and -32)
..._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!
>> >> shr edx | shr eax, 1
>> >> mov ecx, edx...
2006 Jul 09
0
[LLVMdev] Critical edges
...dd r4, r4, r6
> mulli r4, r4, 3
> li r6, 1
> subf r2, r4, r2
> cmpwi cr0, r2, 0
> beq cr0, LBB1_9 ;no_exit
> LBB1_7: ;no_exit
> mr r2, r6
> LBB1_8: ;no_exit
> cmpwi cr0, r5, 0
> add r2, r2, r3
> bgt cr0, LBB1_5 ;no_exit.no_exit_llvm_crit_edge
> LBB1_9: ;no_exit
> mr r2, r6
> b LBB1_8 ;no_exit
> LBB1_4: ;no_exit.loopexit_llvm_crit_edge
>
> The code is this one below:
>
> void CriticalEdgeRemoval_Fer::split_critical_edge
> (MachineBasicBlock & src, Mac...
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