[llvm] [tools] LLVM Compiler Visualization Tool for Offloading - GSoC 2025 (PR #147451)

Joseph Huber via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 29 10:26:23 PDT 2025


Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>,
Miguel =?utf-8?q?Cárdenas?= <miguelecsx at gmail.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/147451 at github.com>


================
@@ -0,0 +1,73 @@
+//===------------------ AdvisorConfig.cpp - LLVM Advisor ------------------===//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements the AdvisorConfig class.
+//
+//===----------------------------------------------------------------------===//
+
+#include "AdvisorConfig.h"
+#include "llvm/Support/Error.h"
+#include "llvm/Support/FileSystem.h"
+#include "llvm/Support/JSON.h"
+#include "llvm/Support/MemoryBuffer.h"
+#include "llvm/Support/Path.h"
+
+namespace llvm {
+namespace advisor {
+
+AdvisorConfig::AdvisorConfig() { OutputDir_ = ".llvm-advisor"; }
+
+Expected<bool> AdvisorConfig::loadFromFile(llvm::StringRef path) {
+  auto BufferOrError = MemoryBuffer::getFile(path);
+  if (!BufferOrError) {
+    return createStringError(BufferOrError.getError(),
+                             "Cannot read config file");
+  }
+
+  auto Buffer = std::move(*BufferOrError);
+  Expected<json::Value> JsonOrError = json::parse(Buffer->getBuffer());
+  if (!JsonOrError) {
+    return JsonOrError.takeError();
+  }
+
+  auto &Json = *JsonOrError;
+  auto *Obj = Json.getAsObject();
+  if (!Obj) {
+    return createStringError(std::make_error_code(std::errc::invalid_argument),
+                             "Config file must contain JSON object");
+  }
+
+  if (auto outputDirOpt = Obj->getString("outputDir"); outputDirOpt) {
+    OutputDir_ = outputDirOpt->str();
+  }
----------------
jhuber6 wrote:

 LLVM style, omit all the braces in single blocks.

https://github.com/llvm/llvm-project/pull/147451


More information about the llvm-commits mailing list