llvm-project/clang/lib/Basic
Benjamin Kramer 543036a447 SourceManager: Vectorize ComputeLineNumbers for SSE2.
This method is very hot, it is called when emitting diagnostics, in -E mode
and for many #pragma handlers. It scans through the whole source file to
count newlines, records and caches them in a vector.

The speedup from vectorization isn't very large, as we fall back to bytewise
scanning when we hit a newline. There might be a way to avoid leaving the sse
loop but everything I tried didn't work out because a call to push_back
clobbers xmm registers.

About 2% speedup on average on "clang -E > /dev/null" of all .cpp files in
clang's lib/Sema.

llvm-svn: 154204
2012-04-06 20:49:55 +00:00
..
Builtins.cpp Move a method from IdentifierTable.h out of line and remove the SmallString include. 2012-02-04 13:45:25 +00:00
CMakeLists.txt Update CMake dependencies. 2011-12-17 20:08:54 +00:00
ConvertUTF.c When checking the encoding of an 8-bit string literal, don't just check the 2012-03-08 21:59:28 +00:00
Diagnostic.cpp [Basic] Fix up DiagnosticBuilder::{FlushCounts,Emit} to be inline. 2012-03-13 21:02:14 +00:00
DiagnosticIDs.cpp Add new code migrator support for migrating existing Objective-C code to use 2012-03-06 20:06:33 +00:00
FileManager.cpp Basic: import SmallString<> into clang namespace 2012-02-05 02:13:05 +00:00
FileSystemStatCache.cpp Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:48:34 +00:00
IdentifierTable.cpp Fix typo in comment, 'langauge' -> 'language'. 2012-03-11 23:14:21 +00:00
LangOptions.cpp Add a -cc1-level option -fmodule-name=<name>, which will be used when 2011-11-15 19:35:01 +00:00
Makefile Use tabs instead of spaces. 2012-03-02 16:06:37 +00:00
Module.cpp Back out my heinous hack that tricked the module generation mechanism 2012-02-02 18:42:48 +00:00
SourceLocation.cpp Move FullSourceLoc::dump into the .cpp file, the used attribute made us emit this into every TU that includes SourceLocation.h. 2012-02-26 16:55:50 +00:00
SourceManager.cpp SourceManager: Vectorize ComputeLineNumbers for SSE2. 2012-04-06 20:49:55 +00:00
TargetInfo.cpp Add support for bitcasts to vector type in Evaluate. 2011-12-22 03:51:45 +00:00
Targets.cpp Move some MIPS target macro definitions from class Mips32TargetInfoBase 2012-04-05 19:28:31 +00:00
TokenKinds.cpp This patch adds a PUNCTUATOR macro (specialization of TOK) in TokenKinds.def and makes use of it in tok::getTokenSimpleSpelling. 2009-11-28 16:09:28 +00:00
Version.cpp More git-svn compatible version string, by request. 2012-03-07 00:44:24 +00:00
VersionTuple.cpp remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports 2011-07-23 10:55:15 +00:00