HaohaiWen updated this revision to Diff 536084. HaohaiWen added a comment. Herald added a project: LLVM. Herald added a subscriber: llvm-commits.
Remove driver changes Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D154070/new/ https://reviews.llvm.org/D154070 Files: lld/COFF/Config.h lld/COFF/Driver.cpp lld/COFF/LTO.cpp lld/COFF/Options.td lld/test/COFF/lto-debug-fission.ll Index: lld/test/COFF/lto-debug-fission.ll =================================================================== --- /dev/null +++ lld/test/COFF/lto-debug-fission.ll @@ -0,0 +1,18 @@ +; REQUIRES: x86 + +; RUN: opt %s -o %t1.o +; RUN: rm -rf %t.dir + +; Test to ensure that -dwodir:$DIR creates .dwo files under $DIR +; RUN: lld-link -dwodir:%t.dir -noentry -dll %t1.o -out:%t.dll +; RUN: llvm-readobj -h %t.dir/0.dwo | FileCheck %s + +; CHECK: Format: COFF-x86-64 + +target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-windows-msvc" + +define void @f() { +entry: + ret void +} Index: lld/COFF/Options.td =================================================================== --- lld/COFF/Options.td +++ lld/COFF/Options.td @@ -42,6 +42,8 @@ def defaultlib : P<"defaultlib", "Add the library to the list of input files">; def delayload : P<"delayload", "Delay loaded DLL name">; def diasdkdir : P<"diasdkdir", "Set the location of the DIA SDK">; +def dwodir : P<"dwodir", + "Directory to store .dwo files when LTO and debug fission are used">; def entry : P<"entry", "Name of entry point symbol">; def errorlimit : P<"errorlimit", "Maximum number of errors to emit before stopping (0 = no limit)">; Index: lld/COFF/LTO.cpp =================================================================== --- lld/COFF/LTO.cpp +++ lld/COFF/LTO.cpp @@ -84,6 +84,7 @@ c.DisableVerify = true; #endif c.DiagHandler = diagnosticHandler; + c.DwoDir = ctx.config.dwoDir.str(); c.OptLevel = ctx.config.ltoo; c.CPU = getCPUStr(); c.MAttrs = getMAttrs(); Index: lld/COFF/Driver.cpp =================================================================== --- lld/COFF/Driver.cpp +++ lld/COFF/Driver.cpp @@ -1910,6 +1910,9 @@ fatal("/manifestinput: requires /manifest:embed"); } + // Handle /dwodir + config->dwoDir = args.getLastArgValue(OPT_dwodir); + config->thinLTOEmitImportsFiles = args.hasArg(OPT_thinlto_emit_imports_files); config->thinLTOIndexOnly = args.hasArg(OPT_thinlto_index_only) || args.hasArg(OPT_thinlto_index_only_arg); Index: lld/COFF/Config.h =================================================================== --- lld/COFF/Config.h +++ lld/COFF/Config.h @@ -203,6 +203,9 @@ StringRef manifestUIAccess = "'false'"; StringRef manifestFile; + // used for /dwodir + StringRef dwoDir; + // Used for /aligncomm. std::map<std::string, int> alignComm;
Index: lld/test/COFF/lto-debug-fission.ll =================================================================== --- /dev/null +++ lld/test/COFF/lto-debug-fission.ll @@ -0,0 +1,18 @@ +; REQUIRES: x86 + +; RUN: opt %s -o %t1.o +; RUN: rm -rf %t.dir + +; Test to ensure that -dwodir:$DIR creates .dwo files under $DIR +; RUN: lld-link -dwodir:%t.dir -noentry -dll %t1.o -out:%t.dll +; RUN: llvm-readobj -h %t.dir/0.dwo | FileCheck %s + +; CHECK: Format: COFF-x86-64 + +target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" +target triple = "x86_64-unknown-windows-msvc" + +define void @f() { +entry: + ret void +} Index: lld/COFF/Options.td =================================================================== --- lld/COFF/Options.td +++ lld/COFF/Options.td @@ -42,6 +42,8 @@ def defaultlib : P<"defaultlib", "Add the library to the list of input files">; def delayload : P<"delayload", "Delay loaded DLL name">; def diasdkdir : P<"diasdkdir", "Set the location of the DIA SDK">; +def dwodir : P<"dwodir", + "Directory to store .dwo files when LTO and debug fission are used">; def entry : P<"entry", "Name of entry point symbol">; def errorlimit : P<"errorlimit", "Maximum number of errors to emit before stopping (0 = no limit)">; Index: lld/COFF/LTO.cpp =================================================================== --- lld/COFF/LTO.cpp +++ lld/COFF/LTO.cpp @@ -84,6 +84,7 @@ c.DisableVerify = true; #endif c.DiagHandler = diagnosticHandler; + c.DwoDir = ctx.config.dwoDir.str(); c.OptLevel = ctx.config.ltoo; c.CPU = getCPUStr(); c.MAttrs = getMAttrs(); Index: lld/COFF/Driver.cpp =================================================================== --- lld/COFF/Driver.cpp +++ lld/COFF/Driver.cpp @@ -1910,6 +1910,9 @@ fatal("/manifestinput: requires /manifest:embed"); } + // Handle /dwodir + config->dwoDir = args.getLastArgValue(OPT_dwodir); + config->thinLTOEmitImportsFiles = args.hasArg(OPT_thinlto_emit_imports_files); config->thinLTOIndexOnly = args.hasArg(OPT_thinlto_index_only) || args.hasArg(OPT_thinlto_index_only_arg); Index: lld/COFF/Config.h =================================================================== --- lld/COFF/Config.h +++ lld/COFF/Config.h @@ -203,6 +203,9 @@ StringRef manifestUIAccess = "'false'"; StringRef manifestFile; + // used for /dwodir + StringRef dwoDir; + // Used for /aligncomm. std::map<std::string, int> alignComm;
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits