[LLVMbugs] [Bug 4984] New: llc -O0: incorrect emission of negative offsets
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Tue Sep 15 09:46:55 PDT 2009
http://llvm.org/bugs/show_bug.cgi?id=4984
Summary: llc -O0: incorrect emission of negative offsets
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Backend: X86
AssignedTo: unassignedbugs at nondot.org
ReportedBy: edwintorok at gmail.com
CC: llvmbugs at cs.uiuc.edu
Compiling attached testcase results in these assembler warnings on x86-64
$ llc -O0 <foo.bc | as
{standard input}: Assembler messages:
{standard input}:23: Warning: 4294967294 shortened to 254
That looks wrong since rax+254 is not the same as rax-2.
The generated assembler looks like this (I marked line 23 with >>> <<<)
.text
.align 16
.globl foo
.type foo, at function
foo: # @foo
.LBB1_0: # %entry
pushq %rbx
movq %rdi, %rbx
movl $40, %esi
movq %rbx, %rdi
call strchr
movabsq $2, %rcx
addq %rbx, %rcx
cmpq %rax, %rcx
ja .LBB1_2
.LBB1_1: # %"<bb 3>"
>>>>> movb 4294967294(%rax), %al <<<<<<<<<<<<<<<<<<<<<<<<<
cmpb $33, %al
sete %al
movl $1, %ecx
testb %al, %al
movl $0, %eax
cmovne %ecx, %eax
popq %rbx
ret
.LBB1_2: # %"<bb 5>"
xorl %eax, %eax
popq %rbx
ret
.size foo, .-foo
.section .note.GNU-stack,"", at progbits
Without -O0, llc by default outputs this where as doesn't warn:
.text
.align 16
.globl foo
.type foo, at function
foo: # @foo
.LBB1_0: # %entry
pushq %rbx
movq %rdi, %rbx
movl $40, %esi
movq %rbx, %rdi
call strchr
addq $2, %rbx
cmpq %rax, %rbx
ja .LBB1_2
.LBB1_1: # %"<bb 3>"
cmpb $33, -2(%rax)
sete %al
movzbl %al, %eax
popq %rbx
ret
.LBB1_2: # %"<bb 5>"
xorl %eax, %eax
popq %rbx
ret
.size foo, .-foo
.section .note.GNU-stack,"", at progbits
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list