[lld] r349436 - [COFF] Set the CPU string for LTO like ELF does

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 17 17:59:33 PST 2018


Author: rnk
Date: Mon Dec 17 17:59:33 2018
New Revision: 349436

URL: http://llvm.org/viewvc/llvm-project?rev=349436&view=rev
Log:
[COFF] Set the CPU string for LTO like ELF does

Fixes PR40043

Added:
    lld/trunk/test/COFF/lto-cpu-string.ll
Modified:
    lld/trunk/COFF/LTO.cpp

Modified: lld/trunk/COFF/LTO.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/LTO.cpp?rev=349436&r1=349435&r2=349436&view=diff
==============================================================================
--- lld/trunk/COFF/LTO.cpp (original)
+++ lld/trunk/COFF/LTO.cpp Mon Dec 17 17:59:33 2018
@@ -60,6 +60,7 @@ static std::unique_ptr<lto::LTO> createL
   C.DisableVerify = true;
   C.DiagHandler = diagnosticHandler;
   C.OptLevel = Config->LTOO;
+  C.CPU = GetCPUStr();
   C.MAttrs = GetMAttrs();
 
   if (Config->SaveTemps)

Added: lld/trunk/test/COFF/lto-cpu-string.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/lto-cpu-string.ll?rev=349436&view=auto
==============================================================================
--- lld/trunk/test/COFF/lto-cpu-string.ll (added)
+++ lld/trunk/test/COFF/lto-cpu-string.ll Mon Dec 17 17:59:33 2018
@@ -0,0 +1,21 @@
+; REQUIRES: x86
+; RUN: llvm-as %s -o %t.obj
+
+; RUN: lld-link %t.obj -noentry -nodefaultlib -out:%t.dll -dll
+; RUN: llvm-objdump -d -section=".text" -no-leading-addr -no-show-raw-insn %t.dll | FileCheck %s
+; CHECK: nop{{$}}
+
+; RUN: lld-link -mllvm:-mcpu=znver1 -noentry -nodefaultlib %t.obj -out:%t.znver1.dll -dll
+; RUN: llvm-objdump -d -section=".text" -no-leading-addr -no-show-raw-insn %t.znver1.dll | FileCheck -check-prefix=ZNVER1 %s
+; ZNVER1: nopw
+
+target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-pc-windows-msvc19.14.26433"
+
+define dllexport void @foo() #0 {
+entry:
+  call void asm sideeffect ".p2align        4, 0x90", "~{dirflag},~{fpsr},~{flags}"()
+  ret void
+}
+
+attributes #0 = { "no-frame-pointer-elim"="true" }




More information about the llvm-commits mailing list