r290173 - Revert "[OpenCL] Enabling the usage of CLK_NULL_QUEUE as compare operand."

Daniel Jasper via cfe-commits cfe-commits at lists.llvm.org
Tue Dec 20 02:05:04 PST 2016


Author: djasper
Date: Tue Dec 20 04:05:04 2016
New Revision: 290173

URL: http://llvm.org/viewvc/llvm-project?rev=290173&view=rev
Log:
Revert "[OpenCL] Enabling the usage of CLK_NULL_QUEUE as compare operand."

This reverts commit r290171. It triggers a bunch of warnings, because
the new enumerator isn't handled in all switches. We want a warning-free
build.

Replied on the commit with more details.

Removed:
    cfe/trunk/test/CodeGenOpenCL/null_queue.cl
    cfe/trunk/test/SemaOpenCL/null_queue.cl
    cfe/trunk/test/SemaOpenCL/queue_t_overload.cl
Modified:
    cfe/trunk/include/clang/AST/OperationKinds.def
    cfe/trunk/include/clang/Sema/Initialization.h
    cfe/trunk/include/clang/Sema/Overload.h
    cfe/trunk/lib/AST/ExprConstant.cpp
    cfe/trunk/lib/CodeGen/CGExprAgg.cpp
    cfe/trunk/lib/CodeGen/CGExprComplex.cpp
    cfe/trunk/lib/CodeGen/CGExprScalar.cpp
    cfe/trunk/lib/Sema/SemaExpr.cpp
    cfe/trunk/lib/Sema/SemaExprCXX.cpp
    cfe/trunk/lib/Sema/SemaInit.cpp
    cfe/trunk/lib/Sema/SemaOverload.cpp

Modified: cfe/trunk/include/clang/AST/OperationKinds.def
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/OperationKinds.def?rev=290173&r1=290172&r2=290173&view=diff
==============================================================================
--- cfe/trunk/include/clang/AST/OperationKinds.def (original)
+++ cfe/trunk/include/clang/AST/OperationKinds.def Tue Dec 20 04:05:04 2016
@@ -321,9 +321,6 @@ CAST_OPERATION(BuiltinFnToFnPtr)
 // Convert a zero value for OpenCL event_t initialization.
 CAST_OPERATION(ZeroToOCLEvent)
 
-// Convert a zero value for OpenCL queue_t initialization.
-CAST_OPERATION(ZeroToOCLQueue)
-
 // Convert a pointer to a different address space.
 CAST_OPERATION(AddressSpaceConversion)
 

Modified: cfe/trunk/include/clang/Sema/Initialization.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Initialization.h?rev=290173&r1=290172&r2=290173&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/Initialization.h (original)
+++ cfe/trunk/include/clang/Sema/Initialization.h Tue Dec 20 04:05:04 2016
@@ -751,8 +751,6 @@ public:
     SK_StdInitializerListConstructorCall,
     /// \brief Initialize an OpenCL sampler from an integer.
     SK_OCLSamplerInit,
-    /// \brief Initialize queue_t from 0.
-    SK_OCLZeroQueue,
     /// \brief Passing zero to a function where OpenCL event_t is expected.
     SK_OCLZeroEvent
   };
@@ -1150,9 +1148,6 @@ public:
   /// constant.
   void AddOCLZeroEventStep(QualType T);
 
-  /// \brief Add a step to initialize an OpenCL queue_t from 0.
-  void AddOCLZeroQueueStep(QualType T);
-
   /// \brief Add steps to unwrap a initializer list for a reference around a
   /// single element and rewrap it at the end.
   void RewrapReferenceInitList(QualType T, InitListExpr *Syntactic);

Modified: cfe/trunk/include/clang/Sema/Overload.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Overload.h?rev=290173&r1=290172&r2=290173&view=diff
==============================================================================
--- cfe/trunk/include/clang/Sema/Overload.h (original)
+++ cfe/trunk/include/clang/Sema/Overload.h Tue Dec 20 04:05:04 2016
@@ -83,7 +83,6 @@ namespace clang {
     ICK_TransparentUnionConversion, ///< Transparent Union Conversions
     ICK_Writeback_Conversion,  ///< Objective-C ARC writeback conversion
     ICK_Zero_Event_Conversion, ///< Zero constant to event (OpenCL1.2 6.12.10)
-    ICK_Zero_Queue_Conversion, ///< Zero constant to queue
     ICK_C_Only_Conversion,     ///< Conversions allowed in C, but not C++
     ICK_Incompatible_Pointer_Conversion, ///< C-only conversion between pointers
                                          ///  with incompatible types

Modified: cfe/trunk/lib/AST/ExprConstant.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ExprConstant.cpp?rev=290173&r1=290172&r2=290173&view=diff
==============================================================================
--- cfe/trunk/lib/AST/ExprConstant.cpp (original)
+++ cfe/trunk/lib/AST/ExprConstant.cpp Tue Dec 20 04:05:04 2016
@@ -8340,7 +8340,6 @@ bool IntExprEvaluator::VisitCastExpr(con
   case CK_IntegralComplexToFloatingComplex:
   case CK_BuiltinFnToFnPtr:
   case CK_ZeroToOCLEvent:
-  case CK_ZeroToOCLQueue:
   case CK_NonAtomicToAtomic:
   case CK_AddressSpaceConversion:
   case CK_IntToOCLSampler:
@@ -8838,7 +8837,6 @@ bool ComplexExprEvaluator::VisitCastExpr
   case CK_CopyAndAutoreleaseBlockObject:
   case CK_BuiltinFnToFnPtr:
   case CK_ZeroToOCLEvent:
-  case CK_ZeroToOCLQueue:
   case CK_NonAtomicToAtomic:
   case CK_AddressSpaceConversion:
   case CK_IntToOCLSampler:

Modified: cfe/trunk/lib/CodeGen/CGExprAgg.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprAgg.cpp?rev=290173&r1=290172&r2=290173&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGExprAgg.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExprAgg.cpp Tue Dec 20 04:05:04 2016
@@ -751,7 +751,6 @@ void AggExprEmitter::VisitCastExpr(CastE
   case CK_CopyAndAutoreleaseBlockObject:
   case CK_BuiltinFnToFnPtr:
   case CK_ZeroToOCLEvent:
-  case CK_ZeroToOCLQueue:
   case CK_AddressSpaceConversion:
   case CK_IntToOCLSampler:
     llvm_unreachable("cast kind invalid for aggregate types");

Modified: cfe/trunk/lib/CodeGen/CGExprComplex.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprComplex.cpp?rev=290173&r1=290172&r2=290173&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGExprComplex.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExprComplex.cpp Tue Dec 20 04:05:04 2016
@@ -480,7 +480,6 @@ ComplexPairTy ComplexExprEmitter::EmitCa
   case CK_CopyAndAutoreleaseBlockObject:
   case CK_BuiltinFnToFnPtr:
   case CK_ZeroToOCLEvent:
-  case CK_ZeroToOCLQueue:
   case CK_AddressSpaceConversion:
   case CK_IntToOCLSampler:
     llvm_unreachable("invalid cast kind for complex value");

Modified: cfe/trunk/lib/CodeGen/CGExprScalar.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGExprScalar.cpp?rev=290173&r1=290172&r2=290173&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGExprScalar.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGExprScalar.cpp Tue Dec 20 04:05:04 2016
@@ -1593,11 +1593,6 @@ Value *ScalarExprEmitter::VisitCastExpr(
     return llvm::Constant::getNullValue(ConvertType(DestTy));
   }
 
-  case CK_ZeroToOCLQueue: {
-    assert(DestTy->isQueueT() && "CK_ZeroToOCLQueue cast on non queue_t type");
-    return llvm::Constant::getNullValue(ConvertType(DestTy));
-  }
-
   case CK_IntToOCLSampler:
     return CGF.CGM.createOpenCLIntToSamplerConversion(E, CGF);
 

Modified: cfe/trunk/lib/Sema/SemaExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=290173&r1=290172&r2=290173&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaExpr.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExpr.cpp Tue Dec 20 04:05:04 2016
@@ -9635,18 +9635,6 @@ QualType Sema::CheckCompareOperands(Expr
     return ResultTy;
   }
 
-  if (getLangOpts().OpenCLVersion >= 200) {
-    if (LHSIsNull && RHSType->isQueueT()) {
-      LHS = ImpCastExprToType(LHS.get(), RHSType, CK_NullToPointer);
-      return ResultTy;
-    }
-
-    if (LHSType->isQueueT() && RHSIsNull) {
-      RHS = ImpCastExprToType(RHS.get(), LHSType, CK_NullToPointer);
-      return ResultTy;
-    }
-  }
-
   return InvalidOperands(Loc, LHS, RHS);
 }
 

Modified: cfe/trunk/lib/Sema/SemaExprCXX.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExprCXX.cpp?rev=290173&r1=290172&r2=290173&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaExprCXX.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExprCXX.cpp Tue Dec 20 04:05:04 2016
@@ -3878,12 +3878,6 @@ Sema::PerformImplicitConversion(Expr *Fr
                              From->getValueKind()).get();
     break;
 
-  case ICK_Zero_Queue_Conversion:
-    From = ImpCastExprToType(From, ToType,
-                             CK_ZeroToOCLQueue,
-                             From->getValueKind()).get();
-    break;
-
   case ICK_Lvalue_To_Rvalue:
   case ICK_Array_To_Pointer:
   case ICK_Function_To_Pointer:

Modified: cfe/trunk/lib/Sema/SemaInit.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaInit.cpp?rev=290173&r1=290172&r2=290173&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaInit.cpp (original)
+++ cfe/trunk/lib/Sema/SemaInit.cpp Tue Dec 20 04:05:04 2016
@@ -3077,7 +3077,6 @@ void InitializationSequence::Step::Destr
   case SK_StdInitializerListConstructorCall:
   case SK_OCLSamplerInit:
   case SK_OCLZeroEvent:
-  case SK_OCLZeroQueue:
     break;
 
   case SK_ConversionSequence:
@@ -3366,13 +3365,6 @@ void InitializationSequence::AddOCLZeroE
   Steps.push_back(S);
 }
 
-void InitializationSequence::AddOCLZeroQueueStep(QualType T) {
-  Step S;
-  S.Kind = SK_OCLZeroQueue;
-  S.Type = T;
-  Steps.push_back(S);
-}
-
 void InitializationSequence::RewrapReferenceInitList(QualType T,
                                                      InitListExpr *Syntactic) {
   assert(Syntactic->getNumInits() == 1 &&
@@ -5038,20 +5030,6 @@ static bool TryOCLZeroEventInitializatio
   return true;
 }
 
-static bool TryOCLZeroQueueInitialization(Sema &S,
-                                          InitializationSequence &Sequence,
-                                          QualType DestType,
-                                          Expr *Initializer) {
-  if (!S.getLangOpts().OpenCL || S.getLangOpts().OpenCLVersion < 200 ||
-      !DestType->isQueueT() ||
-      !Initializer->isIntegerConstantExpr(S.getASTContext()) ||
-      (Initializer->EvaluateKnownConstInt(S.getASTContext()) != 0))
-    return false;
-
-  Sequence.AddOCLZeroQueueStep(DestType);
-  return true;
-}
-
 InitializationSequence::InitializationSequence(Sema &S,
                                                const InitializedEntity &Entity,
                                                const InitializationKind &Kind,
@@ -5314,9 +5292,6 @@ void InitializationSequence::InitializeF
     if (TryOCLZeroEventInitialization(S, *this, DestType, Initializer))
       return;
 
-    if (TryOCLZeroQueueInitialization(S, *this, DestType, Initializer))
-       return;
-
     // Handle initialization in C
     AddCAssignmentStep(DestType);
     MaybeProduceObjCObject(S, *this, Entity);
@@ -6554,8 +6529,7 @@ InitializationSequence::Perform(Sema &S,
   case SK_ProduceObjCObject:
   case SK_StdInitializerList:
   case SK_OCLSamplerInit:
-  case SK_OCLZeroEvent:
-  case SK_OCLZeroQueue: {
+  case SK_OCLZeroEvent: {
     assert(Args.size() == 1);
     CurInit = Args[0];
     if (!CurInit.get()) return ExprError();
@@ -7239,15 +7213,6 @@ InitializationSequence::Perform(Sema &S,
                                     CurInit.get()->getValueKind());
       break;
     }
-    case SK_OCLZeroQueue: {
-      assert(Step->Type->isQueueT() &&
-             "Event initialization on non queue type.");
-
-      CurInit = S.ImpCastExprToType(CurInit.get(), Step->Type,
-                                    CK_ZeroToOCLQueue,
-                                    CurInit.get()->getValueKind());
-      break;
-    }
     }
   }
 
@@ -8076,10 +8041,6 @@ void InitializationSequence::dump(raw_os
     case SK_OCLZeroEvent:
       OS << "OpenCL event_t from zero";
       break;
-
-    case SK_OCLZeroQueue:
-      OS << "OpenCL queue_t from zero";
-      break;
     }
 
     OS << " [" << S->Type.getAsString() << ']';

Modified: cfe/trunk/lib/Sema/SemaOverload.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOverload.cpp?rev=290173&r1=290172&r2=290173&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaOverload.cpp (original)
+++ cfe/trunk/lib/Sema/SemaOverload.cpp Tue Dec 20 04:05:04 2016
@@ -1785,11 +1785,6 @@ static bool IsStandardConversion(Sema &S
              From->EvaluateKnownConstInt(S.getASTContext()) == 0) {
     SCS.Second = ICK_Zero_Event_Conversion;
     FromType = ToType;
-  } else if (ToType->isQueueT() &&
-             From->isIntegerConstantExpr(S.getASTContext()) &&
-             (From->EvaluateKnownConstInt(S.getASTContext()) == 0)) {
-    SCS.Second = ICK_Zero_Queue_Conversion;
-    FromType = ToType;
   } else {
     // No second conversion required.
     SCS.Second = ICK_Identity;
@@ -5167,7 +5162,6 @@ static bool CheckConvertedConstantConver
   case ICK_Function_Conversion:
   case ICK_Integral_Promotion:
   case ICK_Integral_Conversion: // Narrowing conversions are checked elsewhere.
-  case ICK_Zero_Queue_Conversion:
     return true;
 
   case ICK_Boolean_Conversion:

Removed: cfe/trunk/test/CodeGenOpenCL/null_queue.cl
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenOpenCL/null_queue.cl?rev=290172&view=auto
==============================================================================
--- cfe/trunk/test/CodeGenOpenCL/null_queue.cl (original)
+++ cfe/trunk/test/CodeGenOpenCL/null_queue.cl (removed)
@@ -1,18 +0,0 @@
-// RUN: %clang_cc1 -O0 -cl-std=CL2.0  -emit-llvm %s -o - | FileCheck %s
-extern queue_t get_default_queue();
-
-bool compare() {
-  return 0 == get_default_queue() &&
-         get_default_queue() == 0;
-  // CHECK: icmp eq %opencl.queue_t* null, %{{.*}}
-  // CHECK: icmp eq %opencl.queue_t* %{{.*}}, null
-}
-
-void func(queue_t q);
-
-void init() {
-  queue_t q = 0;
-  func(0);
-  // CHECK: store %opencl.queue_t* null, %opencl.queue_t** %q
-  // CHECK: call void @func(%opencl.queue_t* null)
-}

Removed: cfe/trunk/test/SemaOpenCL/null_queue.cl
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaOpenCL/null_queue.cl?rev=290172&view=auto
==============================================================================
--- cfe/trunk/test/SemaOpenCL/null_queue.cl (original)
+++ cfe/trunk/test/SemaOpenCL/null_queue.cl (removed)
@@ -1,12 +0,0 @@
-// RUN: %clang_cc1 %s -cl-std=CL2.0 -verify -pedantic -fsyntax-only
-extern queue_t get_default_queue();
-
-bool compare() {
-  return 1 == get_default_queue() && // expected-error{{invalid operands to binary expression ('int' and 'queue_t')}}
-         get_default_queue() == 1; // expected-error{{invalid operands to binary expression ('queue_t' and 'int')}}
-}
-
-void init() {
-  queue_t q1 = 1; // expected-error{{initializing 'queue_t' with an expression of incompatible type 'int'}}
-  queue_t q = 0;
-}

Removed: cfe/trunk/test/SemaOpenCL/queue_t_overload.cl
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaOpenCL/queue_t_overload.cl?rev=290172&view=auto
==============================================================================
--- cfe/trunk/test/SemaOpenCL/queue_t_overload.cl (original)
+++ cfe/trunk/test/SemaOpenCL/queue_t_overload.cl (removed)
@@ -1,12 +0,0 @@
-// RUN: %clang_cc1 %s -cl-std=CL2.0 -verify -pedantic -fsyntax-only
-
-void __attribute__((overloadable)) foo(queue_t, __local char *); // expected-note {{candidate function not viable: no known conversion from 'int' to 'queue_t' for 1st argument}} // expected-note {{candidate function}}
-void __attribute__((overloadable)) foo(queue_t, __local float *); // expected-note {{candidate function not viable: no known conversion from 'int' to 'queue_t' for 1st argument}} // expected-note {{candidate function}}
-
-void kernel ker(__local char *src1, __local float *src2, __global int *src3) {
-  queue_t q;
-  foo(q, src1);
-  foo(0, src2);
-  foo(q, src3); // expected-error {{call to 'foo' is ambiguous}}
-  foo(1, src3); // expected-error {{no matching function for call to 'foo'}}
-}




More information about the cfe-commits mailing list