[PATCH] D88668: [CUDA] Add support for 11.1

2020-10-01 Thread kiwixz via Phabricator via cfe-commits
kiwixz created this revision.
kiwixz added reviewers: jlebar, tra.
kiwixz added a project: clang.
Herald added subscribers: cfe-commits, yaxunl, jholewinski.
kiwixz requested review of this revision.

It looks like 11.1 doesn't have a version.txt file, so I changed the default 
guess in this case from CUDA 7.0 to 11.1.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D88668

Files:
  clang/include/clang/Basic/Cuda.h
  clang/lib/Basic/Cuda.cpp
  clang/lib/Basic/Targets/NVPTX.cpp
  clang/lib/Driver/ToolChains/Cuda.cpp

Index: clang/lib/Driver/ToolChains/Cuda.cpp
===
--- clang/lib/Driver/ToolChains/Cuda.cpp
+++ clang/lib/Driver/ToolChains/Cuda.cpp
@@ -155,9 +155,9 @@
 llvm::ErrorOr> VersionFile =
 FS.getBufferForFile(InstallPath + "/version.txt");
 if (!VersionFile) {
-  // CUDA 7.0 doesn't have a version.txt, so guess that's our version if
-  // version.txt isn't present.
-  Version = CudaVersion::CUDA_70;
+  // CUDA 7.0 and 11.1 don't have a version.txt, so try to guess
+  // if version.txt isn't present.
+  Version = CudaVersion::CUDA_111;
 } else {
   ParseCudaVersionFile((*VersionFile)->getBuffer());
 }
@@ -658,6 +658,9 @@
   // back-end.
   const char *PtxFeature = nullptr;
   switch (CudaInstallation.version()) {
+  case CudaVersion::CUDA_111:
+PtxFeature = "+ptx71";
+break;
   case CudaVersion::CUDA_110:
 PtxFeature = "+ptx70";
 break;
Index: clang/lib/Basic/Targets/NVPTX.cpp
===
--- clang/lib/Basic/Targets/NVPTX.cpp
+++ clang/lib/Basic/Targets/NVPTX.cpp
@@ -45,6 +45,7 @@
 if (!Feature.startswith("+ptx"))
   continue;
 PTXVersion = llvm::StringSwitch(Feature)
+ .Case("+ptx71", 71)
  .Case("+ptx70", 70)
  .Case("+ptx65", 65)
  .Case("+ptx64", 64)
@@ -239,6 +240,8 @@
 return "750";
   case CudaArch::SM_80:
 return "800";
+  case CudaArch::SM_86:
+return "860";
   }
   llvm_unreachable("unhandled CudaArch");
 }();
Index: clang/lib/Basic/Cuda.cpp
===
--- clang/lib/Basic/Cuda.cpp
+++ clang/lib/Basic/Cuda.cpp
@@ -32,6 +32,8 @@
 return "10.2";
   case CudaVersion::CUDA_110:
 return "11.0";
+  case CudaVersion::CUDA_111:
+return "11.1";
   }
   llvm_unreachable("invalid enum");
 }
@@ -48,6 +50,7 @@
   .Case("10.1", CudaVersion::CUDA_101)
   .Case("10.2", CudaVersion::CUDA_102)
   .Case("11.0", CudaVersion::CUDA_110)
+  .Case("11.1", CudaVersion::CUDA_111)
   .Default(CudaVersion::UNKNOWN);
 }
 
@@ -149,6 +152,8 @@
 return CudaVersion::CUDA_100;
   case CudaArch::SM_80:
 return CudaVersion::CUDA_110;
+  case CudaArch::SM_86:
+return CudaVersion::CUDA_111;
   default:
 llvm_unreachable("invalid enum");
   }
@@ -194,6 +199,8 @@
 return CudaVersion::CUDA_102;
   case 110:
 return CudaVersion::CUDA_110;
+  case 111:
+return CudaVersion::CUDA_111;
   default:
 return CudaVersion::UNKNOWN;
   }
Index: clang/include/clang/Basic/Cuda.h
===
--- clang/include/clang/Basic/Cuda.h
+++ clang/include/clang/Basic/Cuda.h
@@ -29,7 +29,8 @@
   CUDA_101,
   CUDA_102,
   CUDA_110,
-  LATEST = CUDA_110,
+  CUDA_111,
+  LATEST = CUDA_111,
   LATEST_SUPPORTED = CUDA_101,
 };
 const char *CudaVersionToString(CudaVersion V);
@@ -54,6 +55,7 @@
   SM_72,
   SM_75,
   SM_80,
+  SM_86,
   GFX600,
   GFX601,
   GFX700,
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D88668: [CUDA] Add support for 11.1

2020-10-01 Thread kiwixz via Phabricator via cfe-commits
kiwixz added a comment.

In D88668#2306393 , @jlebar wrote:

>> It looks like 11.1 doesn't have a version.txt file
>
> Yikes, this is a problem if we can't tell the difference between CUDA 
> versions!

It looks like a blunder from NVIDIA, CUDA 11.1 actually miss most of the 
documentation (pdf files etc).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D88668

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


[PATCH] D88668: [CUDA] Add support for 11.1

2021-03-08 Thread kiwixz via Phabricator via cfe-commits
kiwixz abandoned this revision.
kiwixz added a comment.

Fixed in a much proper way in D89832 .  Thanks 
@tra!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D88668

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


[PATCH] D146520: [clang-tidy] Fix checks filter with warnings-as-errors

2023-03-21 Thread kiwixz via Phabricator via cfe-commits
kiwixz created this revision.
kiwixz added a reviewer: njames93.
kiwixz added a project: clang-tools-extra.
Herald added subscribers: PiotrZSL, carlosgalvezp, xazax.hun.
Herald added a project: All.
kiwixz requested review of this revision.
Herald added a subscriber: cfe-commits.

Since commit 5d12b13b0b26bc58b02ee23c369da8b83240cceb 
, warnings 
are internally classified as errors which skip the check filters (see 
ClangTidyDiagnosticConsumer.cpp:324).

One usecase is particularly affected: you cannot selectively disable 
clang-analyzer-core checks, they are force-enabled because required by others.  
So enabling warning as errors will show new (and unwanted) errors !

Good:

  32693 warnings generated.
  Suppressed 32693 warnings (32692 in non-user code, 1 with check filters).
  Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.

Bad (`-warnings-as-errors=*`):

  33057 warnings generated.
  ...
  error: Called C++ object pointer is uninitialized 
[clang-analyzer-core.CallAndMessage,-warnings-as-errors]
  ...
  Suppressed 33054 warnings (33054 in non-user code).
  Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
  1 warning treated as error

As this is a regression from LLVM 15 to LLVM 16, and a simple patch, I hope we 
can backport it to 16.x series.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D146520

Files:
  clang-tools-extra/clang-tidy/ClangTidy.cpp
  clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp


Index: clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
===
--- clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
+++ clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
@@ -421,8 +421,6 @@
 
 bool IsWarningAsError = DiagLevel == DiagnosticsEngine::Warning &&
 Context.treatAsError(CheckName);
-if (IsWarningAsError)
-  Level = ClangTidyError::Error;
 Errors.emplace_back(CheckName, Level, Context.getCurrentBuildDirectory(),
 IsWarningAsError);
   }
Index: clang-tools-extra/clang-tidy/ClangTidy.cpp
===
--- clang-tools-extra/clang-tidy/ClangTidy.cpp
+++ clang-tools-extra/clang-tidy/ClangTidy.cpp
@@ -615,6 +615,8 @@
   TUD.MainSourceFile = std::string(MainFilePath);
   for (const auto &Error : Errors) {
 tooling::Diagnostic Diag = Error;
+if (Error.IsWarningAsError)
+  Diag.DiagLevel = tooling::Diagnostic::Error;
 TUD.Diagnostics.insert(TUD.Diagnostics.end(), Diag);
   }
 


Index: clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
===
--- clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
+++ clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
@@ -421,8 +421,6 @@
 
 bool IsWarningAsError = DiagLevel == DiagnosticsEngine::Warning &&
 Context.treatAsError(CheckName);
-if (IsWarningAsError)
-  Level = ClangTidyError::Error;
 Errors.emplace_back(CheckName, Level, Context.getCurrentBuildDirectory(),
 IsWarningAsError);
   }
Index: clang-tools-extra/clang-tidy/ClangTidy.cpp
===
--- clang-tools-extra/clang-tidy/ClangTidy.cpp
+++ clang-tools-extra/clang-tidy/ClangTidy.cpp
@@ -615,6 +615,8 @@
   TUD.MainSourceFile = std::string(MainFilePath);
   for (const auto &Error : Errors) {
 tooling::Diagnostic Diag = Error;
+if (Error.IsWarningAsError)
+  Diag.DiagLevel = tooling::Diagnostic::Error;
 TUD.Diagnostics.insert(TUD.Diagnostics.end(), Diag);
   }
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D146520: [clang-tidy] Fix checks filter with warnings-as-errors

2023-03-25 Thread kiwixz via Phabricator via cfe-commits
kiwixz added a comment.

Your understanding is correct, I'm currently just trying to hide them at the 
end (warnings-as-errors or not).
This is how it worked until 5d12b13b0b26bc58b02ee23c369da8b83240cceb 
 (present 
in LLVM 16) which inadvertently bypass the filters with warnings-as-errors.

Note that I'm just trying to restore the previous behavior, while I'm sure 
PiotrZSL and others will make the whole thing more elegant for next releases.
My hope here is to fix LLVM 16 so we don't have errors that we explicitly 
disabled showing up, and only when enabling warnings-as-errors.

My patch does two things:

- deleting the two lines in ClangTidyDiagnosticConsumer.cpp which introduced 
the new and bad behavior
- adding two lines in ClangTidy.cpp to classify warnings as errors when 
appropriate in the YAML (this was the goal of the aforementioned commit)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D146520

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


[PATCH] D146520: [clang-tidy] Fix checks filter with warnings-as-errors

2023-04-09 Thread kiwixz via Phabricator via cfe-commits
kiwixz added a comment.

I'm not sure how to test this, is there any check dependency we can rely on 
with hardcoded tests ?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D146520

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


[PATCH] D146520: [clang-tidy] Fix checks filter with warnings-as-errors

2023-05-10 Thread kiwixz via Phabricator via cfe-commits
kiwixz added a comment.

Ping.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D146520

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