<div dir="ltr">Hi Sam,<div> Thanks for your advice. I've tried to include clang header path instead of gcc header, and it works, and the compiler doesn't complain the following 2 kinds of errors anymore: </div>
<div><div><font color="#00ff00"> 1. unknown builtin '__builtin_ia32_cmpneqps'</font></div><div><font color="#00ff00"> 2. error: invalid conversion between vector type '__m128' and integer type 'int' of different size</font></div>
</div><div><font color="#00ff00"><br></font></div><div><font color="#000000">However there are some other 5 kinds of errors reported as before, </font></div><div><font color="#000000"> </font><font color="#0000ff">/usr/include/stdlib.h:337:4: error: unknown type name 'size_t'; did you mean 'ssize_t'?</font></div>
<div><font color="#0000ff"><br></font></div><div><div><font color="#0000ff">/usr/include/stdlib.h:857:20: error: unknown type name 'wchar_t'</font></div></div><div><font color="#0000ff"><br></font></div><div><div>
<font color="#0000ff">/sandbox/xiuxia/llvm_build/Debug+Asserts/lib/clang/3.4/include/mm_malloc.h:33:44: error: unknown type name 'size_t'; did you mean 'ssize_t'?</font></div></div><div><font color="#0000ff"><br>
</font></div><div><div><font color="#0000ff">/usr/include/CL/cl.h:562:17: error: redefinition of parameter 'size_t'</font></div></div><div><div><font color="#0000ff">/sandbox/xiuxia/libclc/libclc/generic/include/clc/integer/abs.inc:1:41: error: conflicting types for 'abs'</font></div>
</div><div><font color="#0000ff"><br></font></div><div><div><font color="#0000ff">atom_kernel.h:45:24: error: invalid operands to binary expression ('MMD_floatK3' (aka 'struct sdouble3') and 'MMD_floatK3')</font></div>
</div><div><br></div><div><br></div><div>I am not very familiar with clang, and find it is difficult to find materials about how to learning clang. I feel perplexed when encounter this kind of problems. Hope you could give me some suggestions. </div>
<div><br></div><div><br></div><div>Best,</div><div>Xiuxia</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 22, 2014 at 5:36 AM, Sam Parker <span dir="ltr"><<a href="mailto:S.Parker3@lboro.ac.uk" target="_blank">S.Parker3@lboro.ac.uk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
Have you ensured you are meeting this requirement?<br>
<br>
// <Warning!!> -- Platform Specific Code lives here<br>
// This depends on A) that you're running linux and<br>
// B) that you have the same GCC LIBs installed that<br>
// I do.<br>
// Search through Clang itself for something like this,<br>
// go on, you won't find it. The reason why is Clang<br>
// has its own versions of std* which are installed under<br>
// /usr/local/lib/clang/<version>/include/<br>
// See somewhere around Driver.cpp:77 to see Clang adding<br>
// its version of the headers to its include path.<br>
<br>
you're using the gcc include path, and i've always used the clang path instead.<br>
<br>
cheers,<br>
sam<br>
<div class=""><br>
Sam Parker<br>
Research Student<br>
Electronic Systems Design Group<br>
Loughborough University<br>
UK<br>
<br>
________________________________________<br>
</div><div class="">From: <a href="mailto:cfe-dev-bounces@cs.uiuc.edu">cfe-dev-bounces@cs.uiuc.edu</a> [<a href="mailto:cfe-dev-bounces@cs.uiuc.edu">cfe-dev-bounces@cs.uiuc.edu</a>] on behalf of Xiuxia [<a href="mailto:zhangxiuxia1@gmail.com">zhangxiuxia1@gmail.com</a>]<br>
</div>Sent: 22 April 2014 00:30<br>
To: <a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<div class="">Subject: Re: [cfe-dev] OpenCL : invalid operands to binary expression<br>
<br>
Hi Sam,<br>
</div><div><div class="h5"> Thanks for your reply and suggestions.<br>
I followed your suggestion, and add necessary source code to CI_opencl.cpp<br>
and input file. However there are same problems.<br>
<br>
<br>
Here is my input file(atom_kernel.h) and clang consumer file(CI_opencl.cpp)<br>
and error output (error.output). Makefile is the same.<br>
<br>
almost the same error. Compiler still complain types and sse instructions<br>
missing.<br>
<br>
<br>
Thanks,<br>
Xiuxia<br>
<br>
<br>
On Mon, Apr 21, 2014 at 4:40 PM, Sam Parker [via Clang Developers] <<br>
<a href="mailto:ml-node%2Bs42468n4038933h96@n3.nabble.com">ml-node+s42468n4038933h96@n3.nabble.com</a>> wrote:<br>
<br>
> Hi,<br>
><br>
> Ok, I though you were just trying to compile on the command line...<br>
> Haven't checked this, but something along like this should work:<br>
><br>
> Invocation->setLangDefaults(langOpts,<br>
> clang::IK_CXX,<br>
> // change to clang::IK_OpenCL<br>
> clang::LangStandard::lang_opencl);<br>
><br>
> And grab the opencl header files from <a href="http://libclc.llvm.org" target="_blank">libclc.llvm.org</a> and add these to<br>
> your search path:<br>
> hso->AddPath("/path/to/libclc/headers", clang::frontend::Angled, false,<br>
> false);<br>
><br>
> and you'll also have to enable the storage classes:<br>
> ci.getPreprocessorOpts().addMacroDef("cl_clang_storage_class_specifiers");<br>
><br>
> good luck,<br>
> Sam<br>
><br>
> Sam Parker<br>
> Research Student<br>
> Electronic Systems Design Group<br>
> Loughborough University<br>
> UK<br>
><br>
> ________________________________________<br>
</div></div>> From: [hidden email]<<a href="http://user/SendEmail.jtp?type=node&node=4038933&i=0" target="_blank">http://user/SendEmail.jtp?type=node&node=4038933&i=0</a>>[[hidden<br>
> email] <<a href="http://user/SendEmail.jtp?type=node&node=4038933&i=1" target="_blank">http://user/SendEmail.jtp?type=node&node=4038933&i=1</a>>] on behalf<br>
> of Xiuxia [[hidden email]<<a href="http://user/SendEmail.jtp?type=node&node=4038933&i=2" target="_blank">http://user/SendEmail.jtp?type=node&node=4038933&i=2</a>>]<br>
<div class="">><br>
> Sent: 21 April 2014 17:20<br>
</div>> To: [hidden email] <<a href="http://user/SendEmail.jtp?type=node&node=4038933&i=3" target="_blank">http://user/SendEmail.jtp?type=node&node=4038933&i=3</a>><br>
<div><div class="h5">> Subject: Re: [cfe-dev] OpenCL : invalid operands to binary expression<br>
><br>
> Hi Sam,<br>
> I am using clang3.4 version.<br>
> My makefile is<br>
><br>
> CXX := clang++<br>
> LLVMCOMPONENTS := cppbackend<br>
> RTTIFLAG := -fno-rtti<br>
> LLVMCONFIG := /sandbox/xiuxia/llvm_build/Debug+Asserts/bin/llvm-config<br>
><br>
> CXXFLAGS := -I$(shell $(LLVMCONFIG) --src-root)/tools/clang/include<br>
> -I$(shell $(LLVMCONFIG) --obj-root)/tools/clang/include $(shell<br>
> $(LLVMCONFIG) --cxxflags) $(RTTIFLAG)<br>
> LLVMLDFLAGS := $(shell $(LLVMCONFIG) --ldflags --libs $(LLVMCOMPONENTS))<br>
><br>
> SOURCES = CI_opencl.cpp<br>
><br>
> OBJECTS = $(SOURCES:.cpp=.o)<br>
> EXES = $(OBJECTS:.o=)<br>
> CLANGLIBS = \<br>
> -lclangTooling\<br>
> -lclangFrontendTool\<br>
> -lclangFrontend\<br>
> -lclangDriver\<br>
> -lclangSerialization\<br>
> -lclangCodeGen\<br>
> -lclangParse\<br>
> -lclangSema\<br>
> -lclangStaticAnalyzerFrontend\<br>
> -lclangStaticAnalyzerCheckers\<br>
> -lclangStaticAnalyzerCore\<br>
> -lclangAnalysis\<br>
> -lclangARCMigrate\<br>
> -lclangRewriteFrontend\<br>
> -lclangRewriteCore\<br>
> -lclangEdit\<br>
> -lclangAST\<br>
> -lclangLex\<br>
> -lclangBasic\<br>
> $(shell $(LLVMCONFIG) --libs)\<br>
> -lcurses<br>
><br>
> all: $(OBJECTS) $(EXES)<br>
><br>
> %: %.o<br>
> $(CXX) -o $@ $< $(CLANGLIBS) $(LLVMLDFLAGS)<br>
><br>
><br>
> Here is my source file : I put it on the attachment. CI_opencl.cpp<br>
> <<a href="http://clang-developers.42468.n3.nabble.com/file/n4038913/CI_opencl.cpp" target="_blank">http://clang-developers.42468.n3.nabble.com/file/n4038913/CI_opencl.cpp</a>><br>
><br>
><br>
><br>
><br>
><br>
> -----<br>
> Good good study, day day up<br>
> --<br>
> View this message in context:<br>
> <a href="http://clang-developers.42468.n3.nabble.com/OpenCL-invalid-operands-to-binary-expression-tp4038893p4038913.html" target="_blank">http://clang-developers.42468.n3.nabble.com/OpenCL-invalid-operands-to-binary-expression-tp4038893p4038913.html</a><br>
><br>
> Sent from the Clang Developers mailing list archive at Nabble.com.<br>
> _______________________________________________<br>
> cfe-dev mailing list<br>
</div></div>> [hidden email] <<a href="http://user/SendEmail.jtp?type=node&node=4038933&i=4" target="_blank">http://user/SendEmail.jtp?type=node&node=4038933&i=4</a>><br>
<div class="">> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
> _______________________________________________<br>
> cfe-dev mailing list<br>
</div>> [hidden email] <<a href="http://user/SendEmail.jtp?type=node&node=4038933&i=5" target="_blank">http://user/SendEmail.jtp?type=node&node=4038933&i=5</a>><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
><br>
><br>
> ------------------------------<br>
<div class="">> If you reply to this email, your message will be added to the discussion<br>
> below:<br>
><br>
> <a href="http://clang-developers.42468.n3.nabble.com/OpenCL-invalid-operands-to-binary-expression-tp4038893p4038933.html" target="_blank">http://clang-developers.42468.n3.nabble.com/OpenCL-invalid-operands-to-binary-expression-tp4038893p4038933.html</a><br>
> To unsubscribe from OpenCL : invalid operands to binary expression, click<br>
</div>> here<<a href="http://clang-developers.42468.n3.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4038893&code=emhhbmd4aXV4aWExQGdtYWlsLmNvbXw0MDM4ODkzfC0xNzc0MzY4MDE0" target="_blank">http://clang-developers.42468.n3.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4038893&code=emhhbmd4aXV4aWExQGdtYWlsLmNvbXw0MDM4ODkzfC0xNzc0MzY4MDE0</a>><br>
> .<br>
> NAML<<a href="http://clang-developers.42468.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml" target="_blank">http://clang-developers.42468.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml</a>><br>
><br>
<br>
<br>
<br>
--<br>
<br>
*Zhang XiuxiaInstitute of Computing Techonology Chinese Academy of<br>
Sciences*<br>
<br>
<br>
CI_opencl.cpp (9K) <<a href="http://clang-developers.42468.n3.nabble.com/attachment/4038936/0/CI_opencl.cpp" target="_blank">http://clang-developers.42468.n3.nabble.com/attachment/4038936/0/CI_opencl.cpp</a>><br>
atom_kernel.h (3K) <<a href="http://clang-developers.42468.n3.nabble.com/attachment/4038936/1/atom_kernel.h" target="_blank">http://clang-developers.42468.n3.nabble.com/attachment/4038936/1/atom_kernel.h</a>><br>
error.output (2M) <<a href="http://clang-developers.42468.n3.nabble.com/attachment/4038936/2/error.output" target="_blank">http://clang-developers.42468.n3.nabble.com/attachment/4038936/2/error.output</a>><br>
<div class=""><br>
<br>
<br>
<br>
-----<br>
Good good study, day day up<br>
--<br>
</div>View this message in context: <a href="http://clang-developers.42468.n3.nabble.com/Re-OpenCL-invalid-operands-to-binary-expression-tp4038936.html" target="_blank">http://clang-developers.42468.n3.nabble.com/Re-OpenCL-invalid-operands-to-binary-expression-tp4038936.html</a><br>
<div class="">Sent from the Clang Developers mailing list archive at Nabble.com.<br>
_______________________________________________<br>
cfe-dev mailing list<br>
</div><a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a></blockquote></div><br><br clear="all"><div><br></div>-- <br><i>Zhang Xiuxia<br>Institute of Computing Techonology Chinese Academy of Sciences</i><br>
<br>
</div>