[llvm-bugs] [Bug 43758] New: check_cfc: dash g generate different code with X86 LEA Fixup
via llvm-bugs
llvm-bugs at lists.llvm.org
Mon Oct 21 21:18:14 PDT 2019
https://bugs.llvm.org/show_bug.cgi?id=43758
Bug ID: 43758
Summary: check_cfc: dash g generate different code with X86 LEA
Fixup
Product: clang
Version: unspecified
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: -New Bugs
Assignee: unassignedclangbugs at nondot.org
Reporter: yechunliangcn at 163.com
CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org,
neeilans at live.com, richard-llvm at metafoo.co.uk
Debug Info should have no effect on codegen, using check_cfc to scan
llvm_test_suite, find a bug here:
Reproduce:
----------------------------------------------------------------
/home/chris/llvm-project/clang/utils/check_cfc/clang++
/home/chris/test-suite/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/generate_matrix.cpp
-w -c -O2 -o tmp.ll
----------------------------------------------------------------
Result:
----------------------------------------------------------------
Check CFC, checking: dash_g_no_change
/home/chris/test-suite/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/generate_matrix.cpp
Code difference detected with -g
--- /tmp/tmp_v0A26.o
+++ /tmp/tmpNWwZdV.o
@@ -216,6 +216,6 @@
321: 41 89 f6 mov %esi,%r14d
324: 48 8b b4 24 b8 00 00 mov 0xb8(%rsp),%rsi
32b: 00
- 32c: 44 01 c6 add %r8d,%esi
- 32f: 49 8b 53 38 mov 0x38(%r11),%rdx
- 333: 48 63 ce movslq %esi,%rcx
+ 32c: 42 8d 34 06 lea (%rsi,%r8,1),%esi
+ 330: 49 8b 53 38 mov 0x38(%r11),%rdx
+ 334: 48 63 ce movslq %esi,%rcx
*** Diff truncated ***
----------------------------------------------------------------
Analyze: clang++ with -g will generate different code with X86 LEA Fixup.
reduce the reproduce:
----------------------------------------------------------------
clang++
/home/chris/test-suite/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/generate_matrix.cpp
-c -O2 -mllvm -opt-bisect-limit=317 -o out1.o 2>log1
clang++
/home/chris/test-suite/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/generate_matrix.cpp
-c -O2 -mllvm -opt-bisect-limit=320 -o out2.o -g 2>log2
objdump -d -j .text out1.o > out1.obj
objdump -d -j .text out2.o > out2.obj
diff out1.obj out2.obj
----------------------------------------------------------------
Result:
----------------------------------------------------------------
--- out1.obj 2019-10-22 12:07:53.633672368 +0800
+++ out2.obj 2019-10-22 12:07:53.637672368 +0800
@@ -1,5 +1,5 @@
-out1.o: file format elf64-x86-64
+out2.o: file format elf64-x86-64
Disassembly of section .text:
@@ -217,32 +217,31 @@
321: 41 89 f6 mov %esi,%r14d
324: 48 8b b4 24 b8 00 00 mov 0xb8(%rsp),%rsi
32b: 00
- 32c: 44 01 c6 add %r8d,%esi
- 32f: 49 8b 53 38 mov 0x38(%r11),%rdx
- 333: 48 63 ce movslq %esi,%rcx
- 336: 48 89 04 ca mov %rax,(%rdx,%rcx,8)
- 33a: 49 8b 55 00 mov 0x0(%r13),%rdx
- 33e: 48 8b 52 40 mov 0x40(%rdx),%rdx
- 342: 48 89 4c 24 28 mov %rcx,0x28(%rsp)
- 347: 4c 89 3c ca mov %r15,(%rdx,%rcx,8)
- 34b: 45 8d 58 ff lea -0x1(%r8),%r11d
- 34f: 49 83 c2 01 add $0x1,%r10
- 353: 45 31 c9 xor %r9d,%r9d
- 356: b9 ff ff ff ff mov $0xffffffff,%ecx
- 35b: 89 5c 24 78 mov %ebx,0x78(%rsp)
- 35f: 89 da mov %ebx,%edx
- 361: 48 89 54 24 48 mov %rdx,0x48(%rsp)
- 366: 89 6c 24 74 mov %ebp,0x74(%rsp)
- 36a: 89 ea mov %ebp,%edx
- 36c: 48 89 54 24 38 mov %rdx,0x38(%rsp)
- 371: 44 89 74 24 70 mov %r14d,0x70(%rsp)
- 376: 44 89 f2 mov %r14d,%edx
- 379: 48 89 54 24 40 mov %rdx,0x40(%rsp)
- 37e: 4c 8b b4 24 a0 00 00 mov 0xa0(%rsp),%r14
- 385: 00
- 386: eb 43 jmp 3cb
<_Z15generate_matrixiiiPP24HPC_Sparse_Matrix_STRUCTPPdS3_S3_+0x3cb>
- 388: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1)
- 38f: 00
+ 32c: 42 8d 34 06 lea (%rsi,%r8,1),%esi
+ 330: 49 8b 53 38 mov 0x38(%r11),%rdx
+ 334: 48 63 ce movslq %esi,%rcx
+ 337: 48 89 04 ca mov %rax,(%rdx,%rcx,8)
+ 33b: 49 8b 55 00 mov 0x0(%r13),%rdx
+ 33f: 48 8b 52 40 mov 0x40(%rdx),%rdx
+ 343: 48 89 4c 24 28 mov %rcx,0x28(%rsp)
+ 348: 4c 89 3c ca mov %r15,(%rdx,%rcx,8)
+ 34c: 45 8d 58 ff lea -0x1(%r8),%r11d
+ 350: 49 83 c2 01 add $0x1,%r10
+ 354: 45 31 c9 xor %r9d,%r9d
+ 357: b9 ff ff ff ff mov $0xffffffff,%ecx
+ 35c: 89 5c 24 78 mov %ebx,0x78(%rsp)
+ 360: 89 da mov %ebx,%edx
+ 362: 48 89 54 24 48 mov %rdx,0x48(%rsp)
+ 367: 89 6c 24 74 mov %ebp,0x74(%rsp)
+ 36b: 89 ea mov %ebp,%edx
+ 36d: 48 89 54 24 38 mov %rdx,0x38(%rsp)
+ 372: 44 89 74 24 70 mov %r14d,0x70(%rsp)
+ 377: 44 89 f2 mov %r14d,%edx
+ 37a: 48 89 54 24 40 mov %rdx,0x40(%rsp)
+ 37f: 4c 8b b4 24 a0 00 00 mov 0xa0(%rsp),%r14
+ 386: 00
+ 387: eb 42 jmp 3cb
<_Z15generate_matrixiiiPP24HPC_Sparse_Matrix_STRUCTPPdS3_S3_+0x3cb>
+ 389: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
390: 8b 4c 24 7c mov 0x7c(%rsp),%ecx
394: 83 c1 01 add $0x1,%ecx
397: 8b 54 24 1c mov 0x1c(%rsp),%edx
----------------------------------------------------------------
log1:
BISECT: running pass (317) X86 LEA Fixup on function
(_Z15generate_matrixiiiPP24HPC_Sparse_Matrix_STRUCTPPdS3_S3_)
log2:
BISECT: running pass (320) X86 LEA Fixup on function
(_Z15generate_matrixiiiPP24HPC_Sparse_Matrix_STRUCTPPdS3_S3_)
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20191022/d90b54f2/attachment.html>
More information about the llvm-bugs
mailing list