<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<base href="x-msg://3051/"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.apple-tab-span
        {mso-style-name:apple-tab-span;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Attached the updated patch.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Fixed the new warnings and the mangling/overloading errors. Also fixed Anton’s remarks.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Please re-check if you applied the patch properly; the sampler initialization should work, and the test passes fine for me.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">About testing – this patch is a slightly modified version of what we have in our latest proprietary sources, and of course our product is fully conformant.
 The only missing part here is the passing of NULL as a function argument instead of event_t, but since NULL is not a well-defined value in OpenCL, I think this part should be left for the different vendors for now, or maybe we could use an LLVM intrinsic there.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Please review<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><img width="420" height="116" id="Picture_x0020_1" src="cid:image001.png@01CDBB25.6B56FF20" alt="email_signature_guy_new2"><o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Tanya Lattner [mailto:lattner@apple.com]
<br>
<b>Sent:</b> Tuesday, October 30, 2012 08:56<br>
<b>To:</b> Benyei, Guy<br>
<b>Cc:</b> Richard Smith; cfe-dev@cs.uiuc.edu; Anton.Lokhmotov@arm.com<br>
<b>Subject:</b> Re: [cfe-dev] OpenCL & SPIR specific types - proposal and patch<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">Sorry for the delay, I was out of town.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">+static bool TryOCLSamplerInitialization(Sema &S,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+                                        InitializationSequence &Sequence,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+                                        QualType DestType) {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+  if (!S.getLangOpts().OpenCL || !DestType->isSamplerT())<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+    return false;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+  Sequence.AddOCLSamplerInitStep(DestType);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">+}<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">generates a new warning since it doesn't return anything after the first check.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">There are also a bunch of warnings generated because TST_image1d_t are not handled in switch statements. Is there other code missing from this patch? For example, CIndexUSRs.cpp, CIndex.cpp, SemaTemplateVariadic.cpp.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I also don't believe sampler is quite right. Running the test, I see:<o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">opencl_types.cl:3:11: error: initializing 'sampler_t' with an expression of incompatible type<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">      'int'<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">sampler_t glb_smp = 7;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">          ^         ~<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">opencl_types.cl:25:12: error: initializing 'sampler_t' with an expression of incompatible type<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">      'int'<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        sampler_t smp = 5;<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Also, I don't think this implementation supports function overloading (which we use all over the place for builtins). So for example:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">void __OVERLOAD__ bar(image1d_t  X) {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">void __OVERLOAD__ bar(image2d_t  X) {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">}<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">this causes the compiler to crash.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">Assertion failed: (OldFn->isDeclaration() && "Shouldn't replace non-declaration"), function EmitGlobalFunctionDefinition, file CodeGenModule.cpp, line 1908.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">0  clang             0x00000001057e91fe PrintStackTrace(void*) + 46<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">1  clang             0x00000001057e97a9 SignalHandler(int) + 297<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">2  libsystem_c.dylib 0x00007fff8aee78ea _sigtramp + 26<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">3  libsystem_c.dylib 0x00007fff5c9b74e8 _sigtramp + 18446744072932359192<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">4  clang             0x00000001057e94cb raise + 27<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">5  clang             0x00000001057e9582 abort + 18<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">6  clang             0x00000001057e9561 __assert_rtn + 129<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">7  clang             0x0000000103619a98 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl) + 424<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">8  clang             0x0000000103616da2 clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl) + 498<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">9  clang             0x000000010361901e clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) + 782<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">10 clang             0x000000010361f98d clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) + 269<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">11 clang             0x0000000103664684 (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) + 100<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">12 clang             0x0000000103607d75 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) + 181<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">13 clang             0x000000010367852b clang::ParseAST(clang::Sema&, bool, bool) + 507<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">14 clang             0x000000010330f7f8 clang::ASTFrontendAction::ExecuteAction() + 312<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">15 clang             0x0000000103607252 clang::CodeGenAction::ExecuteAction() + 1266<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">16 clang             0x000000010330f40b clang::FrontendAction::Execute() + 235<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">17 clang             0x00000001032d766f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 863<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">18 clang             0x000000010325d4f7 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 999<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">19 clang             0x0000000103245d66 cc1_main(char const**, char const**, char const*, void*) + 1094<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">20 clang             0x0000000103256c89 main + 473<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">21 libdyld.dylib     0x00007fff95e387e1 start + 0<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">22 libdyld.dylib     0x0000000000000007 start + 18446603338001446950<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Stack dump:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">0.<span class="apple-tab-span">         </span>Program arguments: ../../Debug+Asserts/bin/clang -cc1 -emit-llvm -O0 -o - x.cl <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">1.<span class="apple-tab-span">         </span><eof> parser at end of file<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">2.<span class="apple-tab-span">         </span>x.cl:9:20: LLVM IR generation of declaration 'read_imagef'<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">3.<span class="apple-tab-span">         </span>x.cl:9:20: Generating code for declaration 'read_imagef'<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Illegal instruction<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I'm also not clear on if sampler's should be mangled too. I had done this in my implementation of sampler.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">How much testing have you done with this patch? Is it just on the test case provided? Do you have a reference implementation in Clang of OpenCL that passes conformance?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">-Tanya<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Oct 24, 2012, at 4:36 PM, "Benyei, Guy" <<a href="mailto:guy.benyei@intel.com">guy.benyei@intel.com</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Hi all,</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Please review this patch – I think I’ve fixed every controversial part of the original patch. The sampler type is now represented as i32, but it becomes a clang
 builtin type to enable efficient restriction checking. Also fixed every remark I’ve got for the different versions of the patch.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><image001.png></span><o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
</div>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<div>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span class="apple-converted-space"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span></span><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""><a href="mailto:cfe-dev-bounces@cs.uiuc.edu"><span style="color:purple">cfe-dev-bounces@cs.uiuc.edu</span></a><span class="apple-converted-space"> </span>[mailto:cfe-<a href="mailto:dev-bounces@cs.uiuc.edu"><span style="color:purple">dev-bounces@cs.uiuc.edu</span></a>]<span class="apple-converted-space"> </span><b>On
 Behalf Of<span class="apple-converted-space"> </span></b>Benyei, Guy<br>
<b>Sent:</b><span class="apple-converted-space"> </span>Sunday, October 21, 2012 16:00<br>
<b>To:</b><span class="apple-converted-space"> </span>Tanya Lattner<br>
<b>Cc:</b><span class="apple-converted-space"> </span>Richard Smith;<span class="apple-converted-space"> </span><a href="mailto:cfe-dev@cs.uiuc.edu"><span style="color:purple">cfe-dev@cs.uiuc.edu</span></a>;<span class="apple-converted-space"> </span><a href="mailto:Anton.Lokhmotov@arm.com"><span style="color:purple">Anton.Lokhmotov@arm.com</span></a><br>
<b>Subject:</b><span class="apple-converted-space"> </span>Re: [cfe-dev] OpenCL & SPIR specific types - proposal and patch</span><o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Tanya,</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">I’ve fixed the width/alignment and the debug info remarks, and also removed the sampler initialization function for now.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">The main idea in passing through the OpenCLRuntime for initializing samplers is enabling the initialization of non-integer vendor specific samplers later on.
 It’s not required for the current implementation, but it will be needed later on to support other representations of the sampler type, like in SPIR.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">I prefer to leave sampler_t implemented with an i32 representation rather than removing it – the built-in types are needed for clean restriction checking.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">     Guy</span><o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><image001.png></span><o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
</div>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<div>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span class="apple-converted-space"><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span></span><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">Tanya
 Lattner [<a href="mailto:lattner@apple.com"><span style="color:purple">mailto:lattner@apple.com</span></a>]<span class="apple-converted-space"> </span><br>
<b>Sent:</b><span class="apple-converted-space"> </span>Saturday, October 20, 2012 07:45<br>
<b>To:</b><span class="apple-converted-space"> </span>Benyei, Guy<br>
<b>Cc:</b><span class="apple-converted-space"> </span>Richard Smith;<span class="apple-converted-space"> </span><a href="mailto:cfe-dev@cs.uiuc.edu"><span style="color:purple">cfe-dev@cs.uiuc.edu</span></a>; Villmow, Micah;<span class="apple-converted-space"> </span><a href="mailto:Anton.Lokhmotov@arm.com"><span style="color:purple">Anton.Lokhmotov@arm.com</span></a><br>
<b>Subject:</b><span class="apple-converted-space"> </span>Re: [cfe-dev] OpenCL & SPIR specific types - proposal and patch</span><o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">Guy,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+    case BuiltinType::OCLSampler:<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+    case BuiltinType::OCLEvent:<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+    case BuiltinType::OCLImage1d:<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+    case BuiltinType::OCLImage1dArray:<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+    case BuiltinType::OCLImage1dBuffer:<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+    case BuiltinType::OCLImage2d:<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+    case BuiltinType::OCLImage2dArray:<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+    case BuiltinType::OCLImage3d:<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+      // Currently these types are pointers to opaque types.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+      Width = Target->getPointerWidth(0);<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+      Align = Target->getPointerAlign(0);<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+      break;<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">     }<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">Is wrong if sampler is i32 I think.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">Also, probably wrong:<o:p></o:p></p>
</div>
</div>
<div>
<div>
<div>
<p class="MsoNormal">+  case BuiltinType::OCLSampler:<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+    return getOrCreateStructPtrType("opencl_sampler_t", OCLSamplerDITy);<o:p></o:p></p>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">Why do this?<o:p></o:p></p>
</div>
</div>
<div>
<div>
<div>
<p class="MsoNormal">+  } else if (type->isSamplerT()) {<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+    CGM.getOpenCLRuntime().initializeOpenCLSampler(this, lvalue.getAddress(), EmitScalarExpr(init));<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">   } <o:p></o:p></p>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">I also don't understand  why you need to go through the OpenCLRuntime for this.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<div>
<p class="MsoNormal">+  if (D->getType()->isSamplerT()) {<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+    getOpenCLRuntime().initializeOpenCLSampler(NULL, GV, Init);<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+  } else {<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+    GV->setInitializer(Init);<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">+  }<o:p></o:p></p>
</div>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">I would rather just see sampler ripped out for now. I have no issues with the images/event code.<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">-Tanya<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<p><span style="color:#1F497D">…</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<p class="MsoNormal"><span style="font-size:13.5pt;font-family:"Helvetica","sans-serif""><opencl_types6.patch><o:p></o:p></span></p>
<p>---------------------------------------------------------------------<br>
Intel Israel (74) Limited<o:p></o:p></p>
<p>This e-mail and any attachments may contain confidential material for<br>
the sole use of the intended recipient(s). Any review or distribution<br>
by others is strictly prohibited. If you are not the intended<br>
recipient, please contact the sender and delete all copies.<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>