[llvm] r343541 - Fix the Windows build in GlobalISel

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 1 14:39:39 PDT 2018


Author: rnk
Date: Mon Oct  1 14:39:39 2018
New Revision: 343541

URL: http://llvm.org/viewvc/llvm-project?rev=343541&view=rev
Log:
Fix the Windows build in GlobalISel

Clang-cl was complaining about some sort of constexpr narrowing bug:

C:\src\llvm-project\llvm\lib\CodeGen\GlobalISel\CombinerHelper.cpp(136,31):  error: non-constant-expression cannot be narrowed from type 'llvm::TargetOpcode::(anonymous enum at C:\src\llvm-project\llvm\include\llvm/CodeGen/TargetOpcodes.h:22:1)' to 'unsigned int' in initializer list [-Wc++11-narrowing]
                              unsigned(MI.getOpcode()) == unsigned(TargetOpcode::G_LOAD)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\src\llvm-project\llvm\lib\CodeGen\GlobalISel\CombinerHelper.cpp(136,31):  note: insert an explicit cast to silence this issue
                              unsigned(MI.getOpcode()) == unsigned(TargetOpcode::G_LOAD)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              static_cast<unsigned int>(

Modified:
    llvm/trunk/lib/CodeGen/GlobalISel/CombinerHelper.cpp

Modified: llvm/trunk/lib/CodeGen/GlobalISel/CombinerHelper.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/GlobalISel/CombinerHelper.cpp?rev=343541&r1=343540&r2=343541&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/GlobalISel/CombinerHelper.cpp (original)
+++ llvm/trunk/lib/CodeGen/GlobalISel/CombinerHelper.cpp Mon Oct  1 14:39:39 2018
@@ -132,13 +132,12 @@ bool CombinerHelper::tryCombineExtending
   // and emit a variant of (extend (trunc X)) for the others according to the
   // relative type sizes. At the same time, pick an extend to use based on the
   // extend involved in the chosen type.
-  PreferredTuple Preferred = {LLT(),
-                              MI.getOpcode() == TargetOpcode::G_LOAD
-                                  ? TargetOpcode::G_ANYEXT
-                                  : MI.getOpcode() == TargetOpcode::G_SEXTLOAD
-                                        ? TargetOpcode::G_SEXT
-                                        : TargetOpcode::G_ZEXT,
-                              nullptr};
+  unsigned PreferredOpcode = MI.getOpcode() == TargetOpcode::G_LOAD
+                                 ? TargetOpcode::G_ANYEXT
+                                 : MI.getOpcode() == TargetOpcode::G_SEXTLOAD
+                                       ? TargetOpcode::G_SEXT
+                                       : TargetOpcode::G_ZEXT;
+  PreferredTuple Preferred = {LLT(), PreferredOpcode, nullptr};
   for (auto &UseMI : MRI.use_instructions(LoadValue.getReg())) {
     if (UseMI.getOpcode() == TargetOpcode::G_SEXT ||
         UseMI.getOpcode() == TargetOpcode::G_ZEXT || !Preferred.Ty.isValid())




More information about the llvm-commits mailing list