[llvm-dev] COMPILER-RT build break

Izhar, Ziv via llvm-dev llvm-dev at lists.llvm.org
Mon Oct 31 01:53:40 PDT 2016


Hello,
There is a problem in the compiler-rt project regarding a new change I need to make.
The change is that in extended gcc syntax, when the same register is in the input/output list and in the clobber list, there is a conflict and llvm should produce an error.
Until now, it didn't produce an error.
In compiler-rt's tests, there's a test which shouldn't generate an error but after the patch it does. Therefore, we need to correct the test (which is not correct according to extended gcc).
The review regarding the new error message is : https://reviews.llvm.org/D15075

What is the process in compiler-rt in order to accept and commit that change?

The change which needed to be made is:

Index: lib/asan/tests/asan_asm_test.cc
===================================================================
--- lib/asan/tests/asan_asm_test.cc     (revision 285517)
+++ lib/asan/tests/asan_asm_test.cc     (working copy)
@@ -62,7 +62,7 @@
     __asm__("rep " Movs " \n\t"                                                \
             :                                                                  \
             : "D"(dst), "S"(src), "c"(size)                                    \
-            : "rsi", "rdi", "rcx", "memory");                                  \
+            : "memory");                                                       \
   }

 DECLARE_ASM_WRITE(U8, "8", "movq", "r");
@@ -104,7 +104,7 @@
     __asm__("rep " Movs " \n\t"                                                \
             :                                                                  \
             : "D"(dst), "S"(src), "c"(size)                                    \
-            : "esi", "edi", "ecx", "memory");                                  \
+            : "memory");                                                       \
   }

 } // End of anonymous namespace



The error before this change:

Current problem with the build after patch:
[100%] Generating ASAN_NOINST_TEST_OBJECTS.asan_noinst_test.cc.x86_64-with-calls.o
/home/mzuckerm/llvm23/llvm/projects/compiler-rt/lib/asan/tests/asan_asm_test.cc:70:1: error: asm-specifier for input or output
      variable conflicts with asm clobber list
DECLARE_ASM_REP_MOVS(U8, "movsq");
^
/home/mzuckerm/llvm23/llvm/projects/compiler-rt/lib/asan/tests/asan_asm_test.cc:65:15: note: expanded from macro
      'DECLARE_ASM_REP_MOVS'
            : "rsi", "rdi", "rcx", "memory");                                  \
              ^
/home/mzuckerm/llvm23/llvm/projects/compiler-rt/lib/asan/tests/asan_asm_test.cc:129:1: error: asm-specifier for input or output
      variable conflicts with asm clobber list
DECLARE_ASM_REP_MOVS(U1, "movsb");
^
/home/mzuckerm/llvm23/llvm/projects/compiler-rt/lib/asan/tests/asan_asm_test.cc:65:15: note: expanded from macro
      'DECLARE_ASM_REP_MOVS'
            : "rsi", "rdi", "rcx", "memory");                                  \
              ^
/home/mzuckerm/llvm23/llvm/projects/compiler-rt/lib/asan/tests/asan_asm_test.cc:130:1: error: asm-specifier for input or output
      variable conflicts with asm clobber list
DECLARE_ASM_REP_MOVS(U2, "movsw");
^
/home/mzuckerm/llvm23/llvm/projects/compiler-rt/lib/asan/tests/asan_asm_test.cc:65:15: note: expanded from macro
      'DECLARE_ASM_REP_MOVS'
            : "rsi", "rdi", "rcx", "memory");                                  \
              ^
/home/mzuckerm/llvm23/llvm/projects/compiler-rt/lib/asan/tests/asan_asm_test.cc:131:1: error: asm-specifier for input or output
      variable conflicts with asm clobber list
DECLARE_ASM_REP_MOVS(U4, "movsl");
^
/home/mzuckerm/llvm23/llvm/projects/compiler-rt/lib/asan/tests/asan_asm_test.cc:65:15: note: expanded from macro
      'DECLARE_ASM_REP_MOVS'
            : "rsi", "rdi", "rcx", "memory");                                  \
              ^
4 errors generated.


---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161031/051a4b0e/attachment-0001.html>


More information about the llvm-dev mailing list