[llvm] [LLVM] Introduce 'llvm-offload-wrapper' tool (PR #153504)
Joseph Huber via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 13 16:16:18 PDT 2025
================
@@ -0,0 +1,128 @@
+//===- llvm-offload-wrapper: Create runtime registration code for devices -===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/Bitcode/BitcodeWriter.h"
+#include "llvm/Frontend/Offloading/OffloadWrapper.h"
+#include "llvm/Frontend/Offloading/Utility.h"
+#include "llvm/Object/OffloadBinary.h"
+#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/FileOutputBuffer.h"
+#include "llvm/Support/FileSystem.h"
+#include "llvm/Support/InitLLVM.h"
+#include "llvm/Support/MemoryBuffer.h"
+#include "llvm/Support/Path.h"
+#include "llvm/Support/Signals.h"
+#include "llvm/Support/StringSaver.h"
+#include "llvm/Support/WithColor.h"
+#include "llvm/TargetParser/Host.h"
+
+using namespace llvm;
+
+static cl::opt<bool> Help("h", cl::desc("Alias for -help"), cl::Hidden);
+
+static cl::OptionCategory
+ OffloadWrapeprCategory("llvm-offload-wrapper options");
+
+static cl::opt<object::OffloadKind> Kind(
+ "kind", cl::desc("Wrap for offload kind:"), cl::cat(OffloadWrapeprCategory),
+ cl::Required,
+ cl::values(clEnumValN(object::OFK_OpenMP, "openmp", "Wrap OpenMP binaries"),
+ clEnumValN(object::OFK_Cuda, "cuda", "Wrap CUDA binaries"),
+ clEnumValN(object::OFK_HIP, "hip", "Wrap HIP binaries")));
+
+static cl::opt<std::string> OutputFile("o", cl::desc("Write output to <file>."),
+ cl::value_desc("file"),
+ cl::cat(OffloadWrapeprCategory));
+
+static cl::list<std::string> InputFiles(cl::Positional,
+ cl::desc("Wrap input from <file>"),
+ cl::value_desc("file"), cl::OneOrMore,
+ cl::cat(OffloadWrapeprCategory));
+
+static cl::opt<std::string>
+ Target("target", cl::desc("Target triple for the wrapper module"),
----------------
jhuber6 wrote:
Probably should be triple honestly, kind of confusing but it should match the clang -cc1 option.
https://github.com/llvm/llvm-project/pull/153504
More information about the llvm-commits
mailing list