[cfe-dev] lib clang reparse translation unit slow depending on how the file has been modified

unitydeveloper alessandro at runpresto.com
Fri Dec 2 11:08:10 PST 2011


Hi all,

I just tried the new trunk version of clang. The bug I previously reported about typing a column in a .m file seems solved, or at least it's not been reproducible yet. Thank you very much for helping with it.

Unfortunately it appears that clang_reparseTranslationUnit() has become much slower in the following condition (reproducible by recompiling the source I sent together with the newest version of lib clang):

Open a .m file.

Try typing inside the scope of a class implementation. This seems fast enough.

Try typing outside the scope of a class implementation, for example in a line below a #import directive. clang_reparseTranslationUnit takes around half a second to complete in this case, exactly as I reported with .h files .

Thanks.

Best regards,
Alessandro


On 2 Dec 2011, at 18:00, cfe-dev-request at cs.uiuc.edu wrote:

> Send cfe-dev mailing list submissions to
> 	cfe-dev at cs.uiuc.edu
> 
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
> or, via email, send a message with subject or body 'help' to
> 	cfe-dev-request at cs.uiuc.edu
> 
> You can reach the person managing the list at
> 	cfe-dev-owner at cs.uiuc.edu
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of cfe-dev digest..."
> 
> 
> Today's Topics:
> 
>   1. Re: Build failure with clang (Douglas Gregor)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Fri, 02 Dec 2011 09:26:17 -0800
> From: Douglas Gregor <dgregor at apple.com>
> Subject: Re: [cfe-dev] Build failure with clang
> To: Sylvestre Ledru <sylvestre at debian.org>
> Cc: cfe-dev at cs.uiuc.edu
> Message-ID: <2BAD8CFB-4ACA-4680-9840-787445045690 at apple.com>
> Content-Type: text/plain; CHARSET=US-ASCII
> 
> 
> On Dec 2, 2011, at 5:04 AM, Sylvestre Ledru wrote:
> 
>> Hello,
>> 
>> I have a build issue with clang 3.0:
>> 
>> llvm[0]: Compiling CGBlocks.cpp for Release build
>> if  clang -I/data/pkg-llvm/clang/plop2/clang-3.0/build-clang/include
>> -I/data/pkg-llvm/clang/plop2/clang-3.0/build-clang/tools/clang/lib/CodeGen -I/data/pkg-llvm/clang/plop2/clang-3.0/llvm-3.0/include -I/data/pkg-llvm/clang/plop2/clang-3.0/tools/clang/lib/CodeGen  -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/data/pkg-llvm/clang/plop2/clang-3.0/tools/clang/lib/CodeGen/../../include -I/data/pkg-llvm/clang/plop2/clang-3.0/build-clang/tools/clang/lib/CodeGen/../../include -DCLANG_VENDOR='"Debian "' -g -O2 -fomit-frame-pointer -fno-exceptions -fno-rtti -fPIC -Woverloaded-virtual -Wcast-qual -fno-strict-aliasing    -pedantic -Wno-long-long -Wall -W -Wno-unused-parameter -Wwrite-strings  -c -MMD -MP -MF "/data/pkg-llvm/clang/plop2/clang-3.0/build-clang/tools/clang/lib/CodeGen/Release/CGBlocks.d.tmp" -MT "/data/pkg-llvm/clang/plop2/clang-3.0/build-clang/tools/clang/lib/CodeGen/Release/CGBlocks.o" -MT "/data/pkg-llvm/clang/plop2/clang-3.0/build-clang/tools/clang/lib/CodeGen/Release/CGBlocks.d" /data/!
> pk!
>> g-llvm/clang/plop2/clang-3.0/tools/clang/lib/CodeGen/CGBlocks.cpp -o /data/pkg-llvm/clang/plop2/clang-3.0/build-clang/tools/clang/lib/CodeGen/Release/CGBlocks.o ; \
>> 	        then /bin/mv -f
>> "/data/pkg-llvm/clang/plop2/clang-3.0/build-clang/tools/clang/lib/CodeGen/Release/CGBlocks.d.tmp" "/data/pkg-llvm/clang/plop2/clang-3.0/build-clang/tools/clang/lib/CodeGen/Release/CGBlocks.d"; else /bin/rm "/data/pkg-llvm/clang/plop2/clang-3.0/build-clang/tools/clang/lib/CodeGen/Release/CGBlocks.d.tmp"; exit 1; fi
>> In file included
>> from /data/pkg-llvm/clang/plop2/clang-3.0/tools/clang/lib/CodeGen/CGBlocks.cpp:15:
>> In file included
>> from /data/pkg-llvm/clang/plop2/clang-3.0/tools/clang/lib/CodeGen/CodeGenFunction.h:28:
>> In file included
>> from /data/pkg-llvm/clang/plop2/clang-3.0/tools/clang/lib/CodeGen/CodeGenModule.h:20:
>> /data/pkg-llvm/clang/plop2/clang-3.0/tools/clang/lib/CodeGen/../../include/clang/AST/DeclCXX.h:1028:8: error: class member cannot be redeclared
>> bool isTriviallyCopyable() const;
>>      ^
>> /data/pkg-llvm/clang/plop2/clang-3.0/tools/clang/lib/CodeGen/../../include/clang/AST/DeclCXX.h:996:8: note: previous declaration is here
>> bool isTriviallyCopyable() const;
>>      ^
>> 1 error generated.
> 
> 
> isTriviallyCopyable() is not declared on line 1028 at all. Are your source files corrupted somehow?
> 
> 	- Doug
> 
> 
> ------------------------------
> 
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
> 
> 
> End of cfe-dev Digest, Vol 54, Issue 11
> ***************************************






More information about the cfe-dev mailing list