[PATCH] D72736: [AIX] Add improved interface for retrieving load module paths

2020-01-14 Thread Jonathan Crowther via Phabricator via cfe-commits
Jonathan.Crowther created this revision.
Jonathan.Crowther added reviewers: hubert.reinterpretcast, xingxue.
Herald added subscribers: llvm-commits, cfe-commits, arphaman, hiraditya.
Herald added projects: clang, LLVM.

Implemented (for AIX) a function to take any function and return the path of 
the load module it is located in. Used this function to implement 
`getMainExecutable` for AIX (instead of incorrectly attempting to use `/proc`) 
Additionally, fixed multiple locations where `getMainExecutable` was used 
incorrectly.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D72736

Files:
  clang/lib/Tooling/CompilationDatabase.cpp
  clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp
  clang/tools/libclang/CIndexer.cpp
  llvm/include/llvm/Support/FileUtilities.h
  llvm/lib/Support/FileUtilities.cpp
  llvm/lib/Support/Unix/Path.inc
  llvm/unittests/Support/ProgramTest.cpp

Index: llvm/unittests/Support/ProgramTest.cpp
===
--- llvm/unittests/Support/ProgramTest.cpp
+++ llvm/unittests/Support/ProgramTest.cpp
@@ -58,6 +58,8 @@
 static cl::opt
 ProgramTestStringArg2("program-test-string-arg2");
 
+void DummyFunction() {}
+
 class ProgramEnvTest : public testing::Test {
   std::vector EnvTable;
   std::vector EnvStorage;
@@ -114,8 +116,8 @@
 exit(0);
 
   // getMainExecutable returns an absolute path; prepend the long-path prefix.
-  std::string MyAbsExe =
-  sys::fs::getMainExecutable(TestMainArgv0, &ProgramTestStringArg1);
+  void *MainAddr = (void *)(intptr_t)DummyFunction;
+  std::string MyAbsExe = sys::fs::getMainExecutable(TestMainArgv0, MainAddr);
   std::string MyExe;
   if (!StringRef(MyAbsExe).startswith("?\\"))
 MyExe.append("?\\");
@@ -160,8 +162,8 @@
 exit(1);
   }
 
-  std::string my_exe =
-  sys::fs::getMainExecutable(TestMainArgv0, &ProgramTestStringArg1);
+  void *MainAddr = (void *)(intptr_t)DummyFunction;
+  std::string my_exe = sys::fs::getMainExecutable(TestMainArgv0, MainAddr);
   StringRef argv[] = {
   my_exe,
   "--gtest_filter=ProgramEnvTest.CreateProcessTrailingSlash",
@@ -197,8 +199,8 @@
 exit(0);
   }
 
-  std::string Executable =
-  sys::fs::getMainExecutable(TestMainArgv0, &ProgramTestStringArg1);
+  void *MainAddr = (void *)(intptr_t)DummyFunction;
+  std::string Executable = sys::fs::getMainExecutable(TestMainArgv0, MainAddr);
   StringRef argv[] = {Executable,
   "--gtest_filter=ProgramEnvTest.TestExecuteNoWait"};
 
@@ -252,8 +254,8 @@
 exit(0);
   }
 
-  std::string Executable =
-  sys::fs::getMainExecutable(TestMainArgv0, &ProgramTestStringArg1);
+  void *MainAddr = (void *)(intptr_t)DummyFunction;
+  std::string Executable = sys::fs::getMainExecutable(TestMainArgv0, MainAddr);
   StringRef argv[] = {
   Executable, "--gtest_filter=ProgramEnvTest.TestExecuteAndWaitTimeout"};
 
Index: llvm/lib/Support/Unix/Path.inc
===
--- llvm/lib/Support/Unix/Path.inc
+++ llvm/lib/Support/Unix/Path.inc
@@ -87,6 +87,7 @@
 #include 
 #elif defined(_AIX)
 #include 
+#include 
 
 //  depends on `uint` to be a typedef from  to
 // `uint_t`; however,  does not always declare `uint`. We provide
@@ -222,7 +223,7 @@
   if (getprogpath(exe_path, argv0) != NULL)
 return exe_path;
 #elif defined(__NetBSD__) || defined(__OpenBSD__) || defined(__minix) ||   \
-defined(__DragonFly__) || defined(__FreeBSD_kernel__) || defined(_AIX)
+defined(__DragonFly__) || defined(__FreeBSD_kernel__)
   const char *curproc = "/proc/curproc/file";
   char exe_path[PATH_MAX];
   if (sys::fs::exists(curproc)) {
@@ -238,6 +239,8 @@
   // If we don't have procfs mounted, fall back to argv[0]
   if (getprogpath(exe_path, argv0) != NULL)
 return exe_path;
+#elif defined(_AIX)
+  return getLoadModuleFilenameForFunction(MainAddr).str();
 #elif defined(__linux__) || defined(__CYGWIN__) || defined(__gnu_hurd__)
   char exe_path[MAXPATHLEN];
   const char *aPath = "/proc/self/exe";
Index: llvm/lib/Support/FileUtilities.cpp
===
--- llvm/lib/Support/FileUtilities.cpp
+++ llvm/lib/Support/FileUtilities.cpp
@@ -27,6 +27,16 @@
 #include 
 #include 
 
+// These typedefs are needed for sys/ldr.h to work on AIX
+#if defined(_AIX)
+typedef unsigned int uint;
+typedef unsigned short ushort;
+typedef void *__ptr64;
+static_assert(sizeof(__ptr64) == 8u, "__ptr64 size error.");
+#include 
+#include 
+#endif
+
 using namespace llvm;
 
 static bool isSignedChar(char C) {
@@ -268,6 +278,55 @@
   return CompareFailed;
 }
 
+#if defined(_AIX)
+// Returns the name of the load module that contains the entry point of the
+// function referenced by fp.
+SmallString<128> llvm::getLoadModuleFilenameForFunctionAIX(void (*fp)(void)) {
+  int PrevErrno = errno;
+
+  size_t BufSize = 2048u;
+  std::unique_ptr Buf;
+  while (true) {
+Buf = std::make_un

[PATCH] D89801: [SystemZ][ZOS] Set short-enums as the default for z/OS

2020-10-20 Thread Jonathan Crowther via Phabricator via cfe-commits
Jonathan.Crowther created this revision.
Jonathan.Crowther added reviewers: rsmith, abhina.sreeskantharajan, dlj.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
Jonathan.Crowther requested review of this revision.

This patch sets short-enums to be the default for z/OS.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D89801

Files:
  clang/lib/Driver/ToolChains/Clang.cpp
  clang/test/Driver/zos-driver-defaults.c


Index: clang/test/Driver/zos-driver-defaults.c
===
--- /dev/null
+++ clang/test/Driver/zos-driver-defaults.c
@@ -0,0 +1,5 @@
+// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck 
%s
+// REQUIRES: clang-driver
+
+//CHECK: -fshort-enums
+//CHECK: -fno-signed-char
Index: clang/lib/Driver/ToolChains/Clang.cpp
===
--- clang/lib/Driver/ToolChains/Clang.cpp
+++ clang/lib/Driver/ToolChains/Clang.cpp
@@ -5560,9 +5560,9 @@
(RTTIMode == ToolChain::RM_Disabled)))
 CmdArgs.push_back("-fno-rtti");
 
-  // -fshort-enums=0 is default for all architectures except Hexagon.
+  // -fshort-enums=0 is default for all architectures except Hexagon and z/OS.
   if (Args.hasFlag(options::OPT_fshort_enums, options::OPT_fno_short_enums,
-   TC.getArch() == llvm::Triple::hexagon))
+   TC.getArch() == llvm::Triple::hexagon || Triple.isOSzOS()))
 CmdArgs.push_back("-fshort-enums");
 
   RenderCharacterOptions(Args, AuxTriple ? *AuxTriple : RawTriple, CmdArgs);


Index: clang/test/Driver/zos-driver-defaults.c
===
--- /dev/null
+++ clang/test/Driver/zos-driver-defaults.c
@@ -0,0 +1,5 @@
+// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck %s
+// REQUIRES: clang-driver
+
+//CHECK: -fshort-enums
+//CHECK: -fno-signed-char
Index: clang/lib/Driver/ToolChains/Clang.cpp
===
--- clang/lib/Driver/ToolChains/Clang.cpp
+++ clang/lib/Driver/ToolChains/Clang.cpp
@@ -5560,9 +5560,9 @@
(RTTIMode == ToolChain::RM_Disabled)))
 CmdArgs.push_back("-fno-rtti");
 
-  // -fshort-enums=0 is default for all architectures except Hexagon.
+  // -fshort-enums=0 is default for all architectures except Hexagon and z/OS.
   if (Args.hasFlag(options::OPT_fshort_enums, options::OPT_fno_short_enums,
-   TC.getArch() == llvm::Triple::hexagon))
+   TC.getArch() == llvm::Triple::hexagon || Triple.isOSzOS()))
 CmdArgs.push_back("-fshort-enums");
 
   RenderCharacterOptions(Args, AuxTriple ? *AuxTriple : RawTriple, CmdArgs);
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D89801: [SystemZ][z/OS] Set short-enums as the default for z/OS

2020-10-21 Thread Jonathan Crowther via Phabricator via cfe-commits
Jonathan.Crowther updated this revision to Diff 299779.
Jonathan.Crowther added a comment.

Added a test for `-fno-short-enums`


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D89801/new/

https://reviews.llvm.org/D89801

Files:
  clang/lib/Driver/ToolChains/Clang.cpp
  clang/test/Driver/zos-driver-defaults.c


Index: clang/test/Driver/zos-driver-defaults.c
===
--- /dev/null
+++ clang/test/Driver/zos-driver-defaults.c
@@ -0,0 +1,9 @@
+// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck 
--check-prefix=CHECK-SHORT-ENUMS %s
+// RUN: %clang -### --target=s390x-none-zos -fno-short-enums -fsyntax-only %s 
2>&1 | FileCheck %s
+// REQUIRES: clang-driver
+
+//CHECK-SHORT-ENUMS: -fshort-enums
+//CHECK-SHORT-ENUMS: -fno-signed-char
+
+//CHECK-NOT: -fshort-enums
+//CHECK: -fno-signed-char
Index: clang/lib/Driver/ToolChains/Clang.cpp
===
--- clang/lib/Driver/ToolChains/Clang.cpp
+++ clang/lib/Driver/ToolChains/Clang.cpp
@@ -5560,9 +5560,9 @@
(RTTIMode == ToolChain::RM_Disabled)))
 CmdArgs.push_back("-fno-rtti");
 
-  // -fshort-enums=0 is default for all architectures except Hexagon.
+  // -fshort-enums=0 is default for all architectures except Hexagon and z/OS.
   if (Args.hasFlag(options::OPT_fshort_enums, options::OPT_fno_short_enums,
-   TC.getArch() == llvm::Triple::hexagon))
+   TC.getArch() == llvm::Triple::hexagon || Triple.isOSzOS()))
 CmdArgs.push_back("-fshort-enums");
 
   RenderCharacterOptions(Args, AuxTriple ? *AuxTriple : RawTriple, CmdArgs);


Index: clang/test/Driver/zos-driver-defaults.c
===
--- /dev/null
+++ clang/test/Driver/zos-driver-defaults.c
@@ -0,0 +1,9 @@
+// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-SHORT-ENUMS %s
+// RUN: %clang -### --target=s390x-none-zos -fno-short-enums -fsyntax-only %s 2>&1 | FileCheck %s
+// REQUIRES: clang-driver
+
+//CHECK-SHORT-ENUMS: -fshort-enums
+//CHECK-SHORT-ENUMS: -fno-signed-char
+
+//CHECK-NOT: -fshort-enums
+//CHECK: -fno-signed-char
Index: clang/lib/Driver/ToolChains/Clang.cpp
===
--- clang/lib/Driver/ToolChains/Clang.cpp
+++ clang/lib/Driver/ToolChains/Clang.cpp
@@ -5560,9 +5560,9 @@
(RTTIMode == ToolChain::RM_Disabled)))
 CmdArgs.push_back("-fno-rtti");
 
-  // -fshort-enums=0 is default for all architectures except Hexagon.
+  // -fshort-enums=0 is default for all architectures except Hexagon and z/OS.
   if (Args.hasFlag(options::OPT_fshort_enums, options::OPT_fno_short_enums,
-   TC.getArch() == llvm::Triple::hexagon))
+   TC.getArch() == llvm::Triple::hexagon || Triple.isOSzOS()))
 CmdArgs.push_back("-fshort-enums");
 
   RenderCharacterOptions(Args, AuxTriple ? *AuxTriple : RawTriple, CmdArgs);
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D89801: [SystemZ][z/OS] Set short-enums as the default for z/OS

2020-10-22 Thread Jonathan Crowther via Phabricator via cfe-commits
Jonathan.Crowther updated this revision to Diff 300050.
Jonathan.Crowther added a comment.

Forgot to set the repository for my last patch. No code changes.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D89801/new/

https://reviews.llvm.org/D89801

Files:
  clang/lib/Driver/ToolChains/Clang.cpp
  clang/test/Driver/zos-driver-defaults.c


Index: clang/test/Driver/zos-driver-defaults.c
===
--- /dev/null
+++ clang/test/Driver/zos-driver-defaults.c
@@ -0,0 +1,9 @@
+// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck 
--check-prefix=CHECK-SHORT-ENUMS %s
+// RUN: %clang -### --target=s390x-none-zos -fno-short-enums -fsyntax-only %s 
2>&1 | FileCheck %s
+// REQUIRES: clang-driver
+
+//CHECK-SHORT-ENUMS: -fshort-enums
+//CHECK-SHORT-ENUMS: -fno-signed-char
+
+//CHECK-NOT: -fshort-enums
+//CHECK: -fno-signed-char
Index: clang/lib/Driver/ToolChains/Clang.cpp
===
--- clang/lib/Driver/ToolChains/Clang.cpp
+++ clang/lib/Driver/ToolChains/Clang.cpp
@@ -5560,9 +5560,9 @@
(RTTIMode == ToolChain::RM_Disabled)))
 CmdArgs.push_back("-fno-rtti");
 
-  // -fshort-enums=0 is default for all architectures except Hexagon.
+  // -fshort-enums=0 is default for all architectures except Hexagon and z/OS.
   if (Args.hasFlag(options::OPT_fshort_enums, options::OPT_fno_short_enums,
-   TC.getArch() == llvm::Triple::hexagon))
+   TC.getArch() == llvm::Triple::hexagon || Triple.isOSzOS()))
 CmdArgs.push_back("-fshort-enums");
 
   RenderCharacterOptions(Args, AuxTriple ? *AuxTriple : RawTriple, CmdArgs);


Index: clang/test/Driver/zos-driver-defaults.c
===
--- /dev/null
+++ clang/test/Driver/zos-driver-defaults.c
@@ -0,0 +1,9 @@
+// RUN: %clang -### --target=s390x-none-zos -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-SHORT-ENUMS %s
+// RUN: %clang -### --target=s390x-none-zos -fno-short-enums -fsyntax-only %s 2>&1 | FileCheck %s
+// REQUIRES: clang-driver
+
+//CHECK-SHORT-ENUMS: -fshort-enums
+//CHECK-SHORT-ENUMS: -fno-signed-char
+
+//CHECK-NOT: -fshort-enums
+//CHECK: -fno-signed-char
Index: clang/lib/Driver/ToolChains/Clang.cpp
===
--- clang/lib/Driver/ToolChains/Clang.cpp
+++ clang/lib/Driver/ToolChains/Clang.cpp
@@ -5560,9 +5560,9 @@
(RTTIMode == ToolChain::RM_Disabled)))
 CmdArgs.push_back("-fno-rtti");
 
-  // -fshort-enums=0 is default for all architectures except Hexagon.
+  // -fshort-enums=0 is default for all architectures except Hexagon and z/OS.
   if (Args.hasFlag(options::OPT_fshort_enums, options::OPT_fno_short_enums,
-   TC.getArch() == llvm::Triple::hexagon))
+   TC.getArch() == llvm::Triple::hexagon || Triple.isOSzOS()))
 CmdArgs.push_back("-fshort-enums");
 
   RenderCharacterOptions(Args, AuxTriple ? *AuxTriple : RawTriple, CmdArgs);
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D72736: [AIX] Add improved interface for retrieving load module paths

2020-01-20 Thread Jonathan Crowther via Phabricator via cfe-commits
Jonathan.Crowther updated this revision to Diff 239198.
Jonathan.Crowther added a comment.

Addressed comments by moving `getLoadModuleFilnameForFunction` to 
`llvm/lib/Support/SystemUtils.cpp`


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D72736/new/

https://reviews.llvm.org/D72736

Files:
  clang/lib/Tooling/CompilationDatabase.cpp
  clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp
  clang/tools/libclang/CIndexer.cpp
  llvm/include/llvm/Support/SystemUtils.h
  llvm/lib/Support/SystemUtils.cpp
  llvm/lib/Support/Unix/Path.inc
  llvm/unittests/Support/ProgramTest.cpp

Index: llvm/unittests/Support/ProgramTest.cpp
===
--- llvm/unittests/Support/ProgramTest.cpp
+++ llvm/unittests/Support/ProgramTest.cpp
@@ -58,6 +58,8 @@
 static cl::opt
 ProgramTestStringArg2("program-test-string-arg2");
 
+void DummyFunction() {}
+
 class ProgramEnvTest : public testing::Test {
   std::vector EnvTable;
   std::vector EnvStorage;
@@ -114,8 +116,8 @@
 exit(0);
 
   // getMainExecutable returns an absolute path; prepend the long-path prefix.
-  std::string MyAbsExe =
-  sys::fs::getMainExecutable(TestMainArgv0, &ProgramTestStringArg1);
+  void *MainAddr = (void *)(intptr_t)DummyFunction;
+  std::string MyAbsExe = sys::fs::getMainExecutable(TestMainArgv0, MainAddr);
   std::string MyExe;
   if (!StringRef(MyAbsExe).startswith("?\\"))
 MyExe.append("?\\");
@@ -160,8 +162,8 @@
 exit(1);
   }
 
-  std::string my_exe =
-  sys::fs::getMainExecutable(TestMainArgv0, &ProgramTestStringArg1);
+  void *MainAddr = (void *)(intptr_t)DummyFunction;
+  std::string my_exe = sys::fs::getMainExecutable(TestMainArgv0, MainAddr);
   StringRef argv[] = {
   my_exe,
   "--gtest_filter=ProgramEnvTest.CreateProcessTrailingSlash",
@@ -197,8 +199,8 @@
 exit(0);
   }
 
-  std::string Executable =
-  sys::fs::getMainExecutable(TestMainArgv0, &ProgramTestStringArg1);
+  void *MainAddr = (void *)(intptr_t)DummyFunction;
+  std::string Executable = sys::fs::getMainExecutable(TestMainArgv0, MainAddr);
   StringRef argv[] = {Executable,
   "--gtest_filter=ProgramEnvTest.TestExecuteNoWait"};
 
@@ -252,8 +254,8 @@
 exit(0);
   }
 
-  std::string Executable =
-  sys::fs::getMainExecutable(TestMainArgv0, &ProgramTestStringArg1);
+  void *MainAddr = (void *)(intptr_t)DummyFunction;
+  std::string Executable = sys::fs::getMainExecutable(TestMainArgv0, MainAddr);
   StringRef argv[] = {
   Executable, "--gtest_filter=ProgramEnvTest.TestExecuteAndWaitTimeout"};
 
Index: llvm/lib/Support/Unix/Path.inc
===
--- llvm/lib/Support/Unix/Path.inc
+++ llvm/lib/Support/Unix/Path.inc
@@ -87,6 +87,7 @@
 #include 
 #elif defined(_AIX)
 #include 
+#include 
 
 //  depends on `uint` to be a typedef from  to
 // `uint_t`; however,  does not always declare `uint`. We provide
@@ -222,7 +223,7 @@
   if (getprogpath(exe_path, argv0) != NULL)
 return exe_path;
 #elif defined(__NetBSD__) || defined(__OpenBSD__) || defined(__minix) ||   \
-defined(__DragonFly__) || defined(__FreeBSD_kernel__) || defined(_AIX)
+defined(__DragonFly__) || defined(__FreeBSD_kernel__)
   const char *curproc = "/proc/curproc/file";
   char exe_path[PATH_MAX];
   if (sys::fs::exists(curproc)) {
@@ -238,6 +239,8 @@
   // If we don't have procfs mounted, fall back to argv[0]
   if (getprogpath(exe_path, argv0) != NULL)
 return exe_path;
+#elif defined(_AIX)
+  return getLoadModuleFilenameForFunction(MainAddr)->c_str();
 #elif defined(__linux__) || defined(__CYGWIN__) || defined(__gnu_hurd__)
   char exe_path[MAXPATHLEN];
   const char *aPath = "/proc/self/exe";
Index: llvm/lib/Support/SystemUtils.cpp
===
--- llvm/lib/Support/SystemUtils.cpp
+++ llvm/lib/Support/SystemUtils.cpp
@@ -13,6 +13,17 @@
 
 #include "llvm/Support/SystemUtils.h"
 #include "llvm/Support/raw_ostream.h"
+
+// These typedefs are needed for sys/ldr.h to work on AIX
+#if defined(_AIX)
+typedef unsigned int uint;
+typedef unsigned short ushort;
+typedef void *__ptr64;
+static_assert(sizeof(__ptr64) == 8u, "__ptr64 size error.");
+#include 
+#include 
+#endif
+
 using namespace llvm;
 
 bool llvm::CheckBitcodeOutputToConsole(raw_ostream &stream_to_check,
@@ -28,3 +39,66 @@
   }
   return false;
 }
+
+#if defined(_AIX)
+// Returns the name of the load module that contains the entry point of the
+// function referenced by fp.
+static SmallString<128> getLoadModuleFilenameForFunctionAIX(void (*fp)(void)) {
+  int PrevErrno = errno;
+
+  size_t BufSize = 2048u;
+  std::unique_ptr Buf;
+  while (true) {
+Buf = std::make_unique(BufSize);
+errno = 0;
+int Ret = loadquery(L_GETXINFO, Buf.get(), (unsigned int)BufSize);
+if (Ret != -1)
+  break; // loadquery() was successful.
+if (errno != ENOMEM)
+  llvm_unreachable("Encountered 

[PATCH] D100488: [SystemZ][z/OS] Add IsText Argument to GetFile and GetFileOrSTDIN

2021-04-14 Thread Jonathan Crowther via Phabricator via cfe-commits
Jonathan.Crowther created this revision.
Jonathan.Crowther added reviewers: abhina.sreeskantharajan, anirudhp, muiez, 
zibi, yusra.syeda, rnk, amccarth.
Herald added subscribers: wenlei, hiraditya.
Jonathan.Crowther requested review of this revision.
Herald added projects: clang, LLVM.
Herald added subscribers: llvm-commits, cfe-commits.

Add the `IsText` argument to `GetFile` and `GetFileOrSTDIN` which will help 
z/OS distinguish between text and binary correctly. This is an extension to 
this patch 


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D100488

Files:
  clang/tools/driver/cc1as_main.cpp
  llvm/lib/AsmParser/Parser.cpp
  llvm/lib/CodeGen/MIRParser/MIRParser.cpp
  llvm/lib/ProfileData/InstrProfReader.cpp
  llvm/lib/ProfileData/SampleProfReader.cpp
  llvm/lib/Testing/Support/SupportHelpers.cpp
  llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
  llvm/tools/llvm-ifs/llvm-ifs.cpp
  llvm/tools/llvm-mc/llvm-mc.cpp

Index: llvm/tools/llvm-mc/llvm-mc.cpp
===
--- llvm/tools/llvm-mc/llvm-mc.cpp
+++ llvm/tools/llvm-mc/llvm-mc.cpp
@@ -343,7 +343,7 @@
   Triple TheTriple(TripleName);
 
   ErrorOr> BufferPtr =
-  MemoryBuffer::getFileOrSTDIN(InputFilename);
+  MemoryBuffer::getFileOrSTDIN(InputFilename, /*IsText=*/true);
   if (std::error_code EC = BufferPtr.getError()) {
 WithColor::error(errs(), ProgName)
 << InputFilename << ": " << EC.message() << '\n';
Index: llvm/tools/llvm-ifs/llvm-ifs.cpp
===
--- llvm/tools/llvm-ifs/llvm-ifs.cpp
+++ llvm/tools/llvm-ifs/llvm-ifs.cpp
@@ -182,7 +182,7 @@
 static Expected> readInputFile(StringRef FilePath) {
   // Read in file.
   ErrorOr> BufOrError =
-  MemoryBuffer::getFileOrSTDIN(FilePath);
+  MemoryBuffer::getFileOrSTDIN(FilePath, /*IsText=*/true);
   if (!BufOrError)
 return createStringError(BufOrError.getError(), "Could not open `%s`",
  FilePath.data());
Index: llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
===
--- llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
+++ llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
@@ -334,7 +334,7 @@
 Expected
 InstructionBenchmark::readYaml(const LLVMState &State, StringRef Filename) {
   if (auto ExpectedMemoryBuffer =
-  errorOrToExpected(MemoryBuffer::getFile(Filename))) {
+  errorOrToExpected(MemoryBuffer::getFile(Filename, /*IsText=*/true))) {
 yaml::Input Yin(*ExpectedMemoryBuffer.get());
 YamlContext Context(State);
 InstructionBenchmark Benchmark;
@@ -351,7 +351,7 @@
 Expected>
 InstructionBenchmark::readYamls(const LLVMState &State, StringRef Filename) {
   if (auto ExpectedMemoryBuffer =
-  errorOrToExpected(MemoryBuffer::getFile(Filename))) {
+  errorOrToExpected(MemoryBuffer::getFile(Filename, /*IsText=*/true))) {
 yaml::Input Yin(*ExpectedMemoryBuffer.get());
 YamlContext Context(State);
 std::vector Benchmarks;
Index: llvm/lib/Testing/Support/SupportHelpers.cpp
===
--- llvm/lib/Testing/Support/SupportHelpers.cpp
+++ llvm/lib/Testing/Support/SupportHelpers.cpp
@@ -40,7 +40,7 @@
 
   EXPECT_TRUE(Found) << "Unit test source directory file does not exist.";
 
-  auto File = MemoryBuffer::getFile(InputFilePath);
+  auto File = MemoryBuffer::getFile(InputFilePath, /*IsText=*/true);
 
   EXPECT_TRUE(static_cast(File))
   << "Could not open unit test source directory file.";
Index: llvm/lib/ProfileData/SampleProfReader.cpp
===
--- llvm/lib/ProfileData/SampleProfReader.cpp
+++ llvm/lib/ProfileData/SampleProfReader.cpp
@@ -1575,7 +1575,7 @@
 /// \returns an error code indicating the status of the buffer.
 static ErrorOr>
 setupMemoryBuffer(const Twine &Filename) {
-  auto BufferOrErr = MemoryBuffer::getFileOrSTDIN(Filename);
+  auto BufferOrErr = MemoryBuffer::getFileOrSTDIN(Filename, /*IsText=*/true);
   if (std::error_code EC = BufferOrErr.getError())
 return EC;
   auto Buffer = std::move(BufferOrErr.get());
Index: llvm/lib/ProfileData/InstrProfReader.cpp
===
--- llvm/lib/ProfileData/InstrProfReader.cpp
+++ llvm/lib/ProfileData/InstrProfReader.cpp
@@ -41,7 +41,7 @@
 static Expected>
 setupMemoryBuffer(const Twine &Path) {
   ErrorOr> BufferOrErr =
-  MemoryBuffer::getFileOrSTDIN(Path);
+  MemoryBuffer::getFileOrSTDIN(Path, /*IsText=*/true);
   if (std::error_code EC = BufferOrErr.getError())
 return errorCodeToError(EC);
   return std::move(BufferOrErr.get());
Index: llvm/lib/CodeGen/MIRParser/MIRParser.cpp
===
--- llvm/lib/CodeGen/MIRParser/MIRParser.cpp
+++ llvm/lib/CodeGen/MIRParser/MIRParser

[PATCH] D100488: [SystemZ][z/OS] Add IsText Argument to GetFile and GetFileOrSTDIN

2021-04-15 Thread Jonathan Crowther via Phabricator via cfe-commits
Jonathan.Crowther updated this revision to Diff 337764.
Jonathan.Crowther added a comment.

No updates, just want to kick off the CI again.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100488/new/

https://reviews.llvm.org/D100488

Files:
  clang/tools/driver/cc1as_main.cpp
  llvm/lib/AsmParser/Parser.cpp
  llvm/lib/CodeGen/MIRParser/MIRParser.cpp
  llvm/lib/ProfileData/InstrProfReader.cpp
  llvm/lib/ProfileData/SampleProfReader.cpp
  llvm/lib/Testing/Support/SupportHelpers.cpp
  llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
  llvm/tools/llvm-ifs/llvm-ifs.cpp
  llvm/tools/llvm-mc/llvm-mc.cpp

Index: llvm/tools/llvm-mc/llvm-mc.cpp
===
--- llvm/tools/llvm-mc/llvm-mc.cpp
+++ llvm/tools/llvm-mc/llvm-mc.cpp
@@ -343,7 +343,7 @@
   Triple TheTriple(TripleName);
 
   ErrorOr> BufferPtr =
-  MemoryBuffer::getFileOrSTDIN(InputFilename);
+  MemoryBuffer::getFileOrSTDIN(InputFilename, /*IsText=*/true);
   if (std::error_code EC = BufferPtr.getError()) {
 WithColor::error(errs(), ProgName)
 << InputFilename << ": " << EC.message() << '\n';
Index: llvm/tools/llvm-ifs/llvm-ifs.cpp
===
--- llvm/tools/llvm-ifs/llvm-ifs.cpp
+++ llvm/tools/llvm-ifs/llvm-ifs.cpp
@@ -182,7 +182,7 @@
 static Expected> readInputFile(StringRef FilePath) {
   // Read in file.
   ErrorOr> BufOrError =
-  MemoryBuffer::getFileOrSTDIN(FilePath);
+  MemoryBuffer::getFileOrSTDIN(FilePath, /*IsText=*/true);
   if (!BufOrError)
 return createStringError(BufOrError.getError(), "Could not open `%s`",
  FilePath.data());
Index: llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
===
--- llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
+++ llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
@@ -334,7 +334,7 @@
 Expected
 InstructionBenchmark::readYaml(const LLVMState &State, StringRef Filename) {
   if (auto ExpectedMemoryBuffer =
-  errorOrToExpected(MemoryBuffer::getFile(Filename))) {
+  errorOrToExpected(MemoryBuffer::getFile(Filename, /*IsText=*/true))) {
 yaml::Input Yin(*ExpectedMemoryBuffer.get());
 YamlContext Context(State);
 InstructionBenchmark Benchmark;
@@ -351,7 +351,7 @@
 Expected>
 InstructionBenchmark::readYamls(const LLVMState &State, StringRef Filename) {
   if (auto ExpectedMemoryBuffer =
-  errorOrToExpected(MemoryBuffer::getFile(Filename))) {
+  errorOrToExpected(MemoryBuffer::getFile(Filename, /*IsText=*/true))) {
 yaml::Input Yin(*ExpectedMemoryBuffer.get());
 YamlContext Context(State);
 std::vector Benchmarks;
Index: llvm/lib/Testing/Support/SupportHelpers.cpp
===
--- llvm/lib/Testing/Support/SupportHelpers.cpp
+++ llvm/lib/Testing/Support/SupportHelpers.cpp
@@ -40,7 +40,7 @@
 
   EXPECT_TRUE(Found) << "Unit test source directory file does not exist.";
 
-  auto File = MemoryBuffer::getFile(InputFilePath);
+  auto File = MemoryBuffer::getFile(InputFilePath, /*IsText=*/true);
 
   EXPECT_TRUE(static_cast(File))
   << "Could not open unit test source directory file.";
Index: llvm/lib/ProfileData/SampleProfReader.cpp
===
--- llvm/lib/ProfileData/SampleProfReader.cpp
+++ llvm/lib/ProfileData/SampleProfReader.cpp
@@ -1575,7 +1575,7 @@
 /// \returns an error code indicating the status of the buffer.
 static ErrorOr>
 setupMemoryBuffer(const Twine &Filename) {
-  auto BufferOrErr = MemoryBuffer::getFileOrSTDIN(Filename);
+  auto BufferOrErr = MemoryBuffer::getFileOrSTDIN(Filename, /*IsText=*/true);
   if (std::error_code EC = BufferOrErr.getError())
 return EC;
   auto Buffer = std::move(BufferOrErr.get());
Index: llvm/lib/ProfileData/InstrProfReader.cpp
===
--- llvm/lib/ProfileData/InstrProfReader.cpp
+++ llvm/lib/ProfileData/InstrProfReader.cpp
@@ -41,7 +41,7 @@
 static Expected>
 setupMemoryBuffer(const Twine &Path) {
   ErrorOr> BufferOrErr =
-  MemoryBuffer::getFileOrSTDIN(Path);
+  MemoryBuffer::getFileOrSTDIN(Path, /*IsText=*/true);
   if (std::error_code EC = BufferOrErr.getError())
 return errorCodeToError(EC);
   return std::move(BufferOrErr.get());
Index: llvm/lib/CodeGen/MIRParser/MIRParser.cpp
===
--- llvm/lib/CodeGen/MIRParser/MIRParser.cpp
+++ llvm/lib/CodeGen/MIRParser/MIRParser.cpp
@@ -984,7 +984,7 @@
 std::unique_ptr llvm::createMIRParserFromFile(
 StringRef Filename, SMDiagnostic &Error, LLVMContext &Context,
 std::function ProcessIRFunction) {
-  auto FileOrErr = MemoryBuffer::getFileOrSTDIN(Filename);
+  auto FileOrErr = MemoryBuffer::getFileOrSTDIN(Filename, /*IsText=*/true);
   if (std::err

[PATCH] D100056: [SystemZ][z/OS] Set files in FileRemapper.cpp are text

2021-04-16 Thread Jonathan Crowther via Phabricator via cfe-commits
Jonathan.Crowther accepted this revision.
Jonathan.Crowther added a comment.
This revision is now accepted and ready to land.

LGTM


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100056/new/

https://reviews.llvm.org/D100056

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D100654: [SystemZ][z/OS] Set more text files as text

2021-04-19 Thread Jonathan Crowther via Phabricator via cfe-commits
Jonathan.Crowther accepted this revision.
Jonathan.Crowther added a comment.
This revision is now accepted and ready to land.

LGTM


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D100654/new/

https://reviews.llvm.org/D100654

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits