r333311 - [DebugInfo] Don't bother with MD5 checksums of preprocessed files.

2018-05-25 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Fri May 25 13:59:29 2018
New Revision: 11

URL: http://llvm.org/viewvc/llvm-project?rev=11&view=rev
Log:
[DebugInfo] Don't bother with MD5 checksums of preprocessed files.

The checksum will not reflect the real source, so there's no clear
reason to include them in the debug info.  Also this was causing a
crash on the DWARF side.

Differential Revision: https://reviews.llvm.org/D47260

Added:
cfe/trunk/test/CodeGen/md5-checksum-crash.c
Modified:
cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
cfe/trunk/lib/CodeGen/CGDebugInfo.h

Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=11&r1=10&r2=11&view=diff
==
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Fri May 25 13:59:29 2018
@@ -67,6 +67,8 @@ CGDebugInfo::CGDebugInfo(CodeGenModule &
   DBuilder(CGM.getModule()) {
   for (const auto &KV : CGM.getCodeGenOpts().DebugPrefixMap)
 DebugPrefixMap[KV.first] = KV.second;
+  EmitFileChecksums = CGM.getCodeGenOpts().EmitCodeView ||
+  CGM.getCodeGenOpts().DwarfVersion >= 5;
   CreateCompileUnit();
 }
 
@@ -365,15 +367,21 @@ Optional
 CGDebugInfo::computeChecksum(FileID FID, SmallString<32> &Checksum) const {
   Checksum.clear();
 
-  if (!CGM.getCodeGenOpts().EmitCodeView &&
-  CGM.getCodeGenOpts().DwarfVersion < 5)
+  if (!EmitFileChecksums)
 return None;
 
   SourceManager &SM = CGM.getContext().getSourceManager();
   bool Invalid;
-  llvm::MemoryBuffer *MemBuffer = SM.getBuffer(FID, &Invalid);
-  if (Invalid)
+  const SrcMgr::SLocEntry &Entry = SM.getSLocEntry(FID, &Invalid);
+  if (Invalid || !Entry.isFile())
 return None;
+  if (Entry.getFile().hasLineDirectives()) {
+// This must be a preprocessed file; its content won't match the original
+// source; therefore checksumming the text we have is pointless or wrong.
+EmitFileChecksums = false;
+return None;
+  }
+  llvm::MemoryBuffer *MemBuffer = SM.getBuffer(FID);
 
   llvm::MD5 Hash;
   llvm::MD5::MD5Result Result;

Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=11&r1=10&r2=11&view=diff
==
--- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Fri May 25 13:59:29 2018
@@ -57,6 +57,7 @@ class CGDebugInfo {
   CodeGenModule &CGM;
   const codegenoptions::DebugInfoKind DebugKind;
   bool DebugTypeExtRefs;
+  mutable bool EmitFileChecksums;
   llvm::DIBuilder DBuilder;
   llvm::DICompileUnit *TheCU = nullptr;
   ModuleMap *ClangModuleMap = nullptr;

Added: cfe/trunk/test/CodeGen/md5-checksum-crash.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/md5-checksum-crash.c?rev=11&view=auto
==
--- cfe/trunk/test/CodeGen/md5-checksum-crash.c (added)
+++ cfe/trunk/test/CodeGen/md5-checksum-crash.c Fri May 25 13:59:29 2018
@@ -0,0 +1,13 @@
+// RUN: %clang_cc1 -triple %itanium_abi_triple -debug-info-kind=limited 
-dwarf-version=5 %s -emit-llvm -o- | FileCheck %s
+// RUN: %clang_cc1 -triple %ms_abi_triple -gcodeview -debug-info-kind=limited 
%s -emit-llvm -o- | FileCheck %s
+
+// This had been crashing, no MD5 checksum for string.h.
+// Now if there are #line directives, don't bother with checksums
+// as a preprocessed file won't properly reflect the original source.
+#define __NTH fct
+void fn1() {}
+# 7 "/usr/include/string.h"
+void __NTH() {}
+// Verify no checksum attributes on these files.
+// CHECK-DAG: DIFile(filename: "{{.*}}.c", directory: "{{[^"]*}}")
+// CHECK-DAG: DIFile(filename: "{{.*}}string.h", directory: "{{[^"]*}}")


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


r333319 - Revert "[DebugInfo] Don't bother with MD5 checksums of preprocessed files."

2018-05-25 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Fri May 25 15:35:59 2018
New Revision: 19

URL: http://llvm.org/viewvc/llvm-project?rev=19&view=rev
Log:
Revert "[DebugInfo] Don't bother with MD5 checksums of preprocessed files."

This reverts commit d734f2aa3f76fbf355ecd2bbe081d0c1f49867ab.
Also known as r11.  A very small but nonzero number of bots fail.

Removed:
cfe/trunk/test/CodeGen/md5-checksum-crash.c
Modified:
cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
cfe/trunk/lib/CodeGen/CGDebugInfo.h

Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=19&r1=18&r2=19&view=diff
==
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Fri May 25 15:35:59 2018
@@ -67,8 +67,6 @@ CGDebugInfo::CGDebugInfo(CodeGenModule &
   DBuilder(CGM.getModule()) {
   for (const auto &KV : CGM.getCodeGenOpts().DebugPrefixMap)
 DebugPrefixMap[KV.first] = KV.second;
-  EmitFileChecksums = CGM.getCodeGenOpts().EmitCodeView ||
-  CGM.getCodeGenOpts().DwarfVersion >= 5;
   CreateCompileUnit();
 }
 
@@ -367,21 +365,15 @@ Optional
 CGDebugInfo::computeChecksum(FileID FID, SmallString<32> &Checksum) const {
   Checksum.clear();
 
-  if (!EmitFileChecksums)
+  if (!CGM.getCodeGenOpts().EmitCodeView &&
+  CGM.getCodeGenOpts().DwarfVersion < 5)
 return None;
 
   SourceManager &SM = CGM.getContext().getSourceManager();
   bool Invalid;
-  const SrcMgr::SLocEntry &Entry = SM.getSLocEntry(FID, &Invalid);
-  if (Invalid || !Entry.isFile())
+  llvm::MemoryBuffer *MemBuffer = SM.getBuffer(FID, &Invalid);
+  if (Invalid)
 return None;
-  if (Entry.getFile().hasLineDirectives()) {
-// This must be a preprocessed file; its content won't match the original
-// source; therefore checksumming the text we have is pointless or wrong.
-EmitFileChecksums = false;
-return None;
-  }
-  llvm::MemoryBuffer *MemBuffer = SM.getBuffer(FID);
 
   llvm::MD5 Hash;
   llvm::MD5::MD5Result Result;

Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=19&r1=18&r2=19&view=diff
==
--- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Fri May 25 15:35:59 2018
@@ -57,7 +57,6 @@ class CGDebugInfo {
   CodeGenModule &CGM;
   const codegenoptions::DebugInfoKind DebugKind;
   bool DebugTypeExtRefs;
-  mutable bool EmitFileChecksums;
   llvm::DIBuilder DBuilder;
   llvm::DICompileUnit *TheCU = nullptr;
   ModuleMap *ClangModuleMap = nullptr;

Removed: cfe/trunk/test/CodeGen/md5-checksum-crash.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/md5-checksum-crash.c?rev=18&view=auto
==
--- cfe/trunk/test/CodeGen/md5-checksum-crash.c (original)
+++ cfe/trunk/test/CodeGen/md5-checksum-crash.c (removed)
@@ -1,13 +0,0 @@
-// RUN: %clang_cc1 -triple %itanium_abi_triple -debug-info-kind=limited 
-dwarf-version=5 %s -emit-llvm -o- | FileCheck %s
-// RUN: %clang_cc1 -triple %ms_abi_triple -gcodeview -debug-info-kind=limited 
%s -emit-llvm -o- | FileCheck %s
-
-// This had been crashing, no MD5 checksum for string.h.
-// Now if there are #line directives, don't bother with checksums
-// as a preprocessed file won't properly reflect the original source.
-#define __NTH fct
-void fn1() {}
-# 7 "/usr/include/string.h"
-void __NTH() {}
-// Verify no checksum attributes on these files.
-// CHECK-DAG: DIFile(filename: "{{.*}}.c", directory: "{{[^"]*}}")
-// CHECK-DAG: DIFile(filename: "{{.*}}string.h", directory: "{{[^"]*}}")


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


r314444 - [DWARF] Allow forward declarations of a class template instantiation

2017-09-28 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Thu Sep 28 11:37:02 2017
New Revision: 31

URL: http://llvm.org/viewvc/llvm-project?rev=31&view=rev
Log:
[DWARF] Allow forward declarations of a class template instantiation
to have child entries describing the template parameters.  This will
be on by default for SCE tuning.

Differential Revision: https://reviews.llvm.org/D14358

Added:
cfe/trunk/test/CodeGenCXX/debug-info-fwd-template-param.cpp
Modified:
cfe/trunk/include/clang/Driver/CC1Options.td
cfe/trunk/include/clang/Frontend/CodeGenOptions.def
cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
cfe/trunk/lib/Driver/ToolChains/Clang.cpp
cfe/trunk/lib/Frontend/CompilerInvocation.cpp

Modified: cfe/trunk/include/clang/Driver/CC1Options.td
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/CC1Options.td?rev=31&r1=314443&r2=31&view=diff
==
--- cfe/trunk/include/clang/Driver/CC1Options.td (original)
+++ cfe/trunk/include/clang/Driver/CC1Options.td Thu Sep 28 11:37:02 2017
@@ -200,6 +200,9 @@ def arange_sections : Flag<["-"], "arang
 def dwarf_ext_refs : Flag<["-"], "dwarf-ext-refs">,
   HelpText<"Generate debug info with external references to clang modules"
" or precompiled headers">;
+def debug_forward_template_params : Flag<["-"], 
"debug-forward-template-params">,
+  HelpText<"Emit complete descriptions of template parameters in forward"
+   " declarations">;
 def fforbid_guard_variables : Flag<["-"], "fforbid-guard-variables">,
   HelpText<"Emit an error if a C++ static local initializer would need a guard 
variable">;
 def no_implicit_float : Flag<["-"], "no-implicit-float">,

Modified: cfe/trunk/include/clang/Frontend/CodeGenOptions.def
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/CodeGenOptions.def?rev=31&r1=314443&r2=31&view=diff
==
--- cfe/trunk/include/clang/Frontend/CodeGenOptions.def (original)
+++ cfe/trunk/include/clang/Frontend/CodeGenOptions.def Thu Sep 28 11:37:02 2017
@@ -219,6 +219,10 @@ CODEGENOPT(EnableSplitDwarf, 1, 0) ///<
 CODEGENOPT(SplitDwarfInlining, 1, 1) ///< Whether to include inlining info in 
the
  ///< skeleton CU to allow for 
symbolication
 ///< of inline stack frames without .dwo 
files.
+CODEGENOPT(DebugFwdTemplateParams, 1, 0) ///< Whether to emit complete
+ ///< template parameter descriptions 
in
+ ///< forward declarations (versus just
+ ///< including them in the name).
 
 CODEGENOPT(EmitLLVMUseLists, 1, 0) ///< Control whether to serialize use-lists.
 

Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=31&r1=314443&r2=31&view=diff
==
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Thu Sep 28 11:37:02 2017
@@ -833,6 +833,10 @@ CGDebugInfo::getOrCreateRecordFwdDecl(co
   llvm::DICompositeType *RetTy = DBuilder.createReplaceableCompositeType(
   getTagForRecord(RD), RDName, Ctx, DefUnit, Line, 0, Size, Align,
   llvm::DINode::FlagFwdDecl, FullName);
+  if (CGM.getCodeGenOpts().DebugFwdTemplateParams)
+if (auto *TSpecial = dyn_cast(RD))
+  DBuilder.replaceArrays(RetTy, llvm::DINodeArray(),
+ CollectCXXTemplateParams(TSpecial, DefUnit));
   ReplaceMap.emplace_back(
   std::piecewise_construct, std::make_tuple(Ty),
   std::make_tuple(static_cast(RetTy)));

Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Clang.cpp?rev=31&r1=314443&r2=31&view=diff
==
--- cfe/trunk/lib/Driver/ToolChains/Clang.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Clang.cpp Thu Sep 28 11:37:02 2017
@@ -2969,6 +2969,11 @@ static void RenderDebugOptions(const Too
 CmdArgs.push_back("-generate-type-units");
   }
 
+  // Decide how to render forward declarations of template instantiations.
+  // SCE wants full descriptions, others just get them in the name.
+  if (DebuggerTuning == llvm::DebuggerKind::SCE)
+CmdArgs.push_back("-debug-forward-template-params");
+
   RenderDebugInfoCompressionArgs(Args, CmdArgs, D);
 }
 

Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=31&r1=314443&r2=31&view=diff
==
--- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)
+++ cfe/trunk/li

r314558 - [PS4] Tidy up some debug-tuning v. triple decision-making.

2017-09-29 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Fri Sep 29 14:25:07 2017
New Revision: 314558

URL: http://llvm.org/viewvc/llvm-project?rev=314558&view=rev
Log:
[PS4] Tidy up some debug-tuning v. triple decision-making.

Modified:
cfe/trunk/include/clang/Driver/CC1Options.td
cfe/trunk/lib/Driver/ToolChains/Clang.cpp
cfe/trunk/lib/Frontend/CompilerInvocation.cpp
cfe/trunk/test/CodeGenCXX/debug-info-anon-namespace.cpp
cfe/trunk/test/Driver/debug-options.c

Modified: cfe/trunk/include/clang/Driver/CC1Options.td
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/CC1Options.td?rev=314558&r1=314557&r2=314558&view=diff
==
--- cfe/trunk/include/clang/Driver/CC1Options.td (original)
+++ cfe/trunk/include/clang/Driver/CC1Options.td Fri Sep 29 14:25:07 2017
@@ -200,6 +200,9 @@ def arange_sections : Flag<["-"], "arang
 def dwarf_ext_refs : Flag<["-"], "dwarf-ext-refs">,
   HelpText<"Generate debug info with external references to clang modules"
" or precompiled headers">;
+def dwarf_explicit_import : Flag<["-"], "dwarf-explicit-import">,
+  HelpText<"Generate explicit import from anonymous namespace to containing"
+   " scope">;
 def debug_forward_template_params : Flag<["-"], 
"debug-forward-template-params">,
   HelpText<"Emit complete descriptions of template parameters in forward"
" declarations">;

Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Clang.cpp?rev=314558&r1=314557&r2=314558&view=diff
==
--- cfe/trunk/lib/Driver/ToolChains/Clang.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Clang.cpp Fri Sep 29 14:25:07 2017
@@ -2816,8 +2816,6 @@ static void RenderDebugOptions(const Too
ArgStringList &CmdArgs,
codegenoptions::DebugInfoKind &DebugInfoKind,
const Arg *&SplitDWARFArg) {
-  bool IsPS4CPU = T.isPS4CPU();
-
   if (Args.hasFlag(options::OPT_fdebug_info_for_profiling,
options::OPT_fno_debug_info_for_profiling, false))
 CmdArgs.push_back("-fdebug-info-for-profiling");
@@ -2900,13 +2898,14 @@ static void RenderDebugOptions(const Too
   // And we handle flag -grecord-gcc-switches later with DWARFDebugFlags.
   Args.ClaimAllArgs(options::OPT_g_flags_Group);
 
-  // Column info is included by default for everything except PS4 and CodeView.
+  // Column info is included by default for everything except SCE and CodeView.
   // Clang doesn't track end columns, just starting columns, which, in theory,
   // is fine for CodeView (and PDB).  In practice, however, the Microsoft
   // debuggers don't handle missing end columns well, so it's better not to
   // include any column info.
   if (Args.hasFlag(options::OPT_gcolumn_info, options::OPT_gno_column_info,
-   /*Default=*/ !IsPS4CPU && !(IsWindowsMSVC && EmitCodeView)))
+   /*Default=*/!(IsWindowsMSVC && EmitCodeView) &&
+   DebuggerTuning != llvm::DebuggerKind::SCE))
 CmdArgs.push_back("-dwarf-column-info");
 
   // FIXME: Move backend command line options to the module.
@@ -2957,8 +2956,9 @@ static void RenderDebugOptions(const Too
 
   // -gdwarf-aranges turns on the emission of the aranges section in the
   // backend.
-  // Always enabled on the PS4.
-  if (Args.hasArg(options::OPT_gdwarf_aranges) || IsPS4CPU) {
+  // Always enabled for SCE tuning.
+  if (Args.hasArg(options::OPT_gdwarf_aranges) ||
+  DebuggerTuning == llvm::DebuggerKind::SCE) {
 CmdArgs.push_back("-backend-option");
 CmdArgs.push_back("-generate-arange-section");
   }
@@ -2974,6 +2974,10 @@ static void RenderDebugOptions(const Too
   if (DebuggerTuning == llvm::DebuggerKind::SCE)
 CmdArgs.push_back("-debug-forward-template-params");
 
+  // Do we need to explicitly import anonymous namespaces into the parent 
scope?
+  if (DebuggerTuning == llvm::DebuggerKind::SCE)
+CmdArgs.push_back("-dwarf-explicit-import");
+
   RenderDebugInfoCompressionArgs(Args, CmdArgs, D);
 }
 

Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=314558&r1=314557&r2=314558&view=diff
==
--- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)
+++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Fri Sep 29 14:25:07 2017
@@ -527,7 +527,7 @@ static bool ParseCodeGenArgs(CodeGenOpti
   Opts.SplitDwarfFile = Args.getLastArgValue(OPT_split_dwarf_file);
   Opts.SplitDwarfInlining = !Args.hasArg(OPT_fno_split_dwarf_inlining);
   Opts.DebugTypeExtRefs = Args.hasArg(OPT_dwarf_ext_refs);
-  Opts.DebugExplicitImport = Triple.isPS4CPU();
+  Opts.DebugExplicitImport = Args.hasArg(OPT_dwarf_expli

r315078 - For Windows, allow .exe extension in a test.

2017-10-06 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Fri Oct  6 10:12:28 2017
New Revision: 315078

URL: http://llvm.org/viewvc/llvm-project?rev=315078&view=rev
Log:
For Windows, allow .exe extension in a test.

Modified:
cfe/trunk/test/Driver/baremetal.cpp

Modified: cfe/trunk/test/Driver/baremetal.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/baremetal.cpp?rev=315078&r1=315077&r2=315078&view=diff
==
--- cfe/trunk/test/Driver/baremetal.cpp (original)
+++ cfe/trunk/test/Driver/baremetal.cpp Fri Oct  6 10:12:28 2017
@@ -10,7 +10,7 @@
 // CHECK-V6M-C-SAME: "-internal-isystem" 
"[[SYSROOT]]{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
 // CHECk-V6M-C-SAME: "-internal-isystem" "[[SYSROOT]]{{[/\\]+}}include"
 // CHECK-V6M-C-SAME: "-x" "c++" "{{.*}}baremetal.cpp"
-// CHECK-V6M-C-NEXT: "{{[^"]*}}ld.lld" "{{.*}}.o" "-Bstatic"
+// CHECK-V6M-C-NEXT: "{{[^"]*}}ld.lld{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
 // CHECK-V6M-C-SAME: "-L[[RESOURCE_DIR:[^"]+]]{{[/\\]+}}lib{{[/\\]+}}baremetal"
 // CHECK-V6M-C-SAME: "-T" "semihosted.lds" 
"-Lsome{{[/\\]+}}directory{{[/\\]+}}user{{[/\\]+}}asked{{[/\\]+}}for"
 // CHECK-V6M-C-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
@@ -32,7 +32,7 @@
 // RUN: -target armv6m-none-eabi \
 // RUN: --sysroot=%S/Inputs/baremetal_arm \
 // RUN:   | FileCheck --check-prefix=CHECK-V6M-DEFAULTCXX %s
-// CHECK-V6M-DEFAULTCXX: "{{[^"]*}}ld.lld" "{{.*}}.o" "-Bstatic"
+// CHECK-V6M-DEFAULTCXX: "{{[^"]*}}ld.lld{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
 // CHECK-V6M-DEFAULTCXX-SAME: 
"-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
 // CHECK-V6M-DEFAULTCXX-SAME: "-lc++" "-lc++abi" "-lunwind"
 // CHECK-V6M-DEFAULTCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
@@ -45,7 +45,7 @@
 // RUN:   | FileCheck --check-prefix=CHECK-V6M-LIBCXX %s
 // CHECK-V6M-LIBCXX-NOT: "-internal-isystem" 
"{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}{{[^v].*}}"
 // CHECK-V6M-LIBCXX: "-internal-isystem" 
"{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
-// CHECK-V6M-LIBCXX: "{{[^"]*}}ld.lld" "{{.*}}.o" "-Bstatic"
+// CHECK-V6M-LIBCXX: "{{[^"]*}}ld.lld{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
 // CHECK-V6M-LIBCXX-SAME: 
"-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
 // CHECK-V6M-LIBCXX-SAME: "-lc++" "-lc++abi" "-lunwind"
 // CHECK-V6M-LIBCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
@@ -58,7 +58,7 @@
 // RUN:   | FileCheck --check-prefix=CHECK-V6M-LIBSTDCXX %s
 // CHECK-V6M-LIBSTDCXX-NOT: "-internal-isystem" 
"{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}v1"
 // CHECK-V6M-LIBSTDCXX: "-internal-isystem" 
"{{[^"]+}}{{[/\\]+}}include{{[/\\]+}}c++{{[/\\]+}}6.0.0"
-// CHECK-V6M-LIBSTDCXX: "{{[^"]*}}ld.lld" "{{.*}}.o" "-Bstatic"
+// CHECK-V6M-LIBSTDCXX: "{{[^"]*}}ld.lld{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
 // CHECK-V6M-LIBSTDCXX-SAME: 
"-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
 // CHECK-V6M-LIBSTDCXX-SAME: "-lstdc++" "-lsupc++" "-lunwind"
 // CHECK-V6M-LIBSTDCXX-SAME: "-lc" "-lm" "-lclang_rt.builtins-armv6m.a"
@@ -69,7 +69,7 @@
 // RUN: --sysroot=%S/Inputs/baremetal_arm \
 // RUN: -nodefaultlibs \
 // RUN:   | FileCheck --check-prefix=CHECK-V6M-NDL %s
-// CHECK-V6M-NDL: "{{[^"]*}}ld.lld" "{{.*}}.o" "-Bstatic"
+// CHECK-V6M-NDL: "{{[^"]*}}ld.lld{{(\.exe)?}}" "{{.*}}.o" "-Bstatic"
 // CHECK-V6M-NDL-SAME: 
"-L{{[^"]*}}{{[/\\]+}}lib{{(64)?}}{{[/\\]+}}clang{{[/\\]+}}{{.*}}{{[/\\]+}}lib{{[/\\]+}}baremetal"
 "-o" "{{.*}}.o"
 
 // RUN: %clangxx -target arm-none-eabi -v 2>&1 \


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


r325920 - Revert "[Darwin] Add a test to check clang produces accelerator tables."

2018-02-23 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Fri Feb 23 08:36:48 2018
New Revision: 325920

URL: http://llvm.org/viewvc/llvm-project?rev=325920&view=rev
Log:
Revert "[Darwin] Add a test to check clang produces accelerator tables."

This reverts commit 7e24e5f8bff77b7e78da3bfcc68abf42457a66c9.
aka r325850.  Clang should not have end-to-end tests.

Removed:
cfe/trunk/test/CodeGen/debug-info-section-macho.c

Removed: cfe/trunk/test/CodeGen/debug-info-section-macho.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-section-macho.c?rev=325919&view=auto
==
--- cfe/trunk/test/CodeGen/debug-info-section-macho.c (original)
+++ cfe/trunk/test/CodeGen/debug-info-section-macho.c (removed)
@@ -1,16 +0,0 @@
-// Test that clang produces the __apple accelerator tables,
-// e.g., __apple_types, correctly.
-// RUN: %clang %s -target x86_64-apple-macosx10.13.0 -c -g -o %t-ex
-// RUN: llvm-objdump -section-headers %t-ex | FileCheck %s
-
-int main (int argc, char const *argv[]) { return argc; }
-
-// CHECK: __debug_str
-// CHECK-NEXT: __debug_abbrev
-// CHECK-NEXT: __debug_info
-// CHECK-NEXT: __debug_ranges
-// CHECK-NEXT: __debug_macinfo
-// CHECK-NEXT: __apple_names
-// CHECK-NEXT: __apple_objc
-// CHECK-NEXT: __apple_namespac
-// CHECK-NEXT: __apple_types


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


r321312 - [AST] Incorrectly qualified unscoped enumeration as template actual parameter.

2017-12-21 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Thu Dec 21 13:47:22 2017
New Revision: 321312

URL: http://llvm.org/viewvc/llvm-project?rev=321312&view=rev
Log:
[AST] Incorrectly qualified unscoped enumeration as template actual parameter.

An unscoped enumeration used as template argument, should not have any
qualified information about its enclosing scope, as its visibility is
global.

In the case of scoped enumerations, they must include information
about their enclosing scope.

Patch by Carlos Alberto Enciso!

Differential Revision: https://reviews.llvm.org/D39239

Added:
cfe/trunk/test/SemaTemplate/temp_arg_enum_printing_more.cpp
Modified:
cfe/trunk/lib/AST/Decl.cpp
cfe/trunk/test/Modules/odr.cpp
cfe/trunk/test/SemaCXX/return-noreturn.cpp
cfe/trunk/test/SemaTemplate/temp_arg_enum_printing.cpp
cfe/trunk/unittests/AST/NamedDeclPrinterTest.cpp

Modified: cfe/trunk/lib/AST/Decl.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Decl.cpp?rev=321312&r1=321311&r2=321312&view=diff
==
--- cfe/trunk/lib/AST/Decl.cpp (original)
+++ cfe/trunk/lib/AST/Decl.cpp Thu Dec 21 13:47:22 2017
@@ -1548,7 +1548,10 @@ void NamedDecl::printQualifiedName(raw_o
   // enumerator is declared in the scope that immediately contains
   // the enum-specifier. Each scoped enumerator is declared in the
   // scope of the enumeration.
-  if (ED->isScoped() || ED->getIdentifier())
+  // For the case of unscoped enumerator, do not include in the qualified
+  // name any information about its enum enclosing scope, as is visibility
+  // is global.
+  if (ED->isScoped())
 OS << *ED;
   else
 continue;

Modified: cfe/trunk/test/Modules/odr.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/odr.cpp?rev=321312&r1=321311&r2=321312&view=diff
==
--- cfe/trunk/test/Modules/odr.cpp (original)
+++ cfe/trunk/test/Modules/odr.cpp Thu Dec 21 13:47:22 2017
@@ -18,6 +18,6 @@ int x = f() + g();
 // expected-note@a.h:3 {{declaration of 'f' does not match}}
 // expected-note@a.h:1 {{definition has no member 'm'}}
 
-// expected-error@b.h:5 {{'E::e2' from module 'b' is not present in definition 
of 'E' in module 'a'}}
+// expected-error@b.h:5 {{'e2' from module 'b' is not present in definition of 
'E' in module 'a'}}
 // expected-error@b.h:3 {{'Y::f' from module 'b' is not present in definition 
of 'Y' in module 'a'}}
 // expected-error@b.h:2 {{'Y::m' from module 'b' is not present in definition 
of 'Y' in module 'a'}}

Modified: cfe/trunk/test/SemaCXX/return-noreturn.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/return-noreturn.cpp?rev=321312&r1=321311&r2=321312&view=diff
==
--- cfe/trunk/test/SemaCXX/return-noreturn.cpp (original)
+++ cfe/trunk/test/SemaCXX/return-noreturn.cpp Thu Dec 21 13:47:22 2017
@@ -143,7 +143,7 @@ template  int PR9
 } // expected-warning {{control reaches end of non-void function}}
 
 void PR9412_f() {
-PR9412_t(); // expected-note {{in instantiation of function 
template specialization 'PR9412_t' requested 
here}}
+PR9412_t(); // expected-note {{in instantiation of function 
template specialization 'PR9412_t' requested here}}
 }
 
 struct NoReturn {

Modified: cfe/trunk/test/SemaTemplate/temp_arg_enum_printing.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/temp_arg_enum_printing.cpp?rev=321312&r1=321311&r2=321312&view=diff
==
--- cfe/trunk/test/SemaTemplate/temp_arg_enum_printing.cpp (original)
+++ cfe/trunk/test/SemaTemplate/temp_arg_enum_printing.cpp Thu Dec 21 13:47:22 
2017
@@ -13,9 +13,9 @@ template 
 void foo();
   
 void test() {
-  // CHECK: template<> void foo()
+  // CHECK: template<> void foo()
   NamedEnumNS::foo();
-  // CHECK: template<> void foo()
+  // CHECK: template<> void foo()
   NamedEnumNS::foo<(NamedEnum)1>();
   // CHECK: template<> void foo<2>()
   NamedEnumNS::foo<(NamedEnum)2>();

Added: cfe/trunk/test/SemaTemplate/temp_arg_enum_printing_more.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/temp_arg_enum_printing_more.cpp?rev=321312&view=auto
==
--- cfe/trunk/test/SemaTemplate/temp_arg_enum_printing_more.cpp (added)
+++ cfe/trunk/test/SemaTemplate/temp_arg_enum_printing_more.cpp Thu Dec 21 
13:47:22 2017
@@ -0,0 +1,26 @@
+// RUN: %clang_cc1 -fsyntax-only -ast-print %s -std=c++11 | FileCheck %s
+
+// Make sure that for template value arguments that are unscoped enumerators,
+// no qualified enum information is included in their name, as their visibility
+// is global. In the case of scoped enumerators, they must include information
+// about their enum enclosing scope.
+

[clang-tools-extra] r321323 - Update test after r321312

2017-12-21 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Thu Dec 21 15:19:25 2017
New Revision: 321323

URL: http://llvm.org/viewvc/llvm-project?rev=321323&view=rev
Log:
Update test after r321312

Modified:
clang-tools-extra/trunk/unittests/change-namespace/ChangeNamespaceTests.cpp

Modified: 
clang-tools-extra/trunk/unittests/change-namespace/ChangeNamespaceTests.cpp
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/unittests/change-namespace/ChangeNamespaceTests.cpp?rev=321323&r1=321322&r2=321323&view=diff
==
--- clang-tools-extra/trunk/unittests/change-namespace/ChangeNamespaceTests.cpp 
(original)
+++ clang-tools-extra/trunk/unittests/change-namespace/ChangeNamespaceTests.cpp 
Thu Dec 21 15:19:25 2017
@@ -1891,7 +1891,7 @@ TEST_F(ChangeNamespaceTest, ReferencesTo
  "  Glob g2 = G2;\n"
  "  na::X x1 = na::X::X1;\n"
  "  na::Y y1 = na::Y::Y1;\n"
- "  na::Y y2 = na::Y::Y2;\n"
+ "  na::Y y2 = na::Y2;\n"
  "}\n"
  "} // namespace y\n"
  "} // namespace x\n";
@@ -1923,8 +1923,7 @@ TEST_F(ChangeNamespaceTest, NoRedundantE
  "void f() {\n"
  "  ns::X x1 = ns::X::X1;\n"
  "  ns::Y y1 = ns::Y::Y1;\n"
- // FIXME: this is redundant
- "  ns::Y y2 = ns::Y::Y2;\n"
+ "  ns::Y y2 = ns::Y2;\n"
  "}\n"
  "} // namespace y\n"
  "} // namespace x\n";


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


r321457 - Fix comment typo in r321312.

2017-12-26 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Tue Dec 26 10:01:19 2017
New Revision: 321457

URL: http://llvm.org/viewvc/llvm-project?rev=321457&view=rev
Log:
Fix comment typo in r321312.
Post-commit review by Kim Grasman!

Modified:
cfe/trunk/lib/AST/Decl.cpp

Modified: cfe/trunk/lib/AST/Decl.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Decl.cpp?rev=321457&r1=321456&r2=321457&view=diff
==
--- cfe/trunk/lib/AST/Decl.cpp (original)
+++ cfe/trunk/lib/AST/Decl.cpp Tue Dec 26 10:01:19 2017
@@ -1550,7 +1550,7 @@ void NamedDecl::printQualifiedName(raw_o
   // the enum-specifier. Each scoped enumerator is declared in the
   // scope of the enumeration.
   // For the case of unscoped enumerator, do not include in the qualified
-  // name any information about its enum enclosing scope, as is visibility
+  // name any information about its enum enclosing scope, as its visibility
   // is global.
   if (ED->isScoped())
 OS << *ED;


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


r321757 - Calculate size of buffer instead of using a magic value.

2018-01-03 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Wed Jan  3 12:29:49 2018
New Revision: 321757

URL: http://llvm.org/viewvc/llvm-project?rev=321757&view=rev
Log:
Calculate size of buffer instead of using a magic value.

Patch by Matthew Davis!

Differential Revision: https://reviews.llvm.org/D41421

Modified:
cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp

Modified: cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp?rev=321757&r1=321756&r2=321757&view=diff
==
--- cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp (original)
+++ cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp Wed Jan  3 12:29:49 2018
@@ -752,7 +752,7 @@ static void PrintPreprocessedTokens(Prep
 } else if (Tok.isLiteral() && !Tok.needsCleaning() &&
Tok.getLiteralData()) {
   OS.write(Tok.getLiteralData(), Tok.getLength());
-} else if (Tok.getLength() < 256) {
+} else if (Tok.getLength() < llvm::array_lengthof(Buffer)) {
   const char *TokPtr = Buffer;
   unsigned Len = PP.getSpelling(Tok, TokPtr);
   OS.write(TokPtr, Len);


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


[libcxxabi] r334936 - Update copyright year to 2018.

2018-06-18 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Mon Jun 18 05:22:17 2018
New Revision: 334936

URL: http://llvm.org/viewvc/llvm-project?rev=334936&view=rev
Log:
Update copyright year to 2018.

Modified:
libcxxabi/trunk/LICENSE.TXT

Modified: libcxxabi/trunk/LICENSE.TXT
URL: 
http://llvm.org/viewvc/llvm-project/libcxxabi/trunk/LICENSE.TXT?rev=334936&r1=334935&r2=334936&view=diff
==
--- libcxxabi/trunk/LICENSE.TXT (original)
+++ libcxxabi/trunk/LICENSE.TXT Mon Jun 18 05:22:17 2018
@@ -14,7 +14,7 @@ Full text of the relevant licenses is in
 University of Illinois/NCSA
 Open Source License
 
-Copyright (c) 2009-2017 by the contributors listed in CREDITS.TXT
+Copyright (c) 2009-2018 by the contributors listed in CREDITS.TXT
 
 All rights reserved.
 


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


[clang-tools-extra] r334936 - Update copyright year to 2018.

2018-06-18 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Mon Jun 18 05:22:17 2018
New Revision: 334936

URL: http://llvm.org/viewvc/llvm-project?rev=334936&view=rev
Log:
Update copyright year to 2018.

Modified:
clang-tools-extra/trunk/LICENSE.TXT
clang-tools-extra/trunk/clang-tidy-vs/ClangTidy/license.txt

Modified: clang-tools-extra/trunk/LICENSE.TXT
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/LICENSE.TXT?rev=334936&r1=334935&r2=334936&view=diff
==
--- clang-tools-extra/trunk/LICENSE.TXT (original)
+++ clang-tools-extra/trunk/LICENSE.TXT Mon Jun 18 05:22:17 2018
@@ -4,7 +4,7 @@ LLVM Release License
 University of Illinois/NCSA
 Open Source License
 
-Copyright (c) 2007-2016 University of Illinois at Urbana-Champaign.
+Copyright (c) 2007-2018 University of Illinois at Urbana-Champaign.
 All rights reserved.
 
 Developed by:

Modified: clang-tools-extra/trunk/clang-tidy-vs/ClangTidy/license.txt
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy-vs/ClangTidy/license.txt?rev=334936&r1=334935&r2=334936&view=diff
==
--- clang-tools-extra/trunk/clang-tidy-vs/ClangTidy/license.txt (original)
+++ clang-tools-extra/trunk/clang-tidy-vs/ClangTidy/license.txt Mon Jun 18 
05:22:17 2018
@@ -4,7 +4,7 @@ LLVM Release License
 University of Illinois/NCSA
 Open Source License
 
-Copyright (c) 2007-2016 University of Illinois at Urbana-Champaign.
+Copyright (c) 2007-2018 University of Illinois at Urbana-Champaign.
 All rights reserved.
 
 Developed by:


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


[libclc] r334936 - Update copyright year to 2018.

2018-06-18 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Mon Jun 18 05:22:17 2018
New Revision: 334936

URL: http://llvm.org/viewvc/llvm-project?rev=334936&view=rev
Log:
Update copyright year to 2018.

Modified:
libclc/trunk/LICENSE.TXT

Modified: libclc/trunk/LICENSE.TXT
URL: 
http://llvm.org/viewvc/llvm-project/libclc/trunk/LICENSE.TXT?rev=334936&r1=334935&r2=334936&view=diff
==
--- libclc/trunk/LICENSE.TXT (original)
+++ libclc/trunk/LICENSE.TXT Mon Jun 18 05:22:17 2018
@@ -11,7 +11,7 @@ Full text of the relevant licenses is in
 
 ==
 
-Copyright (c) 2011-2016 by the contributors listed in CREDITS.TXT
+Copyright (c) 2011-2018 by the contributors listed in CREDITS.TXT
 
 All rights reserved.
 


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


r334936 - Update copyright year to 2018.

2018-06-18 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Mon Jun 18 05:22:17 2018
New Revision: 334936

URL: http://llvm.org/viewvc/llvm-project?rev=334936&view=rev
Log:
Update copyright year to 2018.

Modified:
cfe/trunk/LICENSE.TXT
cfe/trunk/tools/clang-format-vs/ClangFormat/license.txt

Modified: cfe/trunk/LICENSE.TXT
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/LICENSE.TXT?rev=334936&r1=334935&r2=334936&view=diff
==
--- cfe/trunk/LICENSE.TXT (original)
+++ cfe/trunk/LICENSE.TXT Mon Jun 18 05:22:17 2018
@@ -4,7 +4,7 @@ LLVM Release License
 University of Illinois/NCSA
 Open Source License
 
-Copyright (c) 2007-2016 University of Illinois at Urbana-Champaign.
+Copyright (c) 2007-2018 University of Illinois at Urbana-Champaign.
 All rights reserved.
 
 Developed by:

Modified: cfe/trunk/tools/clang-format-vs/ClangFormat/license.txt
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/clang-format-vs/ClangFormat/license.txt?rev=334936&r1=334935&r2=334936&view=diff
==
--- cfe/trunk/tools/clang-format-vs/ClangFormat/license.txt (original)
+++ cfe/trunk/tools/clang-format-vs/ClangFormat/license.txt Mon Jun 18 05:22:17 
2018
@@ -4,7 +4,7 @@ LLVM Release License
 University of Illinois/NCSA
 Open Source License
 
-Copyright (c) 2007-2017 University of Illinois at Urbana-Champaign.
+Copyright (c) 2007-2018 University of Illinois at Urbana-Champaign.
 All rights reserved.
 
 Developed by:


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


[libunwind] r334936 - Update copyright year to 2018.

2018-06-18 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Mon Jun 18 05:22:17 2018
New Revision: 334936

URL: http://llvm.org/viewvc/llvm-project?rev=334936&view=rev
Log:
Update copyright year to 2018.

Modified:
libunwind/trunk/LICENSE.TXT

Modified: libunwind/trunk/LICENSE.TXT
URL: 
http://llvm.org/viewvc/llvm-project/libunwind/trunk/LICENSE.TXT?rev=334936&r1=334935&r2=334936&view=diff
==
--- libunwind/trunk/LICENSE.TXT (original)
+++ libunwind/trunk/LICENSE.TXT Mon Jun 18 05:22:17 2018
@@ -14,7 +14,7 @@ Full text of the relevant licenses is in
 University of Illinois/NCSA
 Open Source License
 
-Copyright (c) 2009-2017 by the contributors listed in CREDITS.TXT
+Copyright (c) 2009-2018 by the contributors listed in CREDITS.TXT
 
 All rights reserved.
 


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


r352542 - [cc1as] Test that -g of empty .s file does something sensible.

2019-01-29 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Tue Jan 29 12:57:50 2019
New Revision: 352542

URL: http://llvm.org/viewvc/llvm-project?rev=352542&view=rev
Log:
[cc1as] Test that -g of empty .s file does something sensible.

Depends on LLVM r352541.

Added:
cfe/trunk/test/Misc/cc1as-asm-debug.s

Added: cfe/trunk/test/Misc/cc1as-asm-debug.s
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Misc/cc1as-asm-debug.s?rev=352542&view=auto
==
--- cfe/trunk/test/Misc/cc1as-asm-debug.s (added)
+++ cfe/trunk/test/Misc/cc1as-asm-debug.s Tue Jan 29 12:57:50 2019
@@ -0,0 +1,11 @@
+// Run cc1as with debug on empty file. Needs a known name so we can check it.
+// REQUIRES: x86-registered-target
+// RUN: rm -rf %t && mkdir -p %t
+// RUN: cp %s %t/comment.s
+// RUN: %clang -cc1as -triple x86_64-linux-gnu -filetype asm 
-debug-info-kind=limited -dwarf-version=4 %t/comment.s | FileCheck %s
+// RUN: %clang -cc1as -triple x86_64-linux-gnu -filetype asm 
-debug-info-kind=limited -dwarf-version=5 %t/comment.s | FileCheck %s
+// Asm output actually emits the .section directives twice.
+// CHECK: {{\.}}section .debug_info
+// CHECK: {{\.}}section .debug_info
+// CHECK-NOT: {{\.}}section
+// CHECK: .ascii "comment.s"


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


r347239 - [DebugInfo] DISubprogram flags get their own flags word. NFC.

2018-11-19 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Mon Nov 19 10:29:28 2018
New Revision: 347239

URL: http://llvm.org/viewvc/llvm-project?rev=347239&view=rev
Log:
[DebugInfo] DISubprogram flags get their own flags word. NFC.
This will hold flags specific to subprograms. In the future
we could potentially free up scarce bits in DIFlags by moving
subprogram-specific flags from there to the new flags word.

This patch does not change IR/bitcode formats, that will be
done in a follow-up.

Differential Revision: https://reviews.llvm.org/D54597

Modified:
cfe/trunk/lib/CodeGen/CGDebugInfo.cpp

Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=347239&r1=347238&r2=347239&view=diff
==
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Mon Nov 19 10:29:28 2018
@@ -1494,16 +1494,16 @@ llvm::DISubprogram *CGDebugInfo::CreateC
 
   // Collect virtual method info.
   llvm::DIType *ContainingType = nullptr;
-  unsigned Virtuality = 0;
   unsigned VIndex = 0;
   llvm::DINode::DIFlags Flags = llvm::DINode::FlagZero;
+  llvm::DISubprogram::DISPFlags SPFlags = llvm::DISubprogram::SPFlagZero;
   int ThisAdjustment = 0;
 
   if (Method->isVirtual()) {
 if (Method->isPure())
-  Virtuality = llvm::dwarf::DW_VIRTUALITY_pure_virtual;
+  SPFlags |= llvm::DISubprogram::SPFlagPureVirtual;
 else
-  Virtuality = llvm::dwarf::DW_VIRTUALITY_virtual;
+  SPFlags |= llvm::DISubprogram::SPFlagVirtual;
 
 if (CGM.getTarget().getCXXABI().isItaniumFamily()) {
   // It doesn't make sense to give a virtual destructor a vtable index,
@@ -1555,12 +1555,13 @@ llvm::DISubprogram *CGDebugInfo::CreateC
 Flags |= llvm::DINode::FlagLValueReference;
   if (Method->getRefQualifier() == RQ_RValue)
 Flags |= llvm::DINode::FlagRValueReference;
+  if (CGM.getLangOpts().Optimize)
+SPFlags |= llvm::DISubprogram::SPFlagOptimized;
 
   llvm::DINodeArray TParamsArray = CollectFunctionTemplateParams(Method, Unit);
   llvm::DISubprogram *SP = DBuilder.createMethod(
   RecordTy, MethodName, MethodLinkageName, MethodDefUnit, MethodLine,
-  MethodTy, /*isLocalToUnit=*/false, /*isDefinition=*/false, Virtuality,
-  VIndex, ThisAdjustment, ContainingType, Flags, 
CGM.getLangOpts().Optimize,
+  MethodTy, VIndex, ThisAdjustment, ContainingType, Flags, SPFlags,
   TParamsArray.get());
 
   SPCache[Method->getCanonicalDecl()].reset(SP);
@@ -3168,6 +3169,7 @@ llvm::DISubprogram *CGDebugInfo::getFunc
   llvm::DINodeArray TParamsArray;
   StringRef Name, LinkageName;
   llvm::DINode::DIFlags Flags = llvm::DINode::FlagZero;
+  llvm::DISubprogram::DISPFlags SPFlags = llvm::DISubprogram::SPFlagZero;
   SourceLocation Loc = GD.getDecl()->getLocation();
   llvm::DIFile *Unit = getOrCreateFile(Loc);
   llvm::DIScope *DContext = Unit;
@@ -3184,21 +3186,23 @@ llvm::DISubprogram *CGDebugInfo::getFunc
   CallingConv CC = FD->getType()->castAs()->getCallConv();
   QualType FnType = CGM.getContext().getFunctionType(
   FD->getReturnType(), ArgTypes, FunctionProtoType::ExtProtoInfo(CC));
+  if (!FD->isExternallyVisible())
+SPFlags |= llvm::DISubprogram::SPFlagLocalToUnit;
+  if (CGM.getLangOpts().Optimize)
+SPFlags |= llvm::DISubprogram::SPFlagOptimized;
+
   if (Stub) {
 Flags |= getCallSiteRelatedAttrs();
+SPFlags |= llvm::DISubprogram::SPFlagDefinition;
 return DBuilder.createFunction(
 DContext, Name, LinkageName, Unit, Line,
-getOrCreateFunctionType(GD.getDecl(), FnType, Unit),
-!FD->isExternallyVisible(),
-/* isDefinition = */ true, 0, Flags, CGM.getLangOpts().Optimize,
+getOrCreateFunctionType(GD.getDecl(), FnType, Unit), 0, Flags, SPFlags,
 TParamsArray.get(), getFunctionDeclaration(FD));
   }
 
   llvm::DISubprogram *SP = DBuilder.createTempFunctionFwdDecl(
   DContext, Name, LinkageName, Unit, Line,
-  getOrCreateFunctionType(GD.getDecl(), FnType, Unit),
-  !FD->isExternallyVisible(),
-  /* isDefinition = */ false, 0, Flags, CGM.getLangOpts().Optimize,
+  getOrCreateFunctionType(GD.getDecl(), FnType, Unit), 0, Flags, SPFlags,
   TParamsArray.get(), getFunctionDeclaration(FD));
   const FunctionDecl *CanonDecl = FD->getCanonicalDecl();
   FwdDeclReplaceMap.emplace_back(std::piecewise_construct,
@@ -3386,6 +3390,7 @@ void CGDebugInfo::EmitFunctionStart(Glob
   bool HasDecl = (D != nullptr);
 
   llvm::DINode::DIFlags Flags = llvm::DINode::FlagZero;
+  llvm::DISubprogram::DISPFlags SPFlags = llvm::DISubprogram::SPFlagZero;
   llvm::DIFile *Unit = getOrCreateFile(Loc);
   llvm::DIScope *FDContext = Unit;
   llvm::DINodeArray TParamsArray;
@@ -3425,7 +3430,14 @@ void CGDebugInfo::EmitFunctionStart(Glob
   if (CurFuncIsThunk)
 Flags |= llvm::DINode::FlagThunk;
 
+  if (Fn->hasLocalLinkage())
+SPFlags |= llvm::DISubprogram::SPFlagLocalToUnit;
+  if

r347807 - [DebugInfo] NFC Clang test changes for: IR/Bitcode changes for DISubprogram flags.

2018-11-28 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Wed Nov 28 13:18:07 2018
New Revision: 347807

URL: http://llvm.org/viewvc/llvm-project?rev=347807&view=rev
Log:
[DebugInfo] NFC Clang test changes for: IR/Bitcode changes for DISubprogram 
flags.

Differential Revision: https://reviews.llvm.org/D54756

Modified:
cfe/trunk/test/CodeGen/debug-info-scope-file.c
cfe/trunk/test/CodeGenCXX/PR20038.cpp
cfe/trunk/test/CodeGenCXX/dbg-info-all-calls-described.cpp
cfe/trunk/test/CodeGenCXX/debug-info-access.cpp
cfe/trunk/test/CodeGenCXX/debug-info-blocks.cpp
cfe/trunk/test/CodeGenCXX/debug-info-cxx1y.cpp
cfe/trunk/test/CodeGenCXX/debug-info-decl-nested.cpp
cfe/trunk/test/CodeGenCXX/debug-info-function-context.cpp
cfe/trunk/test/CodeGenCXX/debug-info-global-ctor-dtor.cpp
cfe/trunk/test/CodeGenCXX/debug-info-inlined.cpp
cfe/trunk/test/CodeGenCXX/debug-info-ms-abi.cpp
cfe/trunk/test/CodeGenCXX/debug-info-namespace.cpp
cfe/trunk/test/CodeGenCXX/debug-info-static-fns.cpp
cfe/trunk/test/CodeGenCXX/debug-info-thunk-msabi.cpp
cfe/trunk/test/CodeGenCXX/debug-info-thunk.cpp
cfe/trunk/test/CodeGenCXX/debug-info.cpp
cfe/trunk/test/CodeGenCXX/debug-lambda-expressions.cpp
cfe/trunk/test/CodeGenCXX/globalinit-loc.cpp
cfe/trunk/test/CodeGenCXX/linetable-fnbegin.cpp
cfe/trunk/test/CodeGenObjC/arc-linetable.m
cfe/trunk/test/CodeGenObjC/debug-info-category.m
cfe/trunk/test/CodeGenObjC/debug-info-synthesis.m
cfe/trunk/test/CodeGenObjC/debug-property-synth.m
cfe/trunk/test/CodeGenObjC/debuginfo-properties.m

Modified: cfe/trunk/test/CodeGen/debug-info-scope-file.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-scope-file.c?rev=347807&r1=347806&r2=347807&view=diff
==
--- cfe/trunk/test/CodeGen/debug-info-scope-file.c (original)
+++ cfe/trunk/test/CodeGen/debug-info-scope-file.c Wed Nov 28 13:18:07 2018
@@ -5,9 +5,9 @@
 
 // CHECK: ret void, !dbg [[F1_LINE:![0-9]*]]
 // CHECK: ret void, !dbg [[F2_LINE:![0-9]*]]
-// CHECK: [[F1:![0-9]*]] = distinct !DISubprogram(name: "f1",{{.*}} 
isDefinition: true
+// CHECK: [[F1:![0-9]*]] = distinct !DISubprogram(name: "f1",{{.*}} 
DISPFlagDefinition
 // CHECK: [[F1_LINE]] = !DILocation({{.*}}, scope: [[F1]])
-// CHECK: [[F2:![0-9]*]] = distinct !DISubprogram(name: "f2",{{.*}} 
isDefinition: true
+// CHECK: [[F2:![0-9]*]] = distinct !DISubprogram(name: "f2",{{.*}} 
DISPFlagDefinition
 // CHECK: [[F2_LINE]] = !DILocation({{.*}}, scope: [[F2]])
 
 void f1() {

Modified: cfe/trunk/test/CodeGenCXX/PR20038.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/PR20038.cpp?rev=347807&r1=347806&r2=347807&view=diff
==
--- cfe/trunk/test/CodeGenCXX/PR20038.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/PR20038.cpp Wed Nov 28 13:18:07 2018
@@ -6,9 +6,9 @@ struct C {
 extern bool b;
 // CHECK: call {{.*}}, !dbg [[DTOR_CALL1_LOC:![0-9]*]]
 // CHECK: call {{.*}}, !dbg [[DTOR_CALL2_LOC:![0-9]*]]
-// CHECK: [[FUN1:.*]] = distinct !DISubprogram(name: "fun1",{{.*}} 
isDefinition: true
+// CHECK: [[FUN1:.*]] = distinct !DISubprogram(name: "fun1",{{.*}} 
DISPFlagDefinition
 // CHECK: [[DTOR_CALL1_LOC]] = !DILocation(line: [[@LINE+1]], scope: [[FUN1]])
 void fun1() { b && (C(), 1); }
-// CHECK: [[FUN2:.*]] = distinct !DISubprogram(name: "fun2",{{.*}} 
isDefinition: true
+// CHECK: [[FUN2:.*]] = distinct !DISubprogram(name: "fun2",{{.*}} 
DISPFlagDefinition
 // CHECK: [[DTOR_CALL2_LOC]] = !DILocation(line: [[@LINE+1]], scope: [[FUN2]])
 bool fun2() { return (C(), b) && 0; }

Modified: cfe/trunk/test/CodeGenCXX/dbg-info-all-calls-described.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/dbg-info-all-calls-described.cpp?rev=347807&r1=347806&r2=347807&view=diff
==
--- cfe/trunk/test/CodeGenCXX/dbg-info-all-calls-described.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/dbg-info-all-calls-described.cpp Wed Nov 28 
13:18:07 2018
@@ -36,13 +36,13 @@
 
 // NO-ATTR-NOT: FlagAllCallsDescribed
 
-// HAS-ATTR-DAG: DISubprogram(name: "declaration2", {{.*}}, isDefinition: 
true, {{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed
-// HAS-ATTR-DAG: DISubprogram(name: "struct1", {{.*}}, isDefinition: false, 
{{.*}}, flags: DIFlagPrototyped
-// HAS-ATTR-DAG: DISubprogram(name: "struct1", {{.*}}, isDefinition: true, 
{{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed
-// HAS-ATTR-DAG: DISubprogram(name: "method1", {{.*}}, isDefinition: true, 
{{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed
-// HAS-ATTR-DAG: DISubprogram(name: "force_irgen", {{.*}}, isDefinition: true, 
{{.*}}, flags: DIFlagPrototyped | DIFlagAllCallsDescribed
+// HAS-ATTR-DAG: DISubprogram(name: "declaration2", {{.*}}, flags: 
DIFlagPrototyped | DIFlagAllCallsDescribed, spFlags: DISPFlagDefinitio

r355226 - [DWARF] Make -g with empty assembler source work better.

2019-03-01 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Fri Mar  1 12:58:04 2019
New Revision: 355226

URL: http://llvm.org/viewvc/llvm-project?rev=355226&view=rev
Log:
[DWARF] Make -g with empty assembler source work better.

This was sometimes causing clang or llvm-mc to crash, and in other
cases could emit a bogus DWARF line-table header. I did an interim
patch in r352541; this patch should be a cleaner and more complete
fix, and retains the test.

Addresses PR40538.

Differential Revision: https://reviews.llvm.org/D58750

Modified:
cfe/trunk/test/Misc/cc1as-asm-debug.s
cfe/trunk/tools/driver/cc1as_main.cpp

Modified: cfe/trunk/test/Misc/cc1as-asm-debug.s
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Misc/cc1as-asm-debug.s?rev=355226&r1=355225&r2=355226&view=diff
==
--- cfe/trunk/test/Misc/cc1as-asm-debug.s (original)
+++ cfe/trunk/test/Misc/cc1as-asm-debug.s Fri Mar  1 12:58:04 2019
@@ -8,4 +8,5 @@
 // CHECK: {{\.}}section .debug_info
 // CHECK: {{\.}}section .debug_info
 // CHECK-NOT: {{\.}}section
-// CHECK: .ascii "comment.s"
+// Look for this as a relative path.
+// CHECK: .ascii "{{[^\\/].*}}comment.s"

Modified: cfe/trunk/tools/driver/cc1as_main.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/cc1as_main.cpp?rev=355226&r1=355225&r2=355226&view=diff
==
--- cfe/trunk/tools/driver/cc1as_main.cpp (original)
+++ cfe/trunk/tools/driver/cc1as_main.cpp Fri Mar  1 12:58:04 2019
@@ -336,7 +336,7 @@ static bool ExecuteAssembler(AssemblerIn
   SourceMgr SrcMgr;
 
   // Tell SrcMgr about this buffer, which is what the parser will pick up.
-  SrcMgr.AddNewSourceBuffer(std::move(*Buffer), SMLoc());
+  unsigned BufferIndex = SrcMgr.AddNewSourceBuffer(std::move(*Buffer), 
SMLoc());
 
   // Record the location of the include directories so that the lexer can find
   // it later.
@@ -393,12 +393,21 @@ static bool ExecuteAssembler(AssemblerIn
 Ctx.setDwarfDebugProducer(StringRef(Opts.DwarfDebugProducer));
   if (!Opts.DebugCompilationDir.empty())
 Ctx.setCompilationDir(Opts.DebugCompilationDir);
+  else {
+// If no compilation dir is set, try to use the current directory.
+SmallString<128> CWD;
+if (!sys::fs::current_path(CWD))
+  Ctx.setCompilationDir(CWD);
+  }
   if (!Opts.DebugPrefixMap.empty())
 for (const auto &KV : Opts.DebugPrefixMap)
   Ctx.addDebugPrefixMapEntry(KV.first, KV.second);
   if (!Opts.MainFileName.empty())
 Ctx.setMainFileName(StringRef(Opts.MainFileName));
   Ctx.setDwarfVersion(Opts.DwarfVersion);
+  if (Opts.GenDwarfForAssembly)
+Ctx.setGenDwarfRootFile(Opts.InputFile,
+SrcMgr.getMemoryBuffer(BufferIndex)->getBuffer());
 
   // Build up the feature string from the target feature list.
   std::string FS;


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


[clang-tools-extra] r365844 - [clangd] Fix MSVC build failure.

2019-07-11 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Thu Jul 11 16:48:06 2019
New Revision: 365844

URL: http://llvm.org/viewvc/llvm-project?rev=365844&view=rev
Log:
[clangd] Fix MSVC build failure.

http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/26898

Modified:
clang-tools-extra/trunk/clangd/AST.cpp

Modified: clang-tools-extra/trunk/clangd/AST.cpp
URL: 
http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/AST.cpp?rev=365844&r1=365843&r2=365844&view=diff
==
--- clang-tools-extra/trunk/clangd/AST.cpp (original)
+++ clang-tools-extra/trunk/clangd/AST.cpp Thu Jul 11 16:48:06 2019
@@ -184,7 +184,7 @@ std::string shortenNamespace(const llvm:
 DifferentAt++;
   }
 
-  for (u_int i = DifferentAt; i < OriginalParts.size(); ++i) {
+  for (unsigned i = DifferentAt; i < OriginalParts.size(); ++i) {
 Result.push_back(OriginalParts[i]);
   }
   return join(Result, "::");


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


r366699 - [X86] Remove const from some intrinsics that shouldn't have them

2019-07-22 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Mon Jul 22 09:14:09 2019
New Revision: 366699

URL: http://llvm.org/viewvc/llvm-project?rev=366699&view=rev
Log:
[X86] Remove const from some intrinsics that shouldn't have them

Modified:
cfe/trunk/lib/Headers/emmintrin.h

Modified: cfe/trunk/lib/Headers/emmintrin.h
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/emmintrin.h?rev=366699&r1=366698&r2=366699&view=diff
==
--- cfe/trunk/lib/Headers/emmintrin.h (original)
+++ cfe/trunk/lib/Headers/emmintrin.h Mon Jul 22 09:14:09 2019
@@ -4029,7 +4029,7 @@ _mm_storeu_si128(__m128i_u *__p, __m128i
 /// \param __b
 ///A 128-bit integer vector containing the value to be stored.
 static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storeu_si64(void const *__p, __m128i __b)
+_mm_storeu_si64(void *__p, __m128i __b)
 {
   struct __storeu_si64 {
 long long __v;
@@ -4050,7 +4050,7 @@ _mm_storeu_si64(void const *__p, __m128i
 /// \param __b
 ///A 128-bit integer vector containing the value to be stored.
 static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storeu_si32(void const *__p, __m128i __b)
+_mm_storeu_si32(void *__p, __m128i __b)
 {
   struct __storeu_si32 {
 int __v;
@@ -4071,7 +4071,7 @@ _mm_storeu_si32(void const *__p, __m128i
 /// \param __b
 ///A 128-bit integer vector containing the value to be stored.
 static __inline__ void __DEFAULT_FN_ATTRS
-_mm_storeu_si16(void const *__p, __m128i __b)
+_mm_storeu_si16(void *__p, __m128i __b)
 {
   struct __storeu_si16 {
 short __v;


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


r365402 - Fix line endings. NFC

2019-07-08 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Mon Jul  8 15:35:30 2019
New Revision: 365402

URL: http://llvm.org/viewvc/llvm-project?rev=365402&view=rev
Log:
Fix line endings. NFC

Modified:
cfe/trunk/test/Driver/ps4-analyzer-defaults.cpp

Modified: cfe/trunk/test/Driver/ps4-analyzer-defaults.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/ps4-analyzer-defaults.cpp?rev=365402&r1=365401&r2=365402&view=diff
==
--- cfe/trunk/test/Driver/ps4-analyzer-defaults.cpp (original)
+++ cfe/trunk/test/Driver/ps4-analyzer-defaults.cpp Mon Jul  8 15:35:30 2019
@@ -1,33 +1,33 @@
-// Check that the default analyzer checkers for PS4 are:
-//   core
-//   cplusplus
-//   deadcode
-//   nullability
-//   unix
-// Excluding:
-//   unix.API
-//   unix.Vfork
-
-// Check for expected checkers
-// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
-// RUN:   | FileCheck %s --check-prefix=CHECK-PS4-POS-CHECKERS
-//
-// Negative check for unexpected checkers
-// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
-// RUN:   | FileCheck %s --check-prefix=CHECK-PS4-NEG-CHECKERS
-//
-// Check for all unix checkers except API and Vfork
-// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
-// RUN:   | FileCheck %s --check-prefix=CHECK-PS4-UNIX-CHECKERS
-
-// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=core
-// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=cplusplus
-// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=deadcode
-// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=nullability
-//
-// CHECK-PS4-NEG-CHECKERS-NOT: analyzer-checker={{osx|security}}
-//
-// CHECK-PS4-UNIX-CHECKERS: analyzer-checker=unix
-// CHECK-PS4-UNIX-CHECKERS-DAG: analyzer-disable-checker=unix.API
-// CHECK-PS4-UNIX-CHECKERS-DAG: analyzer-disable-checker=unix.Vfork
-// CHECK-PS4-UNIX-CHECKERS-NOT: analyzer-checker=unix.{{API|Vfork}}
+// Check that the default analyzer checkers for PS4 are:
+//   core
+//   cplusplus
+//   deadcode
+//   nullability
+//   unix
+// Excluding:
+//   unix.API
+//   unix.Vfork
+
+// Check for expected checkers
+// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-PS4-POS-CHECKERS
+//
+// Negative check for unexpected checkers
+// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-PS4-NEG-CHECKERS
+//
+// Check for all unix checkers except API and Vfork
+// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-PS4-UNIX-CHECKERS
+
+// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=core
+// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=cplusplus
+// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=deadcode
+// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=nullability
+//
+// CHECK-PS4-NEG-CHECKERS-NOT: analyzer-checker={{osx|security}}
+//
+// CHECK-PS4-UNIX-CHECKERS: analyzer-checker=unix
+// CHECK-PS4-UNIX-CHECKERS-DAG: analyzer-disable-checker=unix.API
+// CHECK-PS4-UNIX-CHECKERS-DAG: analyzer-disable-checker=unix.Vfork
+// CHECK-PS4-UNIX-CHECKERS-NOT: analyzer-checker=unix.{{API|Vfork}}


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


r365555 - [CXX] Exercise all paths through these tests.

2019-07-09 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Tue Jul  9 13:49:07 2019
New Revision: 36

URL: http://llvm.org/viewvc/llvm-project?rev=36&view=rev
Log:
[CXX] Exercise all paths through these tests.

Differential Revision: https://reviews.llvm.org/D63894

Modified:
cfe/trunk/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p4.cpp
cfe/trunk/test/SemaCXX/class.cpp
cfe/trunk/test/SemaCXX/linkage2.cpp

Modified: cfe/trunk/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p4.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p4.cpp?rev=36&r1=365554&r2=36&view=diff
==
--- cfe/trunk/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p4.cpp (original)
+++ cfe/trunk/test/CXX/dcl.dcl/basic.namespace/namespace.udecl/p4.cpp Tue Jul  
9 13:49:07 2019
@@ -1,4 +1,5 @@
 // RUN: %clang_cc1 -fsyntax-only -verify %s
+// RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 %s
 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
 
 // C++03 [namespace.udecl]p4:

Modified: cfe/trunk/test/SemaCXX/class.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/class.cpp?rev=36&r1=365554&r2=36&view=diff
==
--- cfe/trunk/test/SemaCXX/class.cpp (original)
+++ cfe/trunk/test/SemaCXX/class.cpp Tue Jul  9 13:49:07 2019
@@ -1,4 +1,5 @@
 // RUN: %clang_cc1 -fsyntax-only -verify -Wc++11-compat %s 
+// RUN: %clang_cc1 -fsyntax-only -verify -Wc++11-compat %s -std=c++98
 class C {
 public:
   auto int errx; // expected-error {{storage class specified for a member 
declaration}}

Modified: cfe/trunk/test/SemaCXX/linkage2.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/linkage2.cpp?rev=36&r1=365554&r2=36&view=diff
==
--- cfe/trunk/test/SemaCXX/linkage2.cpp (original)
+++ cfe/trunk/test/SemaCXX/linkage2.cpp Tue Jul  9 13:49:07 2019
@@ -1,5 +1,5 @@
 // RUN: %clang_cc1 -fsyntax-only -verify -std=gnu++11 %s
-// RUN: %clang_cc1 -fsyntax-only -verify -Wno-c++11-extensions 
-Wno-local-type-template-args %s
+// RUN: %clang_cc1 -fsyntax-only -verify -Wno-c++11-extensions 
-Wno-local-type-template-args %s -std=gnu++98
 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-c++11-extensions 
-Wno-local-type-template-args -fmodules %s
 
 namespace test1 {


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


r360425 - Replace lit feature keyword 'non-ms-sdk' with 'ms-sdk'; eliminate

2019-05-10 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Fri May 10 06:40:17 2019
New Revision: 360425

URL: http://llvm.org/viewvc/llvm-project?rev=360425&view=rev
Log:
Replace lit feature keyword 'non-ms-sdk' with 'ms-sdk'; eliminate
'non-ps4-sdk' and use just 'ps4'.

Modified:
cfe/trunk/test/Driver/nostdincxx.cpp
cfe/trunk/test/Modules/crash-vfs-path-traversal.m
cfe/trunk/test/Preprocessor/pragma_microsoft.c
cfe/trunk/test/lit.cfg.py

Modified: cfe/trunk/test/Driver/nostdincxx.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/nostdincxx.cpp?rev=360425&r1=360424&r2=360425&view=diff
==
--- cfe/trunk/test/Driver/nostdincxx.cpp (original)
+++ cfe/trunk/test/Driver/nostdincxx.cpp Fri May 10 06:40:17 2019
@@ -2,6 +2,5 @@
 // CHECK: file not found
 #include  
 
-// MSVC has C++ headers in same directory as C headers.
-// REQUIRES: non-ms-sdk
-// REQUIRES: non-ps4-sdk
+// MSVC and PS4 have C++ headers in the same directory as C headers.
+// UNSUPPORTED: ms-sdk, ps4

Modified: cfe/trunk/test/Modules/crash-vfs-path-traversal.m
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Modules/crash-vfs-path-traversal.m?rev=360425&r1=360424&r2=360425&view=diff
==
--- cfe/trunk/test/Modules/crash-vfs-path-traversal.m (original)
+++ cfe/trunk/test/Modules/crash-vfs-path-traversal.m Fri May 10 06:40:17 2019
@@ -1,4 +1,5 @@
-// REQUIRES: crash-recovery, shell, non-ms-sdk, non-ps4-sdk
+// REQUIRES: crash-recovery, shell
+// UNSUPPORTED: ms-sdk, ps4
 
 // FIXME: Canonicalizing paths to remove relative traversal components
 // currenty fails a unittest on windows and is disable by default.

Modified: cfe/trunk/test/Preprocessor/pragma_microsoft.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Preprocessor/pragma_microsoft.c?rev=360425&r1=360424&r2=360425&view=diff
==
--- cfe/trunk/test/Preprocessor/pragma_microsoft.c (original)
+++ cfe/trunk/test/Preprocessor/pragma_microsoft.c Fri May 10 06:40:17 2019
@@ -1,6 +1,6 @@
 // RUN: %clang_cc1 -triple i686-unknown-windows-msvc %s -fsyntax-only -verify 
-fms-extensions -Wunknown-pragmas
 // RUN: not %clang_cc1 -triple i686-unknown-windows-msvc %s -fms-extensions -E 
| FileCheck %s
-// REQUIRES: non-ps4-sdk
+// UNSUPPORTED: ps4
 
 // rdar://6495941
 
@@ -215,4 +215,4 @@ void g() {}
 #pragma execution_character_set(push)
 #pragma execution_character_set(push, "utf-8")
 #pragma execution_character_set(push, "UTF-8")
-#pragma execution_character_set(pop)
\ No newline at end of file
+#pragma execution_character_set(pop)

Modified: cfe/trunk/test/lit.cfg.py
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/lit.cfg.py?rev=360425&r1=360424&r2=360425&view=diff
==
--- cfe/trunk/test/lit.cfg.py (original)
+++ cfe/trunk/test/lit.cfg.py Fri May 10 06:40:17 2019
@@ -140,13 +140,9 @@ if is_filesystem_case_insensitive():
 if os.path.exists('/dev/fd/0') and sys.platform not in ['cygwin']:
 config.available_features.add('dev-fd-fs')
 
-# Not set on native MS environment.
-if not re.match(r'.*-(windows-msvc)$', config.target_triple):
-config.available_features.add('non-ms-sdk')
-
-# Not set on native PS4 environment.
-if not re.match(r'.*-scei-ps4', config.target_triple):
-config.available_features.add('non-ps4-sdk')
+# Set on native MS environment.
+if re.match(r'.*-(windows-msvc)$', config.target_triple):
+config.available_features.add('ms-sdk')
 
 # [PR8833] LLP64-incompatible tests
 if not re.match(r'^x86_64.*-(windows-msvc|windows-gnu)$', 
config.target_triple):


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


r360447 - Replace 'REQUIRES: not_?san' with 'UNSUPPORTED: ?san' as that better

2019-05-10 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Fri May 10 10:57:22 2019
New Revision: 360447

URL: http://llvm.org/viewvc/llvm-project?rev=360447&view=rev
Log:
Replace 'REQUIRES: not_?san' with 'UNSUPPORTED: ?san' as that better
expresses the intent of the exclusion.

Modified:
cfe/trunk/test/Index/annotate-deep-statements.cpp
cfe/trunk/test/Index/index-many-call-ops.cpp
cfe/trunk/test/Index/index-many-logical-ops.c
cfe/trunk/test/SemaTemplate/instantiation-depth-default.cpp

Modified: cfe/trunk/test/Index/annotate-deep-statements.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/annotate-deep-statements.cpp?rev=360447&r1=360446&r2=360447&view=diff
==
--- cfe/trunk/test/Index/annotate-deep-statements.cpp (original)
+++ cfe/trunk/test/Index/annotate-deep-statements.cpp Fri May 10 10:57:22 2019
@@ -4,7 +4,7 @@
 // Check that we don't get stack overflow trying to annotate an extremely deep 
AST.
 
 // AddressSanitizer and UndefinedBehaviorSanitizer increases stack usage.
-// REQUIRES: not_asan, not_ubsan
+// UNSUPPORTED: asan, ubsan
 
 struct S {
   S &operator()();

Modified: cfe/trunk/test/Index/index-many-call-ops.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/index-many-call-ops.cpp?rev=360447&r1=360446&r2=360447&view=diff
==
--- cfe/trunk/test/Index/index-many-call-ops.cpp (original)
+++ cfe/trunk/test/Index/index-many-call-ops.cpp Fri May 10 10:57:22 2019
@@ -5,7 +5,7 @@
 // call operators.
 
 // UBSan increses stack usage.
-// REQUIRES: not_ubsan
+// UNSUPPORTED: ubsan
 
 struct S {
   S &operator()();

Modified: cfe/trunk/test/Index/index-many-logical-ops.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/index-many-logical-ops.c?rev=360447&r1=360446&r2=360447&view=diff
==
--- cfe/trunk/test/Index/index-many-logical-ops.c (original)
+++ cfe/trunk/test/Index/index-many-logical-ops.c Fri May 10 10:57:22 2019
@@ -5,7 +5,7 @@
 // logical operators.
 
 // UBSan increases stack usage.
-// REQUIRES: not_ubsan
+// UNSUPPORTED: ubsan
 
 // CHECK: [indexDeclaration]: kind: function | name: foo
 int foo(int x) {

Modified: cfe/trunk/test/SemaTemplate/instantiation-depth-default.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaTemplate/instantiation-depth-default.cpp?rev=360447&r1=360446&r2=360447&view=diff
==
--- cfe/trunk/test/SemaTemplate/instantiation-depth-default.cpp (original)
+++ cfe/trunk/test/SemaTemplate/instantiation-depth-default.cpp Fri May 10 
10:57:22 2019
@@ -3,7 +3,7 @@
 // FIXME: Disable this test when Clang was built with ASan, because ASan
 // increases our per-frame stack usage enough that this test no longer fits
 // within our normal stack space allocation.
-// REQUIRES: not_asan
+// UNSUPPORTED: asan
 
 template struct X : X {};
 // expected-error-re@8 {{recursive template instantiation exceeded maximum 
depth of 1024{{$


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


r360452 - Replace 'REQUIRES: nozlib' with '!zlib' because we don't need two ways

2019-05-10 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Fri May 10 11:32:53 2019
New Revision: 360452

URL: http://llvm.org/viewvc/llvm-project?rev=360452&view=rev
Log:
Replace 'REQUIRES: nozlib' with '!zlib' because we don't need two ways
to say the same thing.

Modified:
cfe/trunk/test/Driver/nozlibcompress.c

Modified: cfe/trunk/test/Driver/nozlibcompress.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/nozlibcompress.c?rev=360452&r1=360451&r2=360452&view=diff
==
--- cfe/trunk/test/Driver/nozlibcompress.c (original)
+++ cfe/trunk/test/Driver/nozlibcompress.c Fri May 10 11:32:53 2019
@@ -1,4 +1,4 @@
-// REQUIRES: nozlib
+// REQUIRES: !zlib
 
 // RUN: %clang -### -fintegrated-as -gz -c %s 2>&1 | FileCheck %s 
-check-prefix CHECK-WARN
 // RUN: %clang -### -fintegrated-as -gz=none -c %s 2>&1 | FileCheck 
-allow-empty -check-prefix CHECK-NOWARN %s


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


r361161 - Fix test not to use UNSUPPORTED as a FileCheck prefix.

2019-05-20 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Mon May 20 07:57:18 2019
New Revision: 361161

URL: http://llvm.org/viewvc/llvm-project?rev=361161&view=rev
Log:
Fix test not to use UNSUPPORTED as a FileCheck prefix.
It was not causing a problem but it's not good practice.

Modified:
cfe/trunk/test/Driver/cl-cc-flags.c

Modified: cfe/trunk/test/Driver/cl-cc-flags.c
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/cl-cc-flags.c?rev=361161&r1=361160&r2=361161&view=diff
==
--- cfe/trunk/test/Driver/cl-cc-flags.c (original)
+++ cfe/trunk/test/Driver/cl-cc-flags.c Mon May 20 07:57:18 2019
@@ -26,11 +26,11 @@
 
 // No fastcall or stdcall on x86_64:
 
-// RUN: %clang_cl -Wno-msvc-not-found --target=x86_64-windows-msvc /Gr -### -- 
%s 2>&1 | FileCheck --check-prefix=UNSUPPORTED %s
-// RUN: %clang_cl -Wno-msvc-not-found --target=x86_64-windows-msvc /Gz -### -- 
%s 2>&1 | FileCheck --check-prefix=UNSUPPORTED %s
-// RUN: %clang_cl -Wno-msvc-not-found --target=thumbv7-windows-msvc /Gv -### 
-- %s 2>&1 | FileCheck --check-prefix=UNSUPPORTED %s
+// RUN: %clang_cl -Wno-msvc-not-found --target=x86_64-windows-msvc /Gr -### -- 
%s 2>&1 | FileCheck --check-prefix=UNAVAILABLE %s
+// RUN: %clang_cl -Wno-msvc-not-found --target=x86_64-windows-msvc /Gz -### -- 
%s 2>&1 | FileCheck --check-prefix=UNAVAILABLE %s
+// RUN: %clang_cl -Wno-msvc-not-found --target=thumbv7-windows-msvc /Gv -### 
-- %s 2>&1 | FileCheck --check-prefix=UNAVAILABLE %s
 
-// UNSUPPORTED-NOT: error:
-// UNSUPPORTED-NOT: warning:
-// UNSUPPORTED-NOT: -fdefault-calling-conv=
+// UNAVAILABLE-NOT: error:
+// UNAVAILABLE-NOT: warning:
+// UNAVAILABLE-NOT: -fdefault-calling-conv=
 


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


r361502 - Work around a Visual C++ bug.

2019-05-23 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Thu May 23 08:07:46 2019
New Revision: 361502

URL: http://llvm.org/viewvc/llvm-project?rev=361502&view=rev
Log:
Work around a Visual C++ bug.

Using a static function as a template parameter gets a bogus compile-time
error with Visual Studio 2017, prior to version 15.8. Our current
minimum-version requirement is a particular update to VS2015, and we
assume all Visual Studio 2017 versions are usable. This patch makes the
code buildable with older versions of VS2017, and can be reverted after
we upgrade the minimum version sometime in the future.

Description of the Microsoft bug:
https://developercommunity.visualstudio.com/content/problem/25334/error-code-c2971-when-specifying-a-function-as-the.html

Differential Revision: https://reviews.llvm.org/D62202

Modified:
cfe/trunk/lib/Tooling/Refactoring/RangeSelector.cpp

Modified: cfe/trunk/lib/Tooling/Refactoring/RangeSelector.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Tooling/Refactoring/RangeSelector.cpp?rev=361502&r1=361501&r2=361502&view=diff
==
--- cfe/trunk/lib/Tooling/Refactoring/RangeSelector.cpp (original)
+++ cfe/trunk/lib/Tooling/Refactoring/RangeSelector.cpp Thu May 23 08:07:46 2019
@@ -218,37 +218,47 @@ public:
 };
 } // namespace
 
+// FIXME: Change the following functions from being in an anonymous namespace
+// to static functions, after the minimum Visual C++ has _MSC_VER >= 1915
+// (equivalent to Visual Studio 2017 v15.8 or higher). Using the anonymous
+// namespace works around a bug in earlier versions.
+namespace {
 // Returns the range of the statements (all source between the braces).
-static CharSourceRange getStatementsRange(const MatchResult &,
-  const CompoundStmt &CS) {
+CharSourceRange getStatementsRange(const MatchResult &,
+   const CompoundStmt &CS) {
   return CharSourceRange::getCharRange(CS.getLBracLoc().getLocWithOffset(1),
CS.getRBracLoc());
 }
+} // namespace
 
 RangeSelector tooling::statements(StringRef ID) {
   return RelativeSelector(ID);
 }
 
+namespace {
 // Returns the range of the source between the call's parentheses.
-static CharSourceRange getCallArgumentsRange(const MatchResult &Result,
- const CallExpr &CE) {
+CharSourceRange getCallArgumentsRange(const MatchResult &Result,
+  const CallExpr &CE) {
   return CharSourceRange::getCharRange(
   findOpenParen(CE, *Result.SourceManager, Result.Context->getLangOpts())
   .getLocWithOffset(1),
   CE.getRParenLoc());
 }
+} // namespace
 
 RangeSelector tooling::callArgs(StringRef ID) {
   return RelativeSelector(ID);
 }
 
+namespace {
 // Returns the range of the elements of the initializer list. Includes all
 // source between the braces.
-static CharSourceRange getElementsRange(const MatchResult &,
-const InitListExpr &E) {
+CharSourceRange getElementsRange(const MatchResult &,
+ const InitListExpr &E) {
   return CharSourceRange::getCharRange(E.getLBraceLoc().getLocWithOffset(1),
E.getRBraceLoc());
 }
+} // namespace
 
 RangeSelector tooling::initListElements(StringRef ID) {
   return RelativeSelector(ID);


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


r350636 - Don't emit DW_AT_enum_class unless it's actually an 'enum class'.

2019-01-08 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Tue Jan  8 08:28:11 2019
New Revision: 350636

URL: http://llvm.org/viewvc/llvm-project?rev=350636&view=rev
Log:
Don't emit DW_AT_enum_class unless it's actually an 'enum class'.

Finishes off the functional part of PR36168.

Differential Revision: https://reviews.llvm.org/D56393

Modified:
cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp

Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=350636&r1=350635&r2=350636&view=diff
==
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Tue Jan  8 08:28:11 2019
@@ -2711,7 +2711,7 @@ llvm::DIType *CGDebugInfo::CreateTypeDef
   llvm::DIType *ClassTy = getOrCreateType(ED->getIntegerType(), DefUnit);
   return DBuilder.createEnumerationType(EnumContext, ED->getName(), DefUnit,
 Line, Size, Align, EltArray, ClassTy,
-Identifier, ED->isFixed());
+Identifier, ED->isScoped());
 }
 
 llvm::DIMacro *CGDebugInfo::CreateMacro(llvm::DIMacroFile *Parent,

Modified: cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp?rev=350636&r1=350635&r2=350636&view=diff
==
--- cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp Tue Jan  8 08:28:11 2019
@@ -52,6 +52,7 @@ namespace test2 {
 // FIXME: this should just be a declaration under -fno-standalone-debug
 // CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "E"
 // CHECK-SAME: scope: [[TEST2:![0-9]+]]
+// CHECK-NOT:  DIFlagFixedEnum
 // CHECK-SAME: elements: [[TEST_ENUMS:![0-9]+]]
 // CHECK-SAME: identifier: "_ZTSN5test21EE"
 // CHECK: [[TEST2]] = !DINamespace(name: "test2"
@@ -67,6 +68,7 @@ namespace test3 {
 // FIXME: this should just be a declaration under -fno-standalone-debug
 // CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "E"
 // CHECK-SAME: scope: [[TEST3:![0-9]+]]
+// CHECK-NOT:  DIFlagFixedEnum
 // CHECK-SAME: elements: [[TEST_ENUMS]]
 // CHECK-SAME: identifier: "_ZTSN5test31EE"
 // CHECK: [[TEST3]] = !DINamespace(name: "test3"
@@ -78,6 +80,7 @@ void func(E *) {
 namespace test4 {
 // CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "E"
 // CHECK-SAME: scope: [[TEST4:![0-9]+]]
+// CHECK-NOT:  DIFlagFixedEnum
 // CHECK-SAME: elements: [[TEST_ENUMS]]
 // CHECK-SAME: identifier: "_ZTSN5test41EE"
 // CHECK: [[TEST4]] = !DINamespace(name: "test4"


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


r350641 - Rename DIFlagFixedEnum to DIFlagEnumClass. NFC

2019-01-08 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Tue Jan  8 09:52:29 2019
New Revision: 350641

URL: http://llvm.org/viewvc/llvm-project?rev=350641&view=rev
Log:
Rename DIFlagFixedEnum to DIFlagEnumClass. NFC

Modified:
cfe/trunk/test/CodeGen/debug-info-enum.cpp
cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp

Modified: cfe/trunk/test/CodeGen/debug-info-enum.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/debug-info-enum.cpp?rev=350641&r1=350640&r2=350641&view=diff
==
--- cfe/trunk/test/CodeGen/debug-info-enum.cpp (original)
+++ cfe/trunk/test/CodeGen/debug-info-enum.cpp Tue Jan  8 09:52:29 2019
@@ -12,7 +12,7 @@ enum class E0 : signed char {
 } x0;
 // CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "E0"
 // CHECK-SAME: baseType: ![[SCHAR:[0-9]+]]
-// CHECK-SAME: DIFlagFixedEnum
+// CHECK-SAME: DIFlagEnumClass
 // CHECK-SAME: elements: ![[ELTS0:[0-9]+]]
 // CHECK: ![[SCHAR]] = !DIBasicType(name: "signed char", size: 8, encoding: 
DW_ATE_signed_char)
 // CHECK: ![[ELTS0]] = !{![[A0:[0-9]+]], ![[B0:[0-9]+]]}
@@ -22,7 +22,7 @@ enum class E0 : signed char {
 enum class E1 : unsigned char { A1 = 255 } x1;
 // CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "E1"
 // CHECK-SAME: baseType: ![[UCHAR:[0-9]+]]
-// CHECK-SAME: DIFlagFixedEnum
+// CHECK-SAME: DIFlagEnumClass
 // CHECK-SAME: elements: ![[ELTS1:[0-9]+]]
 // CHECK: ![[UCHAR]] = !DIBasicType(name: "unsigned char", size: 8, encoding: 
DW_ATE_unsigned_char)
 // CHECK: ![[ELTS1]] = !{![[A1:[0-9]+]]}
@@ -34,7 +34,7 @@ enum class E2 : signed short {
 } x2;
 // CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "E2"
 // CHECK-SAME: baseType: ![[SHORT:[0-9]+]]
-// CHECK-SAME: DIFlagFixedEnum
+// CHECK-SAME: DIFlagEnumClass
 // CHECK-SAME: elements: ![[ELTS2:[0-9]+]]
 // CHECK: ![[SHORT]] = !DIBasicType(name: "short", size: 16, encoding: 
DW_ATE_signed)
 // CHECK: ![[ELTS2]] = !{![[A2:[0-9]+]], ![[B2:[0-9]+]]}
@@ -44,7 +44,7 @@ enum class E2 : signed short {
 enum class E3 : unsigned short { A3 = 65535 } x3;
 // CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "E3"
 // CHECK-SAME: baseType: ![[USHORT:[0-9]+]]
-// CHECK-SAME: DIFlagFixedEnum
+// CHECK-SAME: DIFlagEnumClass
 // CHECK-SAME: elements: ![[ELTS3:[0-9]+]]
 // CHECK: ![[USHORT]] = !DIBasicType(name: "unsigned short", size: 16, 
encoding: DW_ATE_unsigned)
 // CHECK: ![[ELTS3]] = !{![[A3:[0-9]+]]}
@@ -53,7 +53,7 @@ enum class E3 : unsigned short { A3 = 65
 enum class E4 : signed int { A4 = -2147483648, B4 = 2147483647 } x4;
 // CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "E4"
 // CHECK-SAME: baseType: ![[INT:[0-9]+]]
-// CHECK-SAME: DIFlagFixedEnum
+// CHECK-SAME: DIFlagEnumClass
 // CHECK-SAME: elements: ![[ELTS4:[0-9]+]]
 // CHECK: ![[INT]] = !DIBasicType(name: "int", size: 32, encoding: 
DW_ATE_signed)
 // CHECK: ![[ELTS4]] = !{![[A4:[0-9]+]], ![[B4:[0-9]+]]}
@@ -63,7 +63,7 @@ enum class E4 : signed int { A4 = -21474
 enum class E5 : unsigned int { A5 = 4294967295 } x5;
 // CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "E5"
 // CHECK-SAME: baseType: ![[UINT:[0-9]+]]
-// CHECK-SAME: DIFlagFixedEnum
+// CHECK-SAME: DIFlagEnumClass
 // CHECK-SAME: elements: ![[ELTS5:[0-9]+]]
 // CHECK: ![[UINT]] = !DIBasicType(name: "unsigned int", size: 32, encoding: 
DW_ATE_unsigned)
 // CHECK: ![[ELTS5]] = !{![[A5:[0-9]+]]}
@@ -75,7 +75,7 @@ enum class E6 : signed long long {
 } x6;
 // CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "E6"
 // CHECK-SAME: baseType: ![[LONG:[0-9]+]]
-// CHECK-SAME: DIFlagFixedEnum
+// CHECK-SAME: DIFlagEnumClass
 // CHECK-SAME: elements: ![[ELTS6:[0-9]+]]
 // CHECK: ![[LONG]] = !DIBasicType(name: "long long int", size: 64, encoding: 
DW_ATE_signed)
 // CHECK: ![[ELTS6]] = !{![[A6:[0-9]+]], ![[B6:[0-9]+]]}
@@ -85,7 +85,7 @@ enum class E6 : signed long long {
 enum class E7 : unsigned long long { A7 = 18446744073709551615ULL } x7;
 // CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "E7"
 // CHECK-SAME: baseType: ![[ULONG:[0-9]+]]
-// CHECK-SAME: DIFlagFixedEnum
+// CHECK-SAME: DIFlagEnumClass
 // CHECK-SAME: elements: ![[ELTS7:[0-9]+]]
 // CHECK: ![[ULONG]] = !DIBasicType(name: "long long unsigned int", size: 64, 
encoding: DW_ATE_unsigned)
 // CHECK: ![[ELTS7]] = !{![[A7:[0-9]+]]}
@@ -95,6 +95,6 @@ enum class E7 : unsigned long long { A7
 enum E8 { A8 = -128, B8 = 127 } x8;
 // CHECK: !DICompositeType(tag: DW_TAG_enumeration_type, name: "E8"
 // CHECK-SAME: baseType: ![[INT]]
-// CHECK-NOT: DIFlagFixedEnum
+// CHECK-NOT: DIFlagEnumClass
 // CHECK: !DIEnumerator(name: "A8", value: -128)
 

Modified: cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-enum-class.cpp?rev=350641&r1=350640&r2=350641&view=diff
==
--- cfe/trunk/test/CodeGenCXX/debug-info-enum-class.

r336685 - Support -fdebug-prefix-map for assembler source (pass to cc1as). This

2018-07-10 Thread Paul Robinson via cfe-commits
Author: probinson
Date: Tue Jul 10 08:15:24 2018
New Revision: 336685

URL: http://llvm.org/viewvc/llvm-project?rev=336685&view=rev
Log:
Support -fdebug-prefix-map for assembler source (pass to cc1as).  This
is useful to omit the debug compilation dir when compiling assembly
files with -g.  Part of PR38050.

Patch by Siddhartha Bagaria!

Differential Revision: https://reviews.llvm.org/D48989

Added:
cfe/trunk/test/Driver/debug-prefix-map.S
Modified:
cfe/trunk/include/clang/Driver/Options.td
cfe/trunk/lib/Driver/ToolChains/Clang.cpp
cfe/trunk/tools/driver/cc1as_main.cpp

Modified: cfe/trunk/include/clang/Driver/Options.td
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=336685&r1=336684&r2=336685&view=diff
==
--- cfe/trunk/include/clang/Driver/Options.td (original)
+++ cfe/trunk/include/clang/Driver/Options.td Tue Jul 10 08:15:24 2018
@@ -1741,7 +1741,8 @@ def fsplit_dwarf_inlining: Flag <["-"],
 def fno_split_dwarf_inlining: Flag<["-"], "fno-split-dwarf-inlining">, 
Group,
   Flags<[CC1Option]>;
 def fdebug_prefix_map_EQ
-  : Joined<["-"], "fdebug-prefix-map=">, Group, Flags<[CC1Option]>,
+  : Joined<["-"], "fdebug-prefix-map=">, Group,
+Flags<[CC1Option,CC1AsOption]>,
 HelpText<"remap file source paths in debug info">;
 def g_Flag : Flag<["-"], "g">, Group,
   HelpText<"Generate source-level debug information">;

Modified: cfe/trunk/lib/Driver/ToolChains/Clang.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/Clang.cpp?rev=336685&r1=336684&r2=336685&view=diff
==
--- cfe/trunk/lib/Driver/ToolChains/Clang.cpp (original)
+++ cfe/trunk/lib/Driver/ToolChains/Clang.cpp Tue Jul 10 08:15:24 2018
@@ -600,6 +600,18 @@ static void addDebugCompDirArg(const Arg
   }
 }
 
+/// Add a CC1 and CC1AS option to specify the debug file path prefix map.
+static void addDebugPrefixMapArg(const Driver &D, const ArgList &Args, 
ArgStringList &CmdArgs) {
+  for (const Arg *A : Args.filtered(options::OPT_fdebug_prefix_map_EQ)) {
+StringRef Map = A->getValue();
+if (Map.find('=') == StringRef::npos)
+  D.Diag(diag::err_drv_invalid_argument_to_fdebug_prefix_map) << Map;
+else
+  CmdArgs.push_back(Args.MakeArgString("-fdebug-prefix-map=" + Map));
+A->claim();
+  }
+}
+
 /// Vectorize at all optimization levels greater than 1 except for -Oz.
 /// For -Oz the loop vectorizer is disable, while the slp vectorizer is 
enabled.
 static bool shouldEnableVectorizerAtOLevel(const ArgList &Args, bool isSlpVec) 
{
@@ -3800,14 +3812,7 @@ void Clang::ConstructJob(Compilation &C,
   // Add in -fdebug-compilation-dir if necessary.
   addDebugCompDirArg(Args, CmdArgs);
 
-  for (const Arg *A : Args.filtered(options::OPT_fdebug_prefix_map_EQ)) {
-StringRef Map = A->getValue();
-if (Map.find('=') == StringRef::npos)
-  D.Diag(diag::err_drv_invalid_argument_to_fdebug_prefix_map) << Map;
-else
-  CmdArgs.push_back(Args.MakeArgString("-fdebug-prefix-map=" + Map));
-A->claim();
-  }
+  addDebugPrefixMapArg(D, Args, CmdArgs);
 
   if (Arg *A = Args.getLastArg(options::OPT_ftemplate_depth_,
options::OPT_ftemplate_depth_EQ)) {
@@ -5352,6 +5357,8 @@ void ClangAs::ConstructJob(Compilation &
 // Add the -fdebug-compilation-dir flag if needed.
 addDebugCompDirArg(Args, CmdArgs);
 
+addDebugPrefixMapArg(getToolChain().getDriver(), Args, CmdArgs);
+
 // Set the AT_producer to the clang version when using the integrated
 // assembler on assembly source files.
 CmdArgs.push_back("-dwarf-debug-producer");

Added: cfe/trunk/test/Driver/debug-prefix-map.S
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/debug-prefix-map.S?rev=336685&view=auto
==
--- cfe/trunk/test/Driver/debug-prefix-map.S (added)
+++ cfe/trunk/test/Driver/debug-prefix-map.S Tue Jul 10 08:15:24 2018
@@ -0,0 +1,6 @@
+// RUN: %clang -### -g -fdebug-prefix-map=old=new %s 2>&1 | FileCheck %s
+
+// CHECK: cc1as
+// CHECK-SAME: -fdebug-prefix-map=old=new
+
+// More tests for this flag in debug-prefix-map.c.

Modified: cfe/trunk/tools/driver/cc1as_main.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/driver/cc1as_main.cpp?rev=336685&r1=336684&r2=336685&view=diff
==
--- cfe/trunk/tools/driver/cc1as_main.cpp (original)
+++ cfe/trunk/tools/driver/cc1as_main.cpp Tue Jul 10 08:15:24 2018
@@ -94,6 +94,7 @@ struct AssemblerInvocation {
   std::string DwarfDebugFlags;
   std::string DwarfDebugProducer;
   std::string DebugCompilationDir;
+  std::map DebugPrefixMap;
   llvm::DebugCompressionType CompressDebugSections =
   llvm::DebugCompressionType::None;
   std::string MainFileName;
@@ -233,6 +234

[PATCH] D24998: Add a new optimization option -Og

2016-10-04 Thread Paul Robinson via cfe-commits
probinson added a comment.

As Renato points out, this addresses the user experience of tripping over the 
lack of -Og, however it does not really address the intent of PR20765 which is 
to provide a mode of optimizations that don't particularly interfere with 
debugging.
Eventually someone needs to take on the project of "proper -Og" which might or 
might not result in -Og still matching -O1.
I am not opposed to starting out this way, but don't close the PR.

If we later get user complaints about how -Og interferes with debugging, well, 
then we'll have actual use-cases to work from, which is extremely helpful for 
this sort of optimization tuning.



> init.c:208
>  //
> +// RUN: %clang_cc1 -Og -E -dM < /dev/null | FileCheck -match-full-lines 
> -check-prefix O1 %s
> +//

check-prefix https://reviews.llvm.org/owners/package/1/?  Then you don't need 
the Og: and Og-NOT: lines.

https://reviews.llvm.org/D24998



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


[clang] 08e4fe6 - [X86] Add RDPRU instruction

2022-07-06 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-07-06T07:17:47-07:00
New Revision: 08e4fe6c61967d5c6c16ef7a4cc63d51c4992b55

URL: 
https://github.com/llvm/llvm-project/commit/08e4fe6c61967d5c6c16ef7a4cc63d51c4992b55
DIFF: 
https://github.com/llvm/llvm-project/commit/08e4fe6c61967d5c6c16ef7a4cc63d51c4992b55.diff

LOG: [X86] Add RDPRU instruction

Add support for the RDPRU instruction on Zen2 processors.

User-facing features:

- Clang option -m[no-]rdpru to enable/disable the feature
- Support is implicit for znver2/znver3 processors
- Preprocessor symbol __RDPRU__ to indicate support
- Header rdpruintrin.h to define intrinsics
- "rdpru" mnemonic supported for assembler code

Internal features:

- Clang builtin __builtin_ia32_rdpru
- IR intrinsic @llvm.x86.rdpru

Differential Revision: https://reviews.llvm.org/D128934

Added: 
clang/lib/Headers/rdpruintrin.h
clang/test/CodeGen/rdpru-builtins.c
llvm/test/CodeGen/X86/rdpru.ll
llvm/test/MC/X86/RDPRU.s

Modified: 
clang/docs/ReleaseNotes.rst
clang/include/clang/Basic/BuiltinsX86.def
clang/include/clang/Driver/Options.td
clang/lib/Basic/Targets/X86.cpp
clang/lib/Basic/Targets/X86.h
clang/lib/Headers/CMakeLists.txt
clang/lib/Headers/x86intrin.h
clang/test/Driver/x86-target-features.c
clang/test/Preprocessor/x86_target_features.c
llvm/docs/ReleaseNotes.rst
llvm/include/llvm/IR/IntrinsicsX86.td
llvm/include/llvm/Support/X86TargetParser.def
llvm/lib/Support/X86TargetParser.cpp
llvm/lib/Target/X86/X86.td
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/lib/Target/X86/X86InstrInfo.td
llvm/lib/Target/X86/X86InstrSystem.td
llvm/lib/Target/X86/X86IntrinsicsInfo.h
llvm/test/MC/Disassembler/X86/x86-32.txt
llvm/test/MC/Disassembler/X86/x86-64.txt

Removed: 




diff  --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 98153fd6e68d..0f542e08b841 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -527,6 +527,9 @@ X86 Support in Clang
 - Support for the ``_Float16`` type has been added for all targets with SSE2.
   When AVX512-FP16 is not available, arithmetic on ``_Float16`` is emulated
   using ``float``.
+- Added the ``-m[no-]rdpru`` flag to enable/disable the RDPRU instruction
+  provided by AMD Zen2 and later processors. Defined intrinsics for using
+  this instruction (see rdpruintrin.h).
 
 DWARF Support in Clang
 --

diff  --git a/clang/include/clang/Basic/BuiltinsX86.def 
b/clang/include/clang/Basic/BuiltinsX86.def
index 3e5c376f9bc1..6bf35c340c2d 100644
--- a/clang/include/clang/Basic/BuiltinsX86.def
+++ b/clang/include/clang/Basic/BuiltinsX86.def
@@ -825,6 +825,7 @@ BUILTIN(__rdtsc, "UOi", "")
 BUILTIN(__builtin_ia32_rdtscp, "UOiUi*", "")
 
 TARGET_BUILTIN(__builtin_ia32_rdpid, "Ui", "n", "rdpid")
+TARGET_BUILTIN(__builtin_ia32_rdpru, "ULLii", "n", "rdpru")
 
 // PKU
 TARGET_BUILTIN(__builtin_ia32_rdpkru, "Ui", "n", "pku")

diff  --git a/clang/include/clang/Driver/Options.td 
b/clang/include/clang/Driver/Options.td
index f4fe08aa1a5b..8ae9145a271a 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -4570,6 +4570,8 @@ def mptwrite : Flag<["-"], "mptwrite">, 
Group;
 def mno_ptwrite : Flag<["-"], "mno-ptwrite">, Group;
 def mrdpid : Flag<["-"], "mrdpid">, Group;
 def mno_rdpid : Flag<["-"], "mno-rdpid">, Group;
+def mrdpru : Flag<["-"], "mrdpru">, Group;
+def mno_rdpru : Flag<["-"], "mno-rdpru">, Group;
 def mrdrnd : Flag<["-"], "mrdrnd">, Group;
 def mno_rdrnd : Flag<["-"], "mno-rdrnd">, Group;
 def mrtm : Flag<["-"], "mrtm">, Group;

diff  --git a/clang/lib/Basic/Targets/X86.cpp b/clang/lib/Basic/Targets/X86.cpp
index 06988830eaed..69afdf8a3584 100644
--- a/clang/lib/Basic/Targets/X86.cpp
+++ b/clang/lib/Basic/Targets/X86.cpp
@@ -297,6 +297,8 @@ bool 
X86TargetInfo::handleTargetFeatures(std::vector &Features,
   HasCLDEMOTE = true;
 } else if (Feature == "+rdpid") {
   HasRDPID = true;
+} else if (Feature == "+rdpru") {
+  HasRDPRU = true;
 } else if (Feature == "+kl") {
   HasKL = true;
 } else if (Feature == "+widekl") {
@@ -743,6 +745,8 @@ void X86TargetInfo::getTargetDefines(const LangOptions 
&Opts,
 Builder.defineMacro("__WIDEKL__");
   if (HasRDPID)
 Builder.defineMacro("__RDPID__");
+  if (HasRDPRU)
+Builder.defineMacro("__RDPRU__");
   if (HasCLDEMOTE)
 Builder.defineMacro("__CLDEMOTE__");
   if (HasWAITPKG)
@@ -926,6 +930,7 @@ bool X86TargetInfo::isValidFeatureName(StringRef Name) 
const {
   .Case("prfchw", true)
   .Case("ptwrite", true)
   .Case("rdpid", true)
+  .Case("rdpru", true)
   .Case("rdrnd", true)
   .Case("rdseed", true)
   .Case("rtm", true)
@@ -1021,6 +1026,7 @@ bool X86TargetInfo::hasFeature(StringRef Feature) const {
   .Case("prfchw", HasPRFCHW)
   .Case("ptwrite", HasPTWRITE)
   .

[clang] 6aa0397 - Remove dead code in driver parsing -gsimple-template-names= options

2022-03-25 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-03-25T13:23:24-07:00
New Revision: 6aa039775891b6eae81604bb851e72192f5a7462

URL: 
https://github.com/llvm/llvm-project/commit/6aa039775891b6eae81604bb851e72192f5a7462
DIFF: 
https://github.com/llvm/llvm-project/commit/6aa039775891b6eae81604bb851e72192f5a7462.diff

LOG: Remove dead code in driver parsing -gsimple-template-names= options

While -g[no-]simple-template-names is a driver option, the fancier
-gsimple-template-names={simple,mangled} option is cc1-only, so code
to handle it in the driver is dead.

Differential Revision: https://reviews.llvm.org/D122503

Added: 


Modified: 
clang/lib/Driver/ToolChains/Clang.cpp

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index b9d36a753d072..7c7f9254b34da 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -4295,8 +4295,8 @@ static void renderDebugOptions(const ToolChain &TC, const 
Driver &D,
 ? "-gpubnames"
 : "-ggnu-pubnames");
   const auto *SimpleTemplateNamesArg =
-  Args.getLastArg(options::OPT_gsimple_template_names, 
options::OPT_gno_simple_template_names,
-  options::OPT_gsimple_template_names_EQ);
+  Args.getLastArg(options::OPT_gsimple_template_names,
+  options::OPT_gno_simple_template_names);
   bool ForwardTemplateParams = DebuggerTuning == llvm::DebuggerKind::SCE;
   if (SimpleTemplateNamesArg &&
   checkDebugInfoOption(SimpleTemplateNamesArg, Args, D, TC)) {
@@ -4304,17 +4304,6 @@ static void renderDebugOptions(const ToolChain &TC, 
const Driver &D,
 if (Opt.matches(options::OPT_gsimple_template_names)) {
   ForwardTemplateParams = true;
   CmdArgs.push_back("-gsimple-template-names=simple");
-} else if (Opt.matches(options::OPT_gsimple_template_names_EQ)) {
-  ForwardTemplateParams = true;
-  StringRef Value = SimpleTemplateNamesArg->getValue();
-  if (Value == "simple") {
-CmdArgs.push_back("-gsimple-template-names=simple");
-  } else if (Value == "mangled") {
-CmdArgs.push_back("-gsimple-template-names=mangled");
-  } else {
-D.Diag(diag::err_drv_unsupported_option_argument)
-<< Opt.getName() << SimpleTemplateNamesArg->getValue();
-  }
 }
   }
 



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


[clang] 1e08544 - [PS4] Fix header search list

2022-04-05 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-05T14:14:13-07:00
New Revision: 1e085448b36db240c9068c8c4e4cb12d4d7093cb

URL: 
https://github.com/llvm/llvm-project/commit/1e085448b36db240c9068c8c4e4cb12d4d7093cb
DIFF: 
https://github.com/llvm/llvm-project/commit/1e085448b36db240c9068c8c4e4cb12d4d7093cb.diff

LOG: [PS4] Fix header search list

A missing "break" in the initial implementation had us adding a
spurious "/usr/include" to the header search list. Later someone
introduced LLVM_FALLTHROUGH to prevent a warning.  Replace this with
the correct "break" and make sure the extra directory isn't added to
the PS4 header search list.

Added: 


Modified: 
clang/lib/Lex/InitHeaderSearch.cpp
clang/test/Driver/ps4-header-search.c

Removed: 




diff  --git a/clang/lib/Lex/InitHeaderSearch.cpp 
b/clang/lib/Lex/InitHeaderSearch.cpp
index 2233c9fa114bc..86c6768d0d9fa 100644
--- a/clang/lib/Lex/InitHeaderSearch.cpp
+++ b/clang/lib/Lex/InitHeaderSearch.cpp
@@ -372,7 +372,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const 
llvm::Triple &triple,
 AddPath(BaseSDKPath + "/target/include", System, false);
 if (triple.isPS4())
   AddPath(BaseSDKPath + "/target/include_common", System, false);
-LLVM_FALLTHROUGH;
+break;
   }
   default:
 AddPath("/usr/include", ExternCSystem, false);

diff  --git a/clang/test/Driver/ps4-header-search.c 
b/clang/test/Driver/ps4-header-search.c
index 3afef698d2642..20aaa5f97a749 100644
--- a/clang/test/Driver/ps4-header-search.c
+++ b/clang/test/Driver/ps4-header-search.c
@@ -3,8 +3,10 @@
 // RUN: env SCE_ORBIS_SDK_DIR=%S/Inputs/scei-ps4_tree %clang -target 
x86_64-scei-ps4 -E -v %s 2>&1 | FileCheck %s --check-prefix=ENVPS4
 // ENVPS4: Inputs/scei-ps4_tree/target/include{{$}}
 // ENVPS4: Inputs/scei-ps4_tree/target/include_common{{$}}
+// ENVPS4-NOT: /usr/include
 
 // RUN: %clang -isysroot %S/Inputs/scei-ps4_tree -target x86_64-scei-ps4 -E -v 
%s 2>&1 | FileCheck %s --check-prefix=SYSROOTPS4
 // SYSROOTPS4: "{{[^"]*}}clang{{[^"]*}}"
 // SYSROOTPS4: Inputs/scei-ps4_tree/target/include{{$}}
 // SYSROOTPS4: Inputs/scei-ps4_tree/target/include_common{{$}}
+// SYSROOTPS4-NOT: /usr/include



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


[clang] 31c9711 - [PS4] clang-format PS4CPU.cpp/.h

2022-04-06 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-06T06:52:29-07:00
New Revision: 31c971145f5eef53e443fe7e9b137db6b5b6319d

URL: 
https://github.com/llvm/llvm-project/commit/31c971145f5eef53e443fe7e9b137db6b5b6319d
DIFF: 
https://github.com/llvm/llvm-project/commit/31c971145f5eef53e443fe7e9b137db6b5b6319d.diff

LOG: [PS4] clang-format PS4CPU.cpp/.h

Added: 


Modified: 
clang/lib/Driver/ToolChains/PS4CPU.cpp
clang/lib/Driver/ToolChains/PS4CPU.h

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp 
b/clang/lib/Driver/ToolChains/PS4CPU.cpp
index bcf9147833ddf..c73edf1adac2e 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.cpp
+++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp
@@ -7,8 +7,8 @@
 
//===--===//
 
 #include "PS4CPU.h"
-#include "FreeBSD.h"
 #include "CommonArgs.h"
+#include "FreeBSD.h"
 #include "clang/Driver/Compilation.h"
 #include "clang/Driver/Driver.h"
 #include "clang/Driver/DriverDiagnostic.h"
@@ -125,7 +125,7 @@ void tools::PS4cpu::Link::ConstructJob(Compilation &C, 
const JobAction &JA,
 assert(Output.isNothing() && "Invalid output.");
   }
 
-  if(!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs))
+  if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs))
 AddPS4SanitizerArgs(ToolChain, Args, CmdArgs);
 
   Args.AddAllArgs(CmdArgs, options::OPT_L);
@@ -149,8 +149,7 @@ void tools::PS4cpu::Link::ConstructJob(Compilation &C, 
const JobAction &JA,
 << "-fuse-ld" << getToolChain().getTriple().str();
   }
 
-  const char *Exec =
-  Args.MakeArgString(ToolChain.GetProgramPath("orbis-ld"));
+  const char *Exec = Args.MakeArgString(ToolChain.GetProgramPath("orbis-ld"));
 
   C.addCommand(std::make_unique(JA, *this,
  ResponseFileSupport::AtFileUTF8(),

diff  --git a/clang/lib/Driver/ToolChains/PS4CPU.h 
b/clang/lib/Driver/ToolChains/PS4CPU.h
index 4bedabaf267c0..86731b8f9649b 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.h
+++ b/clang/lib/Driver/ToolChains/PS4CPU.h
@@ -33,8 +33,7 @@ class LLVM_LIBRARY_VISIBILITY Assemble : public Tool {
   bool hasIntegratedCPP() const override { return false; }
 
   void ConstructJob(Compilation &C, const JobAction &JA,
-const InputInfo &Output,
-const InputInfoList &Inputs,
+const InputInfo &Output, const InputInfoList &Inputs,
 const llvm::opt::ArgList &TCArgs,
 const char *LinkingOutput) const override;
 };
@@ -47,8 +46,7 @@ class LLVM_LIBRARY_VISIBILITY Link : public Tool {
   bool isLinkJob() const override { return true; }
 
   void ConstructJob(Compilation &C, const JobAction &JA,
-const InputInfo &Output,
-const InputInfoList &Inputs,
+const InputInfo &Output, const InputInfoList &Inputs,
 const llvm::opt::ArgList &TCArgs,
 const char *LinkingOutput) const override;
 };
@@ -63,12 +61,12 @@ class LLVM_LIBRARY_VISIBILITY PS4CPU : public Generic_ELF {
  const llvm::opt::ArgList &Args);
 
   // No support for finding a C++ standard library yet.
-  void addLibCxxIncludePaths(
-  const llvm::opt::ArgList &DriverArgs,
-  llvm::opt::ArgStringList &CC1Args) const override {}
-  void addLibStdCxxIncludePaths(
-  const llvm::opt::ArgList &DriverArgs,
-  llvm::opt::ArgStringList &CC1Args) const override {}
+  void addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
+ llvm::opt::ArgStringList &CC1Args) const override 
{
+  }
+  void
+  addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
+   llvm::opt::ArgStringList &CC1Args) const override {}
 
   bool IsMathErrnoDefault() const override { return false; }
   bool IsObjCNonFragileABIDefault() const override { return true; }
@@ -92,9 +90,8 @@ class LLVM_LIBRARY_VISIBILITY PS4CPU : public Generic_ELF {
   bool canSplitThinLTOUnit() const override { return false; }
 
   void addClangTargetOptions(
-const llvm::opt::ArgList &DriverArgs,
-llvm::opt::ArgStringList &CC1Args,
-Action::OffloadKind DeviceOffloadingKind) const override;
+  const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args,
+  Action::OffloadKind DeviceOffloadingKind) const override;
 
   llvm::DenormalMode getDefaultDenormalModeForType(
   const llvm::opt::ArgList &DriverArgs, const JobAction &JA,



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


[clang] bb78dd2 - [RGT] StencilTest: Fix an assertion

2022-03-18 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-03-18T14:13:41-07:00
New Revision: bb78dd2e1f81323a631e2964d06a40aa10d5e2f5

URL: 
https://github.com/llvm/llvm-project/commit/bb78dd2e1f81323a631e2964d06a40aa10d5e2f5
DIFF: 
https://github.com/llvm/llvm-project/commit/bb78dd2e1f81323a631e2964d06a40aa10d5e2f5.diff

LOG: [RGT] StencilTest: Fix an assertion

ASSERT_THAT_EXPECTED implicitly calls takeError(), and calling
takeError() a second time returns nothing, so the check for the
content of the error text wasn't being executed.
Fixes Issue #48901

Found by the Rotten Green Tests project.

Added: 


Modified: 
clang/unittests/Tooling/StencilTest.cpp

Removed: 




diff  --git a/clang/unittests/Tooling/StencilTest.cpp 
b/clang/unittests/Tooling/StencilTest.cpp
index 28cc8281485a8..1f49c1a30c041 100644
--- a/clang/unittests/Tooling/StencilTest.cpp
+++ b/clang/unittests/Tooling/StencilTest.cpp
@@ -627,7 +627,7 @@ TEST_F(StencilTest, CatOfInvalidRangeFails) {
   ASSERT_TRUE(StmtMatch);
   Stencil S = cat(node("arg"));
   Expected Result = S->eval(StmtMatch->Result);
-  ASSERT_THAT_EXPECTED(Result, Failed());
+  ASSERT_FALSE(Result);
   llvm::handleAllErrors(Result.takeError(), [](const llvm::StringError &E) {
 EXPECT_THAT(E.getMessage(), AllOf(HasSubstr("selected range"),
   HasSubstr("macro expansion")));



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


[clang] 375d934 - [PS4] Fix a buggy cast

2022-04-06 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-06T12:28:50-07:00
New Revision: 375d93465b3e6f342e0554cfaee308a45a523969

URL: 
https://github.com/llvm/llvm-project/commit/375d93465b3e6f342e0554cfaee308a45a523969
DIFF: 
https://github.com/llvm/llvm-project/commit/375d93465b3e6f342e0554cfaee308a45a523969.diff

LOG: [PS4] Fix a buggy cast

Added: 


Modified: 
clang/lib/Driver/ToolChains/PS4CPU.cpp

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp 
b/clang/lib/Driver/ToolChains/PS4CPU.cpp
index c73edf1adac2e..5aab0a6d1bf87 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.cpp
+++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp
@@ -94,8 +94,8 @@ void tools::PS4cpu::Link::ConstructJob(Compilation &C, const 
JobAction &JA,
const InputInfoList &Inputs,
const ArgList &Args,
const char *LinkingOutput) const {
-  const toolchains::FreeBSD &ToolChain =
-  static_cast(getToolChain());
+  const toolchains::PS4CPU &ToolChain =
+  static_cast(getToolChain());
   const Driver &D = ToolChain.getDriver();
   ArgStringList CmdArgs;
 



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


[clang] 78a6f59 - [RGT] Use GTEST_SKIP instead of just returning

2022-04-08 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-08T12:20:20-07:00
New Revision: 78a6f59c2cef58c01a13ba4e587b30cd1dbd6475

URL: 
https://github.com/llvm/llvm-project/commit/78a6f59c2cef58c01a13ba4e587b30cd1dbd6475
DIFF: 
https://github.com/llvm/llvm-project/commit/78a6f59c2cef58c01a13ba4e587b30cd1dbd6475.diff

LOG: [RGT] Use GTEST_SKIP instead of just returning

Added: 


Modified: 
clang/unittests/Tooling/RecursiveASTVisitorTests/LambdaExpr.cpp

Removed: 




diff  --git a/clang/unittests/Tooling/RecursiveASTVisitorTests/LambdaExpr.cpp 
b/clang/unittests/Tooling/RecursiveASTVisitorTests/LambdaExpr.cpp
index 8e23487840919..4eaa1636d230e 100644
--- a/clang/unittests/Tooling/RecursiveASTVisitorTests/LambdaExpr.cpp
+++ b/clang/unittests/Tooling/RecursiveASTVisitorTests/LambdaExpr.cpp
@@ -88,7 +88,7 @@ TEST(RecursiveASTVisitor, VisitsLambdaExprAndImplicitClass) {
 
 TEST(RecursiveASTVisitor, VisitsAttributedLambdaExpr) {
   if (llvm::Triple(llvm::sys::getDefaultTargetTriple()).isPS4())
-return; // PS4 does not support fastcall.
+GTEST_SKIP(); // PS4 does not support fastcall.
   LambdaExprVisitor Visitor;
   Visitor.ExpectMatch("", 1, 12);
   EXPECT_TRUE(Visitor.runOver(



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


[clang] 52d346e - [PS4] NFC refactor of PS4 toolchain class, prep for PS5

2022-04-14 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-14T05:37:39-07:00
New Revision: 52d346e715cfaa08a71cdc8982627a3a598e47dd

URL: 
https://github.com/llvm/llvm-project/commit/52d346e715cfaa08a71cdc8982627a3a598e47dd
DIFF: 
https://github.com/llvm/llvm-project/commit/52d346e715cfaa08a71cdc8982627a3a598e47dd.diff

LOG: [PS4] NFC refactor of PS4 toolchain class, prep for PS5

Added: 


Modified: 
clang/include/clang/Basic/DiagnosticDriverKinds.td
clang/lib/Driver/ToolChains/PS4CPU.cpp
clang/lib/Driver/ToolChains/PS4CPU.h

Removed: 




diff  --git a/clang/include/clang/Basic/DiagnosticDriverKinds.td 
b/clang/include/clang/Basic/DiagnosticDriverKinds.td
index 4756edd28a925..64af4c84672fe 100644
--- a/clang/include/clang/Basic/DiagnosticDriverKinds.td
+++ b/clang/include/clang/Basic/DiagnosticDriverKinds.td
@@ -539,8 +539,8 @@ def warn_drv_ps4_force_pic : Warning<
   "option '%0' was ignored by the PS4 toolchain, using '-fPIC'">,
   InGroup;
 
-def warn_drv_ps4_sdk_dir : Warning<
-  "environment variable SCE_ORBIS_SDK_DIR is set, but points to invalid or 
nonexistent directory '%0'">,
+def warn_drv_ps_sdk_dir : Warning<
+  "environment variable '%0' is set, but points to invalid or nonexistent 
directory '%1'">,
   InGroup;
 
 def err_drv_defsym_invalid_format : Error<"defsym must be of the form: 
sym=value: %0">;

diff  --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp 
b/clang/lib/Driver/ToolChains/PS4CPU.cpp
index 5aab0a6d1bf87..154eb78ce207c 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.cpp
+++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp
@@ -8,7 +8,6 @@
 
 #include "PS4CPU.h"
 #include "CommonArgs.h"
-#include "FreeBSD.h"
 #include "clang/Driver/Compilation.h"
 #include "clang/Driver/Driver.h"
 #include "clang/Driver/DriverDiagnostic.h"
@@ -23,8 +22,18 @@ using namespace clang::driver;
 using namespace clang;
 using namespace llvm::opt;
 
+// Helper to paste bits of an option together and return a saved string.
+static const char *makeArgString(const ArgList &Args, const char *Prefix,
+ const char *Base, const char *Suffix) {
+  // Basically "Prefix + Base + Suffix" all converted to Twine then saved.
+  return Args.MakeArgString(Twine(StringRef(Prefix), Base) + Suffix);
+}
+
 void tools::PS4cpu::addProfileRTArgs(const ToolChain &TC, const ArgList &Args,
  ArgStringList &CmdArgs) {
+  assert(TC.getTriple().isPS());
+  auto &PSTC = static_cast(TC);
+
   if ((Args.hasFlag(options::OPT_fprofile_arcs, options::OPT_fno_profile_arcs,
 false) ||
Args.hasFlag(options::OPT_fprofile_generate,
@@ -41,7 +50,8 @@ void tools::PS4cpu::addProfileRTArgs(const ToolChain &TC, 
const ArgList &Args,
 options::OPT_fno_profile_generate, false) ||
Args.hasArg(options::OPT_fcreate_profile) ||
Args.hasArg(options::OPT_coverage)))
-CmdArgs.push_back("--dependent-lib=libclang_rt.profile-x86_64.a");
+CmdArgs.push_back(makeArgString(
+Args, "--dependent-lib=", PSTC.getProfileRTLibName(), ""));
 }
 
 void tools::PS4cpu::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
@@ -49,6 +59,7 @@ void tools::PS4cpu::Assemble::ConstructJob(Compilation &C, 
const JobAction &JA,
const InputInfoList &Inputs,
const ArgList &Args,
const char *LinkingOutput) const {
+  auto &TC = static_cast(getToolChain());
   claimNoWarnArgs(Args);
   ArgStringList CmdArgs;
 
@@ -62,31 +73,32 @@ void tools::PS4cpu::Assemble::ConstructJob(Compilation &C, 
const JobAction &JA,
   assert(Input.isFilename() && "Invalid input.");
   CmdArgs.push_back(Input.getFilename());
 
-  const char *Exec =
-  Args.MakeArgString(getToolChain().GetProgramPath("orbis-as"));
+  std::string AsName = TC.qualifyPSCmdName("as");
+  const char *Exec = Args.MakeArgString(TC.GetProgramPath(AsName.c_str()));
   C.addCommand(std::make_unique(JA, *this,
  ResponseFileSupport::AtFileUTF8(),
  Exec, CmdArgs, Inputs, Output));
 }
 
-static void AddPS4SanitizerArgs(const ToolChain &TC, const ArgList &Args,
-ArgStringList &CmdArgs) {
-  const SanitizerArgs &SanArgs = TC.getSanitizerArgs(Args);
-  if (SanArgs.needsUbsanRt()) {
-CmdArgs.push_back("-lSceDbgUBSanitizer_stub_weak");
-  }
-  if (SanArgs.needsAsanRt()) {
-CmdArgs.push_back("-lSceDbgAddressSanitizer_stub_weak");
-  }
-}
-
 void tools::PS4cpu::addSanitizerArgs(const ToolChain &TC, const ArgList &Args,
  ArgStringList &CmdArgs) {
-  const SanitizerArgs &SanArgs = TC.getSanitizerArgs(Args);
+  assert(TC.getTriple().isPS());
+  auto &PSTC = static_cast(TC);
+  PSTC.addSanitizerArgs(Args, CmdArgs, "--dependent-lib=lib", ".a");
+

[clang] 7ef9dd3 - [PS4] Fix a couple of typos

2022-04-14 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-14T10:14:17-07:00
New Revision: 7ef9dd3c61fd85b430bcd74f7ce2c075d93fe4fa

URL: 
https://github.com/llvm/llvm-project/commit/7ef9dd3c61fd85b430bcd74f7ce2c075d93fe4fa
DIFF: 
https://github.com/llvm/llvm-project/commit/7ef9dd3c61fd85b430bcd74f7ce2c075d93fe4fa.diff

LOG: [PS4] Fix a couple of typos

Added: 


Modified: 
clang/lib/Driver/ToolChains/PS4CPU.h

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/PS4CPU.h 
b/clang/lib/Driver/ToolChains/PS4CPU.h
index 21352f9fdf52e..dbb9c14b6373c 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.h
+++ b/clang/lib/Driver/ToolChains/PS4CPU.h
@@ -105,7 +105,7 @@ class LLVM_LIBRARY_VISIBILITY PS4PS5Base : public 
Generic_ELF {
   virtual void addSanitizerArgs(const llvm::opt::ArgList &Args,
 llvm::opt::ArgStringList &CmdArgs,
 const char *Prefix,
-const char *Suffic) const = 0;
+const char *Suffix) const = 0;
   virtual const char *getProfileRTLibName() const = 0;
 
 protected:
@@ -122,7 +122,7 @@ class LLVM_LIBRARY_VISIBILITY PS4CPU : public PS4PS5Base {
   unsigned GetDefaultDwarfVersion() const override { return 4; }
 
   // PS4 toolchain uses legacy thin LTO API, which is not
-  // capable of unit splitt.
+  // capable of unit splitting.
   bool canSplitThinLTOUnit() const override { return false; }
 
   const char *getLinkerBaseName() const override { return "ld"; }



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


[clang] 7726ad0 - [PS5] Add basic PS5 driver behavior

2022-04-14 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-14T12:45:33-07:00
New Revision: 7726ad04e2633a843fb9743e5adfbb404446e657

URL: 
https://github.com/llvm/llvm-project/commit/7726ad04e2633a843fb9743e5adfbb404446e657
DIFF: 
https://github.com/llvm/llvm-project/commit/7726ad04e2633a843fb9743e5adfbb404446e657.diff

LOG: [PS5] Add basic PS5 driver behavior

This adds a PS5-specific ToolChain subclass, which defines some basic
PS5 driver behavior. Future patches will add more target-specific
driver behavior.

Added: 
clang/test/Driver/ps4-ps5-header-search.c
clang/test/Driver/ps4-ps5-linker-non-win.c
clang/test/Driver/ps4-ps5-linker-win.c
clang/test/Driver/ps4-ps5-relax-relocations.c
clang/test/Driver/ps4-ps5-runtime-flags.c
clang/test/Driver/ps4ps5base.c
clang/test/Driver/ps5-sdk-root.c

Modified: 
clang/lib/Driver/Driver.cpp
clang/lib/Driver/ToolChains/Clang.cpp
clang/lib/Driver/ToolChains/PS4CPU.cpp
clang/lib/Driver/ToolChains/PS4CPU.h
clang/lib/Lex/InitHeaderSearch.cpp
clang/test/Driver/inhibit-downstream-commands.c
clang/test/Driver/no-integrated-as.c
clang/test/Driver/no-integrated-as.s

Removed: 
clang/test/Driver/ps4-header-search.c
clang/test/Driver/ps4-linker-non-win.c
clang/test/Driver/ps4-linker-win.c
clang/test/Driver/ps4-relax-relocations.c
clang/test/Driver/ps4-runtime-flags.c
clang/test/Driver/ps4cpu.c



diff  --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 392364ce22bad..8de1a364092dc 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -5672,6 +5672,9 @@ const ToolChain &Driver::getToolChain(const ArgList &Args,
 case llvm::Triple::PS4:
   TC = std::make_unique(*this, Target, Args);
   break;
+case llvm::Triple::PS5:
+  TC = std::make_unique(*this, Target, Args);
+  break;
 case llvm::Triple::Contiki:
   TC = std::make_unique(*this, Target, Args);
   break;

diff  --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index bf47212374ce4..8aefcaeed37dc 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -5541,11 +5541,11 @@ void Clang::ConstructJob(Compilation &C, const 
JobAction &JA,
 
   Args.AddLastArg(CmdArgs, options::OPT_fclang_abi_compat_EQ);
 
-  // Add runtime flag for PS4 when PGO, coverage, or sanitizers are enabled.
-  if (RawTriple.isPS4() &&
+  // Add runtime flag for PS4/PS5 when PGO, coverage, or sanitizers are 
enabled.
+  if (RawTriple.isPS() &&
   !Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
-PS4cpu::addProfileRTArgs(TC, Args, CmdArgs);
-PS4cpu::addSanitizerArgs(TC, Args, CmdArgs);
+PScpu::addProfileRTArgs(TC, Args, CmdArgs);
+PScpu::addSanitizerArgs(TC, Args, CmdArgs);
   }
 
   // Pass options for controlling the default header search paths.

diff  --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp 
b/clang/lib/Driver/ToolChains/PS4CPU.cpp
index 154eb78ce207c..3c8798ebbc511 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.cpp
+++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp
@@ -29,8 +29,8 @@ static const char *makeArgString(const ArgList &Args, const 
char *Prefix,
   return Args.MakeArgString(Twine(StringRef(Prefix), Base) + Suffix);
 }
 
-void tools::PS4cpu::addProfileRTArgs(const ToolChain &TC, const ArgList &Args,
- ArgStringList &CmdArgs) {
+void tools::PScpu::addProfileRTArgs(const ToolChain &TC, const ArgList &Args,
+ArgStringList &CmdArgs) {
   assert(TC.getTriple().isPS());
   auto &PSTC = static_cast(TC);
 
@@ -54,11 +54,11 @@ void tools::PS4cpu::addProfileRTArgs(const ToolChain &TC, 
const ArgList &Args,
 Args, "--dependent-lib=", PSTC.getProfileRTLibName(), ""));
 }
 
-void tools::PS4cpu::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
-   const InputInfo &Output,
-   const InputInfoList &Inputs,
-   const ArgList &Args,
-   const char *LinkingOutput) const {
+void tools::PScpu::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
+  const InputInfo &Output,
+  const InputInfoList &Inputs,
+  const ArgList &Args,
+  const char *LinkingOutput) const {
   auto &TC = static_cast(getToolChain());
   claimNoWarnArgs(Args);
   ArgStringList CmdArgs;
@@ -80,8 +80,8 @@ void tools::PS4cpu::Assemble::ConstructJob(Compilation &C, 
const JobAction &JA,
  Exec, CmdArgs, Inputs, Output));
 }
 
-void tools::PS4cpu::addSanitizerArgs(const ToolChain &TC, const ArgList &Args,
-  

[clang] 20c873c - [PS5] Avoid a driver crash

2022-04-19 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-19T15:55:32-07:00
New Revision: 20c873c12fa5563bbfb07c880db51fa68db571cc

URL: 
https://github.com/llvm/llvm-project/commit/20c873c12fa5563bbfb07c880db51fa68db571cc
DIFF: 
https://github.com/llvm/llvm-project/commit/20c873c12fa5563bbfb07c880db51fa68db571cc.diff

LOG: [PS5] Avoid a driver crash

In some cases, an error constructing a compiler or assembler job could
leave the Inputs in a state that the code for constructing the linker
job was not ready for.

Added: 


Modified: 
clang/lib/Driver/ToolChains/CommonArgs.cpp
clang/test/Driver/no-integrated-as.c

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp 
b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 1207bf37b5bb0..96a54228626f6 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -255,6 +255,10 @@ void tools::AddLinkerInputs(const ToolChain &TC, const 
InputInfoList &Inputs,
   continue;
 }
 
+// In some error cases, the input could be Nothing; skip those.
+if (II.isNothing())
+  continue;
+
 // Otherwise, this is a linker input argument.
 const Arg &A = II.getInputArg();
 

diff  --git a/clang/test/Driver/no-integrated-as.c 
b/clang/test/Driver/no-integrated-as.c
index 6f45a6050e9fd..617e319764efb 100644
--- a/clang/test/Driver/no-integrated-as.c
+++ b/clang/test/Driver/no-integrated-as.c
@@ -13,8 +13,9 @@
 
 // DEFAULT-NOT: -no-integrated-as
 
-// RUN: %clang -target x86_64-sie-ps5 -### -no-integrated-as %s -c 2>&1 \
+/// -c omitted on purpose, this used to crash.
+// RUN: %clang -target x86_64-sie-ps5 -### -no-integrated-as %s 2>&1 \
 // RUN: | FileCheck %s -check-prefix PS5
-// RUN: %clang -target x86_64-sie-ps5 -### -no-integrated-as %s -c -x 
assembler 2>&1 \
+// RUN: %clang -target x86_64-sie-ps5 -### -no-integrated-as %s -x assembler 
2>&1 \
 // RUN: | FileCheck %s -check-prefix PS5
 // PS5: there is no external assembler that can be used on this platform



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


[clang] a5c847e - [PS4][NFC] Rename classes to align with prevailing practice

2022-04-20 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-20T08:35:52-07:00
New Revision: a5c847e8cf2a60fe09d4016788c4944ab4739e45

URL: 
https://github.com/llvm/llvm-project/commit/a5c847e8cf2a60fe09d4016788c4944ab4739e45
DIFF: 
https://github.com/llvm/llvm-project/commit/a5c847e8cf2a60fe09d4016788c4944ab4739e45.diff

LOG: [PS4][NFC] Rename classes to align with prevailing practice

Rename classes Assemble -> Assembler, Link -> Linker,
for consistency with names other toolchains use.

Added: 


Modified: 
clang/lib/Driver/ToolChains/PS4CPU.cpp
clang/lib/Driver/ToolChains/PS4CPU.h

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp 
b/clang/lib/Driver/ToolChains/PS4CPU.cpp
index 3c8798ebbc511..55a8d4dbc24b4 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.cpp
+++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp
@@ -54,11 +54,11 @@ void tools::PScpu::addProfileRTArgs(const ToolChain &TC, 
const ArgList &Args,
 Args, "--dependent-lib=", PSTC.getProfileRTLibName(), ""));
 }
 
-void tools::PScpu::Assemble::ConstructJob(Compilation &C, const JobAction &JA,
-  const InputInfo &Output,
-  const InputInfoList &Inputs,
-  const ArgList &Args,
-  const char *LinkingOutput) const {
+void tools::PScpu::Assembler::ConstructJob(Compilation &C, const JobAction &JA,
+   const InputInfo &Output,
+   const InputInfoList &Inputs,
+   const ArgList &Args,
+   const char *LinkingOutput) const {
   auto &TC = static_cast(getToolChain());
   claimNoWarnArgs(Args);
   ArgStringList CmdArgs;
@@ -117,11 +117,11 @@ void toolchains::PS5CPU::addSanitizerArgs(const ArgList 
&Args,
 CmdArgs.push_back(arg("SceThreadSanitizer_nosubmission_stub_weak"));
 }
 
-void tools::PScpu::Link::ConstructJob(Compilation &C, const JobAction &JA,
-  const InputInfo &Output,
-  const InputInfoList &Inputs,
-  const ArgList &Args,
-  const char *LinkingOutput) const {
+void tools::PScpu::Linker::ConstructJob(Compilation &C, const JobAction &JA,
+const InputInfo &Output,
+const InputInfoList &Inputs,
+const ArgList &Args,
+const char *LinkingOutput) const {
   auto &TC = static_cast(getToolChain());
   const Driver &D = TC.getDriver();
   ArgStringList CmdArgs;
@@ -245,7 +245,7 @@ toolchains::PS4PS5Base::PS4PS5Base(const Driver &D, const 
llvm::Triple &Triple,
 }
 
 Tool *toolchains::PS4CPU::buildAssembler() const {
-  return new tools::PScpu::Assemble(*this);
+  return new tools::PScpu::Assembler(*this);
 }
 
 Tool *toolchains::PS5CPU::buildAssembler() const {
@@ -255,7 +255,7 @@ Tool *toolchains::PS5CPU::buildAssembler() const {
 }
 
 Tool *toolchains::PS4PS5Base::buildLinker() const {
-  return new tools::PScpu::Link(*this);
+  return new tools::PScpu::Linker(*this);
 }
 
 SanitizerMask toolchains::PS4PS5Base::getSupportedSanitizers() const {

diff  --git a/clang/lib/Driver/ToolChains/PS4CPU.h 
b/clang/lib/Driver/ToolChains/PS4CPU.h
index dd6d7df432a4f..954e7d8d8d684 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.h
+++ b/clang/lib/Driver/ToolChains/PS4CPU.h
@@ -27,9 +27,9 @@ void addProfileRTArgs(const ToolChain &TC, const 
llvm::opt::ArgList &Args,
 void addSanitizerArgs(const ToolChain &TC, const llvm::opt::ArgList &Args,
   llvm::opt::ArgStringList &CmdArgs);
 
-class LLVM_LIBRARY_VISIBILITY Assemble : public Tool {
+class LLVM_LIBRARY_VISIBILITY Assembler : public Tool {
 public:
-  Assemble(const ToolChain &TC) : Tool("PScpu::Assemble", "assembler", TC) {}
+  Assembler(const ToolChain &TC) : Tool("PScpu::Assembler", "assembler", TC) {}
 
   bool hasIntegratedCPP() const override { return false; }
 
@@ -39,9 +39,9 @@ class LLVM_LIBRARY_VISIBILITY Assemble : public Tool {
 const char *LinkingOutput) const override;
 };
 
-class LLVM_LIBRARY_VISIBILITY Link : public Tool {
+class LLVM_LIBRARY_VISIBILITY Linker : public Tool {
 public:
-  Link(const ToolChain &TC) : Tool("PScpu::Link", "linker", TC) {}
+  Linker(const ToolChain &TC) : Tool("PScpu::Linker", "linker", TC) {}
 
   bool hasIntegratedCPP() const override { return false; }
   bool isLinkJob() const override { return true; }



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


[clang] dfdb2cc - [PS5][NFC] Fix a test with a misplaced -x option

2022-04-20 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-20T08:56:50-07:00
New Revision: dfdb2cc0fbc91feeaa95d3651728df36a975912e

URL: 
https://github.com/llvm/llvm-project/commit/dfdb2cc0fbc91feeaa95d3651728df36a975912e
DIFF: 
https://github.com/llvm/llvm-project/commit/dfdb2cc0fbc91feeaa95d3651728df36a975912e.diff

LOG: [PS5][NFC] Fix a test with a misplaced -x option

Added: 


Modified: 
clang/test/Driver/no-integrated-as.c

Removed: 




diff  --git a/clang/test/Driver/no-integrated-as.c 
b/clang/test/Driver/no-integrated-as.c
index 617e319764efb..763304aa80053 100644
--- a/clang/test/Driver/no-integrated-as.c
+++ b/clang/test/Driver/no-integrated-as.c
@@ -16,6 +16,6 @@
 /// -c omitted on purpose, this used to crash.
 // RUN: %clang -target x86_64-sie-ps5 -### -no-integrated-as %s 2>&1 \
 // RUN: | FileCheck %s -check-prefix PS5
-// RUN: %clang -target x86_64-sie-ps5 -### -no-integrated-as %s -x assembler 
2>&1 \
+// RUN: %clang -target x86_64-sie-ps5 -### -no-integrated-as -x assembler %s 
2>&1 \
 // RUN: | FileCheck %s -check-prefix PS5
 // PS5: there is no external assembler that can be used on this platform



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


[clang] f80e369 - [PS4] Driver: use correct --shared option

2022-04-21 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-21T08:19:42-07:00
New Revision: f80e369f61ebd33dd9377bb42fcab64d17072b18

URL: 
https://github.com/llvm/llvm-project/commit/f80e369f61ebd33dd9377bb42fcab64d17072b18
DIFF: 
https://github.com/llvm/llvm-project/commit/f80e369f61ebd33dd9377bb42fcab64d17072b18.diff

LOG: [PS4] Driver: use correct --shared option

Added: 


Modified: 
clang/lib/Driver/ToolChains/PS4CPU.cpp
clang/test/Driver/ps4-ps5-linker-non-win.c
clang/test/Driver/ps4-ps5-linker-win.c

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp 
b/clang/lib/Driver/ToolChains/PS4CPU.cpp
index 55a8d4dbc24b4..35a83d79abfd1 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.cpp
+++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp
@@ -143,7 +143,7 @@ void tools::PScpu::Linker::ConstructJob(Compilation &C, 
const JobAction &JA,
   if (Args.hasArg(options::OPT_rdynamic))
 CmdArgs.push_back("-export-dynamic");
   if (Args.hasArg(options::OPT_shared))
-CmdArgs.push_back("--oformat=so");
+CmdArgs.push_back("--shared");
 
   if (Output.isFilename()) {
 CmdArgs.push_back("-o");

diff  --git a/clang/test/Driver/ps4-ps5-linker-non-win.c 
b/clang/test/Driver/ps4-ps5-linker-non-win.c
index cd7cd8e11ea07..b9686b88a7573 100644
--- a/clang/test/Driver/ps4-ps5-linker-non-win.c
+++ b/clang/test/Driver/ps4-ps5-linker-non-win.c
@@ -13,14 +13,15 @@
 // RUN: env "PATH=%t:%PATH%" %clang -### -target x86_64-scei-ps4  %s 2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-PS4-LINKER %s
 // RUN: env "PATH=%t:%PATH%" %clang -### -target x86_64-scei-ps4  %s -shared 
2>&1 \
-// RUN:   | FileCheck --check-prefix=CHECK-PS4-LINKER %s
+// RUN:   | FileCheck --check-prefixes=CHECK-PS4-LINKER,SHARED %s
 // RUN: env "PATH=%t:%PATH%" %clang -### -target x86_64-sie-ps5  %s 2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-PS5-LINKER %s
 // RUN: env "PATH=%t:%PATH%" %clang -### -target x86_64-sie-ps5  %s -shared 
2>&1 \
-// RUN:   | FileCheck --check-prefix=CHECK-PS5-LINKER %s
+// RUN:   | FileCheck --check-prefixes=CHECK-PS5-LINKER,SHARED %s
 
 // CHECK-PS4-LINKER: /orbis-ld
 // CHECK-PS5-LINKER: /prospero-lld
+// SHARED: "--shared"
 
 // RUN: env "PATH=%t:%PATH%" %clang -### -target x86_64-scei-ps4 %s 
-fuse-ld=gold 2>&1 \
 // RUN:   | FileCheck --check-prefix=ERROR %s

diff  --git a/clang/test/Driver/ps4-ps5-linker-win.c 
b/clang/test/Driver/ps4-ps5-linker-win.c
index ca4084d4fccff..acff2c0f1f24c 100644
--- a/clang/test/Driver/ps4-ps5-linker-win.c
+++ b/clang/test/Driver/ps4-ps5-linker-win.c
@@ -10,14 +10,15 @@
 // RUN: env "PATH=%t;%PATH%;" %clang -target x86_64-scei-ps4  %s -### 2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-PS4-LINKER %s
 // RUN: env "PATH=%t;%PATH%;" %clang -target x86_64-scei-ps4  %s -shared -### 
2>&1 \
-// RUN:   | FileCheck --check-prefix=CHECK-PS4-LINKER %s
+// RUN:   | FileCheck --check-prefixes=CHECK-PS4-LINKER,SHARED %s
 // RUN: env "PATH=%t;%PATH%;" %clang -target x86_64-sie-ps5  %s -### 2>&1 \
 // RUN:   | FileCheck --check-prefix=CHECK-PS5-LINKER %s
 // RUN: env "PATH=%t;%PATH%;" %clang -target x86_64-sie-ps5  %s -shared -### 
2>&1 \
-// RUN:   | FileCheck --check-prefix=CHECK-PS5-LINKER %s
+// RUN:   | FileCheck --check-prefixes=CHECK-PS5-LINKER,SHARED %s
 
 // CHECK-PS4-LINKER: \\orbis-ld
 // CHECK-PS5-LINKER: \\prospero-lld
+// SHARED: "--shared"
 
 // RUN: env "PATH=%t;%PATH%;" %clang -target x86_64-scei-ps4 %s -fuse-ld=gold 
-### 2>&1 \
 // RUN:   | FileCheck --check-prefix=ERROR %s



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


[clang] 0d54457 - [IntrospectionTest] Replace "return" with "GTEST_SKIP"

2022-02-04 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-02-04T12:35:44-08:00
New Revision: 0d54457f8aed169dff8a668059979a2646afc3fc

URL: 
https://github.com/llvm/llvm-project/commit/0d54457f8aed169dff8a668059979a2646afc3fc
DIFF: 
https://github.com/llvm/llvm-project/commit/0d54457f8aed169dff8a668059979a2646afc3fc.diff

LOG: [IntrospectionTest] Replace "return" with "GTEST_SKIP"

If a test simply returns, it gets mis-reported as a pass; being
reported as SKIPPED is correct.

Found by the Rotten Green Tests project.

Added: 


Modified: 
clang/unittests/Introspection/IntrospectionTest.cpp

Removed: 




diff  --git a/clang/unittests/Introspection/IntrospectionTest.cpp 
b/clang/unittests/Introspection/IntrospectionTest.cpp
index d4f626bfeb740..69e461609e7dd 100644
--- a/clang/unittests/Introspection/IntrospectionTest.cpp
+++ b/clang/unittests/Introspection/IntrospectionTest.cpp
@@ -134,7 +134,7 @@ TEST(Introspection, SourceLocations_Formatter) {
 
 TEST(Introspection, SourceLocations_Stmt) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST = buildASTFromCode("void foo() {} void bar() { foo(); }", "foo.cpp",
   std::make_shared());
   auto &Ctx = AST->getASTContext();
@@ -169,7 +169,7 @@ TEST(Introspection, SourceLocations_Stmt) {
 
 TEST(Introspection, SourceLocations_Decl) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST =
   buildASTFromCode(R"cpp(
 namespace ns1 {
@@ -354,7 +354,7 @@ STRING_LOCATION_STDPAIR(MethodDecl, 
getTypeSourceInfo()->getTypeLoc().getSourceR
 
 TEST(Introspection, SourceLocations_NNS) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST =
   buildASTFromCode(R"cpp(
 namespace ns
@@ -414,7 +414,7 @@ void ns::A::foo() {}
 
 TEST(Introspection, SourceLocations_TA_Type) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST =
   buildASTFromCode(R"cpp(
 template
@@ -472,7 +472,7 @@ STRING_LOCATION_PAIR(
 
 TEST(Introspection, SourceLocations_TA_Decl) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST =
   buildASTFromCode(R"cpp(
 template
@@ -509,7 +509,7 @@ void test() {
 
 TEST(Introspection, SourceLocations_TA_Nullptr) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST =
   buildASTFromCode(R"cpp(
 template
@@ -546,7 +546,7 @@ void test() {
 
 TEST(Introspection, SourceLocations_TA_Integral) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST =
   buildASTFromCode(R"cpp(
 template
@@ -582,7 +582,7 @@ void test() {
 
 TEST(Introspection, SourceLocations_TA_Template) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST =
   buildASTFromCode(R"cpp(
 template class A;
@@ -621,7 +621,7 @@ void bar()
 
 TEST(Introspection, SourceLocations_TA_TemplateExpansion) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST = buildASTFromCodeWithArgs(
   R"cpp(
 template class ...> class B { };
@@ -660,7 +660,7 @@ template class ...> class B { };
 
 TEST(Introspection, SourceLocations_TA_Expression) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST =
   buildASTFromCode(R"cpp(
 template class testExpr;
@@ -693,7 +693,7 @@ template class testExpr { };
 
 TEST(Introspection, SourceLocations_TA_Pack) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST = buildASTFromCodeWithArgs(
   R"cpp(
 template class A {};
@@ -748,7 +748,7 @@ STRING_LOCATION_PAIR(
 
 TEST(Introspection, SourceLocations_CXXCtorInitializer_base) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST =
   buildASTFromCode(R"cpp(
 struct A {
@@ -808,7 +808,7 @@ STRING_LOCATION_PAIR(CtorInit, 
getTypeSourceInfo()->getTypeLoc().getEndLoc())
 
 TEST(Introspection, SourceLocations_CXXCtorInitializer_member) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST =
   buildASTFromCode(R"cpp(
 struct A {
@@ -849,7 +849,7 @@ struct A {
 
 TEST(Introspection, SourceLocations_CXXCtorInitializer_ctor) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST =
   buildASTFromCode(R"cpp(
 struct C {
@@ -906,7 +906,7 @@ STRING_LOCATION_PAIR(CtorInit,
 
 TEST(Introspection, SourceLocations_CXXCtorInitializer_pack) {
   if (!NodeIntrospection::hasIntrospectionSupport())
-return;
+GTEST_SKIP();
   auto AST = buildASTFromCodeWithArgs(
   R"cpp(
 template
@@ -979,7 +979,7 @@ STRING_LOCATION_STDPAIR(CtorInit, 
getTypeSourceInfo()->getTypeLoc().getE

[clang] 5c90eca - [PS5] Driver test for analyzer defaults

2022-04-25 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-25T12:42:00-07:00
New Revision: 5c90ecae2db104a816aeb33b6f773aaf782850e7

URL: 
https://github.com/llvm/llvm-project/commit/5c90ecae2db104a816aeb33b6f773aaf782850e7
DIFF: 
https://github.com/llvm/llvm-project/commit/5c90ecae2db104a816aeb33b6f773aaf782850e7.diff

LOG: [PS5] Driver test for analyzer defaults

Added: 
clang/test/Driver/ps4-ps5-analyzer-defaults.cpp

Modified: 


Removed: 
clang/test/Driver/ps4-analyzer-defaults.cpp



diff  --git a/clang/test/Driver/ps4-analyzer-defaults.cpp 
b/clang/test/Driver/ps4-analyzer-defaults.cpp
deleted file mode 100644
index e1649a38b6287..0
--- a/clang/test/Driver/ps4-analyzer-defaults.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-// Check that the default analyzer checkers for PS4 are:
-//   core
-//   cplusplus
-//   deadcode
-//   nullability
-//   unix
-// Excluding:
-//   unix.API
-//   unix.Vfork
-
-// Check for expected checkers
-// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
-// RUN:   | FileCheck %s --check-prefix=CHECK-PS4-POS-CHECKERS
-//
-// Negative check for unexpected checkers
-// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
-// RUN:   | FileCheck %s --check-prefix=CHECK-PS4-NEG-CHECKERS
-//
-// Check for all unix checkers except API and Vfork
-// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
-// RUN:   | FileCheck %s --check-prefix=CHECK-PS4-UNIX-CHECKERS
-
-// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=core
-// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=cplusplus
-// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=deadcode
-// CHECK-PS4-POS-CHECKERS-DAG: analyzer-checker=nullability
-//
-// CHECK-PS4-NEG-CHECKERS-NOT: analyzer-checker={{osx|security}}
-//
-// CHECK-PS4-UNIX-CHECKERS: analyzer-checker=unix
-// CHECK-PS4-UNIX-CHECKERS-DAG: analyzer-disable-checker=unix.API
-// CHECK-PS4-UNIX-CHECKERS-DAG: analyzer-disable-checker=unix.Vfork
-// CHECK-PS4-UNIX-CHECKERS-NOT: analyzer-checker=unix.{{API|Vfork}}

diff  --git a/clang/test/Driver/ps4-ps5-analyzer-defaults.cpp 
b/clang/test/Driver/ps4-ps5-analyzer-defaults.cpp
new file mode 100644
index 0..6e76f2c90ac84
--- /dev/null
+++ b/clang/test/Driver/ps4-ps5-analyzer-defaults.cpp
@@ -0,0 +1,39 @@
+// Check that the default analyzer checkers for PS4/PS5 are:
+//   core
+//   cplusplus
+//   deadcode
+//   nullability
+//   unix
+// Excluding:
+//   unix.API
+//   unix.Vfork
+
+// Check for expected checkers
+// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-POS-CHECKERS
+// RUN: %clang -target x86_64-sie-ps5 --analyze %s -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-POS-CHECKERS
+//
+// Negative check for unexpected checkers
+// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-NEG-CHECKERS
+// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-NEG-CHECKERS
+//
+// Check for all unix checkers except API and Vfork
+// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-UNIX-CHECKERS
+// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-UNIX-CHECKERS
+
+// CHECK-POS-CHECKERS-DAG: analyzer-checker=core
+// CHECK-POS-CHECKERS-DAG: analyzer-checker=cplusplus
+// CHECK-POS-CHECKERS-DAG: analyzer-checker=deadcode
+// CHECK-POS-CHECKERS-DAG: analyzer-checker=nullability
+//
+// CHECK-NEG-CHECKERS-NOT: analyzer-checker={{osx|security}}
+//
+// CHECK-UNIX-CHECKERS: analyzer-checker=unix
+// CHECK-UNIX-CHECKERS-DAG: analyzer-disable-checker=unix.API
+// CHECK-UNIX-CHECKERS-DAG: analyzer-disable-checker=unix.Vfork
+// CHECK-UNIX-CHECKERS-NOT: analyzer-checker=unix.{{API|Vfork}}



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


[clang] b375882 - [PS5] Correctly test for analyzer defaults

2022-04-26 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-26T07:14:48-07:00
New Revision: b375882014ccaa19c14bc7dc46a666a5a09bbb40

URL: 
https://github.com/llvm/llvm-project/commit/b375882014ccaa19c14bc7dc46a666a5a09bbb40
DIFF: 
https://github.com/llvm/llvm-project/commit/b375882014ccaa19c14bc7dc46a666a5a09bbb40.diff

LOG: [PS5] Correctly test for analyzer defaults

Commit 5c90eca added some analyzer option checking, but a typo meant
it was redundantly checking PS4 and not adding checking for PS5.
With the test corrected, it identified the necessary driver updates,
added in this commit.

Added: 


Modified: 
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/Driver/ps4-ps5-analyzer-defaults.cpp

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index 0fd639da45ddf..6e4eadd3ab0e7 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -3167,8 +3167,8 @@ static void RenderAnalyzerOptions(const ArgList &Args, 
ArgStringList &CmdArgs,
   CmdArgs.push_back("-analyzer-checker=unix.cstring.NullArg");
 }
 
-// Disable some unix checkers for PS4.
-if (Triple.isPS4()) {
+// Disable some unix checkers for PS4/PS5.
+if (Triple.isPS()) {
   CmdArgs.push_back("-analyzer-disable-checker=unix.API");
   CmdArgs.push_back("-analyzer-disable-checker=unix.Vfork");
 }
@@ -3186,7 +3186,7 @@ static void RenderAnalyzerOptions(const ArgList &Args, 
ArgStringList &CmdArgs,
 if (types::isCXX(Input.getType()))
   CmdArgs.push_back("-analyzer-checker=cplusplus");
 
-if (!Triple.isPS4()) {
+if (!Triple.isPS()) {
   
CmdArgs.push_back("-analyzer-checker=security.insecureAPI.UncheckedReturn");
   CmdArgs.push_back("-analyzer-checker=security.insecureAPI.getpw");
   CmdArgs.push_back("-analyzer-checker=security.insecureAPI.gets");

diff  --git a/clang/test/Driver/ps4-ps5-analyzer-defaults.cpp 
b/clang/test/Driver/ps4-ps5-analyzer-defaults.cpp
index 6e76f2c90ac84..81a302c6bcbe3 100644
--- a/clang/test/Driver/ps4-ps5-analyzer-defaults.cpp
+++ b/clang/test/Driver/ps4-ps5-analyzer-defaults.cpp
@@ -17,13 +17,13 @@
 // Negative check for unexpected checkers
 // RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
 // RUN:   | FileCheck %s --check-prefix=CHECK-NEG-CHECKERS
-// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
+// RUN: %clang -target x86_64-sie-ps5 --analyze %s -### 2>&1 \
 // RUN:   | FileCheck %s --check-prefix=CHECK-NEG-CHECKERS
 //
 // Check for all unix checkers except API and Vfork
 // RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
 // RUN:   | FileCheck %s --check-prefix=CHECK-UNIX-CHECKERS
-// RUN: %clang -target x86_64-scei-ps4 --analyze %s -### 2>&1 \
+// RUN: %clang -target x86_64-sie-ps5 --analyze %s -### 2>&1 \
 // RUN:   | FileCheck %s --check-prefix=CHECK-UNIX-CHECKERS
 
 // CHECK-POS-CHECKERS-DAG: analyzer-checker=core



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


[clang] 72adc46 - [PS5] Add debug option testing for the PS5 target

2022-04-26 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-26T13:42:38-07:00
New Revision: 72adc461cca59e3ed1fd2409aa592805572b

URL: 
https://github.com/llvm/llvm-project/commit/72adc461cca59e3ed1fd2409aa592805572b
DIFF: 
https://github.com/llvm/llvm-project/commit/72adc461cca59e3ed1fd2409aa592805572b.diff

LOG: [PS5] Add debug option testing for the PS5 target

The functionality was added in 7726ad0, catching up on the tests now.

This test mostly runs clang and checks one thing each time, which isn't
very efficient.  I added some -DAG suffixes and combined some checks so
adding PS5 checking didn't actually increase the number of clang runs.

Added: 


Modified: 
clang/test/Driver/debug-options.c

Removed: 




diff  --git a/clang/test/Driver/debug-options.c 
b/clang/test/Driver/debug-options.c
index e4a49269a8c70..4b0d7912003d2 100644
--- a/clang/test/Driver/debug-options.c
+++ b/clang/test/Driver/debug-options.c
@@ -89,16 +89,17 @@
 // RUN: %clang_cl -### -c -Z7 -target x86_64-windows-msvc -- %s 2>&1 \
 // RUN: | FileCheck -check-prefix=G_NOTUNING %s
 
-// On the PS4, -g defaults to -gno-column-info, and we always generate the
+// On the PS4/PS5, -g defaults to -gno-column-info, and we always generate the
 // arange section.
 // RUN: %clang -### -c %s -target x86_64-scei-ps4 2>&1 \
-// RUN: | FileCheck -check-prefix=NOG_PS4 %s
-// RUN: %clang -### -c %s -g -target x86_64-scei-ps4 2>&1 \
-// RUN: | FileCheck -check-prefix=G_PS4 %s
-// RUN: %clang -### -c %s -g -target x86_64-scei-ps4 2>&1 \
-// RUN: | FileCheck -check-prefix=G_SCE %s
+// RUN: | FileCheck -check-prefix=NOG_PS %s
+// RUN: %clang -### -c %s -target x86_64-sie-ps5 2>&1 \
+// RUN: | FileCheck -check-prefix=NOG_PS %s
+/// PS4 will stay on v4 even if the generic default version changes.
 // RUN: %clang -### -c %s -g -target x86_64-scei-ps4 2>&1 \
-// RUN: | FileCheck -check-prefix=NOCI %s
+// RUN: | FileCheck 
-check-prefixes=G_DWARF4,GARANGE,G_SCE,NOCI,FWD_TMPL_PARAMS %s
+// RUN: %clang -### -c %s -g -target x86_64-sie-ps5 2>&1 \
+// RUN: | FileCheck 
-check-prefixes=G_DWARF5,GARANGE,G_SCE,NOCI,FWD_TMPL_PARAMS %s
 // RUN: %clang -### -c %s -g -gcolumn-info -target x86_64-scei-ps4 2>&1 \
 // RUN: | FileCheck -check-prefix=CI %s
 // RUN: %clang -### -c %s -gsce -target x86_64-unknown-linux 2>&1 \
@@ -280,15 +281,10 @@
 // RUN: %clang -### -target %itanium_abi_triple -gmodules 
-gline-directives-only %s 2>&1 \
 // RUN:| FileCheck -check-prefix=GLIO_ONLY %s
 //
-// NOG_PS4: "-cc1"
-// NOG_PS4-NOT: "-dwarf-version=
-// NOG_PS4: "-generate-arange-section"
-// NOG_PS4-NOT: "-dwarf-version=
-//
-// G_PS4: "-cc1"
-/// PS4 will stay on v4 even if the generic default version changes.
-// G_PS4: "-dwarf-version=4"
-// G_PS4: "-generate-arange-section"
+// NOG_PS: "-cc1"
+// NOG_PS-NOT: "-dwarf-version=
+// NOG_PS: "-generate-arange-section"
+// NOG_PS-NOT: "-dwarf-version=
 //
 // G_ERR: error: unknown argument:
 //
@@ -327,11 +323,12 @@
 // G_LIMITED: "-cc1"
 // G_LIMITED: "-debug-info-kind=constructor"
 // G_DWARF2: "-dwarf-version=2"
-// G_DWARF4: "-dwarf-version=4"
+// G_DWARF4-DAG: "-dwarf-version=4"
+// G_DWARF5-DAG: "-dwarf-version=5"
 //
 // G_GDB:  "-debugger-tuning=gdb"
 // G_LLDB: "-debugger-tuning=lldb"
-// G_SCE:  "-debugger-tuning=sce"
+// G_SCE-DAG:  "-debugger-tuning=sce"
 // G_DBX:  "-debugger-tuning=dbx"
 //
 // STRICT:  "-gstrict-dwarf"
@@ -370,7 +367,7 @@
 // RNGBSE: -fdebug-ranges-base-address
 // NORNGBSE-NOT: -fdebug-ranges-base-address
 //
-// GARANGE: -generate-arange-section
+// GARANGE-DAG: -generate-arange-section
 //
 // FDTS: "-mllvm" "-generate-type-units"
 // FDTSE: error: unsupported option '-fdebug-types-section' for target 
'x86_64-apple-darwin'
@@ -380,7 +377,7 @@
 //
 // CI-NOT: "-gno-column-info"
 //
-// NOCI: "-gno-column-info"
+// NOCI-DAG: "-gno-column-info"
 //
 // GEXTREFS: "-dwarf-ext-refs" "-fmodule-format=obj"
 // GEXTREFS: "-debug-info-kind={{standalone|constructor}}"
@@ -444,9 +441,9 @@
 // DIRECTORY-NOT: "-fno-dwarf-directory-asm"
 // NODIRECTORY: "-fno-dwarf-directory-asm"
 
-// RUN: %clang -### -target x86_64 -c -g -gsimple-template-names %s 2>&1 | 
FileCheck --check-prefix=SIMPLE_TEMP_NAMES %s
-// SIMPLE_TEMP_NAMES: -gsimple-template-names=simple
-// SIMPLE_TEMP_NAMES: -debug-forward-template-params
+// RUN: %clang -### -target x86_64 -c -g -gsimple-template-names %s 2>&1 | 
FileCheck --check-prefixes=SIMPLE_TMPL_NAMES,FWD_TMPL_PARAMS %s
+// SIMPLE_TMPL_NAMES: -gsimple-template-names=simple
+// FWD_TMPL_PARAMS-DAG: -debug-forward-template-params
 // RUN: not %clang -### -target x86_64 -c -g -gsimple-template-names=mangled 
%s 2>&1 | FileCheck --check-prefix=MANGLED_TEMP_NAMES %s
 // MANGLED_TEMP_NAMES: error: unknown argument: 
'-gsimple-template-names=mangled'
 // RUN: %clang -### -target x86_64 

[clang] fd0e60d - [PS5] Test sanitizer options/lib names

2022-04-27 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-27T13:45:41-07:00
New Revision: fd0e60d7874363a641e35a862b05d8dfabab77ef

URL: 
https://github.com/llvm/llvm-project/commit/fd0e60d7874363a641e35a862b05d8dfabab77ef
DIFF: 
https://github.com/llvm/llvm-project/commit/fd0e60d7874363a641e35a862b05d8dfabab77ef.diff

LOG: [PS5] Test sanitizer options/lib names

The functionality was added in 7726ad0, catching up on the tests now.

Added: 


Modified: 
clang/test/Driver/fsanitize.c
clang/test/Driver/sanitizer-ld.c

Removed: 




diff  --git a/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c
index f31e6156120fd..c6135f88541b6 100644
--- a/clang/test/Driver/fsanitize.c
+++ b/clang/test/Driver/fsanitize.c
@@ -783,6 +783,29 @@
 // RUN: %clang -target x86_64-scei-ps4 -fsanitize=address -nodefaultlibs 
-nostdlib  %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-ASAN-NOLIB-PS4
 // CHECK-ASAN-NOLIB-PS4-NOT: SceDbgAddressSanitizer_stub_weak
 
+// RUN: %clang -target x86_64-sie-ps5 -fsanitize=address %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-ASAN-PS5
+// Make sure there are no *.{o,bc} or -l passed before the ASan library.
+// CHECK-ASAN-PS5-NOT: {{(\.(o|bc)"? 
|-l).*-lSceAddressSanitizer_nosubmission_stub_weak}}
+// CHECK-ASAN-PS5: 
--dependent-lib=libSceAddressSanitizer_nosubmission_stub_weak.a
+// CHECK-ASAN-PS5-NOT: {{(\.(o|bc)"? 
|-l).*-lSceAddressSanitizer_nosubmission_stub_weak}}
+// CHECK-ASAN-PS5: -lSceAddressSanitizer_nosubmission_stub_weak
+// RUN: %clang -target x86_64-sie-ps5 -fsanitize=address -nostdlib %s -### 
2>&1 | FileCheck %s --check-prefix=CHECK-ASAN-NOLIB-PS5
+// RUN: %clang -target x86_64-sie-ps5 -fsanitize=address -nodefaultlibs %s 
-### 2>&1 | FileCheck %s --check-prefix=CHECK-ASAN-NOLIB-PS5
+// RUN: %clang -target x86_64-sie-ps5 -fsanitize=address -nodefaultlibs 
-nostdlib  %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-ASAN-NOLIB-PS5
+// CHECK-ASAN-NOLIB-PS5-NOT: SceAddressSanitizer_nosubmission_stub_weak
+
+// RUN: %clang -target x86_64-sie-ps5 -fsanitize=thread %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-TSAN-PS5
+// Make sure there are no *.{o,bc} or -l passed before the TSan library.
+// CHECK-TSAN-PS5-NOT: {{(\.(o|bc)"? 
|-l).*-lSceThreadSanitizer_nosubmission_stub_weak}}
+// CHECK-TSAN-PS5: 
--dependent-lib=libSceThreadSanitizer_nosubmission_stub_weak.a
+// CHECK-TSAN-PS5-NOT: {{(\.(o|bc)"? 
|-l).*-lSceThreadSanitizer_nosubmission_stub_weak}}
+// CHECK-TSAN-PS5: -lSceThreadSanitizer_nosubmission_stub_weak
+// RUN: %clang -target x86_64-sie-ps5 -fsanitize=thread -nostdlib %s -### 2>&1 
| FileCheck %s --check-prefix=CHECK-TSAN-NOLIB-PS5
+// RUN: %clang -target x86_64-sie-ps5 -fsanitize=thread -nodefaultlibs %s -### 
2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-NOLIB-PS5
+// RUN: %clang -target x86_64-sie-ps5 -fsanitize=thread -nodefaultlibs 
-nostdlib  %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-NOLIB-PS5
+// CHECK-TSAN-NOLIB-PS5-NOT: SceThreadSanitizer_nosubmission_stub_weak
+
+
 // RUN: %clang -target x86_64-linux-gnu -fsanitize=address 
-fsanitize-minimal-runtime %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-ASAN-MINIMAL
 // CHECK-ASAN-MINIMAL: error: invalid argument '-fsanitize-minimal-runtime' 
not allowed with '-fsanitize=address'
 

diff  --git a/clang/test/Driver/sanitizer-ld.c 
b/clang/test/Driver/sanitizer-ld.c
index 966edbd7d038b..def3ef967a46e 100644
--- a/clang/test/Driver/sanitizer-ld.c
+++ b/clang/test/Driver/sanitizer-ld.c
@@ -759,6 +759,14 @@
 // CHECK-UBSAN-PS4: "{{.*}}ld{{(.gold)?(.exe)?}}"
 // CHECK-UBSAN-PS4: -lSceDbgUBSanitizer_stub_weak
 
+// RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \
+// RUN: -target x86_64-sie-ps5 -fuse-ld=ld \
+// RUN: -shared \
+// RUN:   | FileCheck --check-prefix=CHECK-UBSAN-PS5 %s
+// CHECK-UBSAN-PS5: --dependent-lib=libSceUBSanitizer_nosubmission_stub_weak.a
+// CHECK-UBSAN-PS5: "{{.*}}ld{{(.gold)?(.exe)?}}"
+// CHECK-UBSAN-PS5: -lSceUBSanitizer_nosubmission_stub_weak
+
 // RUN: %clang -fsanitize=address %s -### -o %t.o 2>&1 \
 // RUN: -target x86_64-scei-ps4 -fuse-ld=ld \
 // RUN: -shared \
@@ -767,6 +775,14 @@
 // CHECK-ASAN-PS4: "{{.*}}ld{{(.gold)?(.exe)?}}"
 // CHECK-ASAN-PS4: -lSceDbgAddressSanitizer_stub_weak
 
+// RUN: %clang -fsanitize=address %s -### -o %t.o 2>&1 \
+// RUN: -target x86_64-sie-ps5 -fuse-ld=ld \
+// RUN: -shared \
+// RUN:   | FileCheck --check-prefix=CHECK-ASAN-PS5 %s
+// CHECK-ASAN-PS5: 
--dependent-lib=libSceAddressSanitizer_nosubmission_stub_weak.a
+// CHECK-ASAN-PS5: "{{.*}}ld{{(.gold)?(.exe)?}}"
+// CHECK-ASAN-PS5: -lSceAddressSanitizer_nosubmission_stub_weak
+
 // RUN: %clang -fsanitize=address,undefined %s -### -o %t.o 2>&1 \
 // RUN: -target x86_64-scei-ps4 -fuse-ld=ld \
 // RUN: -shared \
@@ -777,6 +793,16 @@
 // CHECK-AUBSAN-PS4: "{{.*}}ld{{(.gold)?(.exe)?}}"
 // CHECK-AUBSAN-PS4: -lSceDbgAddressSanitizer_stub_weak
 
+// RUN: %clang -fsaniti

[clang] 7d2dddc - [PS5] Enable dead-stripping globals in ASan

2022-04-27 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-27T15:44:42-07:00
New Revision: 7d2dddce8f0d3ed896f1437b01a097cb7fd1bfe9

URL: 
https://github.com/llvm/llvm-project/commit/7d2dddce8f0d3ed896f1437b01a097cb7fd1bfe9
DIFF: 
https://github.com/llvm/llvm-project/commit/7d2dddce8f0d3ed896f1437b01a097cb7fd1bfe9.diff

LOG: [PS5] Enable dead-stripping globals in ASan

Added: 


Modified: 
clang/lib/Driver/SanitizerArgs.cpp
clang/test/Driver/fsanitize.c

Removed: 




diff  --git a/clang/lib/Driver/SanitizerArgs.cpp 
b/clang/lib/Driver/SanitizerArgs.cpp
index a8227f1f8285..b63c6e463706 100644
--- a/clang/lib/Driver/SanitizerArgs.cpp
+++ b/clang/lib/Driver/SanitizerArgs.cpp
@@ -857,13 +857,13 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC,
  AsanOutlineInstrumentation);
 
 // As a workaround for a bug in gold 2.26 and earlier, dead stripping of
-// globals in ASan is disabled by default on ELF targets.
+// globals in ASan is disabled by default on most ELF targets.
 // See https://sourceware.org/bugzilla/show_bug.cgi?id=19002
 AsanGlobalsDeadStripping = Args.hasFlag(
 options::OPT_fsanitize_address_globals_dead_stripping,
 options::OPT_fno_sanitize_address_globals_dead_stripping,
 !TC.getTriple().isOSBinFormatELF() || TC.getTriple().isOSFuchsia() ||
-TC.getTriple().isPS4());
+TC.getTriple().isPS());
 
 AsanUseOdrIndicator =
 Args.hasFlag(options::OPT_fsanitize_address_use_odr_indicator,

diff  --git a/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c
index c6135f88541b..4b03bfc9dcb7 100644
--- a/clang/test/Driver/fsanitize.c
+++ b/clang/test/Driver/fsanitize.c
@@ -245,6 +245,7 @@
 // RUN: %clang_cl --target=x86_64-windows-msvc -fsanitize=address 
-fsanitize-address-globals-dead-stripping -### -- %s 2>&1 | FileCheck %s 
--check-prefix=CHECK-ASAN-GLOBALS
 // RUN: %clang_cl --target=x86_64-windows-msvc -fsanitize=address -### -- %s 
2>&1 | FileCheck %s --check-prefix=CHECK-ASAN-GLOBALS
 // RUN: %clang -target x86_64-scei-ps4  -fsanitize=address %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-ASAN-GLOBALS
+// RUN: %clang -target x86_64-sie-ps5  -fsanitize=address %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-ASAN-GLOBALS
 // CHECK-ASAN-GLOBALS: -cc1{{.*}}-fsanitize-address-globals-dead-stripping
 // CHECK-NO-ASAN-GLOBALS-NOT: 
-cc1{{.*}}-fsanitize-address-globals-dead-stripping
 



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


[clang] 8854d12 - [PS5] Disable exceptions by default

2022-04-28 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-28T07:16:16-07:00
New Revision: 8854d1244c905b20dd62db3a7430043477e1ad3b

URL: 
https://github.com/llvm/llvm-project/commit/8854d1244c905b20dd62db3a7430043477e1ad3b
DIFF: 
https://github.com/llvm/llvm-project/commit/8854d1244c905b20dd62db3a7430043477e1ad3b.diff

LOG: [PS5] Disable exceptions by default

Added: 


Modified: 
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/Driver/clang-exception-flags.cpp

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index 01380f9e1985..1f083de405f0 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -459,9 +459,9 @@ static bool addExceptionArgs(const ArgList &Args, types::ID 
InputType,
   }
 
   if (types::isCXX(InputType)) {
-// Disable C++ EH by default on XCore and PS4.
+// Disable C++ EH by default on XCore and PS4/PS5.
 bool CXXExceptionsEnabled =
-Triple.getArch() != llvm::Triple::xcore && !Triple.isPS4();
+Triple.getArch() != llvm::Triple::xcore && !Triple.isPS();
 Arg *ExceptionArg = Args.getLastArg(
 options::OPT_fcxx_exceptions, options::OPT_fno_cxx_exceptions,
 options::OPT_fexceptions, options::OPT_fno_exceptions);

diff  --git a/clang/test/Driver/clang-exception-flags.cpp 
b/clang/test/Driver/clang-exception-flags.cpp
index a5faed228e05..af63a0ab03be 100644
--- a/clang/test/Driver/clang-exception-flags.cpp
+++ b/clang/test/Driver/clang-exception-flags.cpp
@@ -24,5 +24,6 @@
 // RUN: %clang -### -fexceptions -fno-cxx-exceptions %s 2>&1 | FileCheck %s 
-check-prefix=OFF4
 // OFF4-NOT: "-cc1" {{.*}} "-fcxx-exceptions"
 //
-// RUN: %clang -### -target x86_64-scei-ps4 %s 2>&1 | FileCheck %s 
-check-prefix=PS4-OFF
-// PS4-OFF-NOT: "-cc1" {{.*}} "-f{{(cxx-)?}}exceptions"
+// RUN: %clang -### -target x86_64-scei-ps4 %s 2>&1 | FileCheck %s 
-check-prefix=PS-OFF
+// RUN: %clang -### -target x86_64-sie-ps5 %s 2>&1 | FileCheck %s 
-check-prefix=PS-OFF
+// PS-OFF-NOT: "-cc1" {{.*}} "-f{{(cxx-)?}}exceptions"



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


[clang] 451c557 - [PS5] Set default cpu to znver2, with no tuning

2022-04-28 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-28T07:50:37-07:00
New Revision: 451c5578b834fe3aca4e495aaf6a2f32639e86a6

URL: 
https://github.com/llvm/llvm-project/commit/451c5578b834fe3aca4e495aaf6a2f32639e86a6
DIFF: 
https://github.com/llvm/llvm-project/commit/451c5578b834fe3aca4e495aaf6a2f32639e86a6.diff

LOG: [PS5] Set default cpu to znver2, with no tuning

Added: 


Modified: 
clang/lib/Driver/ToolChains/Arch/X86.cpp
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/Driver/ps4-cpu-defaults.cpp

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/Arch/X86.cpp 
b/clang/lib/Driver/ToolChains/Arch/X86.cpp
index 73df835585239..de0725b8d6de6 100644
--- a/clang/lib/Driver/ToolChains/Arch/X86.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/X86.cpp
@@ -88,9 +88,11 @@ std::string x86::getX86TargetCPU(const Driver &D, const 
ArgList &Args,
 return Is64Bit ? "core2" : "yonah";
   }
 
-  // Set up default CPU name for PS4 compilers.
+  // Set up default CPU name for PS4/PS5 compilers.
   if (Triple.isPS4())
 return "btver2";
+  if (Triple.isPS5())
+return "znver2";
 
   // On Android use targets compatible with gcc
   if (Triple.isAndroid())

diff  --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index 1f083de405f0a..52dbe07ab3551 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -2296,10 +2296,10 @@ void Clang::AddX86TargetArgs(const ArgList &Args,
 
   // Handle -mtune.
 
-  // Default to "generic" unless -march is present or targetting the PS4.
+  // Default to "generic" unless -march is present or targetting the PS4/PS5.
   std::string TuneCPU;
   if (!Args.hasArg(clang::driver::options::OPT_march_EQ) &&
-  !getToolChain().getTriple().isPS4())
+  !getToolChain().getTriple().isPS())
 TuneCPU = "generic";
 
   // Override based on -mtune.

diff  --git a/clang/test/Driver/ps4-cpu-defaults.cpp 
b/clang/test/Driver/ps4-cpu-defaults.cpp
index 46fa8897e6fae..8102c4b144a35 100644
--- a/clang/test/Driver/ps4-cpu-defaults.cpp
+++ b/clang/test/Driver/ps4-cpu-defaults.cpp
@@ -1,7 +1,10 @@
 // Check that on the PS4 we default to:
-// -target-cpu btver2, no exceptions and not -tune-cpu generic
+// -target-cpu btver2, not -tune-cpu generic
+// And on the PS5 we default to:
+// -target-cpu znver2, not -tune-cpu generic
 
-// RUN: %clang -target x86_64-scei-ps4 -c %s -### 2>&1 | FileCheck %s
-// CHECK: "-target-cpu" "btver2"
-// CHECK-NOT: exceptions
-// CHECK-NOT: "-tune-cpu"
+// RUN: %clang -target x86_64-scei-ps4 -c %s -### 2>&1 | FileCheck 
--check-prefixes=PS4,BOTH %s
+// RUN: %clang -target x86_64-sie-ps5 -c %s -### 2>&1 | FileCheck 
--check-prefixes=PS5,BOTH %s
+// PS4: "-target-cpu" "btver2"
+// PS5: "-target-cpu" "znver2"
+// BOTH-NOT: "-tune-cpu"



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


[clang] 501cc4a - [PS5] Rename a test to reflect its new purpose

2022-04-28 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-28T08:07:50-07:00
New Revision: 501cc4ae304f29e392a2b7e21c316e3abf954daa

URL: 
https://github.com/llvm/llvm-project/commit/501cc4ae304f29e392a2b7e21c316e3abf954daa
DIFF: 
https://github.com/llvm/llvm-project/commit/501cc4ae304f29e392a2b7e21c316e3abf954daa.diff

LOG: [PS5] Rename a test to reflect its new purpose

Added: 
clang/test/Driver/ps4-ps5-cpu-defaults.cpp

Modified: 


Removed: 
clang/test/Driver/ps4-cpu-defaults.cpp



diff  --git a/clang/test/Driver/ps4-cpu-defaults.cpp 
b/clang/test/Driver/ps4-ps5-cpu-defaults.cpp
similarity index 100%
rename from clang/test/Driver/ps4-cpu-defaults.cpp
rename to clang/test/Driver/ps4-ps5-cpu-defaults.cpp



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


[clang] db013b2 - [PS5] Defaults for -fdeclspec, -ffunction/data-sections

2022-04-28 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-28T10:03:46-07:00
New Revision: db013b28c3d4a92cc007c878eb4d6585ba86dd1a

URL: 
https://github.com/llvm/llvm-project/commit/db013b28c3d4a92cc007c878eb4d6585ba86dd1a
DIFF: 
https://github.com/llvm/llvm-project/commit/db013b28c3d4a92cc007c878eb4d6585ba86dd1a.diff

LOG: [PS5] Defaults for -fdeclspec, -ffunction/data-sections

Added: 
clang/test/Driver/ps4-ps5-toolchain.c

Modified: 
clang/lib/Driver/ToolChains/Clang.cpp
clang/lib/Driver/ToolChains/CommonArgs.cpp

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index 4c22d331be03..8c68473e56a7 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -6441,9 +6441,9 @@ void Clang::ConstructJob(Compilation &C, const JobAction 
&JA,
   Args.addOptInFlag(CmdArgs, options::OPT_fborland_extensions,
 options::OPT_fno_borland_extensions);
 
-  // -fno-declspec is default, except for PS4.
+  // -fno-declspec is default, except for PS4/PS5.
   if (Args.hasFlag(options::OPT_fdeclspec, options::OPT_fno_declspec,
-   RawTriple.isPS4()))
+   RawTriple.isPS()))
 CmdArgs.push_back("-fdeclspec");
   else if (Args.hasArg(options::OPT_fno_declspec))
 CmdArgs.push_back("-fno-declspec"); // Explicitly disabling __declspec.

diff  --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp 
b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 03a887a7527b..b646a1ddaf03 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -486,9 +486,9 @@ llvm::StringRef tools::getLTOParallelism(const ArgList 
&Args, const Driver &D) {
   return LtoJobsArg->getValue();
 }
 
-// CloudABI uses -ffunction-sections and -fdata-sections by default.
+// CloudABI and PS4/PS5 use -ffunction-sections and -fdata-sections by default.
 bool tools::isUseSeparateSections(const llvm::Triple &Triple) {
-  return Triple.getOS() == llvm::Triple::CloudABI;
+  return Triple.getOS() == llvm::Triple::CloudABI || Triple.isPS();
 }
 
 void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args,

diff  --git a/clang/test/Driver/ps4-ps5-toolchain.c 
b/clang/test/Driver/ps4-ps5-toolchain.c
new file mode 100644
index ..308b80c6774b
--- /dev/null
+++ b/clang/test/Driver/ps4-ps5-toolchain.c
@@ -0,0 +1,7 @@
+// PS4/PS5 miscellaneous toolchain defaults.
+
+// RUN: %clang -c %s -### -target x86_64-scei-ps4 2>&1 | FileCheck %s
+// RUN: %clang -c %s -### -target x86_64-sie-ps5 2>&1 | FileCheck %s
+// CHECK-DAG: "-ffunction-sections"
+// CHECK-DAG: "-fdata-sections"
+// CHECK-DAG: "-fdeclspec"



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


[clang] 17f3a92 - [PS5] Default to omit leaf frame pointer

2022-04-28 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-04-28T10:35:14-07:00
New Revision: 17f3a92ee5d5490e84cc81481b0947f6a9be3106

URL: 
https://github.com/llvm/llvm-project/commit/17f3a92ee5d5490e84cc81481b0947f6a9be3106
DIFF: 
https://github.com/llvm/llvm-project/commit/17f3a92ee5d5490e84cc81481b0947f6a9be3106.diff

LOG: [PS5] Default to omit leaf frame pointer

Added: 


Modified: 
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/Driver/frame-pointer-elim.c

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index 8c68473e56a7..05034ab15f40 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -634,7 +634,7 @@ getFramePointerKind(const ArgList &Args, const llvm::Triple 
&Triple) {
   bool OmitLeafFP =
   Args.hasFlag(options::OPT_momit_leaf_frame_pointer,
options::OPT_mno_omit_leaf_frame_pointer,
-   Triple.isAArch64() || Triple.isPS4() || Triple.isVE());
+   Triple.isAArch64() || Triple.isPS() || Triple.isVE());
   if (NoOmitFP || mustUseNonLeafFramePointerForTarget(Triple) ||
   (!OmitFP && useFramePointerForTargetByDefault(Args, Triple))) {
 if (OmitLeafFP)

diff  --git a/clang/test/Driver/frame-pointer-elim.c 
b/clang/test/Driver/frame-pointer-elim.c
index beb14a9a671a..79cc0ee1b18b 100644
--- a/clang/test/Driver/frame-pointer-elim.c
+++ b/clang/test/Driver/frame-pointer-elim.c
@@ -90,7 +90,7 @@
 // WARN-OMIT-LEAF-7S-NOT: warning: optimization flag 
'-momit-leaf-frame-pointer' is not supported for target 'armv7s'
 // WARN-OMIT-LEAF-7S: "-mframe-pointer=non-leaf"
 
-// On AArch64, PS4, and VE, default to omitting the frame pointer on leaf
+// On AArch64, PS4, PS5, and VE, default to omitting the frame pointer on leaf
 // functions
 // RUN: %clang -### -target aarch64 -S %s 2>&1 | \
 // RUN:   FileCheck --check-prefix=KEEP-NON-LEAF %s
@@ -98,6 +98,10 @@
 // RUN:   FileCheck --check-prefix=KEEP-NON-LEAF %s
 // RUN: %clang -### -target x86_64-scei-ps4 -S -O2 %s 2>&1 | \
 // RUN:   FileCheck --check-prefix=KEEP-NON-LEAF %s
+// RUN: %clang -### -target x86_64-sie-ps5 -S %s 2>&1 | \
+// RUN:   FileCheck --check-prefix=KEEP-NON-LEAF %s
+// RUN: %clang -### -target x86_64-sie-ps5 -S -O2 %s 2>&1 | \
+// RUN:   FileCheck --check-prefix=KEEP-NON-LEAF %s
 // RUN: %clang -### -target aarch64-apple-darwin -arch arm64_32 -S %s 2>&1 | \
 // RUN:   FileCheck --check-prefix=KEEP-NON-LEAF %s
 // RUN: %clang -### -target ve-unknown-linux-gnu -S %s 2>&1 | \



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


[clang] 214265b - [NFC] Add test for HasNativeLLVMSupport

2022-05-02 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-05-02T11:06:33-07:00
New Revision: 214265bce9dfe3a86d9e8e8869d58ee7eded20fa

URL: 
https://github.com/llvm/llvm-project/commit/214265bce9dfe3a86d9e8e8869d58ee7eded20fa
DIFF: 
https://github.com/llvm/llvm-project/commit/214265bce9dfe3a86d9e8e8869d58ee7eded20fa.diff

LOG: [NFC] Add test for HasNativeLLVMSupport

It looks like there used to be a test for this, but the test evolved
in a way that caused the check for the diagnostic to be eliminated.
Add a test that is obviously and specifically for that diagnostic.

Added: 
clang/test/Driver/native-llvm.c

Modified: 


Removed: 




diff  --git a/clang/test/Driver/native-llvm.c b/clang/test/Driver/native-llvm.c
new file mode 100644
index 0..c9543b855bc76
--- /dev/null
+++ b/clang/test/Driver/native-llvm.c
@@ -0,0 +1,5 @@
+// Check that clang reports an error message if -flto without -c is used
+// on a toolchain that is not expecting it (HasNativeLLVMSupport() is false).
+
+// RUN: %clang -### -flto -target x86_64-unknown-unknown %s 2>&1 | FileCheck %s
+// CHECK: error: {{.*}} unable to pass LLVM bit-code files to linker



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


[clang] 2ed0123 - [PS5] Check for HasNativeLLVMSupport

2022-05-02 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-05-02T11:06:33-07:00
New Revision: 2ed0123b7fedd6360b0dc06cab9721f108123a98

URL: 
https://github.com/llvm/llvm-project/commit/2ed0123b7fedd6360b0dc06cab9721f108123a98
DIFF: 
https://github.com/llvm/llvm-project/commit/2ed0123b7fedd6360b0dc06cab9721f108123a98.diff

LOG: [PS5] Check for HasNativeLLVMSupport

Added: 


Modified: 
clang/test/Driver/ps4-ps5-toolchain.c

Removed: 




diff  --git a/clang/test/Driver/ps4-ps5-toolchain.c 
b/clang/test/Driver/ps4-ps5-toolchain.c
index 308b80c6774b5..444e9df24714b 100644
--- a/clang/test/Driver/ps4-ps5-toolchain.c
+++ b/clang/test/Driver/ps4-ps5-toolchain.c
@@ -1,7 +1,13 @@
-// PS4/PS5 miscellaneous toolchain defaults.
+/// PS4/PS5 miscellaneous toolchain behavior.
 
 // RUN: %clang -c %s -### -target x86_64-scei-ps4 2>&1 | FileCheck %s
 // RUN: %clang -c %s -### -target x86_64-sie-ps5 2>&1 | FileCheck %s
 // CHECK-DAG: "-ffunction-sections"
 // CHECK-DAG: "-fdata-sections"
 // CHECK-DAG: "-fdeclspec"
+
+/// Verify LTO is enabled (no diagnostic).
+// RUN: %clang %s -### -target x86_64-scei-ps4 -flto 2>&1 | FileCheck %s 
--check-prefix=LTO
+// RUN: %clang %s -### -target x86_64-sie-ps5 -flto 2>&1 | FileCheck %s 
--check-prefix=LTO
+// LTO-NOT: error:
+// LTO-NOT: unable to pass LLVM bit-code



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


[clang] 2b9055c - [PS4/PS5] NFC: Use preferred predicate in a triple check

2022-07-12 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-07-12T08:10:25-07:00
New Revision: 2b9055cee657fbec1afa93da3751bb923649fbde

URL: 
https://github.com/llvm/llvm-project/commit/2b9055cee657fbec1afa93da3751bb923649fbde
DIFF: 
https://github.com/llvm/llvm-project/commit/2b9055cee657fbec1afa93da3751bb923649fbde.diff

LOG: [PS4/PS5] NFC: Use preferred predicate in a triple check

Also add a test to verify this difference in the PS4/PS5 ABIs,
now that we have identified it.

Added: 


Modified: 
clang/lib/Basic/TargetInfo.cpp
clang/test/CodeGenCXX/uncopyable-args.cpp

Removed: 




diff  --git a/clang/lib/Basic/TargetInfo.cpp b/clang/lib/Basic/TargetInfo.cpp
index e22ed34e7da46..6685145ea6d2e 100644
--- a/clang/lib/Basic/TargetInfo.cpp
+++ b/clang/lib/Basic/TargetInfo.cpp
@@ -503,7 +503,7 @@ bool TargetInfo::initFeatureMap(
 TargetInfo::CallingConvKind
 TargetInfo::getCallingConvKind(bool ClangABICompat4) const {
   if (getCXXABI() != TargetCXXABI::Microsoft &&
-  (ClangABICompat4 || getTriple().getOS() == llvm::Triple::PS4))
+  (ClangABICompat4 || getTriple().isPS4()))
 return CCK_ClangABI4OrPS4;
   return CCK_Default;
 }

diff  --git a/clang/test/CodeGenCXX/uncopyable-args.cpp 
b/clang/test/CodeGenCXX/uncopyable-args.cpp
index 529bc3baf798d..e03c9970747a5 100644
--- a/clang/test/CodeGenCXX/uncopyable-args.cpp
+++ b/clang/test/CodeGenCXX/uncopyable-args.cpp
@@ -1,6 +1,7 @@
 // RUN: %clang_cc1 -no-opaque-pointers -std=c++11 -triple 
x86_64-unknown-unknown -emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK 
--check-prefix=NEWABI
 // RUN: %clang_cc1 -no-opaque-pointers -std=c++11 -triple 
x86_64-unknown-unknown -fclang-abi-compat=4.0 -emit-llvm -o - %s | FileCheck %s 
--check-prefix=CHECK --check-prefix=OLDABI
 // RUN: %clang_cc1 -no-opaque-pointers -std=c++11 -triple x86_64-scei-ps4 
-emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK --check-prefix=OLDABI
+// RUN: %clang_cc1 -no-opaque-pointers -std=c++11 -triple x86_64-sie-ps5  
-emit-llvm -o - %s | FileCheck %s --check-prefix=CHECK --check-prefix=NEWABI
 // RUN: %clang_cc1 -no-opaque-pointers -std=c++11 -triple x86_64-windows-msvc 
-emit-llvm -o - %s -fms-compatibility -fms-compatibility-version=18 | FileCheck 
%s -check-prefix=WIN64 -check-prefix=WIN64-18
 // RUN: %clang_cc1 -no-opaque-pointers -std=c++11 -triple x86_64-windows-msvc 
-emit-llvm -o - %s -fms-compatibility -fms-compatibility-version=19 | FileCheck 
%s -check-prefix=WIN64 -check-prefix=WIN64-19
 



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


[clang] dbd1ba2 - [PS5] Disable a test, same as PS4

2022-05-23 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-05-23T10:43:26-07:00
New Revision: dbd1ba28a3a435c87eb2a977028ea22e9aabf148

URL: 
https://github.com/llvm/llvm-project/commit/dbd1ba28a3a435c87eb2a977028ea22e9aabf148
DIFF: 
https://github.com/llvm/llvm-project/commit/dbd1ba28a3a435c87eb2a977028ea22e9aabf148.diff

LOG: [PS5] Disable a test, same as PS4

Added: 


Modified: 
clang/test/Driver/nostdincxx.cpp

Removed: 






  
Unicorn! · GitHub

  body {
background-color: #f1f1f1;
margin: 0;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  }

  .container { margin: 50px auto 40px auto; width: 600px; text-align: 
center; }

  a { color: #4183c4; text-decoration: none; }
  a:hover { text-decoration: underline; }

  h1 { letter-spacing: -1px; line-height: 60px; font-size: 60px; 
font-weight: 100; margin: 0px; text-shadow: 0 1px 0 #fff; }
  p { color: rgba(0, 0, 0, 0.5); margin: 10px 0 10px; font-size: 18px; 
font-weight: 200; line-height: 1.6em;}

  ul { list-style: none; margin: 25px 0; padding: 0; }
  li { display: table-cell; font-weight: bold; width: 1%; }

  .logo { display: inline-block; margin-top: 35px; }
  .logo-img-2x { display: none; }
  @media
  only screen and (-webkit-min-device-pixel-ratio: 2),
  only screen and (   min--moz-device-pixel-ratio: 2),
  only screen and ( -o-min-device-pixel-ratio: 2/1),
  only screen and (min-device-pixel-ratio: 2),
  only screen and (min-resolution: 192dpi),
  only screen and (min-resolution: 2dppx) {
.logo-img-1x { display: none; }
.logo-img-2x { display: inline-block; }
  }

  #suggestions {
margin-top: 35px;
color: #ccc;
  }
  #suggestions a {
color: #66;
font-weight: 200;
font-size: 14px;
margin: 0 10px;
  }


  
  


  

  

  No server is currently available to service your 
request.
  Sorry about that. Please try refreshing and contact us if the problem 
persists.
  
https://github.com/contact";>Contact Support —
https://www.githubstatus.com";>GitHub Status —
https://twitter.com/githubstatus";>@githubstatus
  

  

  

  

  

  




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


[clang] 217531f - [PS5] Make driver's PIC behavior match PS4

2022-05-23 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-05-23T12:50:22-07:00
New Revision: 217531f12b4b97dadb80c66ab97c71e57ae0adcf

URL: 
https://github.com/llvm/llvm-project/commit/217531f12b4b97dadb80c66ab97c71e57ae0adcf
DIFF: 
https://github.com/llvm/llvm-project/commit/217531f12b4b97dadb80c66ab97c71e57ae0adcf.diff

LOG: [PS5] Make driver's PIC behavior match PS4

The new test is a copy of the corresponding PS4 test, with the triple
etc updated, because there's currently no good way to make one lit test
"iterate" with multiple targets.

Added: 
clang/test/Driver/ps5-pic.c

Modified: 
clang/include/clang/Basic/DiagnosticDriverKinds.td
clang/lib/Driver/ToolChains/CommonArgs.cpp

Removed: 




diff  --git a/clang/include/clang/Basic/DiagnosticDriverKinds.td 
b/clang/include/clang/Basic/DiagnosticDriverKinds.td
index 7961b006a9a00..3cc9565e6e8b2 100644
--- a/clang/include/clang/Basic/DiagnosticDriverKinds.td
+++ b/clang/include/clang/Basic/DiagnosticDriverKinds.td
@@ -546,8 +546,8 @@ def warn_drv_unable_to_find_directory_expected : Warning<
   "unable to find %0 directory, expected to be in '%1'">,
   InGroup, DefaultIgnore;
 
-def warn_drv_ps4_force_pic : Warning<
-  "option '%0' was ignored by the PS4 toolchain, using '-fPIC'">,
+def warn_drv_ps_force_pic : Warning<
+  "option '%0' was ignored by the %1 toolchain, using '-fPIC'">,
   InGroup;
 
 def warn_drv_ps_sdk_dir : Warning<

diff  --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp 
b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 33f3df80a2a2e..45add8ad94a5f 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -1286,23 +1286,24 @@ tools::ParsePICArgs(const ToolChain &ToolChain, const 
ArgList &Args) {
 O.matches(options::OPT_fPIE) || O.matches(options::OPT_fPIC);
   } else {
 PIE = PIC = false;
-if (EffectiveTriple.isPS4()) {
+if (EffectiveTriple.isPS()) {
   Arg *ModelArg = Args.getLastArg(options::OPT_mcmodel_EQ);
   StringRef Model = ModelArg ? ModelArg->getValue() : "";
   if (Model != "kernel") {
 PIC = true;
-ToolChain.getDriver().Diag(diag::warn_drv_ps4_force_pic)
-<< LastPICArg->getSpelling();
+ToolChain.getDriver().Diag(diag::warn_drv_ps_force_pic)
+<< LastPICArg->getSpelling()
+<< (EffectiveTriple.isPS4() ? "PS4" : "PS5");
   }
 }
   }
 }
   }
 
-  // Introduce a Darwin and PS4-specific hack. If the default is PIC, but the
-  // PIC level would've been set to level 1, force it back to level 2 PIC
+  // Introduce a Darwin and PS4/PS5-specific hack. If the default is PIC, but
+  // the PIC level would've been set to level 1, force it back to level 2 PIC
   // instead.
-  if (PIC && (Triple.isOSDarwin() || EffectiveTriple.isPS4()))
+  if (PIC && (Triple.isOSDarwin() || EffectiveTriple.isPS()))
 IsPICLevelTwo |= ToolChain.isPICDefault();
 
   // This kernel flags are a trump-card: they will disable PIC/PIE

diff  --git a/clang/test/Driver/ps5-pic.c b/clang/test/Driver/ps5-pic.c
new file mode 100644
index 0..0396122accf40
--- /dev/null
+++ b/clang/test/Driver/ps5-pic.c
@@ -0,0 +1,106 @@
+// REQUIRES: x86-registered-target
+
+// Test the driver's control over the PIC behavior for PS5 compiler.
+// These consist of tests of the relocation model flags and the
+// pic level flags passed to CC1.
+//
+// CHECK-NO-PIC: "-mrelocation-model" "static"
+// CHECK-NO-PIC-NOT: "-pic-level"
+// CHECK-NO-PIC-NOT: "-pic-is-pie"
+//
+// CHECK-DYNAMIC-NO-PIC2: unsupported option '-mdynamic-no-pic'
+// CHECK-DYNAMIC-NO-PIC2: "-mrelocation-model" "dynamic-no-pic"
+//
+// CHECK-PIC2: "-mrelocation-model" "pic"
+// CHECK-PIC2: "-pic-level" "2"
+//
+// CHECK-PIE2: "-mrelocation-model" "pic"
+// CHECK-PIE2: "-pic-is-pie"
+//
+// CHECK-NOPIC-IGNORED: using '-fPIC'
+// CHECK-NOPIC-IGNORED: "-mrelocation-model" "pic"
+// CHECK-NOPIC-IGNORED: "-pic-level" "2"
+//
+// CHECK-DIAG-PIC: option '-fno-PIC' was ignored by the PS5 toolchain, using 
'-fPIC'
+// CHECK-DIAG-PIE: option '-fno-PIE' was ignored by the PS5 toolchain, using 
'-fPIC'
+// CHECK-DIAG-pic: option '-fno-pic' was ignored by the PS5 toolchain, using 
'-fPIC'
+// CHECK-DIAG-pie: option '-fno-pie' was ignored by the PS5 toolchain, using 
'-fPIC'
+//
+// CHECK-STATIC-ERR: unsupported option '-static' for target 'PS5'
+
+// RUN: %clang -c %s -target x86_64-sie-ps5 -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-PIC2
+// RUN: %clang -c %s -target x86_64-sie-ps5 -fpic -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-PIC2
+// RUN: %clang -c %s -target x86_64-sie-ps5 -fPIC -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-PIC2
+// RUN: %clang -c %s -target x86_64-sie-ps5 -fpie -### 2>&1 \
+// RUN:   | FileCheck %s --check-prefix=CHECK-PIE2
+// RUN: %clang -c %s -target x86_64-

[clang] 28432b0 - [PS5] Verify defaults to -fno-stack-size-section

2022-05-24 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-05-24T09:47:37-07:00
New Revision: 28432b0f655641df7f9d079cf69ba235038d6340

URL: 
https://github.com/llvm/llvm-project/commit/28432b0f655641df7f9d079cf69ba235038d6340
DIFF: 
https://github.com/llvm/llvm-project/commit/28432b0f655641df7f9d079cf69ba235038d6340.diff

LOG: [PS5] Verify defaults to -fno-stack-size-section

Added: 


Modified: 
clang/test/Driver/stack-size-section.c

Removed: 




diff  --git a/clang/test/Driver/stack-size-section.c 
b/clang/test/Driver/stack-size-section.c
index 461f0b5c9aee..18fb55f4ac9f 100644
--- a/clang/test/Driver/stack-size-section.c
+++ b/clang/test/Driver/stack-size-section.c
@@ -1,4 +1,5 @@
 // RUN: %clang -target x86_64-unknown %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-ABSENT
+// RUN: %clang -target x86_64-sie-ps5 %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-ABSENT
 // RUN: %clang -target x86_64-scei-ps4 -fno-stack-size-section %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-ABSENT
 // CHECK-ABSENT-NOT: -fstack-size-section
 
@@ -6,4 +7,9 @@
 // RUN: %clang -target x86_64-scei-ps4 %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-PRESENT
 // CHECK-PRESENT: -fstack-size-section
 
+// RUN: %clang -target x86_64-unknown -fstack-size-section 
-fno-stack-size-section -### 2>&1 \
+// RUN: | FileCheck %s --check-prefix=CHECK-ABSENT
+// RUN: %clang -target x86_64-unknown -fnostack-size-section 
-fstack-size-section -### 2>&1 \
+// RUN: | FileCheck %s --check-prefix=CHECK-PRESENT
+
 int foo() { return 42; }



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


[clang] efebb27 - Revert "[PS5] Verify defaults to -fno-stack-size-section"

2022-05-24 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-05-24T10:00:33-07:00
New Revision: efebb27b745a0d677ad2ea9aefff242c12aef29c

URL: 
https://github.com/llvm/llvm-project/commit/efebb27b745a0d677ad2ea9aefff242c12aef29c
DIFF: 
https://github.com/llvm/llvm-project/commit/efebb27b745a0d677ad2ea9aefff242c12aef29c.diff

LOG: Revert "[PS5] Verify defaults to -fno-stack-size-section"

This reverts commit 28432b0f655641df7f9d079cf69ba235038d6340.

Caused some unexpected buildbot failures.

Added: 


Modified: 
clang/test/Driver/stack-size-section.c

Removed: 




diff  --git a/clang/test/Driver/stack-size-section.c 
b/clang/test/Driver/stack-size-section.c
index 18fb55f4ac9f..461f0b5c9aee 100644
--- a/clang/test/Driver/stack-size-section.c
+++ b/clang/test/Driver/stack-size-section.c
@@ -1,5 +1,4 @@
 // RUN: %clang -target x86_64-unknown %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-ABSENT
-// RUN: %clang -target x86_64-sie-ps5 %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-ABSENT
 // RUN: %clang -target x86_64-scei-ps4 -fno-stack-size-section %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-ABSENT
 // CHECK-ABSENT-NOT: -fstack-size-section
 
@@ -7,9 +6,4 @@
 // RUN: %clang -target x86_64-scei-ps4 %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-PRESENT
 // CHECK-PRESENT: -fstack-size-section
 
-// RUN: %clang -target x86_64-unknown -fstack-size-section 
-fno-stack-size-section -### 2>&1 \
-// RUN: | FileCheck %s --check-prefix=CHECK-ABSENT
-// RUN: %clang -target x86_64-unknown -fnostack-size-section 
-fstack-size-section -### 2>&1 \
-// RUN: | FileCheck %s --check-prefix=CHECK-PRESENT
-
 int foo() { return 42; }



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


[clang] 4a3e2af - Reland "[PS5] Verify defaults to -fno-stack-size-section"

2022-05-24 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-05-24T10:09:39-07:00
New Revision: 4a3e2aff5f849278f6c49678fd21f8ca5e59c4e7

URL: 
https://github.com/llvm/llvm-project/commit/4a3e2aff5f849278f6c49678fd21f8ca5e59c4e7
DIFF: 
https://github.com/llvm/llvm-project/commit/4a3e2aff5f849278f6c49678fd21f8ca5e59c4e7.diff

LOG: Reland "[PS5] Verify defaults to -fno-stack-size-section"

This reverts commit efebb27b745a0d677ad2ea9aefff242c12aef29c.
Fixes typos (accidentally omitted %s from some RUN lines).

Added: 


Modified: 
clang/test/Driver/stack-size-section.c

Removed: 




diff  --git a/clang/test/Driver/stack-size-section.c 
b/clang/test/Driver/stack-size-section.c
index 461f0b5c9aee..f50c9767e707 100644
--- a/clang/test/Driver/stack-size-section.c
+++ b/clang/test/Driver/stack-size-section.c
@@ -1,4 +1,5 @@
 // RUN: %clang -target x86_64-unknown %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-ABSENT
+// RUN: %clang -target x86_64-sie-ps5 %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-ABSENT
 // RUN: %clang -target x86_64-scei-ps4 -fno-stack-size-section %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-ABSENT
 // CHECK-ABSENT-NOT: -fstack-size-section
 
@@ -6,4 +7,9 @@
 // RUN: %clang -target x86_64-scei-ps4 %s -### 2>&1 | FileCheck %s 
--check-prefix=CHECK-PRESENT
 // CHECK-PRESENT: -fstack-size-section
 
+// RUN: %clang -target x86_64-unknown -fstack-size-section 
-fno-stack-size-section %s -### 2>&1 \
+// RUN: | FileCheck %s --check-prefix=CHECK-ABSENT
+// RUN: %clang -target x86_64-unknown -fno-stack-size-section 
-fstack-size-section %s -### 2>&1 \
+// RUN: | FileCheck %s --check-prefix=CHECK-PRESENT
+
 int foo() { return 42; }



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


[clang] 04a6e0f - [X86][Headers] change 'yields' to 'returns' in more places

2024-03-22 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2024-03-22T05:36:41-07:00
New Revision: 04a6e0f1634f9a53120c27a30250d26dff4ada1c

URL: 
https://github.com/llvm/llvm-project/commit/04a6e0f1634f9a53120c27a30250d26dff4ada1c
DIFF: 
https://github.com/llvm/llvm-project/commit/04a6e0f1634f9a53120c27a30250d26dff4ada1c.diff

LOG: [X86][Headers] change 'yields' to 'returns' in more places

Added: 


Modified: 
clang/lib/Headers/mmintrin.h
clang/lib/Headers/smmintrin.h
clang/lib/Headers/xmmintrin.h

Removed: 




diff  --git a/clang/lib/Headers/mmintrin.h b/clang/lib/Headers/mmintrin.h
index 962d24738e7aa4..4e154e2d859353 100644
--- a/clang/lib/Headers/mmintrin.h
+++ b/clang/lib/Headers/mmintrin.h
@@ -1141,7 +1141,7 @@ _mm_xor_si64(__m64 __m1, __m64 __m2)
 ///[8 x i8] to determine if the element of the first vector is equal to the
 ///corresponding element of the second vector.
 ///
-///The comparison yields 0 for false, 0xFF for true.
+///Each comparison returns 0 for false, 0xFF for true.
 ///
 /// \headerfile 
 ///
@@ -1163,7 +1163,7 @@ _mm_cmpeq_pi8(__m64 __m1, __m64 __m2)
 ///[4 x i16] to determine if the element of the first vector is equal to 
the
 ///corresponding element of the second vector.
 ///
-///The comparison yields 0 for false, 0x for true.
+///Each comparison returns 0 for false, 0x for true.
 ///
 /// \headerfile 
 ///
@@ -1185,7 +1185,7 @@ _mm_cmpeq_pi16(__m64 __m1, __m64 __m2)
 ///[2 x i32] to determine if the element of the first vector is equal to 
the
 ///corresponding element of the second vector.
 ///
-///The comparison yields 0 for false, 0x for true.
+///Each comparison returns 0 for false, 0x for true.
 ///
 /// \headerfile 
 ///
@@ -1207,7 +1207,7 @@ _mm_cmpeq_pi32(__m64 __m1, __m64 __m2)
 ///[8 x i8] to determine if the element of the first vector is greater than
 ///the corresponding element of the second vector.
 ///
-///The comparison yields 0 for false, 0xFF for true.
+///Each comparison returns 0 for false, 0xFF for true.
 ///
 /// \headerfile 
 ///
@@ -1229,7 +1229,7 @@ _mm_cmpgt_pi8(__m64 __m1, __m64 __m2)
 ///[4 x i16] to determine if the element of the first vector is greater 
than
 ///the corresponding element of the second vector.
 ///
-///The comparison yields 0 for false, 0x for true.
+///Each comparison returns 0 for false, 0x for true.
 ///
 /// \headerfile 
 ///
@@ -1251,7 +1251,7 @@ _mm_cmpgt_pi16(__m64 __m1, __m64 __m2)
 ///[2 x i32] to determine if the element of the first vector is greater 
than
 ///the corresponding element of the second vector.
 ///
-///The comparison yields 0 for false, 0x for true.
+///Each comparison returns 0 for false, 0x for true.
 ///
 /// \headerfile 
 ///

diff  --git a/clang/lib/Headers/smmintrin.h b/clang/lib/Headers/smmintrin.h
index 9fb9cc9b01348c..b3fec474e35a1e 100644
--- a/clang/lib/Headers/smmintrin.h
+++ b/clang/lib/Headers/smmintrin.h
@@ -1188,7 +1188,7 @@ static __inline__ int __DEFAULT_FN_ATTRS 
_mm_testnzc_si128(__m128i __M,
 /// Compares each of the corresponding 64-bit values of the 128-bit
 ///integer vectors for equality.
 ///
-///Each comparison yields 0x0 for false, 0x for true.
+///Each comparison returns 0x0 for false, 0x for true.
 ///
 /// \headerfile 
 ///
@@ -2303,7 +2303,7 @@ static __inline__ __m128i __DEFAULT_FN_ATTRS 
_mm_minpos_epu16(__m128i __V) {
 ///integer vectors to determine if the values in the first operand are
 ///greater than those in the second operand.
 ///
-///Each comparison yields 0x0 for false, 0x for true.
+///Each comparison returns 0x0 for false, 0x for true.
 ///
 /// \headerfile 
 ///

diff  --git a/clang/lib/Headers/xmmintrin.h b/clang/lib/Headers/xmmintrin.h
index 040194786a2799..1ef89de9c9f562 100644
--- a/clang/lib/Headers/xmmintrin.h
+++ b/clang/lib/Headers/xmmintrin.h
@@ -484,7 +484,7 @@ _mm_xor_ps(__m128 __a, __m128 __b)
 /// Compares two 32-bit float values in the low-order bits of both
 ///operands for equality.
 ///
-///The comparison yields 0x0 for false, 0x for true, in the
+///The comparison returns 0x0 for false, 0x for true, in the
 ///low-order bits of a vector [4 x float].
 ///If either value in a comparison is NaN, returns false.
 ///
@@ -509,7 +509,7 @@ _mm_cmpeq_ss(__m128 __a, __m128 __b)
 /// Compares each of the corresponding 32-bit float values of the
 ///128-bit vectors of [4 x float] for equality.
 ///
-///Each comparison yields 0x0 for false, 0x for true.
+///Each comparison returns 0x0 for false, 0x for true.
 ///If either value in a comparison is NaN, returns false.
 ///
 /// \headerfile 
@@ -531,7 +531,7 @@ _mm_cmpeq_ps(__m128 __a, __m128 __b)
 ///operands to determine if the va

[clang] 513b950 - Make -frewrite-includes handle -include correctly

2023-10-24 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2023-10-24T09:08:31-07:00
New Revision: 513b950a79d0e92af1baa969207dd296068a71b9

URL: 
https://github.com/llvm/llvm-project/commit/513b950a79d0e92af1baa969207dd296068a71b9
DIFF: 
https://github.com/llvm/llvm-project/commit/513b950a79d0e92af1baa969207dd296068a71b9.diff

LOG: Make -frewrite-includes handle -include correctly

The `-include "file"` option implicitly adds a leading #include
to the main source; however, there's no explicit #include, which
left -frewrite-includes emitting an unmatched #endif at the end
of the included text.

This corrects a bug in 4a16b51f.

Added: 


Modified: 
clang/lib/Frontend/Rewrite/InclusionRewriter.cpp
clang/test/Frontend/rewrite-includes-cli-include.c

Removed: 




diff  --git a/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp 
b/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp
index 28f7b0b9edfc5c2..2c3a253a67d5c93 100644
--- a/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp
+++ b/clang/lib/Frontend/Rewrite/InclusionRewriter.cpp
@@ -444,8 +444,11 @@ void InclusionRewriter::Process(FileID FileId,
   if (Mod)
 OS << "#pragma clang module end /*"
<< Mod->getFullModuleName(true) << "*/\n";
-  OS << "#endif /* " << getIncludedFileName(Inc)
- << " expanded by -frewrite-includes */" << LocalEOL;
+  // There's no #include, therefore no #if, for -include files.
+  if (FromFile != PredefinesBuffer) {
+OS << "#endif /* " << getIncludedFileName(Inc)
+   << " expanded by -frewrite-includes */" << LocalEOL;
+  }
 
   // Add line marker to indicate we're returning from an included
   // file.

diff  --git a/clang/test/Frontend/rewrite-includes-cli-include.c 
b/clang/test/Frontend/rewrite-includes-cli-include.c
index 437bc2ffadf1960..d63f966f79ca6af 100644
--- a/clang/test/Frontend/rewrite-includes-cli-include.c
+++ b/clang/test/Frontend/rewrite-includes-cli-include.c
@@ -3,7 +3,6 @@ main_file_line
 // CHECK: {{^}}# 1 ""{{$}}
 // CHECK-NEXT: {{^}}# 1 "{{.*[/\\]Inputs(/|)}}rewrite-includes2.h" 1{{$}}
 // CHECK-NEXT: {{^}}int included_line2;{{$}}
-// CHECK-NEXT: {{^}}#endif /* rewrite-includes2.h expanded by 
-frewrite-includes */{{$}}
 // CHECK-NEXT: {{^}}# 1 "" 2{{$}}
 // CHECK-NEXT: {{^}}# 1 "{{.*}}rewrite-includes-cli-include.c"{{$}}
 // CHECK-NEXT: FileCheck



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


[clang] 5ea2d4f - Avoid conflicts between debug-info and pseudo-probe profiling

2021-02-10 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2021-02-10T07:09:18-08:00
New Revision: 5ea2d4fa481160c9843b8651df265ce1fbfd9316

URL: 
https://github.com/llvm/llvm-project/commit/5ea2d4fa481160c9843b8651df265ce1fbfd9316
DIFF: 
https://github.com/llvm/llvm-project/commit/5ea2d4fa481160c9843b8651df265ce1fbfd9316.diff

LOG: Avoid conflicts between debug-info and pseudo-probe profiling

After D93264, using both -fdebug-info-for-profiling and
-fpseudo-probe-for-profiling will cause the compiler to crash.
Diagnose these conflicting options in the driver.

Also, the existing CodeGen test was using the driver when it should be
running cc1.

Differential Revision: https://reviews.llvm.org/D96354

Added: 
clang/test/Driver/pseudo-probe.c

Modified: 
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/CodeGen/pseudo-probe-emit.c

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index 5df6238b211b..d2a9ea3c9ef8 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -3746,6 +3746,12 @@ static void renderDebugOptions(const ToolChain &TC, 
const Driver &D,
ArgStringList &CmdArgs,
codegenoptions::DebugInfoKind &DebugInfoKind,
DwarfFissionKind &DwarfFission) {
+  // These two forms of profiling info can't be used together.
+  if (const Arg *A1 = 
Args.getLastArg(options::OPT_fpseudo_probe_for_profiling))
+if (const Arg *A2 = 
Args.getLastArg(options::OPT_fdebug_info_for_profiling))
+  D.Diag(diag::err_drv_argument_not_allowed_with)
+  << A1->getAsString(Args) << A2->getAsString(Args);
+
   if (Args.hasFlag(options::OPT_fdebug_info_for_profiling,
options::OPT_fno_debug_info_for_profiling, false) &&
   checkDebugInfoOption(

diff  --git a/clang/test/CodeGen/pseudo-probe-emit.c 
b/clang/test/CodeGen/pseudo-probe-emit.c
index fccc8f04844d..5fe1d2384676 100644
--- a/clang/test/CodeGen/pseudo-probe-emit.c
+++ b/clang/test/CodeGen/pseudo-probe-emit.c
@@ -1,4 +1,4 @@
-// RUN: %clang -O2  -fexperimental-new-pass-manager 
-fpseudo-probe-for-profiling -g -emit-llvm -S -o - %s | FileCheck %s
+// RUN: %clang_cc1 -O2 -fno-legacy-pass-manager -fpseudo-probe-for-profiling 
-debug-info-kind=limited -emit-llvm -o - %s | FileCheck %s
 
 // Check the generation of pseudoprobe intrinsic call
 

diff  --git a/clang/test/Driver/pseudo-probe.c 
b/clang/test/Driver/pseudo-probe.c
new file mode 100644
index ..297992cfd1a1
--- /dev/null
+++ b/clang/test/Driver/pseudo-probe.c
@@ -0,0 +1,7 @@
+// RUN: %clang -### -fpseudo-probe-for-profiling %s 2>&1 | FileCheck %s 
--check-prefix=YESPROBE
+// RUN: %clang -### -fno-pseudo-probe-for-profiling %s 2>&1 | FileCheck %s 
--check-prefix=NOPROBE
+// RUN: %clang -### -fpseudo-probe-for-profiling -fdebug-info-for-profiling %s 
2>&1 | FileCheck %s --check-prefix=CONFLICT
+
+// YESPROBE: -fpseudo-probe-for-profiling
+// NOPROBE-NOT: -fpseudo-probe-for-profiling
+// CONFLICT: invalid argument



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


[clang] e6620a3 - Fix test that was never run.

2021-07-30 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2021-07-30T07:59:29-07:00
New Revision: e6620a351ecb87a75eca116399c5b359e3c63cc8

URL: 
https://github.com/llvm/llvm-project/commit/e6620a351ecb87a75eca116399c5b359e3c63cc8
DIFF: 
https://github.com/llvm/llvm-project/commit/e6620a351ecb87a75eca116399c5b359e3c63cc8.diff

LOG: Fix test that was never run.

Commit 83df122 (r368334) added 'REQUIRES: linux' to this test, but
because triples are not respected by REQUIRES, that meant it was
invariably Unsupported.  The correct keyword would be 'system-linux'
(checking the host rather than the target).

Because the test was always skipped, commit 0cfd9e5 (r375439) did not
notice that the test modification was incorrect.

This patch corrects the REQUIRES clause and fixes the incorrect
previous patch.

Found after implementing https://reviews.llvm.org/D107162

Added: 


Modified: 
clang/test/Driver/as-no-warnings.c

Removed: 




diff  --git a/clang/test/Driver/as-no-warnings.c 
b/clang/test/Driver/as-no-warnings.c
index 4338d117a6d0..a6671c631dba 100644
--- a/clang/test/Driver/as-no-warnings.c
+++ b/clang/test/Driver/as-no-warnings.c
@@ -2,20 +2,22 @@
 // RUN: %clang -### %s -c -o tmp.o -integrated-as -Wa,--no-warn 2>&1 | 
FileCheck %s
 
 /// -W is alias for --no-warn.
-// RUN: %clang -### %s -c -o tmp.o -target i686-pc-linux-gnu 
-fno-integrated-as -Wa,-W 2>&1 | FileCheck -check-prefix=CHECK-NOIAS %s
+// RUN: %clang -### %s -c -o tmp.o -target i686-pc-linux-gnu 
-fno-integrated-as -Wa,-W 2>&1 | FileCheck -check-prefix=CHECK-NOIASW %s
 // RUN: %clang -### %s -c -o tmp.o -integrated-as -Wa,-W 2>&1 | FileCheck %s
 
 // RUN: %clang %s -c -o %t.o -integrated-as -Wa,--no-warn 2>&1 | FileCheck 
-allow-empty --check-prefix=CHECK-AS-NOWARN %s
 // RUN: %clang %s -c -o %t.o -target i686-pc-linux-gnu -fno-integrated-as 
-Wa,--no-warn 2>&1 | FileCheck -allow-empty --check-prefix=CHECK-AS-NOWARN %s
+// RUN: %clang %s -c -o %t.o -target i686-pc-linux-gnu -fno-integrated-as 
-Wa,-W 2>&1 | FileCheck -allow-empty --check-prefix=CHECK-AS-NOWARN %s
 // RUN: not %clang %s -c -o %t.o -target i686-pc-linux-gnu -integrated-as 
-Wa,--fatal-warnings 2>&1 | FileCheck --check-prefix=CHECK-AS-FATAL %s
 // RUN: not %clang %s -c -o %t.o -target i686-pc-linux-gnu -fno-integrated-as 
-Wa,--fatal-warnings 2>&1 | FileCheck --check-prefix=CHECK-AS-FATAL %s
 
 // REQUIRES: clang-driver
 // REQUIRES: x86-registered-target
-// REQUIRES: linux
+// REQUIRES: system-linux
 
 // CHECK: "-cc1" {{.*}} "-massembler-no-warn"
 // CHECK-NOIAS: "--no-warn"
+// CHECK-NOIASW: "-W"
 // CHECK-AS-NOWARN-NOT: warning:
 // CHECK-AS-FATAL-NOT: warning:
 // CHECK-AS-FATAL: error



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


[clang] c0fa174 - Add triples to try to fix a test

2021-07-30 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2021-07-30T08:35:42-07:00
New Revision: c0fa174d63ad68f290745aaa6600cede1ad0a25d

URL: 
https://github.com/llvm/llvm-project/commit/c0fa174d63ad68f290745aaa6600cede1ad0a25d
DIFF: 
https://github.com/llvm/llvm-project/commit/c0fa174d63ad68f290745aaa6600cede1ad0a25d.diff

LOG: Add triples to try to fix a test

Buildbot failure:
https://lab.llvm.org/buildbot/#/builders/105/builds/13139
which provides no details about why it failed.

Added: 


Modified: 
clang/test/Driver/as-no-warnings.c

Removed: 




diff  --git a/clang/test/Driver/as-no-warnings.c 
b/clang/test/Driver/as-no-warnings.c
index a6671c631dba..9c2b3f096872 100644
--- a/clang/test/Driver/as-no-warnings.c
+++ b/clang/test/Driver/as-no-warnings.c
@@ -1,11 +1,11 @@
 // RUN: %clang -### %s -c -o tmp.o -target i686-pc-linux-gnu 
-fno-integrated-as -Wa,--no-warn 2>&1 | FileCheck -check-prefix=CHECK-NOIAS %s
-// RUN: %clang -### %s -c -o tmp.o -integrated-as -Wa,--no-warn 2>&1 | 
FileCheck %s
+// RUN: %clang -### %s -c -o tmp.o -target i686-pc-linux-gnu -integrated-as 
-Wa,--no-warn 2>&1 | FileCheck %s
 
 /// -W is alias for --no-warn.
 // RUN: %clang -### %s -c -o tmp.o -target i686-pc-linux-gnu 
-fno-integrated-as -Wa,-W 2>&1 | FileCheck -check-prefix=CHECK-NOIASW %s
-// RUN: %clang -### %s -c -o tmp.o -integrated-as -Wa,-W 2>&1 | FileCheck %s
+// RUN: %clang -### %s -c -o tmp.o -target i686-pc-linux-gnu -integrated-as 
-Wa,-W 2>&1 | FileCheck %s
 
-// RUN: %clang %s -c -o %t.o -integrated-as -Wa,--no-warn 2>&1 | FileCheck 
-allow-empty --check-prefix=CHECK-AS-NOWARN %s
+// RUN: %clang %s -c -o %t.o -target i686-pc-linux-gnu -integrated-as 
-Wa,--no-warn 2>&1 | FileCheck -allow-empty --check-prefix=CHECK-AS-NOWARN %s
 // RUN: %clang %s -c -o %t.o -target i686-pc-linux-gnu -fno-integrated-as 
-Wa,--no-warn 2>&1 | FileCheck -allow-empty --check-prefix=CHECK-AS-NOWARN %s
 // RUN: %clang %s -c -o %t.o -target i686-pc-linux-gnu -fno-integrated-as 
-Wa,-W 2>&1 | FileCheck -allow-empty --check-prefix=CHECK-AS-NOWARN %s
 // RUN: not %clang %s -c -o %t.o -target i686-pc-linux-gnu -integrated-as 
-Wa,--fatal-warnings 2>&1 | FileCheck --check-prefix=CHECK-AS-FATAL %s



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


[clang] 9ca905b - XFAIL a test on ppc64

2021-07-30 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2021-07-30T09:05:14-07:00
New Revision: 9ca905b52d53c46aceb4d28e44dfbf4a815d0c68

URL: 
https://github.com/llvm/llvm-project/commit/9ca905b52d53c46aceb4d28e44dfbf4a815d0c68
DIFF: 
https://github.com/llvm/llvm-project/commit/9ca905b52d53c46aceb4d28e44dfbf4a815d0c68.diff

LOG: XFAIL a test on ppc64

Buildbot failure:
https://lab.llvm.org/buildbot/#/builders/105/builds/13141
which provides no details about why it failed, but the only failure
reports are for ppc64 bots.

Added: 


Modified: 
clang/test/Driver/as-no-warnings.c

Removed: 




diff  --git a/clang/test/Driver/as-no-warnings.c 
b/clang/test/Driver/as-no-warnings.c
index 9c2b3f096872..77971389ee65 100644
--- a/clang/test/Driver/as-no-warnings.c
+++ b/clang/test/Driver/as-no-warnings.c
@@ -14,6 +14,7 @@
 // REQUIRES: clang-driver
 // REQUIRES: x86-registered-target
 // REQUIRES: system-linux
+// XFAIL: ppc64
 
 // CHECK: "-cc1" {{.*}} "-massembler-no-warn"
 // CHECK-NOIAS: "--no-warn"



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


[clang] c15d982 - XFAIL ppc => powerpc

2021-07-30 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2021-07-30T09:39:51-07:00
New Revision: c15d9822b3ab767d744e93d7d9c25d5f7d2faac8

URL: 
https://github.com/llvm/llvm-project/commit/c15d9822b3ab767d744e93d7d9c25d5f7d2faac8
DIFF: 
https://github.com/llvm/llvm-project/commit/c15d9822b3ab767d744e93d7d9c25d5f7d2faac8.diff

LOG: XFAIL ppc => powerpc

Added: 


Modified: 
clang/test/Driver/as-no-warnings.c

Removed: 




diff  --git a/clang/test/Driver/as-no-warnings.c 
b/clang/test/Driver/as-no-warnings.c
index 77971389ee65..c785c054155c 100644
--- a/clang/test/Driver/as-no-warnings.c
+++ b/clang/test/Driver/as-no-warnings.c
@@ -14,7 +14,7 @@
 // REQUIRES: clang-driver
 // REQUIRES: x86-registered-target
 // REQUIRES: system-linux
-// XFAIL: ppc64
+// XFAIL: powerpc
 
 // CHECK: "-cc1" {{.*}} "-massembler-no-warn"
 // CHECK-NOIAS: "--no-warn"



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


[clang] 31d408f - Trim failing test

2021-07-30 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2021-07-30T10:51:08-07:00
New Revision: 31d408f9f94f3b97366d49c342734c195a343579

URL: 
https://github.com/llvm/llvm-project/commit/31d408f9f94f3b97366d49c342734c195a343579
DIFF: 
https://github.com/llvm/llvm-project/commit/31d408f9f94f3b97366d49c342734c195a343579.diff

LOG: Trim failing test

Don't try to run the non-integrated assembler; just verify that the
invocations look like what we expect.  Do verify that the integrated
assembler handles warnings as expected.

Added: 


Modified: 
clang/test/Driver/as-no-warnings.c

Removed: 




diff  --git a/clang/test/Driver/as-no-warnings.c 
b/clang/test/Driver/as-no-warnings.c
index c785c054155c..d6b49217468a 100644
--- a/clang/test/Driver/as-no-warnings.c
+++ b/clang/test/Driver/as-no-warnings.c
@@ -1,20 +1,17 @@
 // RUN: %clang -### %s -c -o tmp.o -target i686-pc-linux-gnu 
-fno-integrated-as -Wa,--no-warn 2>&1 | FileCheck -check-prefix=CHECK-NOIAS %s
-// RUN: %clang -### %s -c -o tmp.o -target i686-pc-linux-gnu -integrated-as 
-Wa,--no-warn 2>&1 | FileCheck %s
+// RUN: %clang -### %s -c -o tmp.o -integrated-as -Wa,--no-warn 2>&1 | 
FileCheck %s
 
 /// -W is alias for --no-warn.
 // RUN: %clang -### %s -c -o tmp.o -target i686-pc-linux-gnu 
-fno-integrated-as -Wa,-W 2>&1 | FileCheck -check-prefix=CHECK-NOIASW %s
-// RUN: %clang -### %s -c -o tmp.o -target i686-pc-linux-gnu -integrated-as 
-Wa,-W 2>&1 | FileCheck %s
+// RUN: %clang -### %s -c -o tmp.o -integrated-as -Wa,-W 2>&1 | FileCheck %s
 
-// RUN: %clang %s -c -o %t.o -target i686-pc-linux-gnu -integrated-as 
-Wa,--no-warn 2>&1 | FileCheck -allow-empty --check-prefix=CHECK-AS-NOWARN %s
-// RUN: %clang %s -c -o %t.o -target i686-pc-linux-gnu -fno-integrated-as 
-Wa,--no-warn 2>&1 | FileCheck -allow-empty --check-prefix=CHECK-AS-NOWARN %s
-// RUN: %clang %s -c -o %t.o -target i686-pc-linux-gnu -fno-integrated-as 
-Wa,-W 2>&1 | FileCheck -allow-empty --check-prefix=CHECK-AS-NOWARN %s
-// RUN: not %clang %s -c -o %t.o -target i686-pc-linux-gnu -integrated-as 
-Wa,--fatal-warnings 2>&1 | FileCheck --check-prefix=CHECK-AS-FATAL %s
-// RUN: not %clang %s -c -o %t.o -target i686-pc-linux-gnu -fno-integrated-as 
-Wa,--fatal-warnings 2>&1 | FileCheck --check-prefix=CHECK-AS-FATAL %s
+/// Make sure warnings behave properly in integrated assembler.
+// RUN: %clang %s -c -o %t.o -integrated-as -Wa,--no-warn 2>&1 | FileCheck 
-allow-empty --check-prefix=CHECK-AS-NOWARN %s
+// RUN: not %clang %s -c -o %t.o -integrated-as -Wa,--fatal-warnings 2>&1 | 
FileCheck --check-prefix=CHECK-AS-FATAL %s
 
 // REQUIRES: clang-driver
 // REQUIRES: x86-registered-target
 // REQUIRES: system-linux
-// XFAIL: powerpc
 
 // CHECK: "-cc1" {{.*}} "-massembler-no-warn"
 // CHECK-NOIAS: "--no-warn"



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


[clang] b8e03be - [PS4][DWARF] Explicitly set default DWARF version to 4

2021-11-30 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2021-11-30T08:58:40-08:00
New Revision: b8e03be88dc87303f7401ea7b9906947ac67a6db

URL: 
https://github.com/llvm/llvm-project/commit/b8e03be88dc87303f7401ea7b9906947ac67a6db
DIFF: 
https://github.com/llvm/llvm-project/commit/b8e03be88dc87303f7401ea7b9906947ac67a6db.diff

LOG: [PS4][DWARF] Explicitly set default DWARF version to 4

Added: 


Modified: 
clang/lib/Driver/ToolChains/PS4CPU.h

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/PS4CPU.h 
b/clang/lib/Driver/ToolChains/PS4CPU.h
index 82f9523f84fb8..4bedabaf267c0 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.h
+++ b/clang/lib/Driver/ToolChains/PS4CPU.h
@@ -80,6 +80,7 @@ class LLVM_LIBRARY_VISIBILITY PS4CPU : public Generic_ELF {
 return LangOptions::SSPStrong;
   }
 
+  unsigned GetDefaultDwarfVersion() const override { return 4; }
   llvm::DebuggerKind getDefaultDebuggerTuning() const override {
 return llvm::DebuggerKind::SCE;
   }



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


[clang] 7af01fe - [lit] Remove undefined keyword from a Driver test

2022-10-31 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-10-31T13:01:05-07:00
New Revision: 7af01fe42f1634297601016cd4ef84c34cd84bca

URL: 
https://github.com/llvm/llvm-project/commit/7af01fe42f1634297601016cd4ef84c34cd84bca
DIFF: 
https://github.com/llvm/llvm-project/commit/7af01fe42f1634297601016cd4ef84c34cd84bca.diff

LOG: [lit] Remove undefined keyword from a Driver test

`clang-driver` hasn't been a valid keyword for a long time.
The test fails when the keyword is removed, so added XFAIL: *
to reflect the true status of the test (XFAIL not UNSUPPORTED)
and filed issue #58711 to get it fixed.

Added: 


Modified: 
clang/test/Driver/hip-link-bc-to-bc.hip

Removed: 




diff  --git a/clang/test/Driver/hip-link-bc-to-bc.hip 
b/clang/test/Driver/hip-link-bc-to-bc.hip
index df858cf158522..972822b5260c2 100644
--- a/clang/test/Driver/hip-link-bc-to-bc.hip
+++ b/clang/test/Driver/hip-link-bc-to-bc.hip
@@ -1,4 +1,6 @@
-// REQUIRES: clang-driver, x86-registered-target, amdgpu-registered-target
+// REQUIRES: x86-registered-target, amdgpu-registered-target
+// See issue #58711
+// XFAIL: *
 
 // Check that clang unbundles the two bitcodes and links via llvm-link
 // RUN: rm -rf %t && mkdir %t



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


[clang] 6288f70 - [lit] Fix typo in REQUIRES clause

2022-10-31 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-10-31T13:15:09-07:00
New Revision: 6288f70bda7438c7d249a4d54d8317172bce2b88

URL: 
https://github.com/llvm/llvm-project/commit/6288f70bda7438c7d249a4d54d8317172bce2b88
DIFF: 
https://github.com/llvm/llvm-project/commit/6288f70bda7438c7d249a4d54d8317172bce2b88.diff

LOG: [lit] Fix typo in REQUIRES clause

Added: 


Modified: 

clang/test/CodeGen/PowerPC/builtins-ppc-xlcompat-load-store-reversed-64bit-only.c

Removed: 




diff  --git 
a/clang/test/CodeGen/PowerPC/builtins-ppc-xlcompat-load-store-reversed-64bit-only.c
 
b/clang/test/CodeGen/PowerPC/builtins-ppc-xlcompat-load-store-reversed-64bit-only.c
index ba97bfa199103..8053516f60175 100644
--- 
a/clang/test/CodeGen/PowerPC/builtins-ppc-xlcompat-load-store-reversed-64bit-only.c
+++ 
b/clang/test/CodeGen/PowerPC/builtins-ppc-xlcompat-load-store-reversed-64bit-only.c
@@ -1,4 +1,4 @@
-// REQUIRES: powerpc-registered-target.
+// REQUIRES: powerpc-registered-target
 // RUN: %clang_cc1 -triple powerpc64-unknown-linux-gnu \
 // RUN:   -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s
 // RUN: %clang_cc1 -triple powerpc64le-unknown-linux-gnu \



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


[clang] 016785d - [clang/xray] Convert tests to check 'target=...'

2022-12-21 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-12-21T05:19:27-08:00
New Revision: 016785d9316d8c5abc5fdf3cdb86479095bbb677

URL: 
https://github.com/llvm/llvm-project/commit/016785d9316d8c5abc5fdf3cdb86479095bbb677
DIFF: 
https://github.com/llvm/llvm-project/commit/016785d9316d8c5abc5fdf3cdb86479095bbb677.diff

LOG: [clang/xray] Convert tests to check 'target=...'

Part of the project to eliminate special handling for triples in lit
expressions.

Added: 


Modified: 
clang/test/Driver/XRay/lit.local.cfg
clang/test/Driver/XRay/xray-instrument-cpu.c
clang/test/Driver/XRay/xray-instrument-os.c

Removed: 




diff  --git a/clang/test/Driver/XRay/lit.local.cfg 
b/clang/test/Driver/XRay/lit.local.cfg
index 70f9792ba3db5..1755d9ab5ce9e 100644
--- a/clang/test/Driver/XRay/lit.local.cfg
+++ b/clang/test/Driver/XRay/lit.local.cfg
@@ -1,6 +1,4 @@
 import platform
-target_triple_components = config.target_triple.split('-')
-config.available_features.update(target_triple_components)
 
 # Only run the tests in platforms where XRay instrumentation is supported.
 supported_targets = [
@@ -13,7 +11,7 @@ supported_oses = [
 'Linux', 'FreeBSD', 'Darwin'
 ]
 
-triple_set = set(target_triple_components)
+triple_set = set(config.target_triple.split('-'))
 if len(triple_set.intersection(supported_targets)) == 0:
   config.unsupported = True
 

diff  --git a/clang/test/Driver/XRay/xray-instrument-cpu.c 
b/clang/test/Driver/XRay/xray-instrument-cpu.c
index ee0e0984b36d8..a8bc2a6431335 100644
--- a/clang/test/Driver/XRay/xray-instrument-cpu.c
+++ b/clang/test/Driver/XRay/xray-instrument-cpu.c
@@ -1,4 +1,5 @@
 // RUN: not %clang -o /dev/null -v -fxray-instrument -c %s
-// XFAIL: amd64-, x86_64-, x86_64h-, arm, aarch64, arm64, powerpc64le-, mips, 
mipsel, mips64, mips64el
+// XFAIL: target={{(amd64|x86_64|x86_64h|powerpc64le)-.*}}
+// XFAIL: target={{(arm|aarch64|arm64|mips|mipsel|mips64|mips64el)-.*}}
 // REQUIRES: linux
 typedef int a;

diff  --git a/clang/test/Driver/XRay/xray-instrument-os.c 
b/clang/test/Driver/XRay/xray-instrument-os.c
index 3a0397208326f..7a4f1c13cb0b1 100644
--- a/clang/test/Driver/XRay/xray-instrument-os.c
+++ b/clang/test/Driver/XRay/xray-instrument-os.c
@@ -1,4 +1,4 @@
 // RUN: not %clang -o /dev/null -v -fxray-instrument -c %s
-// XFAIL: -linux-, -freebsd, x86_64-apple-darwin, x86_64-apple-macos
-// REQUIRES: amd64 || x86_64 || x86_64h || arm || aarch64 || arm64
+// XFAIL: target={{.*-(linux|freebsd).*}}, 
target=x86_64-apple-{{(darwin|macos).*}}
+// REQUIRES: target={{(amd64|x86_64|x86_64h|arm|aarch64|arm64)-.*}}
 typedef int a;



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


[clang] d4959b5 - [Driver] Fix tests not to fail randomly on Windows

2022-12-21 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-12-21T09:37:12-08:00
New Revision: d4959b5a4bb888789f99a952a1304ce915dfee2f

URL: 
https://github.com/llvm/llvm-project/commit/d4959b5a4bb888789f99a952a1304ce915dfee2f
DIFF: 
https://github.com/llvm/llvm-project/commit/d4959b5a4bb888789f99a952a1304ce915dfee2f.diff

LOG: [Driver] Fix tests not to fail randomly on Windows

These used a regex that didn't guard against backslashes, so
getting "lucky" with a temp dir name could make them fail.

Added: 


Modified: 
clang/test/Driver/freebsd.c
clang/test/Driver/fuchsia.c
clang/test/Driver/netbsd.c
clang/test/Driver/openbsd.c

Removed: 




diff  --git a/clang/test/Driver/freebsd.c b/clang/test/Driver/freebsd.c
index 87ce46d1c1c6e..a9afff22ae848 100644
--- a/clang/test/Driver/freebsd.c
+++ b/clang/test/Driver/freebsd.c
@@ -212,5 +212,5 @@
 // RELOCATABLE: "-r"
 // RELOCATABLE-NOT: "-dynamic-linker"
 // RELOCATABLE-NOT: "-l
-// RELOCATABLE-NOT: crt{{[^./]+}}.o
+// RELOCATABLE-NOT: crt{{[^./\\]+}}.o
 

diff  --git a/clang/test/Driver/fuchsia.c b/clang/test/Driver/fuchsia.c
index 339fd92309796..9c023329edb5f 100644
--- a/clang/test/Driver/fuchsia.c
+++ b/clang/test/Driver/fuchsia.c
@@ -89,7 +89,7 @@
 // CHECK-RELOCATABLE-NOT "-dynamic-linker"
 // CHECK-RELOCATABLE: "-r"
 // CHECK-RELOCATABLE-NOT: "-l
-// CHECK-RELOCATABLE-NOT: crt{{[^./]+}}.o
+// CHECK-RELOCATABLE-NOT: crt{{[^./\\]+}}.o
 
 // RUN: %clang -### %s --target=x86_64-unknown-fuchsia -nodefaultlibs 
-fuse-ld=lld 2>&1 \
 // RUN: -resource-dir=%S/Inputs/resource_dir_with_per_target_subdir \

diff  --git a/clang/test/Driver/netbsd.c b/clang/test/Driver/netbsd.c
index 436772ab99795..52f3a33198059 100644
--- a/clang/test/Driver/netbsd.c
+++ b/clang/test/Driver/netbsd.c
@@ -476,4 +476,4 @@
 // RELOCATABLE-NOT: "-pie"
 // RELOCATABLE-NOT: "-dynamic-linker"
 // RELOCATABLE-NOT: "-l
-// RELOCATABLE-NOT: crt{{[^./]+}}.o
+// RELOCATABLE-NOT: crt{{[^./\\]+}}.o

diff  --git a/clang/test/Driver/openbsd.c b/clang/test/Driver/openbsd.c
index 3ba8a315f6e16..05d290a309c40 100644
--- a/clang/test/Driver/openbsd.c
+++ b/clang/test/Driver/openbsd.c
@@ -39,7 +39,7 @@
 // CHECK-LD-R: "-r"
 // CHECK-LD-R-NOT: "-dynamic-linker"
 // CHECK-LD-R-NOT: "-l
-// CHECK-LD-R-NOT: crt{{[^./]+}}.o
+// CHECK-LD-R-NOT: crt{{[^./\\]+}}.o
 // CHECK-LD-S: "-cc1" "-triple" "i686-pc-openbsd"
 // CHECK-LD-S: ld{{.*}}" "-e" "__start" "--eh-frame-hdr" "-Bdynamic" 
"-dynamic-linker" "{{.*}}ld.so" "-o" "a.out" "{{.*}}crt0.o" "{{.*}}crtbegin.o" 
"-L{{.*}}" "-s" "{{.*}}.o" "-lcompiler_rt" "-lc" "-lcompiler_rt" 
"{{.*}}crtend.o"
 // CHECK-LD-T: "-cc1" "-triple" "i686-pc-openbsd"



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


[clang] a26cbd0 - [Driver] Convert test to check 'target=...'

2023-01-04 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2023-01-04T06:46:00-08:00
New Revision: a26cbd03fe0f6f996d27f793e2107393d1888e40

URL: 
https://github.com/llvm/llvm-project/commit/a26cbd03fe0f6f996d27f793e2107393d1888e40
DIFF: 
https://github.com/llvm/llvm-project/commit/a26cbd03fe0f6f996d27f793e2107393d1888e40.diff

LOG: [Driver] Convert test to check 'target=...'

Part of the project to eliminate special handling for triples in lit
expressions.

Added: 


Modified: 
clang/test/Driver/fat-archive-unbundle-ext.c

Removed: 




diff  --git a/clang/test/Driver/fat-archive-unbundle-ext.c 
b/clang/test/Driver/fat-archive-unbundle-ext.c
index 09b1ca1782feb..b409aa6313b1e 100644
--- a/clang/test/Driver/fat-archive-unbundle-ext.c
+++ b/clang/test/Driver/fat-archive-unbundle-ext.c
@@ -1,5 +1,5 @@
 // REQUIRES: x86-registered-target
-// UNSUPPORTED: target={{.*-windows.*}}, darwin, target={{.*}}-aix{{.*}}
+// UNSUPPORTED: target={{.*-windows.*}}, target={{.*-darwin.*}}, 
target={{.*}}-aix{{.*}}
 
 // Generate dummy fat object
 // RUN: %clang -O0 -target %itanium_abi_triple %s -c -o %t.host.o



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


[clang] 787876b - [unittests] Use GTEST_SKIP() instead of return when appropriate

2023-01-26 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2023-01-26T08:40:38-08:00
New Revision: 787876b0d592a6b4e87d00a0adb89ce87dfc11cd

URL: 
https://github.com/llvm/llvm-project/commit/787876b0d592a6b4e87d00a0adb89ce87dfc11cd
DIFF: 
https://github.com/llvm/llvm-project/commit/787876b0d592a6b4e87d00a0adb89ce87dfc11cd.diff

LOG: [unittests] Use GTEST_SKIP() instead of return when appropriate

Basically NFC: A TEST/TEST_F/etc that bails out early (usually because
setup failed or some other runtime condition wasn't met) generally
should use GTEST_SKIP() to report its status correctly, unless it
takes steps to report another status (e.g., FAIL()).

Added: 


Modified: 
clang/unittests/AST/StructuralEquivalenceTest.cpp
clang/unittests/Driver/ToolChainTest.cpp
clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp

Removed: 




diff  --git a/clang/unittests/AST/StructuralEquivalenceTest.cpp 
b/clang/unittests/AST/StructuralEquivalenceTest.cpp
index 03616d7197ea8..5060301527ac7 100644
--- a/clang/unittests/AST/StructuralEquivalenceTest.cpp
+++ b/clang/unittests/AST/StructuralEquivalenceTest.cpp
@@ -460,7 +460,7 @@ TEST_F(StructuralEquivalenceFunctionTest,
   // These attributes may not be available on certain platforms.
   if (llvm::Triple(llvm::sys::getDefaultTargetTriple()).getArch() !=
   llvm::Triple::x86_64)
-return;
+GTEST_SKIP();
   auto t = makeNamedDecls("__attribute__((preserve_all)) void foo();",
   "__attribute__((ms_abi))   void foo();", Lang_C99);
   EXPECT_FALSE(testStructuralMatch(t));
@@ -469,7 +469,7 @@ TEST_F(StructuralEquivalenceFunctionTest,
 TEST_F(StructuralEquivalenceFunctionTest, FunctionsWithDifferentSavedRegsAttr) 
{
   if (llvm::Triple(llvm::sys::getDefaultTargetTriple()).getArch() !=
   llvm::Triple::x86_64)
-return;
+GTEST_SKIP();
   auto t = makeNamedDecls(
   "__attribute__((no_caller_saved_registers)) void foo();",
   "   void foo();", Lang_C99);

diff  --git a/clang/unittests/Driver/ToolChainTest.cpp 
b/clang/unittests/Driver/ToolChainTest.cpp
index 068c583eb89b5..4ddeadac2103f 100644
--- a/clang/unittests/Driver/ToolChainTest.cpp
+++ b/clang/unittests/Driver/ToolChainTest.cpp
@@ -243,7 +243,7 @@ TEST(ToolChainTest, GetTargetAndMode) {
   llvm::InitializeAllTargets();
   std::string IgnoredError;
   if (!llvm::TargetRegistry::lookupTarget("x86_64", IgnoredError))
-return;
+GTEST_SKIP();
 
   ParsedClangName Res = ToolChain::getTargetAndModeFromProgramName("clang");
   EXPECT_TRUE(Res.TargetPrefix.empty());

diff  --git 
a/clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp 
b/clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp
index f54c65568a66c..6983a532c7315 100644
--- a/clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp
+++ b/clang/unittests/Interpreter/ExceptionTests/InterpreterExceptionTest.cpp
@@ -57,7 +57,7 @@ TEST(InterpreterTest, CatchException) {
   // Using llvm::consumeError will require typeinfo for ErrorInfoBase, we
   // can avoid that by going via the C interface.
   LLVMConsumeError(llvm::wrap(J.takeError()));
-  return;
+  GTEST_SKIP();
 }
   }
 
@@ -102,16 +102,16 @@ extern "C" int throw_exception() {
 
   // AIX is unsupported.
   if (Triple.isOSAIX())
-return;
+GTEST_SKIP();
 
   // FIXME: ARM fails due to `Not implemented relocation type!`
   if (Triple.isARM())
-return;
+GTEST_SKIP();
 
   // FIXME: libunwind on darwin is broken, see PR49692.
   if (Triple.isOSDarwin() && (Triple.getArch() == llvm::Triple::aarch64 ||
   Triple.getArch() == llvm::Triple::aarch64_32))
-return;
+GTEST_SKIP();
 
   llvm::cantFail(Interp->ParseAndExecute(ExceptionCode));
   testing::internal::CaptureStdout();



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


[clang] ecb3cd0 - [Driver] Move PS4/PS5 header search path management to the driver

2023-02-01 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2023-02-01T07:40:30-08:00
New Revision: ecb3cd0946a47c419efda7b92cd6f6fcc30b6be9

URL: 
https://github.com/llvm/llvm-project/commit/ecb3cd0946a47c419efda7b92cd6f6fcc30b6be9
DIFF: 
https://github.com/llvm/llvm-project/commit/ecb3cd0946a47c419efda7b92cd6f6fcc30b6be9.diff

LOG: [Driver] Move PS4/PS5 header search path management to the driver

This follows how OpenBSD, FreeBSD, and NetBSD now work. (See
D138183 and D140817 for those cases.)

It also tidies up some code duplication that wasn't exactly right.

Added: 


Modified: 
clang/lib/Driver/ToolChains/PS4CPU.cpp
clang/lib/Driver/ToolChains/PS4CPU.h
clang/lib/Lex/InitHeaderSearch.cpp
clang/test/Driver/ps4-ps5-header-search.c

Removed: 




diff  --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp 
b/clang/lib/Driver/ToolChains/PS4CPU.cpp
index 643f815c5835a..fc5d46bc25605 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.cpp
+++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp
@@ -8,6 +8,7 @@
 
 #include "PS4CPU.h"
 #include "CommonArgs.h"
+#include "clang/Config/config.h"
 #include "clang/Driver/Compilation.h"
 #include "clang/Driver/Driver.h"
 #include "clang/Driver/DriverDiagnostic.h"
@@ -253,15 +254,14 @@ toolchains::PS4PS5Base::PS4PS5Base(const Driver &D, const 
llvm::Triple &Triple,
   // SDK include or lib directories. This behavior could be changed if
   // -Weverything or -Winvalid-or-nonexistent-directory options are passed.
   // If -isysroot was passed, use that as the SDK base path.
-  std::string PrefixDir;
   if (const Arg *A = Args.getLastArg(options::OPT_isysroot)) {
-PrefixDir = A->getValue();
-if (!llvm::sys::fs::exists(PrefixDir))
-  D.Diag(clang::diag::warn_missing_sysroot) << PrefixDir;
+SDKRootDir = A->getValue();
+if (!llvm::sys::fs::exists(SDKRootDir))
+  D.Diag(clang::diag::warn_missing_sysroot) << SDKRootDir;
   } else
-PrefixDir = std::string(SDKDir.str());
+SDKRootDir = std::string(SDKDir.str());
 
-  SmallString<512> SDKIncludeDir(PrefixDir);
+  SmallString<512> SDKIncludeDir(SDKRootDir);
   llvm::sys::path::append(SDKIncludeDir, "target/include");
   if (!Args.hasArg(options::OPT_nostdinc) &&
   !Args.hasArg(options::OPT_nostdlibinc) &&
@@ -272,7 +272,7 @@ toolchains::PS4PS5Base::PS4PS5Base(const Driver &D, const 
llvm::Triple &Triple,
 << Twine(Platform, " system headers").str() << SDKIncludeDir;
   }
 
-  SmallString<512> SDKLibDir(SDKDir);
+  SmallString<512> SDKLibDir(SDKRootDir);
   llvm::sys::path::append(SDKLibDir, "target/lib");
   if (!Args.hasArg(options::OPT_nostdlib) &&
   !Args.hasArg(options::OPT_nodefaultlibs) &&
@@ -287,6 +287,42 @@ toolchains::PS4PS5Base::PS4PS5Base(const Driver &D, const 
llvm::Triple &Triple,
   getFilePaths().push_back(std::string(SDKLibDir.str()));
 }
 
+void toolchains::PS4PS5Base::AddClangSystemIncludeArgs(
+const ArgList &DriverArgs,
+ArgStringList &CC1Args) const {
+  const Driver &D = getDriver();
+
+  if (DriverArgs.hasArg(options::OPT_nostdinc))
+return;
+
+  if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
+SmallString<128> Dir(D.ResourceDir);
+llvm::sys::path::append(Dir, "include");
+addSystemInclude(DriverArgs, CC1Args, Dir.str());
+  }
+
+  if (DriverArgs.hasArg(options::OPT_nostdlibinc))
+return;
+
+  // Add dirs specified via 'configure --with-c-include-dirs'.
+  StringRef CIncludeDirs(C_INCLUDE_DIRS);
+  if (!CIncludeDirs.empty()) {
+SmallVector dirs;
+CIncludeDirs.split(dirs, ":");
+for (StringRef dir : dirs) {
+  StringRef Prefix =
+llvm::sys::path::is_absolute(dir) ? StringRef(D.SysRoot) : "";
+  addExternCSystemInclude(DriverArgs, CC1Args, Prefix + dir);
+}
+return;
+  }
+
+  addExternCSystemInclude(DriverArgs, CC1Args,
+  SDKRootDir + "/target/include");
+  addExternCSystemInclude(DriverArgs, CC1Args,
+  SDKRootDir + "/target/include_common");
+}
+
 Tool *toolchains::PS4CPU::buildAssembler() const {
   return new tools::PScpu::Assembler(*this);
 }

diff  --git a/clang/lib/Driver/ToolChains/PS4CPU.h 
b/clang/lib/Driver/ToolChains/PS4CPU.h
index 954e7d8d8d684..0866a5daa4cc6 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.h
+++ b/clang/lib/Driver/ToolChains/PS4CPU.h
@@ -63,6 +63,9 @@ class LLVM_LIBRARY_VISIBILITY PS4PS5Base : public Generic_ELF 
{
  const llvm::opt::ArgList &Args, StringRef Platform,
  const char *EnvVar);
 
+  void
+  AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
+llvm::opt::ArgStringList &CC1Args) const override;
   // No support for finding a C++ standard library yet.
   void addLibCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
  llvm::opt::ArgStringList &CC1Args) const override 
{
@@ -111,6 +114,10 @@ class LLVM_LIBRARY_VISIBILITY PS4PS5Base : public 
Generic_ELF {
 
 pr

[clang] 09e4449 - [PS5] Handle visibility options same as PS4

2023-01-17 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2023-01-17T11:27:51-08:00
New Revision: 09e4449901d7fc780806778181cf3136c1e08e98

URL: 
https://github.com/llvm/llvm-project/commit/09e4449901d7fc780806778181cf3136c1e08e98
DIFF: 
https://github.com/llvm/llvm-project/commit/09e4449901d7fc780806778181cf3136c1e08e98.diff

LOG: [PS5] Handle visibility options same as PS4

This update was missed in the initial rounds of upstreaming PS5.

Added: 
clang/test/Driver/ps4-ps5-visibility-dllstorageclass.c

Modified: 
clang/lib/Driver/ToolChains/Clang.cpp

Removed: 
clang/test/Driver/ps4-visibility-dllstorageclass.c



diff  --git a/clang/lib/Driver/ToolChains/Clang.cpp 
b/clang/lib/Driver/ToolChains/Clang.cpp
index 5462634aa96da..212b3faa2dc74 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -6033,7 +6033,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction 
&JA,
 CmdArgs.push_back("-fvisibility=protected");
   }
 
-  if (!RawTriple.isPS4())
+  // PS4/PS5 process these options in addClangTargetOptions.
+  if (!RawTriple.isPS()) {
 if (const Arg *A =
 Args.getLastArg(options::OPT_fvisibility_from_dllstorageclass,
 options::OPT_fno_visibility_from_dllstorageclass)) 
{
@@ -6047,6 +6048,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction 
&JA,
 options::OPT_fvisibility_externs_nodllstorageclass_EQ);
   }
 }
+  }
 
   if (const Arg *A = Args.getLastArg(options::OPT_mignore_xcoff_visibility)) {
 if (Triple.isOSAIX())

diff  --git a/clang/test/Driver/ps4-visibility-dllstorageclass.c 
b/clang/test/Driver/ps4-ps5-visibility-dllstorageclass.c
similarity index 94%
rename from clang/test/Driver/ps4-visibility-dllstorageclass.c
rename to clang/test/Driver/ps4-ps5-visibility-dllstorageclass.c
index e7d9b122eed6d..1a54990da4764 100644
--- a/clang/test/Driver/ps4-visibility-dllstorageclass.c
+++ b/clang/test/Driver/ps4-ps5-visibility-dllstorageclass.c
@@ -1,4 +1,4 @@
-// Check behaviour of -fvisibility-from-dllstorageclass options for PS4
+// Check behaviour of -fvisibility-from-dllstorageclass options for PS4/PS5.
 
 // DEFINE: %{triple} =
 // DEFINE: %{run} = \
@@ -11,6 +11,8 @@
 // DEFINE: --implicit-check-not=-fvisibility-externs-nodllstorageclass
 // REDEFINE: %{triple} = x86_64-scei-ps4
 // RUN: %{run}
+// REDEFINE: %{triple} = x86_64-sie-ps5
+// RUN: %{run}
 //
 // REDEFINE: %{run} = \
 // REDEFINE: %clang -### -target %{triple} \
@@ -26,6 +28,8 @@
 // REDEFINE: --implicit-check-not=-fvisibility-externs-nodllstorageclass
 // REDEFINE: %{triple} = x86_64-scei-ps4
 // RUN: %{run}
+// REDEFINE: %{triple} = x86_64-sie-ps5
+// RUN: %{run}
 
 // DEFAULTS:  "-fvisibility-from-dllstorageclass"
 // DEFAULTS-SAME: "-fvisibility-dllexport=protected"
@@ -51,6 +55,8 @@
 // REDEFINE: --implicit-check-not=warning:
 // REDEFINE: %{triple} = x86_64-scei-ps4
 // RUN: %{run}
+// REDEFINE: %{triple} = x86_64-sie-ps5
+// RUN: %{run}
 
 // UNUSED:  warning: argument unused during compilation: 
'-fvisibility-dllexport=hidden'
 // UNUSED-NEXT: warning: argument unused during compilation: 
'-fvisibility-nodllstorageclass=protected'
@@ -71,6 +77,8 @@
 // REDEFINE: --implicit-check-not=-fvisibility-externs-nodllstorageclass
 // REDEFINE: %{triple} = x86_64-scei-ps4
 // RUN: %{run}
+// REDEFINE: %{triple} = x86_64-sie-ps5
+// RUN: %{run}
 
 // REDEFINE: %{run} = \
 // REDEFINE: %clang -### -target x86_64-scei-ps4 \
@@ -87,6 +95,8 @@
 // REDEFINE: --implicit-check-not=-fvisibility-externs-nodllstorageclass
 // REDEFINE: %{triple} = x86_64-scei-ps4
 // RUN: %{run}
+// REDEFINE: %{triple} = x86_64-sie-ps5
+// RUN: %{run}
 
 // SOME:  "-fvisibility-from-dllstorageclass"
 // SOME-SAME: "-fvisibility-dllexport=protected"
@@ -114,6 +124,8 @@
 // REDEFINE: --implicit-check-not=-fvisibility-externs-nodllstorageclass
 // REDEFINE: %{triple} = x86_64-scei-ps4
 // RUN: %{run}
+// REDEFINE: %{triple} = x86_64-sie-ps5
+// RUN: %{run}
 
 // REDEFINE: %{run} = \
 // REDEFINE: %clang -### -target x86_64-scei-ps4 \
@@ -136,6 +148,8 @@
 // REDEFINE: --implicit-check-not=-fvisibility-externs-nodllstorageclass
 // REDEFINE: %{triple} = x86_64-scei-ps4
 // RUN: %{run}
+// REDEFINE: %{triple} = x86_64-sie-ps5
+// RUN: %{run}
 
 // ALL:  "-fvisibility-from-dllstorageclass"
 // ALL-SAME: "-fvisibility-dllexport=hidden"



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


[clang] eae8d22 - [PS4] NFC: rewrite a test to use lit's DEFINE feature

2023-01-17 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2023-01-17T11:27:51-08:00
New Revision: eae8d22607027ddc9067ca8fa5fea1f1f6a9fb45

URL: 
https://github.com/llvm/llvm-project/commit/eae8d22607027ddc9067ca8fa5fea1f1f6a9fb45
DIFF: 
https://github.com/llvm/llvm-project/commit/eae8d22607027ddc9067ca8fa5fea1f1f6a9fb45.diff

LOG: [PS4] NFC: rewrite a test to use lit's DEFINE feature

Preparatory to running the same test for PS5.

Added: 


Modified: 
clang/test/Driver/ps4-visibility-dllstorageclass.c

Removed: 




diff  --git a/clang/test/Driver/ps4-visibility-dllstorageclass.c 
b/clang/test/Driver/ps4-visibility-dllstorageclass.c
index b314b5d3818a..e7d9b122eed6 100644
--- a/clang/test/Driver/ps4-visibility-dllstorageclass.c
+++ b/clang/test/Driver/ps4-visibility-dllstorageclass.c
@@ -1,24 +1,31 @@
 // Check behaviour of -fvisibility-from-dllstorageclass options for PS4
 
-// RUN: %clang -### -target x86_64-scei-ps4 %s -Werror -o - 2>&1 | \
-// RUN:   FileCheck %s --check-prefix=DEFAULTS \
-// RUN: --implicit-check-not=-fvisibility-from-dllstorageclass \
-// RUN: --implicit-check-not=-fvisibility-dllexport \
-// RUN: --implicit-check-not=-fvisibility-nodllstorageclass \
-// RUN: --implicit-check-not=-fvisibility-externs-dllimport \
-// RUN: --implicit-check-not=-fvisibility-externs-nodllstorageclass
-
-// RUN: %clang -### -target x86_64-scei-ps4 \
-// RUN: -fno-visibility-from-dllstorageclass \
-// RUN: -fvisibility-from-dllstorageclass \
-// RUN: -Werror \
-// RUN: %s -o - 2>&1 | \
-// RUN:   FileCheck %s --check-prefix=DEFAULTS \
-// RUN: --implicit-check-not=-fvisibility-from-dllstorageclass \
-// RUN: --implicit-check-not=-fvisibility-dllexport \
-// RUN: --implicit-check-not=-fvisibility-nodllstorageclass \
-// RUN: --implicit-check-not=-fvisibility-externs-dllimport \
-// RUN: --implicit-check-not=-fvisibility-externs-nodllstorageclass
+// DEFINE: %{triple} =
+// DEFINE: %{run} = \
+// DEFINE: %clang -### -target %{triple} %s -Werror -o - 2>&1 | \
+// DEFINE:   FileCheck %s --check-prefix=DEFAULTS \
+// DEFINE: --implicit-check-not=-fvisibility-from-dllstorageclass \
+// DEFINE: --implicit-check-not=-fvisibility-dllexport \
+// DEFINE: --implicit-check-not=-fvisibility-nodllstorageclass \
+// DEFINE: --implicit-check-not=-fvisibility-externs-dllimport \
+// DEFINE: --implicit-check-not=-fvisibility-externs-nodllstorageclass
+// REDEFINE: %{triple} = x86_64-scei-ps4
+// RUN: %{run}
+//
+// REDEFINE: %{run} = \
+// REDEFINE: %clang -### -target %{triple} \
+// REDEFINE: -fno-visibility-from-dllstorageclass \
+// REDEFINE: -fvisibility-from-dllstorageclass \
+// REDEFINE: -Werror \
+// REDEFINE: %s -o - 2>&1 | \
+// REDEFINE:   FileCheck %s --check-prefix=DEFAULTS \
+// REDEFINE: --implicit-check-not=-fvisibility-from-dllstorageclass \
+// REDEFINE: --implicit-check-not=-fvisibility-dllexport \
+// REDEFINE: --implicit-check-not=-fvisibility-nodllstorageclass \
+// REDEFINE: --implicit-check-not=-fvisibility-externs-dllimport \
+// REDEFINE: --implicit-check-not=-fvisibility-externs-nodllstorageclass
+// REDEFINE: %{triple} = x86_64-scei-ps4
+// RUN: %{run}
 
 // DEFAULTS:  "-fvisibility-from-dllstorageclass"
 // DEFAULTS-SAME: "-fvisibility-dllexport=protected"
@@ -26,51 +33,60 @@
 // DEFAULTS-SAME: "-fvisibility-externs-dllimport=default"
 // DEFAULTS-SAME: "-fvisibility-externs-nodllstorageclass=default"
 
-// RUN: %clang -### -target x86_64-scei-ps4 \
-// RUN: -fvisibility-from-dllstorageclass \
-// RUN: -fvisibility-dllexport=hidden \
-// RUN: -fvisibility-nodllstorageclass=protected \
-// RUN: -fvisibility-externs-dllimport=hidden \
-// RUN: -fvisibility-externs-nodllstorageclass=protected \
-// RUN: -fno-visibility-from-dllstorageclass \
-// RUN: %s -o - 2>&1 | \
-// RUN:   FileCheck %s -check-prefix=UNUSED \
-// RUN: --implicit-check-not=-fvisibility-from-dllstorageclass \
-// RUN: --implicit-check-not=-fvisibility-dllexport \
-// RUN: --implicit-check-not=-fvisibility-nodllstorageclass \
-// RUN: --implicit-check-not=-fvisibility-externs-dllimport \
-// RUN: --implicit-check-not=-fvisibility-externs-nodllstorageclass \
-// RUN: --implicit-check-not=warning:
+// REDEFINE: %{run} = \
+// REDEFINE: %clang -### -target x86_64-scei-ps4 \
+// REDEFINE: -fvisibility-from-dllstorageclass \
+// REDEFINE: -fvisibility-dllexport=hidden \
+// REDEFINE: -fvisibility-nodllstorageclass=protected \
+// REDEFINE: -fvisibility-externs-dllimport=hidden \
+// REDEFINE: -fvisibility-externs-nodllstorageclass=protected \
+// REDEFINE: -fno-visibility-from-dllstorageclass \
+// REDEFINE: %s -o - 2>&1 | \
+// REDEFINE:   FileCheck %s -check-prefix=UNUSED \
+// REDEFINE: --implicit-check-not=-fvisibility-from-dllstorageclass \
+// REDEFINE: --implicit-c

[clang] 0fe88f9 - [PS4/PS5] Don't inherit base class alignment

2022-06-10 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-06-10T13:15:17-07:00
New Revision: 0fe88f9679ff6df5a7cce7e89038602c35a5e272

URL: 
https://github.com/llvm/llvm-project/commit/0fe88f9679ff6df5a7cce7e89038602c35a5e272
DIFF: 
https://github.com/llvm/llvm-project/commit/0fe88f9679ff6df5a7cce7e89038602c35a5e272.diff

LOG: [PS4/PS5] Don't inherit base class alignment

Added: 


Modified: 
clang/lib/AST/RecordLayoutBuilder.cpp
clang/test/SemaCXX/alignment-of-derived-class.cpp

Removed: 




diff  --git a/clang/lib/AST/RecordLayoutBuilder.cpp 
b/clang/lib/AST/RecordLayoutBuilder.cpp
index 6e775baed147f..6f3ede2ce42a7 100644
--- a/clang/lib/AST/RecordLayoutBuilder.cpp
+++ b/clang/lib/AST/RecordLayoutBuilder.cpp
@@ -1261,7 +1261,9 @@ ItaniumRecordLayoutBuilder::LayoutBase(const 
BaseSubobjectInfo *Base) {
   (!HasExternalLayout || Offset == CharUnits::Zero()) &&
   EmptySubobjects->CanPlaceBaseAtOffset(Base, CharUnits::Zero())) {
 setSize(std::max(getSize(), Layout.getSize()));
-UpdateAlignment(BaseAlign, UnpackedAlignTo, PreferredBaseAlign);
+// On PS4/PS5, don't update the alignment, to preserve compatibility.
+if (!Context.getTargetInfo().getTriple().isPS())
+  UpdateAlignment(BaseAlign, UnpackedAlignTo, PreferredBaseAlign);
 
 return CharUnits::Zero();
   }

diff  --git a/clang/test/SemaCXX/alignment-of-derived-class.cpp 
b/clang/test/SemaCXX/alignment-of-derived-class.cpp
index 28c1fa9144b78..ab28bc0a235f1 100644
--- a/clang/test/SemaCXX/alignment-of-derived-class.cpp
+++ b/clang/test/SemaCXX/alignment-of-derived-class.cpp
@@ -2,7 +2,7 @@
 // expected-no-diagnostics
 
 // Test that the alignment of a empty direct base class is correctly
-// inherited by the derived class.
+// inherited by the derived class, and correctly not inherited on PS4/PS5.
 
 struct A {
 } __attribute__ ((aligned(16)));
@@ -12,22 +12,38 @@ static_assert(__alignof(A) == 16, "A should be aligned to 
16 bytes");
 struct B1 : public A {
 };
 
+#if defined(__SCE__)
+static_assert(__alignof(B1) == 1, "B1 should be aligned to 1 byte");
+#else
 static_assert(__alignof(B1) == 16, "B1 should be aligned to 16 bytes");
+#endif
 
 struct B2 : public A {
 } __attribute__ ((aligned(2)));
 
+#if defined(__SCE__)
+static_assert(__alignof(B2) == 2, "B2 should be aligned to 2 bytes");
+#else
 static_assert(__alignof(B2) == 16, "B2 should be aligned to 16 bytes");
+#endif
 
 struct B3 : public A {
 } __attribute__ ((aligned(4)));
 
+#if defined(__SCE__)
+static_assert(__alignof(B3) == 4, "B3 should be aligned to 4 bytes");
+#else
 static_assert(__alignof(B3) == 16, "B3 should be aligned to 16 bytes");
+#endif
 
 struct B4 : public A {
 } __attribute__ ((aligned(8)));
 
+#if defined(__SCE__)
+static_assert(__alignof(B4) == 8, "B4 should be aligned to 8 bytes");
+#else
 static_assert(__alignof(B4) == 16, "B4 should be aligned to 16 bytes");
+#endif
 
 struct B5 : public A {
 } __attribute__ ((aligned(16)));



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


[clang] d8dda57 - [PS5] Default to -fno-rtti

2022-05-25 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-05-25T06:48:21-07:00
New Revision: d8dda57ae7798a052e52ef5979980e815d2e4bc5

URL: 
https://github.com/llvm/llvm-project/commit/d8dda57ae7798a052e52ef5979980e815d2e4bc5
DIFF: 
https://github.com/llvm/llvm-project/commit/d8dda57ae7798a052e52ef5979980e815d2e4bc5.diff

LOG: [PS5] Default to -fno-rtti

Added: 


Modified: 
clang/lib/Driver/ToolChain.cpp
clang/test/Driver/rtti-options.cpp

Removed: 




diff  --git a/clang/lib/Driver/ToolChain.cpp b/clang/lib/Driver/ToolChain.cpp
index efbf2442acfc..eb3117e689d8 100644
--- a/clang/lib/Driver/ToolChain.cpp
+++ b/clang/lib/Driver/ToolChain.cpp
@@ -67,8 +67,8 @@ static ToolChain::RTTIMode CalculateRTTIMode(const ArgList 
&Args,
   return ToolChain::RM_Disabled;
   }
 
-  // -frtti is default, except for the PS4 and DriverKit.
-  bool NoRTTI = Triple.isPS4() || Triple.isDriverKit();
+  // -frtti is default, except for the PS4/PS5 and DriverKit.
+  bool NoRTTI = Triple.isPS() || Triple.isDriverKit();
   return NoRTTI ? ToolChain::RM_Disabled : ToolChain::RM_Enabled;
 }
 

diff  --git a/clang/test/Driver/rtti-options.cpp 
b/clang/test/Driver/rtti-options.cpp
index e1d37d35bb68..5a8a9fe43c74 100644
--- a/clang/test/Driver/rtti-options.cpp
+++ b/clang/test/Driver/rtti-options.cpp
@@ -22,6 +22,7 @@
 // RUN: %clang -### -c -target x86_64-unknown-linux -fsanitize=undefined %s 
2>&1 | FileCheck -check-prefix=CHECK-OK %s
 // RUN: %clang -### -c -target x86_64-unknown-linux -fsanitize=undefined 
-frtti %s 2>&1 | FileCheck -check-prefix=CHECK-OK %s
 // RUN: %clang -### -c -target x86_64-scei-ps4 -fsanitize=vptr %s 2>&1 | 
FileCheck -check-prefix=CHECK-SAN-WARN %s
+// RUN: %clang -### -c -target x86_64-sie-ps5 -fsanitize=vptr %s 2>&1 | 
FileCheck -check-prefix=CHECK-SAN-WARN %s
 
 // Exceptions + no/default rtti
 // RUN: %clang -### -c -target x86_64-unknown-unknown -fcxx-exceptions 
-fno-rtti %s 2>&1 | FileCheck -check-prefix=CHECK-OK %s
@@ -35,6 +36,7 @@
 
 // -f{no-,}rtti/default
 // RUN: %clang -### -c -target x86_64-scei-ps4 %s 2>&1 | FileCheck 
-check-prefix=CHECK-NO-RTTI %s
+// RUN: %clang -### -c -target x86_64-sie-ps5 %s 2>&1 | FileCheck 
-check-prefix=CHECK-NO-RTTI %s
 // RUN: %clang -### -c -target x86_64-unknown-unknown -frtti %s 2>&1 | 
FileCheck -check-prefix=CHECK-RTTI %s
 // RUN: %clang -### -c -target x86_64-unknown-unknown -fno-rtti %s 2>&1 | 
FileCheck -check-prefix=CHECK-NO-RTTI %s
 // RUN: %clang -### -c -target x86_64-unknown-unknown %s 2>&1 | FileCheck 
-check-prefix=CHECK-RTTI %s



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


[clang] 634c8ef - [PS5] Allow dllimport/dllexport same as PS4

2022-05-26 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-05-26T07:01:30-07:00
New Revision: 634c8ef69a836f3436d027b03965965bad6f3ff0

URL: 
https://github.com/llvm/llvm-project/commit/634c8ef69a836f3436d027b03965965bad6f3ff0
DIFF: 
https://github.com/llvm/llvm-project/commit/634c8ef69a836f3436d027b03965965bad6f3ff0.diff

LOG: [PS5] Allow dllimport/dllexport same as PS4

Added: 


Modified: 
clang/include/clang/Basic/TargetInfo.h
clang/lib/Sema/SemaTemplate.cpp
clang/test/CodeGen/ps4-dllimport-dllexport.c
clang/test/CodeGenCXX/dllexport-vtable-thunks.cpp
clang/test/CodeGenCXX/ps4-dllstorage-vtable-rtti.cpp
clang/test/CodeGenCXX/windows-implicit-dllexport-template-specialization.cpp
clang/test/CodeGenCXX/windows-itanium-dllexport.cpp
clang/test/Sema/dllimport.c
clang/test/SemaCXX/dllexport.cpp
clang/test/SemaCXX/dllimport.cpp
llvm/include/llvm/ADT/Triple.h

Removed: 




diff  --git a/clang/include/clang/Basic/TargetInfo.h 
b/clang/include/clang/Basic/TargetInfo.h
index 470d153d845de..e4b5f0b751c48 100644
--- a/clang/include/clang/Basic/TargetInfo.h
+++ b/clang/include/clang/Basic/TargetInfo.h
@@ -1195,12 +1195,12 @@ class TargetInfo : public virtual 
TransferrableTargetInfo,
   /// Microsoft C++ code using dllimport/export attributes?
   virtual bool shouldDLLImportComdatSymbols() const {
 return getTriple().isWindowsMSVCEnvironment() ||
-   getTriple().isWindowsItaniumEnvironment() || getTriple().isPS4();
+   getTriple().isWindowsItaniumEnvironment() || getTriple().isPS();
   }
 
   // Does this target have PS4 specific dllimport/export handling?
   virtual bool hasPS4DLLImportExport() const {
-return getTriple().isPS4() ||
+return getTriple().isPS() ||
// Windows Itanium support allows for testing the SCEI flavour of
// dllimport/export handling on a Windows system.
(getTriple().isWindowsItaniumEnvironment() &&

diff  --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp
index 4a42969c34d3f..b11b97e12403c 100644
--- a/clang/lib/Sema/SemaTemplate.cpp
+++ b/clang/lib/Sema/SemaTemplate.cpp
@@ -9760,7 +9760,7 @@ DeclResult Sema::ActOnExplicitInstantiation(
 
   if (!getDLLAttr(Def) && getDLLAttr(Specialization) &&
   (Context.getTargetInfo().shouldDLLImportComdatSymbols() &&
-   !Context.getTargetInfo().getTriple().isPS4())) {
+   !Context.getTargetInfo().getTriple().isPS())) {
 // An explicit instantiation definition can add a dll attribute to a
 // template with a previous instantiation declaration. MinGW doesn't
 // allow this.
@@ -9778,7 +9778,7 @@ DeclResult Sema::ActOnExplicitInstantiation(
 !PreviouslyDLLExported && Specialization->hasAttr();
 if (Old_TSK == TSK_ImplicitInstantiation && NewlyDLLExported &&
 (Context.getTargetInfo().shouldDLLImportComdatSymbols() &&
- !Context.getTargetInfo().getTriple().isPS4())) {
+ !Context.getTargetInfo().getTriple().isPS())) {
   // An explicit instantiation definition can add a dll attribute to a
   // template with a previous implicit instantiation. MinGW doesn't allow
   // this. We limit clang to only adding dllexport, to avoid potentially

diff  --git a/clang/test/CodeGen/ps4-dllimport-dllexport.c 
b/clang/test/CodeGen/ps4-dllimport-dllexport.c
index a945000e7e323..efcdc4d7a5c48 100644
--- a/clang/test/CodeGen/ps4-dllimport-dllexport.c
+++ b/clang/test/CodeGen/ps4-dllimport-dllexport.c
@@ -1,9 +1,5 @@
-// RUN: %clang_cc1 \
-// RUN: -triple x86_64-scei-ps4 \
-// RUN: -fdeclspec \
-// RUN: -Werror \
-// RUN: -emit-llvm %s -o - | \
-// RUN:   FileCheck %s
+// RUN: %clang_cc1 -triple x86_64-scei-ps4 -fdeclspec -Werror -emit-llvm %s -o 
- | FileCheck %s
+// RUN: %clang_cc1 -triple x86_64-sie-ps5  -fdeclspec -Werror -emit-llvm %s -o 
- | FileCheck %s
 
 __declspec(dllexport) int export_int;
 

diff  --git a/clang/test/CodeGenCXX/dllexport-vtable-thunks.cpp 
b/clang/test/CodeGenCXX/dllexport-vtable-thunks.cpp
index f0327567d5d08..432ef7835ddc5 100644
--- a/clang/test/CodeGenCXX/dllexport-vtable-thunks.cpp
+++ b/clang/test/CodeGenCXX/dllexport-vtable-thunks.cpp
@@ -1,6 +1,7 @@
 // RUN: %clang_cc1 -triple x86_64-windows-gnu -fdeclspec -emit-llvm -o - 
%s | FileCheck %s -DDSO_ATTRS="dso_local dllexport"
 // RUN: %clang_cc1 -triple x86_64-windows-itanium -fdeclspec -emit-llvm -o - 
%s | FileCheck %s -DDSO_ATTRS="dso_local dllexport"
 // RUN: %clang_cc1 -triple x86_64-scei-ps4-fdeclspec -emit-llvm -o - 
%s | FileCheck %s -DDSO_ATTRS=dllexport
+// RUN: %clang_cc1 -triple x86_64-sie-ps5 -fdeclspec -emit-llvm -o - 
%s | FileCheck %s -DDSO_ATTRS=dllexport
 
 struct __declspec(dllexport) A {
   virtual void m();

diff  --git a/clang/test/CodeGenCXX/ps4-dllstorage-vtable-rtti.cpp 
b/clang/test/CodeGenCXX/ps4-dllstorage-vtable-rtti.cpp
index 87d0686d34980.

[clang] 10555a8 - [PS5] Tweak dllexport test

2022-05-31 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-05-31T08:22:15-07:00
New Revision: 10555a82df22bf67a9c30165e952b44969b46b6f

URL: 
https://github.com/llvm/llvm-project/commit/10555a82df22bf67a9c30165e952b44969b46b6f
DIFF: 
https://github.com/llvm/llvm-project/commit/10555a82df22bf67a9c30165e952b44969b46b6f.diff

LOG: [PS5] Tweak dllexport test

Post-commit review pointed out that both PS4 and PS5 were using the
same -std argument, better to use different ones just in case.

Added: 


Modified: 
clang/test/SemaCXX/dllexport.cpp

Removed: 




diff  --git a/clang/test/SemaCXX/dllexport.cpp 
b/clang/test/SemaCXX/dllexport.cpp
index 4aa1427563a2e..7d8bfdadbb839 100644
--- a/clang/test/SemaCXX/dllexport.cpp
+++ b/clang/test/SemaCXX/dllexport.cpp
@@ -4,7 +4,7 @@
 // RUN: %clang_cc1 -triple x86_64-mingw32 -fsyntax-only 
-fms-extensions -verify -std=c++11 -Wunsupported-dll-base-class-template %s
 // RUN: %clang_cc1 -triple i686-windows-itanium   -fsyntax-only 
-fms-extensions -verify -std=c++11 -Wunsupported-dll-base-class-template -DWI %s
 // RUN: %clang_cc1 -triple x86_64-windows-itanium -fsyntax-only 
-fms-extensions -verify -std=c++1y -Wunsupported-dll-base-class-template -DWI %s
-// RUN: %clang_cc1 -triple x86_64-scei-ps4-fsyntax-only -fdeclspec 
 -verify -std=c++1y -Wunsupported-dll-base-class-template -DWI %s
+// RUN: %clang_cc1 -triple x86_64-scei-ps4-fsyntax-only -fdeclspec 
 -verify -std=c++11 -Wunsupported-dll-base-class-template -DWI %s
 // RUN: %clang_cc1 -triple x86_64-sie-ps5 -fsyntax-only -fdeclspec 
 -verify -std=c++1y -Wunsupported-dll-base-class-template -DWI %s
 
 // Helper structs to make templates more expressive.



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


[clang] 5d005d8 - Refactor PS4OSTargetInfo into a base class and PS4 subclass; prep for PS5

2022-06-01 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-06-01T13:30:29-07:00
New Revision: 5d005d8256ecd7d57c72e24e7169c4e3d40a773a

URL: 
https://github.com/llvm/llvm-project/commit/5d005d8256ecd7d57c72e24e7169c4e3d40a773a
DIFF: 
https://github.com/llvm/llvm-project/commit/5d005d8256ecd7d57c72e24e7169c4e3d40a773a.diff

LOG: Refactor PS4OSTargetInfo into a base class and PS4 subclass; prep for PS5

Added: 


Modified: 
clang/lib/Basic/Targets/OSTargets.h

Removed: 




diff  --git a/clang/lib/Basic/Targets/OSTargets.h 
b/clang/lib/Basic/Targets/OSTargets.h
index e9832977c7fe8..cf317f58540e3 100644
--- a/clang/lib/Basic/Targets/OSTargets.h
+++ b/clang/lib/Basic/Targets/OSTargets.h
@@ -541,8 +541,9 @@ class LLVM_LIBRARY_VISIBILITY PS3PPUTargetInfo : public 
OSTargetInfo {
   }
 };
 
+// Common base class for PS4/PS5 targets.
 template 
-class LLVM_LIBRARY_VISIBILITY PS4OSTargetInfo : public OSTargetInfo {
+class LLVM_LIBRARY_VISIBILITY PSOSTargetInfo : public OSTargetInfo {
 protected:
   void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
 MacroBuilder &Builder) const override {
@@ -552,36 +553,49 @@ class LLVM_LIBRARY_VISIBILITY PS4OSTargetInfo : public 
OSTargetInfo {
 DefineStd(Builder, "unix", Opts);
 Builder.defineMacro("__ELF__");
 Builder.defineMacro("__SCE__");
-Builder.defineMacro("__ORBIS__");
   }
 
 public:
-  PS4OSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
+  PSOSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
   : OSTargetInfo(Triple, Opts) {
 this->WCharType = TargetInfo::UnsignedShort;
 
-// On PS4, TLS variable cannot be aligned to more than 32 bytes (256 bits).
+// On PS4/PS5, TLS variable cannot be aligned to more than 32 bytes (256
+// bits).
 this->MaxTLSAlign = 256;
 
-// On PS4, do not honor explicit bit field alignment,
+// On PS4/PS5, do not honor explicit bit field alignment,
 // as in "__attribute__((aligned(2))) int b : 1;".
 this->UseExplicitBitFieldAlignment = false;
 
-switch (Triple.getArch()) {
-default:
-case llvm::Triple::x86_64:
-  this->MCountName = ".mcount";
-  this->NewAlign = 256;
-  this->SuitableAlign = 256;
-  break;
-}
+this->MCountName = ".mcount";
+this->NewAlign = 256;
+this->SuitableAlign = 256;
   }
+
   TargetInfo::CallingConvCheckResult
   checkCallingConvention(CallingConv CC) const override {
 return (CC == CC_C) ? TargetInfo::CCCR_OK : TargetInfo::CCCR_Error;
   }
 };
 
+// PS4 Target
+template 
+class LLVM_LIBRARY_VISIBILITY PS4OSTargetInfo : public PSOSTargetInfo {
+protected:
+  void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
+MacroBuilder &Builder) const override {
+// Start with base class defines.
+PSOSTargetInfo::getOSDefines(Opts, Triple, Builder);
+
+Builder.defineMacro("__ORBIS__");
+  }
+
+public:
+  PS4OSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
+  : PSOSTargetInfo(Triple, Opts) {}
+};
+
 // RTEMS Target
 template 
 class LLVM_LIBRARY_VISIBILITY RTEMSTargetInfo : public OSTargetInfo {



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


[clang] 8869ba3 - [PS5] Add PS5OSTargetInfo class, update affected tests

2022-06-01 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-06-01T13:30:29-07:00
New Revision: 8869ba366268c644200784b15c4e6b8efe891397

URL: 
https://github.com/llvm/llvm-project/commit/8869ba366268c644200784b15c4e6b8efe891397
DIFF: 
https://github.com/llvm/llvm-project/commit/8869ba366268c644200784b15c4e6b8efe891397.diff

LOG: [PS5] Add PS5OSTargetInfo class, update affected tests

Added: 


Modified: 
clang/lib/Basic/LangStandards.cpp
clang/lib/Basic/Targets.cpp
clang/lib/Basic/Targets/OSTargets.h
clang/test/Preprocessor/init.c
clang/test/Sema/wchar.c
clang/unittests/Tooling/RecursiveASTVisitorTests/LambdaExpr.cpp

Removed: 




diff  --git a/clang/lib/Basic/LangStandards.cpp 
b/clang/lib/Basic/LangStandards.cpp
index a21898dd3c627..5bacc3b164960 100644
--- a/clang/lib/Basic/LangStandards.cpp
+++ b/clang/lib/Basic/LangStandards.cpp
@@ -61,8 +61,8 @@ LangStandard::Kind 
clang::getDefaultLanguageStandard(clang::Language Lang,
 if (CLANG_DEFAULT_STD_C != LangStandard::lang_unspecified)
   return CLANG_DEFAULT_STD_C;
 
-// The PS4 uses C99 as the default C standard.
-if (T.isPS4())
+// The PS4 and PS5 use C99 as the default C standard.
+if (T.isPS())
   return LangStandard::lang_gnu99;
 return LangStandard::lang_gnu17;
   case Language::ObjC:

diff  --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 85c73abde1826..2d6ef998485ae 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -592,6 +592,8 @@ TargetInfo *AllocateTarget(const llvm::Triple &Triple,
   return new NaClTargetInfo(Triple, Opts);
 case llvm::Triple::PS4:
   return new PS4OSTargetInfo(Triple, Opts);
+case llvm::Triple::PS5:
+  return new PS5OSTargetInfo(Triple, Opts);
 default:
   return new X86_64TargetInfo(Triple, Opts);
 }

diff  --git a/clang/lib/Basic/Targets/OSTargets.h 
b/clang/lib/Basic/Targets/OSTargets.h
index cf317f58540e3..a814f681b1468 100644
--- a/clang/lib/Basic/Targets/OSTargets.h
+++ b/clang/lib/Basic/Targets/OSTargets.h
@@ -596,6 +596,23 @@ class LLVM_LIBRARY_VISIBILITY PS4OSTargetInfo : public 
PSOSTargetInfo {
   : PSOSTargetInfo(Triple, Opts) {}
 };
 
+// PS5 Target
+template 
+class LLVM_LIBRARY_VISIBILITY PS5OSTargetInfo : public PSOSTargetInfo {
+protected:
+  void getOSDefines(const LangOptions &Opts, const llvm::Triple &Triple,
+MacroBuilder &Builder) const override {
+// Start with base class defines.
+PSOSTargetInfo::getOSDefines(Opts, Triple, Builder);
+
+Builder.defineMacro("__PROSPERO__");
+  }
+
+public:
+  PS5OSTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts)
+  : PSOSTargetInfo(Triple, Opts) {}
+};
+
 // RTEMS Target
 template 
 class LLVM_LIBRARY_VISIBILITY RTEMSTargetInfo : public OSTargetInfo {

diff  --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c
index 07b5fb86c45c2..61324fd5e43d8 100644
--- a/clang/test/Preprocessor/init.c
+++ b/clang/test/Preprocessor/init.c
@@ -1241,7 +1241,8 @@
 // TCE:#define __tce__ 1
 // TCE:#define tce 1
 //
-// RUN: %clang_cc1 -E -dM -ffreestanding -fgnuc-version=4.2.1 
-triple=x86_64-scei-ps4 < /dev/null | FileCheck -match-full-lines -check-prefix 
PS4 %s
+// RUN: %clang_cc1 -E -dM -ffreestanding -triple=x86_64-scei-ps4 < /dev/null | 
FileCheck --match-full-lines --check-prefixes=PS4,PS4ONLY %s
+// RUN: %clang_cc1 -E -dM -ffreestanding -triple=x86_64-sie-ps5 < /dev/null | 
FileCheck --match-full-lines --check-prefixes=PS4,PS5ONLY %s
 //
 // PS4:#define _LP64 1
 // PS4:#define __BIGGEST_ALIGNMENT__ 32
@@ -1311,8 +1312,9 @@
 // PS4:#define __LP64__ 1
 // PS4:#define __MMX__ 1
 // PS4:#define __NO_MATH_INLINES 1
-// PS4:#define __ORBIS__ 1
+// PS4ONLY:#define __ORBIS__ 1
 // PS4:#define __POINTER_WIDTH__ 64
+// PS5ONLY:#define __PROSPERO__ 1
 // PS4:#define __PTRDIFF_MAX__ 9223372036854775807L
 // PS4:#define __PTRDIFF_TYPE__ long int
 // PS4:#define __PTRDIFF_WIDTH__ 64
@@ -1357,7 +1359,8 @@
 // PS4:#define __x86_64__ 1
 // PS4:#define unix 1
 //
-// RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=x86_64-scei-ps4 < 
/dev/null | FileCheck -match-full-lines -check-prefix PS4-CXX %s
+// RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=x86_64-scei-ps4 < 
/dev/null | FileCheck --match-full-lines --check-prefix PS4-CXX %s
+// RUN: %clang_cc1 -x c++ -E -dM -ffreestanding -triple=x86_64-sie-ps5 < 
/dev/null | FileCheck --match-full-lines --check-prefix PS4-CXX %s
 // PS4-CXX:#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ 32UL
 //
 // RUN: %clang_cc1 -E -dM -triple=x86_64-pc-mingw32 < /dev/null | FileCheck 
-match-full-lines -check-prefix X86-64-DECLSPEC %s

diff  --git a/clang/test/Sema/wchar.c b/clang/test/Sema/wchar.c
index 5566207e50d7f..fa32ae6512fce 100644
--- a/clang/test/Sema/wchar.c
+++ b/clang/test/Sema/wchar.c
@@ -4,8 +4,8 @@
 typedef __WCHAR_TYPE__ wchar_t;
 
 #if defined(_WIN32) || defined(_M_IX86) || d

[clang] b2c6251 - [PS5] Support r and y specifiers of freebsd_kernel_printf format strings

2022-06-02 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-06-02T06:27:11-07:00
New Revision: b2c6251c06700bfe8a69b780cb27928d3ba029db

URL: 
https://github.com/llvm/llvm-project/commit/b2c6251c06700bfe8a69b780cb27928d3ba029db
DIFF: 
https://github.com/llvm/llvm-project/commit/b2c6251c06700bfe8a69b780cb27928d3ba029db.diff

LOG: [PS5] Support r and y specifiers of freebsd_kernel_printf format strings

Added: 


Modified: 
clang/lib/AST/FormatString.cpp
clang/test/Sema/format-strings-freebsd.c

Removed: 




diff  --git a/clang/lib/AST/FormatString.cpp b/clang/lib/AST/FormatString.cpp
index 102bcca96a389..4977aaa513195 100644
--- a/clang/lib/AST/FormatString.cpp
+++ b/clang/lib/AST/FormatString.cpp
@@ -760,7 +760,7 @@ bool FormatSpecifier::hasValidLengthModifier(const 
TargetInfo &Target,
   return true;
 case ConversionSpecifier::FreeBSDrArg:
 case ConversionSpecifier::FreeBSDyArg:
-  return Target.getTriple().isOSFreeBSD() || 
Target.getTriple().isPS4();
+  return Target.getTriple().isOSFreeBSD() || Target.getTriple().isPS();
 default:
   return false;
   }
@@ -795,7 +795,7 @@ bool FormatSpecifier::hasValidLengthModifier(const 
TargetInfo &Target,
   return true;
 case ConversionSpecifier::FreeBSDrArg:
 case ConversionSpecifier::FreeBSDyArg:
-  return Target.getTriple().isOSFreeBSD() || 
Target.getTriple().isPS4();
+  return Target.getTriple().isOSFreeBSD() || Target.getTriple().isPS();
 default:
   return false;
   }

diff  --git a/clang/test/Sema/format-strings-freebsd.c 
b/clang/test/Sema/format-strings-freebsd.c
index 965d7c287be65..64b526eb2f076 100644
--- a/clang/test/Sema/format-strings-freebsd.c
+++ b/clang/test/Sema/format-strings-freebsd.c
@@ -1,6 +1,7 @@
 // RUN: %clang_cc1 -fsyntax-only -verify -triple i386-unknown-freebsd %s
 // RUN: %clang_cc1 -fsyntax-only -verify -triple x86_64-unknown-freebsd %s
 // RUN: %clang_cc1 -fsyntax-only -verify -triple x86_64-scei-ps4 %s
+// RUN: %clang_cc1 -fsyntax-only -verify -triple x86_64-sie-ps5 %s
 
 // Test FreeBSD kernel printf extensions.
 int freebsd_kernel_printf(const char *, ...) 
__attribute__((__format__(__freebsd_kprintf__, 1, 2)));



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


[clang] 5a6352b - Tidy up `pragma comment lib` handling and testing

2022-06-02 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-06-02T07:52:26-07:00
New Revision: 5a6352bc70fb0f309de22ea75ef132f32d8be9b4

URL: 
https://github.com/llvm/llvm-project/commit/5a6352bc70fb0f309de22ea75ef132f32d8be9b4
DIFF: 
https://github.com/llvm/llvm-project/commit/5a6352bc70fb0f309de22ea75ef132f32d8be9b4.diff

LOG: Tidy up `pragma comment lib` handling and testing

A bit of historical research shows that over the years:
Commit 99efc036 added `pragma comment lib` support for PS4.
Commit fd4db533 added `pragma comment lib` support for all ELF targets.
Commit 1d16515f reworked dependent-library support for all ELF targets.

The upshot is that some PS4-specific code became dead, and the
testing became somewhat fragmented.  I've removed the dead code and
combined the previous PS4-specific and linux-specific tests for the
diagnostics into one generic ELF test.
Also added a couple of PS5 runs while I was in there.

Added: 
clang/test/Preprocessor/pragma-comment-elf.c

Modified: 
clang/lib/Parse/ParsePragma.cpp
clang/test/CodeGen/pragma-comment.c

Removed: 
clang/test/Preprocessor/pragma-comment-linux.c
clang/test/Preprocessor/pragma_ps4.c



diff  --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp
index f8e311c7c35ad..c94640c31c500 100644
--- a/clang/lib/Parse/ParsePragma.cpp
+++ b/clang/lib/Parse/ParsePragma.cpp
@@ -3027,14 +3027,6 @@ void PragmaCommentHandler::HandlePragma(Preprocessor &PP,
 return;
   }
 
-  // On PS4, issue a warning about any pragma comments other than
-  // #pragma comment lib.
-  if (PP.getTargetInfo().getTriple().isPS4() && Kind != PCK_Lib) {
-PP.Diag(Tok.getLocation(), diag::warn_pragma_comment_ignored)
-  << II->getName();
-return;
-  }
-
   // Read the optional string if present.
   PP.Lex(Tok);
   std::string ArgumentString;

diff  --git a/clang/test/CodeGen/pragma-comment.c 
b/clang/test/CodeGen/pragma-comment.c
index 25675d94c5a4d..a4746f5c47bf6 100644
--- a/clang/test/CodeGen/pragma-comment.c
+++ b/clang/test/CodeGen/pragma-comment.c
@@ -4,6 +4,7 @@
 // RUN: %clang_cc1 %s -triple thumbv7-linux-gnueabihf -fms-extensions 
-emit-llvm -o - | FileCheck -check-prefix ELF %s --implicit-check-not 
llvm.linker.options
 // RUN: %clang_cc1 %s -triple i686-pc-linux -fms-extensions -emit-llvm -o - | 
FileCheck -check-prefix ELF %s --implicit-check-not llvm.linker.options
 // RUN: %clang_cc1 %s -triple x86_64-scei-ps4 -fms-extensions -emit-llvm -o - 
| FileCheck -check-prefix ELF %s --implicit-check-not llvm.linker.options
+// RUN: %clang_cc1 %s -triple x86_64-sie-ps5 -fms-extensions -emit-llvm -o - | 
FileCheck -check-prefix ELF %s --implicit-check-not llvm.linker.options
 // RUN: %clang_cc1 %s -triple aarch64-windows-msvc -fms-extensions -emit-llvm 
-o - | FileCheck %s
 
 #pragma comment(lib, "msvcrt.lib")

diff  --git a/clang/test/Preprocessor/pragma_ps4.c 
b/clang/test/Preprocessor/pragma-comment-elf.c
similarity index 79%
rename from clang/test/Preprocessor/pragma_ps4.c
rename to clang/test/Preprocessor/pragma-comment-elf.c
index 63651b6a96fb1..7b84aba51a0da 100644
--- a/clang/test/Preprocessor/pragma_ps4.c
+++ b/clang/test/Preprocessor/pragma-comment-elf.c
@@ -1,6 +1,8 @@
-// RUN: %clang_cc1 %s -triple x86_64-scei-ps4 -fsyntax-only -verify 
-fms-extensions 
+// RUN: %clang_cc1 %s -fsyntax-only -verify -fms-extensions -triple 
x86_64-scei-ps4
+// RUN: %clang_cc1 %s -fsyntax-only -verify -fms-extensions -triple 
x86_64-sie-ps5
+// RUN: %clang_cc1 %s -fsyntax-only -verify -fms-extensions -triple 
i686-unknown-linux-gnu
 
-// On PS4, issue a diagnostic that pragma comments are ignored except:
+// On ELF targets, issue a diagnostic that pragma comments are ignored except:
 //   #pragma comment lib
 
 #pragma comment(lib)

diff  --git a/clang/test/Preprocessor/pragma-comment-linux.c 
b/clang/test/Preprocessor/pragma-comment-linux.c
deleted file mode 100644
index fcac049f46e83..0
--- a/clang/test/Preprocessor/pragma-comment-linux.c
+++ /dev/null
@@ -1,5 +0,0 @@
-// RUN: %clang_cc1 -triple i686-unknown-linux-gnu -fsyntax-only -verify %s 
-Wunknown-pragmas
-
-#pragma comment(linker, "")
-// expected-warning@-1 {{'#pragma comment linker' ignored}}
-



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


[clang] cc756f9 - [PS5] Classify __m64 as integer, matching PS4 ABI

2022-06-02 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-06-02T11:00:53-07:00
New Revision: cc756f91c3803a7f91868ecf64929a90399cb4bb

URL: 
https://github.com/llvm/llvm-project/commit/cc756f91c3803a7f91868ecf64929a90399cb4bb
DIFF: 
https://github.com/llvm/llvm-project/commit/cc756f91c3803a7f91868ecf64929a90399cb4bb.diff

LOG: [PS5] Classify __m64 as integer, matching PS4 ABI

Added: 


Modified: 
clang/lib/CodeGen/TargetInfo.cpp
clang/test/CodeGen/X86/3dnow-builtins.c

Removed: 




diff  --git a/clang/lib/CodeGen/TargetInfo.cpp 
b/clang/lib/CodeGen/TargetInfo.cpp
index 4b7b301594d77..0f4987efae758 100644
--- a/clang/lib/CodeGen/TargetInfo.cpp
+++ b/clang/lib/CodeGen/TargetInfo.cpp
@@ -2364,7 +2364,7 @@ class X86_64ABIInfo : public SwiftABIInfo {
   return false;
 
 const llvm::Triple &Triple = getTarget().getTriple();
-if (Triple.isOSDarwin() || Triple.getOS() == llvm::Triple::PS4)
+if (Triple.isOSDarwin() || Triple.isPS())
   return false;
 if (Triple.isOSFreeBSD() && Triple.getOSMajorVersion() >= 10)
   return false;

diff  --git a/clang/test/CodeGen/X86/3dnow-builtins.c 
b/clang/test/CodeGen/X86/3dnow-builtins.c
index 71a46c9b44b5c..af754b71555c4 100644
--- a/clang/test/CodeGen/X86/3dnow-builtins.c
+++ b/clang/test/CodeGen/X86/3dnow-builtins.c
@@ -1,5 +1,6 @@
 // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-unknown-unknown 
-target-feature +3dnowa -emit-llvm -o - -Wall -Werror | FileCheck %s 
-check-prefix=GCC -check-prefix=CHECK
 // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-scei-ps4 -target-feature 
+3dnowa -emit-llvm -o - -Wall -Werror | FileCheck %s -check-prefix=PS4 
-check-prefix=CHECK
+// RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-sie-ps5  -target-feature 
+3dnowa -emit-llvm -o - -Wall -Werror | FileCheck %s -check-prefix=PS4 
-check-prefix=CHECK
 
 
 #include 



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


[clang] dc5175a - [PS5] Make passing unions in registers match PS4 ABI

2022-06-02 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-06-02T11:00:54-07:00
New Revision: dc5175adef0804eb396690ea3fe35c6d450e6e64

URL: 
https://github.com/llvm/llvm-project/commit/dc5175adef0804eb396690ea3fe35c6d450e6e64
DIFF: 
https://github.com/llvm/llvm-project/commit/dc5175adef0804eb396690ea3fe35c6d450e6e64.diff

LOG: [PS5] Make passing unions in registers match PS4 ABI

Added: 


Modified: 
clang/lib/CodeGen/TargetInfo.cpp
clang/test/CodeGen/X86/avx-union.c

Removed: 




diff  --git a/clang/lib/CodeGen/TargetInfo.cpp 
b/clang/lib/CodeGen/TargetInfo.cpp
index 0f4987efae75..5e97a946782c 100644
--- a/clang/lib/CodeGen/TargetInfo.cpp
+++ b/clang/lib/CodeGen/TargetInfo.cpp
@@ -3131,7 +3131,7 @@ void X86_64ABIInfo::classify(QualType Ty, uint64_t 
OffsetBase, Class &Lo,
 unsigned idx = 0;
 bool UseClang11Compat = getContext().getLangOpts().getClangABICompat() <=
 LangOptions::ClangABI::Ver11 ||
-getContext().getTargetInfo().getTriple().isPS4();
+getContext().getTargetInfo().getTriple().isPS();
 bool IsUnion = RT->isUnionType() && !UseClang11Compat;
 
 for (RecordDecl::field_iterator i = RD->field_begin(), e = RD->field_end();

diff  --git a/clang/test/CodeGen/X86/avx-union.c 
b/clang/test/CodeGen/X86/avx-union.c
index 386d8cc32ec4..65fd62cf45bf 100644
--- a/clang/test/CodeGen/X86/avx-union.c
+++ b/clang/test/CodeGen/X86/avx-union.c
@@ -5,6 +5,7 @@
 // RUN: %clang_cc1 -no-opaque-pointers -w -ffreestanding -triple 
x86_64-linux-gnu -target-feature +avx -fclang-abi-compat=10.0 -emit-llvm -o - 
%s | FileCheck %s --check-prefixes=CHECK-LEGACY,AVX
 // RUN: %clang_cc1 -no-opaque-pointers -w -ffreestanding -triple 
x86_64-linux-gnu -target-feature +avx512f -fclang-abi-compat=11.0 -emit-llvm -o 
- %s | FileCheck %s --check-prefixes=CHECK-LEGACY,AVX512-LEGACY
 // RUN: %clang_cc1 -no-opaque-pointers -w -ffreestanding -triple 
x86_64-scei-ps4 -target-feature +avx -emit-llvm -o - %s | FileCheck %s 
--check-prefix=CHECK-LEGACY
+// RUN: %clang_cc1 -no-opaque-pointers -w -ffreestanding -triple 
x86_64-sie-ps5  -target-feature +avx -emit-llvm -o - %s | FileCheck %s 
--check-prefix=CHECK-LEGACY
 
 // This tests verifies that a union parameter should pass by a vector 
regitster whose first eightbyte is SSE and the other eightbytes are SSEUP.
 



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


[clang] bb7835e - [PS5] Apply 'packed' attribute to base classes, matching PS4 ABI

2022-06-02 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-06-02T12:26:26-07:00
New Revision: bb7835e2a7fbb12d711736862e75497c83a45be2

URL: 
https://github.com/llvm/llvm-project/commit/bb7835e2a7fbb12d711736862e75497c83a45be2
DIFF: 
https://github.com/llvm/llvm-project/commit/bb7835e2a7fbb12d711736862e75497c83a45be2.diff

LOG: [PS5] Apply 'packed' attribute to base classes, matching PS4 ABI

Added: 


Modified: 
clang/lib/AST/RecordLayoutBuilder.cpp
clang/test/CodeGenCXX/alignment.cpp

Removed: 




diff  --git a/clang/lib/AST/RecordLayoutBuilder.cpp 
b/clang/lib/AST/RecordLayoutBuilder.cpp
index 8827e956fc2f4..30f9d84a9dfdd 100644
--- a/clang/lib/AST/RecordLayoutBuilder.cpp
+++ b/clang/lib/AST/RecordLayoutBuilder.cpp
@@ -1223,7 +1223,7 @@ ItaniumRecordLayoutBuilder::LayoutBase(const 
BaseSubobjectInfo *Base) {
 // Per GCC's documentation, it only applies to non-static data members.
 return (Packed && ((Context.getLangOpts().getClangABICompat() <=
 LangOptions::ClangABI::Ver6) ||
-   Context.getTargetInfo().getTriple().isPS4() ||
+   Context.getTargetInfo().getTriple().isPS() ||
Context.getTargetInfo().getTriple().isOSAIX()))
? CharUnits::One()
: UnpackedAlign;

diff  --git a/clang/test/CodeGenCXX/alignment.cpp 
b/clang/test/CodeGenCXX/alignment.cpp
index ffa4d873b5d76..98ce2fa28540f 100644
--- a/clang/test/CodeGenCXX/alignment.cpp
+++ b/clang/test/CodeGenCXX/alignment.cpp
@@ -1,6 +1,7 @@
 // RUN: %clang_cc1 -no-opaque-pointers %s -emit-llvm -o - 
-triple=x86_64-apple-darwin10 | FileCheck %s --check-prefix=CHECK 
--check-prefix=CHECK-NOCOMPAT
 // RUN: %clang_cc1 -no-opaque-pointers %s -emit-llvm -o - 
-triple=x86_64-apple-darwin10 -fclang-abi-compat=6.0 | FileCheck %s 
--check-prefix=CHECK --check-prefix=CHECK-V6COMPAT
 // RUN: %clang_cc1 -no-opaque-pointers %s -emit-llvm -o - 
-triple=x86_64-scei-ps4 | FileCheck %s --check-prefix=CHECK 
--check-prefix=CHECK-V6COMPAT
+// RUN: %clang_cc1 -no-opaque-pointers %s -emit-llvm -o - 
-triple=x86_64-sie-ps5  | FileCheck %s --check-prefix=CHECK 
--check-prefix=CHECK-V6COMPAT
 
 extern int int_source();
 extern void int_sink(int x);



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


[clang] 30b7ffe - [PS5] Pack non-POD members in packed structs, matching PS4 ABI

2022-06-02 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-06-02T12:26:26-07:00
New Revision: 30b7ffe74e66aa0c33c689429c593f261c2c9d13

URL: 
https://github.com/llvm/llvm-project/commit/30b7ffe74e66aa0c33c689429c593f261c2c9d13
DIFF: 
https://github.com/llvm/llvm-project/commit/30b7ffe74e66aa0c33c689429c593f261c2c9d13.diff

LOG: [PS5] Pack non-POD members in packed structs, matching PS4 ABI

Added: 


Modified: 
clang/lib/AST/RecordLayoutBuilder.cpp
clang/test/SemaCXX/class-layout.cpp

Removed: 




diff  --git a/clang/lib/AST/RecordLayoutBuilder.cpp 
b/clang/lib/AST/RecordLayoutBuilder.cpp
index 30f9d84a9dfdd..6e775baed147f 100644
--- a/clang/lib/AST/RecordLayoutBuilder.cpp
+++ b/clang/lib/AST/RecordLayoutBuilder.cpp
@@ -1891,7 +1891,7 @@ void ItaniumRecordLayoutBuilder::LayoutField(const 
FieldDecl *D,
   bool FieldPacked = (Packed && (!FieldClass || FieldClass->isPOD() ||
  Context.getLangOpts().getClangABICompat() <=
  LangOptions::ClangABI::Ver14 ||
- Target.isPS4() || Target.isOSDarwin())) ||
+ Target.isPS() || Target.isOSDarwin())) ||
  D->hasAttr();
 
   AlignRequirementKind AlignRequirement = AlignRequirementKind::None;

diff  --git a/clang/test/SemaCXX/class-layout.cpp 
b/clang/test/SemaCXX/class-layout.cpp
index 940966950d8be..f81e526d0e2ad 100644
--- a/clang/test/SemaCXX/class-layout.cpp
+++ b/clang/test/SemaCXX/class-layout.cpp
@@ -2,6 +2,7 @@
 // RUN: %clang_cc1 -triple x86_64-unknown-unknown %s -fsyntax-only -verify 
-std=c++11 -Wno-inaccessible-base
 // RUN: %clang_cc1 -triple x86_64-apple-darwin%s -fsyntax-only -verify 
-std=c++11 -Wno-inaccessible-base -DCLANG_ABI_COMPAT=14
 // RUN: %clang_cc1 -triple x86_64-scei-ps4%s -fsyntax-only -verify 
-std=c++11 -Wno-inaccessible-base -DCLANG_ABI_COMPAT=6
+// RUN: %clang_cc1 -triple x86_64-sie-ps5 %s -fsyntax-only -verify 
-std=c++11 -Wno-inaccessible-base -DCLANG_ABI_COMPAT=6
 // RUN: %clang_cc1 -triple x86_64-unknown-unknown %s -fsyntax-only -verify 
-std=c++11 -Wno-inaccessible-base -fclang-abi-compat=6 -DCLANG_ABI_COMPAT=6
 // RUN: %clang_cc1 -triple x86_64-unknown-unknown %s -fsyntax-only -verify 
-std=c++11 -Wno-inaccessible-base -fclang-abi-compat=14 -DCLANG_ABI_COMPAT=14
 // expected-no-diagnostics



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


[clang] aa1cdf8 - [PS5] Ignore 'packed' on one-byte bitfields, matching PS4

2022-06-02 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2022-06-02T14:41:18-07:00
New Revision: aa1cdf87b5a97c2476a80f3aa6ac5af3e5ec0494

URL: 
https://github.com/llvm/llvm-project/commit/aa1cdf87b5a97c2476a80f3aa6ac5af3e5ec0494
DIFF: 
https://github.com/llvm/llvm-project/commit/aa1cdf87b5a97c2476a80f3aa6ac5af3e5ec0494.diff

LOG: [PS5] Ignore 'packed' on one-byte bitfields, matching PS4

Added: 


Modified: 
clang/lib/Sema/SemaDeclAttr.cpp
clang/test/Sema/struct-packed-align.c

Removed: 




diff  --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp
index 466ca1b573be..b629fcb91b25 100644
--- a/clang/lib/Sema/SemaDeclAttr.cpp
+++ b/clang/lib/Sema/SemaDeclAttr.cpp
@@ -1404,9 +1404,9 @@ static void handlePackedAttr(Sema &S, Decl *D, const 
ParsedAttr &AL) {
 FD->isBitField() &&
 S.Context.getTypeAlign(FD->getType()) <= 8);
 
-if (S.getASTContext().getTargetInfo().getTriple().isPS4()) {
+if (S.getASTContext().getTargetInfo().getTriple().isPS()) {
   if (BitfieldByteAligned)
-// The PS4 target needs to maintain ABI backwards compatibility.
+// The PS4/PS5 targets need to maintain ABI backwards compatibility.
 S.Diag(AL.getLoc(), diag::warn_attribute_ignored_for_field_of_type)
 << AL << FD->getType();
   else

diff  --git a/clang/test/Sema/struct-packed-align.c 
b/clang/test/Sema/struct-packed-align.c
index 03b012e34028..2a60f368479a 100644
--- a/clang/test/Sema/struct-packed-align.c
+++ b/clang/test/Sema/struct-packed-align.c
@@ -1,6 +1,7 @@
 // RUN: %clang_cc1 %s -fsyntax-only -verify
 // RUN: %clang_cc1 %s -fsyntax-only -triple=x86_64-windows-coff -verify
 // RUN: %clang_cc1 %s -fsyntax-only -triple=x86_64-scei-ps4 -verify
+// RUN: %clang_cc1 %s -fsyntax-only -triple=x86_64-sie-ps5 -verify
 
 // Packed structs.
 struct s {
@@ -147,9 +148,9 @@ extern int n2[__alignof(struct nS) == 1 ? 1 : -1];
 // See the documentation of -Wpacked-bitfield-compat for more information.
 struct packed_chars {
   char a : 8, b : 8, c : 8, d : 4;
-#ifdef __ORBIS__
-  // Test for pre-r254596 clang behavior on the PS4 target. PS4 must maintain
-  // ABI backwards compatibility.
+#ifdef __SCE__
+  // Test for pre-r254596 clang behavior on the PS4/PS5 targets, which must
+  // maintain ABI backwards compatibility.
   char e : 8 __attribute__((packed));
   // expected-warning@-1 {{'packed' attribute ignored for field of type 
'char'}}
 #else
@@ -159,11 +160,11 @@ struct packed_chars {
   char f : 4, g : 8, h : 8, i : 8;
 };
 
-#if (defined(_WIN32) || defined(__ORBIS__)) && !defined(__declspec) // 
_MSC_VER is unavailable in cc1.
+#if (defined(_WIN32) || defined(__SCE__)) && !defined(__declspec) // _MSC_VER 
is unavailable in cc1.
 // On Windows clang uses MSVC compatible layout in this case.
 //
-// Additionally, test for pre-r254596 clang behavior on the PS4 target. PS4
-// must maintain ABI backwards compatibility.
+// Additionally, test for pre-r254596 clang behavior on the PS4/PS5 targets.
+// They must maintain ABI backwards compatibility.
 extern int o1[sizeof(struct packed_chars) == 9 ? 1 : -1];
 extern int o2[__alignof(struct packed_chars) == 1 ? 1 : -1];
 #elif defined(_AIX)



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


[clang] 6c30b78 - Reland "[PS4/PS5] Tidy up driver warnings finding the SDK"

2023-07-17 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2023-07-17T13:57:08-07:00
New Revision: 6c30b7886919eb19289f5ed9216e72de9700c9fb

URL: 
https://github.com/llvm/llvm-project/commit/6c30b7886919eb19289f5ed9216e72de9700c9fb
DIFF: 
https://github.com/llvm/llvm-project/commit/6c30b7886919eb19289f5ed9216e72de9700c9fb.diff

LOG: Reland "[PS4/PS5] Tidy up driver warnings finding the SDK"

Instead of warning possibly up to 3 times about the same problem,
warn only about the actual missing directories.

This reverts commit 9b3323d39f635db870de958f067c672f54d7b192.

The warning will stay DefaultIgnore upstream, because a variety of
tests aren't expecting it and updating the tests isn't worth the
effort.

Added: 


Modified: 
clang/include/clang/Basic/DiagnosticDriverKinds.td
clang/lib/Driver/ToolChains/PS4CPU.cpp
clang/test/Driver/frame-pointer-elim.c
clang/test/Driver/ps4-ps5-visibility-dllstorageclass.c

Removed: 




diff  --git a/clang/include/clang/Basic/DiagnosticDriverKinds.td 
b/clang/include/clang/Basic/DiagnosticDriverKinds.td
index d10262826bf292..1b69324d073ab5 100644
--- a/clang/include/clang/Basic/DiagnosticDriverKinds.td
+++ b/clang/include/clang/Basic/DiagnosticDriverKinds.td
@@ -575,17 +575,13 @@ def 
err_drv_unsupported_fpatchable_function_entry_argument : Error<
   "the second argument of '-fpatchable-function-entry' must be smaller than 
the first argument">;
 
 def warn_drv_unable_to_find_directory_expected : Warning<
-  "unable to find %0 directory, expected to be in '%1'">,
+  "unable to find %0 directory, expected to be in '%1' found via %2">,
   InGroup, DefaultIgnore;
 
 def warn_drv_ps_force_pic : Warning<
   "option '%0' was ignored by the %1 toolchain, using '-fPIC'">,
   InGroup;
 
-def warn_drv_ps_sdk_dir : Warning<
-  "environment variable '%0' is set, but points to invalid or nonexistent 
directory '%1'">,
-  InGroup;
-
 def err_drv_defsym_invalid_format : Error<"defsym must be of the form: 
sym=value: %0">;
 def err_drv_defsym_invalid_symval : Error<"value is not an integer: %0">;
 def warn_drv_msvc_not_found : Warning<

diff  --git a/clang/lib/Driver/ToolChains/PS4CPU.cpp 
b/clang/lib/Driver/ToolChains/PS4CPU.cpp
index 37006dc5d7ed8b..2f43d33bf0f1c8 100644
--- a/clang/lib/Driver/ToolChains/PS4CPU.cpp
+++ b/clang/lib/Driver/ToolChains/PS4CPU.cpp
@@ -256,30 +256,23 @@ toolchains::PS4PS5Base::PS4PS5Base(const Driver &D, const 
llvm::Triple &Triple,
 D.Diag(clang::diag::err_drv_unsupported_opt_for_target)
 << "-static" << Platform;
 
-  // Determine where to find the PS4/PS5 libraries. We use the EnvVar
-  // if it exists; otherwise use the driver's installation path, which
-  // should be /host_tools/bin.
-
-  SmallString<512> SDKDir;
-  if (const char *EnvValue = getenv(EnvVar)) {
-if (!llvm::sys::fs::exists(EnvValue))
-  D.Diag(clang::diag::warn_drv_ps_sdk_dir) << EnvVar << EnvValue;
-SDKDir = EnvValue;
-  } else {
-SDKDir = D.Dir;
-llvm::sys::path::append(SDKDir, "/../../");
-  }
-
-  // By default, the driver won't report a warning if it can't find the
-  // SDK include or lib directories. This behavior could be changed if
-  // -Weverything or -Winvalid-or-nonexistent-directory options are passed.
+  // Determine where to find the PS4/PS5 libraries.
   // If -isysroot was passed, use that as the SDK base path.
+  // If not, we use the EnvVar if it exists; otherwise use the driver's
+  // installation path, which should be /host_tools/bin.
+  SmallString<80> Whence;
   if (const Arg *A = Args.getLastArg(options::OPT_isysroot)) {
 SDKRootDir = A->getValue();
 if (!llvm::sys::fs::exists(SDKRootDir))
   D.Diag(clang::diag::warn_missing_sysroot) << SDKRootDir;
-  } else
-SDKRootDir = std::string(SDKDir.str());
+Whence = A->getSpelling();
+  } else if (const char *EnvValue = getenv(EnvVar)) {
+SDKRootDir = EnvValue;
+Whence = { "environment variable '", EnvVar, "'" };
+  } else {
+SDKRootDir = D.Dir + "/../../";
+Whence = "compiler's location";
+  }
 
   SmallString<512> SDKIncludeDir(SDKRootDir);
   llvm::sys::path::append(SDKIncludeDir, "target/include");
@@ -289,7 +282,7 @@ toolchains::PS4PS5Base::PS4PS5Base(const Driver &D, const 
llvm::Triple &Triple,
   !Args.hasArg(options::OPT__sysroot_EQ) &&
   !llvm::sys::fs::exists(SDKIncludeDir)) {
 D.Diag(clang::diag::warn_drv_unable_to_find_directory_expected)
-<< Twine(Platform, " system headers").str() << SDKIncludeDir;
+<< Twine(Platform, " system headers").str() << SDKIncludeDir << Whence;
   }
 
   SmallString<512> SDKLibDir(SDKRootDir);
@@ -301,7 +294,7 @@ toolchains::PS4PS5Base::PS4PS5Base(const Driver &D, const 
llvm::Triple &Triple,
   !Args.hasArg(options::OPT_emit_ast) &&
   !llvm::sys::fs::exists(SDKLibDir)) {
 D.Diag(clang::diag::warn_drv_unable_to_find_directory_expected)
-<< Twine(Platform, " system libraries").str() << SDKLibD

[clang] 775d6df - [Headers][doc] Add SHA1/SHA256 intrinsic descriptions

2023-07-21 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2023-07-21T14:26:47-07:00
New Revision: 775d6df6a5f2fbe8d4ad6174badc2ef553ada6e3

URL: 
https://github.com/llvm/llvm-project/commit/775d6df6a5f2fbe8d4ad6174badc2ef553ada6e3
DIFF: 
https://github.com/llvm/llvm-project/commit/775d6df6a5f2fbe8d4ad6174badc2ef553ada6e3.diff

LOG: [Headers][doc] Add SHA1/SHA256 intrinsic descriptions

Differential revision: https://reviews.llvm.org/D155861

Added: 


Modified: 
clang/lib/Headers/shaintrin.h

Removed: 




diff  --git a/clang/lib/Headers/shaintrin.h b/clang/lib/Headers/shaintrin.h
index 08b1fb1dc16a36..232e1fa298230f 100644
--- a/clang/lib/Headers/shaintrin.h
+++ b/clang/lib/Headers/shaintrin.h
@@ -17,39 +17,167 @@
 /* Define the default attributes for the functions in this file. */
 #define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, 
__target__("sha"), __min_vector_width__(128)))
 
+/// Performs four iterations of the inner loop of the SHA-1 message digest
+///algorithm using the starting SHA-1 state (A, B, C, D) from the 128-bit
+///vector of [4 x i32] in \a V1 and the next four 32-bit elements of the
+///message from the 128-bit vector of [4 x i32] in \a V2. Note that the
+///SHA-1 state variable E must have already been added to \a V2
+///(\c _mm_sha1nexte_epu32() can perform this step). Returns the updated
+///SHA-1 state (A, B, C, D) as a 128-bit vector of [4 x i32].
+///
+///The SHA-1 algorithm has an inner loop of 80 iterations, twenty each
+///with a 
diff erent combining function and rounding constant. This
+///intrinsic performs four iterations using a combining function and
+///rounding constant selected by \a M[1:0].
+///
+/// \headerfile 
+///
+/// \code
+/// __m128i _mm_sha1rnds4_epu32(__m128i V1, __m128i V2, const int M);
+/// \endcode
+///
+/// This intrinsic corresponds to the \c SHA1RNDS4 instruction.
+///
+/// \param V1
+///A 128-bit vector of [4 x i32] containing the initial SHA-1 state.
+/// \param V2
+///A 128-bit vector of [4 x i32] containing the next four elements of
+///the message, plus SHA-1 state variable E.
+/// \param M
+///An immediate value where bits [1:0] select among four possible
+///combining functions and rounding constants (not specified here).
+/// \returns A 128-bit vector of [4 x i32] containing the updated SHA-1 state.
 #define _mm_sha1rnds4_epu32(V1, V2, M) \
   __builtin_ia32_sha1rnds4((__v4si)(__m128i)(V1), (__v4si)(__m128i)(V2), (M))
 
+/// Calculates the SHA-1 state variable E from the SHA-1 state variables in
+///the 128-bit vector of [4 x i32] in \a __X, adds that to the next set of
+///four message elements in the 128-bit vector of [4 x i32] in \a __Y, and
+///returns the result.
+///
+/// \headerfile 
+///
+/// This intrinsic corresponds to the \c SHA1NEXTE instruction.
+///
+/// \param __X
+///A 128-bit vector of [4 x i32] containing the current SHA-1 state.
+/// \param __Y
+///A 128-bit vector of [4 x i32] containing the next four elements of the
+///message.
+/// \returns A 128-bit vector of [4 x i32] containing the updated SHA-1
+///values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_sha1nexte_epu32(__m128i __X, __m128i __Y)
 {
   return (__m128i)__builtin_ia32_sha1nexte((__v4si)__X, (__v4si)__Y);
 }
 
+/// Performs an intermediate calculation for deriving the next four SHA-1
+///message elements using previous message elements from the 128-bit
+///vectors of [4 x i32] in \a __X and \a __Y, and returns the result.
+///
+/// \headerfile 
+///
+/// This intrinsic corresponds to the \c SHA1MSG1 instruction.
+///
+/// \param __X
+///A 128-bit vector of [4 x i32] containing previous message elements.
+/// \param __Y
+///A 128-bit vector of [4 x i32] containing previous message elements.
+/// \returns A 128-bit vector of [4 x i32] containing the derived SHA-1
+///elements.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_sha1msg1_epu32(__m128i __X, __m128i __Y)
 {
   return (__m128i)__builtin_ia32_sha1msg1((__v4si)__X, (__v4si)__Y);
 }
 
+/// Performs the final calculation for deriving the next four SHA-1 message
+///elements using previous message elements from the 128-bit vectors of
+///[4 x i32] in \a __X and \a __Y, and returns the result.
+///
+/// \headerfile 
+///
+/// This intrinsic corresponds to the \c SHA1MSG2 instruction.
+///
+/// \param __X
+///A 128-bit vector of [4 x i32] containing an intermediate result.
+/// \param __Y
+///A 128-bit vector of [4 x i32] containing previous message values.
+/// \returns A 128-bit vector of [4 x i32] containing the updated SHA-1
+///values.
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_sha1msg2_epu32(__m128i __X, __m128i __Y)
 {
   return (__m128i)__builtin_ia32_sha1msg2((__v4si)__X, (__v4si)__Y);
 }
 
+/// Performs two rounds of SHA-256 operation using the following inputs: a
+/// 

[clang] 69593aa - [Headers][doc] Add misc non-AVX2 intrinsic descriptions

2023-07-24 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2023-07-24T10:51:18-07:00
New Revision: 69593aa5c054cec6be6b822c073ccdc63748a68d

URL: 
https://github.com/llvm/llvm-project/commit/69593aa5c054cec6be6b822c073ccdc63748a68d
DIFF: 
https://github.com/llvm/llvm-project/commit/69593aa5c054cec6be6b822c073ccdc63748a68d.diff

LOG: [Headers][doc] Add misc non-AVX2 intrinsic descriptions

Adds descriptions for adxintrin.h, bmi2intrin.h, clflushoptintrin.h,
clzerointrin.h, rdseedintrin.h, and xsavecintrin.h.

Differential revision: https://reviews.llvm.org/D155859

Added: 


Modified: 
clang/lib/Headers/adxintrin.h
clang/lib/Headers/bmi2intrin.h
clang/lib/Headers/clflushoptintrin.h
clang/lib/Headers/clzerointrin.h
clang/lib/Headers/rdseedintrin.h
clang/lib/Headers/xsavecintrin.h

Removed: 




diff  --git a/clang/lib/Headers/adxintrin.h b/clang/lib/Headers/adxintrin.h
index 4382530fa6c04f..20f6211e567b30 100644
--- a/clang/lib/Headers/adxintrin.h
+++ b/clang/lib/Headers/adxintrin.h
@@ -28,7 +28,31 @@
 extern "C" {
 #endif
 
-/* Intrinsics that are available only if __ADX__ defined */
+/* Intrinsics that are available only if __ADX__ is defined. */
+
+/// Adds unsigned 32-bit integers \a __x and \a __y, plus 0 or 1 as indicated
+///by the carry flag \a __cf. Stores the unsigned 32-bit sum in the memory
+///at \a __p, and returns the 8-bit carry-out (carry flag).
+///
+/// \code{.operation}
+/// temp := (__cf == 0) ? 0 : 1
+/// Store32(__p, __x + __y + temp)
+/// result := CF
+/// \endcode
+///
+/// \headerfile 
+///
+/// This intrinsic corresponds to the \c ADCX instruction.
+///
+/// \param __cf
+///The 8-bit unsigned carry flag; any non-zero value indicates carry.
+/// \param __x
+///A 32-bit unsigned addend.
+/// \param __y
+///A 32-bit unsigned addend.
+/// \param __p
+///Pointer to memory for storing the sum.
+/// \returns The 8-bit unsigned carry-out value.
 __INLINE unsigned char
 __attribute__((__always_inline__, __nodebug__, __target__("adx")))
 _addcarryx_u32(unsigned char __cf, unsigned int __x, unsigned int __y,
@@ -37,6 +61,29 @@ __INLINE unsigned char
 }
 
 #ifdef __x86_64__
+/// Adds unsigned 64-bit integers \a __x and \a __y, plus 0 or 1 as indicated
+///by the carry flag \a __cf. Stores the unsigned 64-bit sum in the memory
+///at \a __p, and returns the 8-bit carry-out (carry flag).
+///
+/// \code{.operation}
+/// temp := (__cf == 0) ? 0 : 1
+/// Store64(__p, __x + __y + temp)
+/// result := CF
+/// \endcode
+///
+/// \headerfile 
+///
+/// This intrinsic corresponds to the \c ADCX instruction.
+///
+/// \param __cf
+///The 8-bit unsigned carry flag; any non-zero value indicates carry.
+/// \param __x
+///A 64-bit unsigned addend.
+/// \param __y
+///A 64-bit unsigned addend.
+/// \param __p
+///Pointer to memory for storing the sum.
+/// \returns The 8-bit unsigned carry-out value.
 __INLINE unsigned char
 __attribute__((__always_inline__, __nodebug__, __target__("adx")))
 _addcarryx_u64(unsigned char __cf, unsigned long long __x,
@@ -45,7 +92,31 @@ __INLINE unsigned char
 }
 #endif
 
-/* Intrinsics that are also available if __ADX__ undefined */
+/* Intrinsics that are also available if __ADX__ is undefined. */
+
+/// Adds unsigned 32-bit integers \a __x and \a __y, plus 0 or 1 as indicated
+///by the carry flag \a __cf. Stores the unsigned 32-bit sum in the memory
+///at \a __p, and returns the 8-bit carry-out (carry flag).
+///
+/// \code{.operation}
+/// temp := (__cf == 0) ? 0 : 1
+/// Store32(__p, __x + __y + temp)
+/// result := CF
+/// \endcode
+///
+/// \headerfile 
+///
+/// This intrinsic corresponds to the \c ADC instruction.
+///
+/// \param __cf
+///The 8-bit unsigned carry flag; any non-zero value indicates carry.
+/// \param __x
+///A 32-bit unsigned addend.
+/// \param __y
+///A 32-bit unsigned addend.
+/// \param __p
+///Pointer to memory for storing the sum.
+/// \returns The 8-bit unsigned carry-out value.
 __INLINE unsigned char __DEFAULT_FN_ATTRS _addcarry_u32(unsigned char __cf,
 unsigned int __x,
 unsigned int __y,
@@ -54,6 +125,29 @@ __INLINE unsigned char __DEFAULT_FN_ATTRS 
_addcarry_u32(unsigned char __cf,
 }
 
 #ifdef __x86_64__
+/// Adds unsigned 64-bit integers \a __x and \a __y, plus 0 or 1 as indicated
+///by the carry flag \a __cf. Stores the unsigned 64-bit sum in the memory
+///at \a __p, and returns the 8-bit carry-out (carry flag).
+///
+/// \code{.operation}
+/// temp := (__cf == 0) ? 0 : 1
+/// Store64(__p, __x + __y + temp)
+/// result := CF
+/// \endcode
+///
+/// \headerfile 
+///
+/// This intrinsic corresponds to the \c ADC instruction.
+///
+/// \param __cf
+///The 8-bit unsigned carry flag; any non-zero value indicates carry.
+/// \param __x
+///A 64

[clang] 7abb5fc - [DWARF] Make sure file entry for artificial functions has an MD5 checksum

2023-07-24 Thread Paul Robinson via cfe-commits

Author: Paul Robinson
Date: 2023-07-24T10:53:10-07:00
New Revision: 7abb5fc618cec66841a8280d2a099a4c9c8cb91b

URL: 
https://github.com/llvm/llvm-project/commit/7abb5fc618cec66841a8280d2a099a4c9c8cb91b
DIFF: 
https://github.com/llvm/llvm-project/commit/7abb5fc618cec66841a8280d2a099a4c9c8cb91b.diff

LOG: [DWARF] Make sure file entry for artificial functions has an MD5 checksum

The DIFile cache was keyed on a string pointer instead of string content,
which was causing misses and resulted in an entry without a checksum.
In DWARF v5 if any checksum is missing, we can't write any to the output
file, so this had consequences.

Fixes https://github.com/llvm/llvm-project/issues/63955

Differential revision: https://reviews.llvm.org/D155991

Added: 


Modified: 
clang/lib/CodeGen/CGDebugInfo.h
clang/test/CodeGenCXX/debug-info-function-context.cpp

Removed: 




diff  --git a/clang/lib/CodeGen/CGDebugInfo.h b/clang/lib/CodeGen/CGDebugInfo.h
index 58ee6dd64c4fc3..1fd08626358b93 100644
--- a/clang/lib/CodeGen/CGDebugInfo.h
+++ b/clang/lib/CodeGen/CGDebugInfo.h
@@ -148,7 +148,7 @@ class CGDebugInfo {
   llvm::BumpPtrAllocator DebugInfoNames;
   StringRef CWDName;
 
-  llvm::DenseMap DIFileCache;
+  llvm::StringMap DIFileCache;
   llvm::DenseMap SPCache;
   /// Cache declarations relevant to DW_TAG_imported_declarations (C++
   /// using declarations and global alias variables) that aren't covered

diff  --git a/clang/test/CodeGenCXX/debug-info-function-context.cpp 
b/clang/test/CodeGenCXX/debug-info-function-context.cpp
index 40a6643e71f924..8d3309f42748dc 100644
--- a/clang/test/CodeGenCXX/debug-info-function-context.cpp
+++ b/clang/test/CodeGenCXX/debug-info-function-context.cpp
@@ -1,4 +1,5 @@
-// RUN: %clang_cc1 -emit-llvm -debug-info-kind=limited -triple 
x86_64-pc-linux-gnu %s -o - | FileCheck %s
+// RUN: %clang_cc1 -emit-llvm -debug-info-kind=limited -triple 
x86_64-pc-linux-gnu %s \
+// RUN: -dwarf-version=5 -main-file-name %s  -o - | FileCheck %s
 
 struct C {
   void member_function();
@@ -21,11 +22,17 @@ void global_namespace_function() { 
global_variable.member_function(); }
 int global_namespace_variable = 1;
 }
 
+// Generate the artificial global functions to initialize a global.
+int global_initialized_variable = C::static_member_function();
+
 // Check that the functions that belong to C have C as a context and the
 // functions that belong to the namespace have it as a context, and the global
-// function has the file as a context.
+// functions (user-defined and artificial) have the file as a context.
 
-// CHECK: ![[FILE:[0-9]+]] = !DIFile(filename: "{{.*}}context.cpp",
+// The first DIFile is for the CU, the second is what everything else uses.
+// We're using DWARF v5 so both should have MD5 checksums.
+// CHECK: !DIFile(filename: "{{.*}}context.cpp",{{.*}} checksumkind: CSK_MD5
+// CHECK: ![[FILE:[0-9]+]] = !DIFile(filename: "{{.*}}context.cpp",{{.*}} 
checksumkind: CSK_MD5
 // CHECK: ![[C:[0-9]+]] = distinct !DICompositeType(tag: 
DW_TAG_structure_type, name: "C",
 // CHECK: ![[NS:.*]] = !DINamespace(name: "ns"
 // CHECK: !DISubprogram(name: "member_function",{{.*}} scope: ![[C]],{{.*}} 
DISPFlagDefinition
@@ -35,3 +42,6 @@ int global_namespace_variable = 1;
 // CHECK: !DISubprogram(name: "global_function",{{.*}} scope: ![[FILE]],{{.*}} 
DISPFlagDefinition
 
 // CHECK: !DISubprogram(name: "global_namespace_function",{{.*}} scope: 
![[NS]],{{.*}} DISPFlagDefinition
+
+// CHECK: !DISubprogram(name: "__cxx_global_var_init",{{.*}} scope: 
![[FILE]],{{.*}} DISPFlagDefinition
+// CHECK: !DISubprogram(linkageName: "_GLOBAL__sub_I_{{.*}}",{{.*}} scope: 
![[FILE]],{{.*}} DISPFlagDefinition



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


  1   2   3   4   >