[LLVMbugs] [Bug 19483] New: Clang should include more information about the target in the IR to help reproducing issues

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Apr 18 17:06:49 PDT 2014


http://llvm.org/bugs/show_bug.cgi?id=19483

            Bug ID: 19483
           Summary: Clang should include more information about the target
                    in the IR to help reproducing issues
           Product: clang
           Version: trunk
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: LLVM Codegen
          Assignee: unassignedclangbugs at nondot.org
          Reporter: qcolombet at apple.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 12409
  --> http://llvm.org/bugs/attachment.cgi?id=12409&action=edit
An example

It would be nice if we could have the exact same codegen from ‘clang -S’ and
'clang -S -emit-llvm | llc’.

Currently, clang sets the triple information and some function attributes in
the IR file, but this is not enough. In particular, the target features as well
as the cpu are important pieces of information that are missing.

One can get this information with 'clang -v’, but this does not fit nicely in
the work flow.

I’ve attached an example that demonstrates that on MacOS X:
clang -O3 -S -o orig.s reproduce.c -arch x86_64h
clang -O3 -S -o - reproduce.c -arch x86_64h -emit-llvm | llc -o new.s
diff -U 10 orig.s new.s
--- orig.s    2014-04-18 16:53:31.000000000 -0700
+++ new.s    2014-04-18 16:52:56.000000000 -0700
@@ -6,20 +6,20 @@
     .cfi_startproc
 ## BB#0:                                ## %entry
     pushq    %rbp
 Ltmp0:
     .cfi_def_cfa_offset 16
 Ltmp1:
     .cfi_offset %rbp, -16
     movq    %rsp, %rbp
 Ltmp2:
     .cfi_def_cfa_register %rbp
-    vxorps    %xmm0, %xmm0, %xmm0
-    vxorps    %xmm1, %xmm1, %xmm1
-    vxorps    %xmm2, %xmm2, %xmm2
-    vxorps    %xmm3, %xmm3, %xmm3
+    xorps    %xmm0, %xmm0
+    xorps    %xmm1, %xmm1
+    xorps    %xmm2, %xmm2
+    xorps    %xmm3, %xmm3
     popq    %rbp
     jmp    _bar                    ## TAILCALL
     .cfi_endproc

clang -O3 -S -o orig.s reproduce.c -arch arm64
clang -O3 -S -o - reproduce.c -arch arm64 -emit-llvm | llc -o new.s
diff -U 10 orig.s new.s
--- orig.s    2014-04-18 17:11:18.000000000 -0700
+++ new.s    2014-04-18 17:11:53.000000000 -0700
@@ -1,14 +1,14 @@
     .section    __TEXT,__text,regular,pure_instructions
     .ios_version_min 5, 0
     .globl    _foo
     .align    2
 _foo:                                   ; @foo
 ; BB#0:                                 ; %entry
-    movi.2d    v0, #0000000000000000
-    movi.2d    v1, #0000000000000000
-    movi.2d    v2, #0000000000000000
-    movi.2d    v3, #0000000000000000
+    fmov    d0, xzr
+    orr.16b    v1, v0, v0
+    orr.16b    v2, v0, v0
+    orr.16b    v3, v0, v0
     b    _bar


 .subsections_via_symbols

-- 
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/20140419/c0d5e0ff/attachment.html>


More information about the llvm-bugs mailing list