aboutsummaryrefslogtreecommitdiff
path: root/Driver
AgeCommit message (Collapse)Author
2009-02-28Adapt help string to what the code is doing (default is lang_gnu99). Thanks ↵Gabor Greif
rdivacky! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65689 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-28Eliminate CXXRecordTypeDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65671 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26Create a new TypeNodes.def file that enumerates all of the types,Douglas Gregor
giving them rough classifications (normal types, never-canonical types, always-dependent types, abstract type representations) and making it far easier to make sure that we've hit all of the cases when decoding types. Switched some switch() statements on the type class over to using this mechanism, and filtering out those things we don't care about. For example, CodeGen should never see always-dependent or non-canonical types, while debug info generation should never see always-dependent types. More switch() statements on the type class need to be moved over to using this approach, so that we'll get warnings when we add a new type then fail to account for it somewhere in the compiler. As part of this, some types have been renamed: TypeOfExpr -> TypeOfExprType FunctionTypeProto -> FunctionProtoType FunctionTypeNoProto -> FunctionNoProtoType There shouldn't be any functionality change... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65591 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26Add -emit-llvm-only option (generate LLVM IR & run passes, but discardDaniel Dunbar
output). - For timing IRgen phase. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65580 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26this got moved to top levelChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65553 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26move this makefile goop up to the top level llvm makefile.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65544 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26Enable export maps also on {Free, Net}BSD.Anton Korobeynikov
Don't ask me, how does this makefile-horribleness even work ;) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65522 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-26Add an export map for clang on Linux.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65504 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-25Add experimental logic in GRExprEngine::EvalEagerlyAssume() to handleTed Kremenek
expressions of the form: 'short x = (y != 10);' While we handle 'int x = (y != 10)' lazily, the cast to another integer type currently loses the symbolic constraint. Eager evaluation of the constraint causes the paths to bifurcate and eagerly evaluate 'y != 10' to a constant of 1 or 0. This should address <rdar://problem/6619921> until we have a better (more lazy approach) for handling promotions/truncations of symbolic integer values. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65480 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-25C99 DR #316 implies that the function parameter types that are knownDouglas Gregor
only from a function definition (that does not have a prototype) are only used to determine the compatible with other declarations of that same function. In particular, when referencing the function we pretend as if it does not have a prototype. Implement this behavior, which fixes PR3626. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65460 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-24PTH: Cache *un-cleaned* spellings for literals instead of cleaned spellings.Ted Kremenek
This allows the PTH file to stay 100% in fidelity with the source code and defines away some weird cosmetic bugs for operations such as '-E' where maintaining knowledge of the original literal representation is useful. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65361 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-24PTH: When emitting tokens for literals with cached spellings, change the tokenTed Kremenek
size to that of the *cleaned* spelling. This way 'getSpelling()' for literals in the Preprocessor just works and doesn't read beyond the bounds of the cached spelling buffer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65354 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-21Put compiler headers in <prefix>/lib/clang/1.0/include (vsDaniel Dunbar
<prefix>/Headers, gross). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65247 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-20Make 'RangeConstraintManager' the default ConstraintManager.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65173 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-20PTH generation: Clear the cleaning bit for literals (whose spellings are ↵Ted Kremenek
cached). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65148 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-20remove some more methods from objc decls, using the iteratorChris Lattner
interfaces more consistently. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65138 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-20remove some slow O(n) methods.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65132 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-20Change ObjCForwardProtocolDecl to use an ObjCList.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65131 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-20move the interace list of @class to use ObjCList.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65129 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-19fix a bug introduced in my previous patch: moving clang headers to theChris Lattner
"after" group instead of the system group makes it so #include <limits.h> picks up the *system* limits.h file before clang's. This causes a failure on linux and is definitely not what we want. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65026 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-19always search for "builtin" headers at the end of the search path,Chris Lattner
and never remap them with -isysroot. This fixes PR3614. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65012 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18don't print codegen time unless -ftime-report was passed.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64928 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18privatize all of the string literal memory allocation/creationChris Lattner
stuff behind a private static function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64898 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18change the StringLiteral AST node to track all of the SourceLocations of Chris Lattner
the various PPTokens that are pasted together to make it. In the course of working on this, I discovered ParseObjCStringLiteral which needs some work. I'll tackle it next. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64892 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18Optimize dyld startup time by specifying a trivial export map Chris Lattner
(only export main) on the mac. This improves DYLD_PRINT_STATISTICS from: total time: 6.0 milliseconds (100.0%) total images loaded: 5 (4 from dyld shared cache, 3 needed no fixups) total segments mapped: 0, into 0 pages with 0 pages pre-fetched total images loading time: 0.0 milliseconds (1.4%) total rebase fixups: 0 total rebase fixups time: 0.0 milliseconds (0.0%) total binding fixups: 7,928 total binding symbol lookups: 4,087, average images searched per symbol: 1.9 total binding fixups time: 4.7 milliseconds (79.2%) total bindings lazily fixed up: 170 of 4,372 total init time time: 1.1 milliseconds (19.2%) total images with weak exports: 2 to: total time: 1.4 milliseconds (100.0%) total images loaded: 5 (4 from dyld shared cache, 4 needed no fixups) total segments mapped: 0, into 0 pages with 0 pages pre-fetched total images loading time: 0.0 milliseconds (5.7%) total rebase fixups: 0 total rebase fixups time: 0.0 milliseconds (0.2%) total binding fixups: 1,079 total binding symbol lookups: 75, average images searched per symbol: 1.0 total binding fixups time: 0.5 milliseconds (33.9%) total bindings lazily fixed up: 14 of 216 total init time time: 0.8 milliseconds (60.0%) total images with weak exports: 1 This reduces the time to -fsyntax-only cocoa.h with PTH from 0.192s to 0.184 (4.3%) rdar://6505315 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64882 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18add a bunch of timers for -E and other modes. This requiresChris Lattner
llvm r64874 or later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64875 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18teach -ftime-report to time the code generator and -emit-llvm times.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64873 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18move llvm backend specific #includes into Backend.cpp instead of Clang.cppChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64872 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18indentation and formattingChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64871 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18clang will hopefully never support ratfor.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64870 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-18wire up a minimal -ftime-report, which prints the optimizer/codegen Chris Lattner
times. Daniel, plz add driver support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64869 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Backend: Accept -mcpu and -mattr for use by TargetMachine.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64798 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17Static Analyzer driver/options (partial) cleanup:Ted Kremenek
- Move all analyzer options logic to AnalysisConsumer.cpp. - Unified specification of stores/constraints/output to be: -analyzer-output=... -analyzer-store=... -analyzer-constraints=... instead of -analyzer-range-constraints, -analyzer-store-basic, etc. - Updated drivers (ccc-analyzer, scan-builds, new ccc) to obey this new interface - Updated test cases to conform to new driver options git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64737 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17add support for -fno-math-errno, and validate that it affects sema properly.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64708 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-17remove extraneous .Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64706 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-16Support IRgen of sqrt -> llvm.sqrt, pow -> llvm.pow.Daniel Dunbar
- Define pow[lf]?, sqrt[lf]? as builtins. - Add -fmath-errno option which binds to LangOptions.MathErrno - Add new builtin flag Builtin::Context::isConstWithoutErrno for functions which can be marked as const if errno isn't respected for math functions. Sema automatically marks these functions as const when they are defined, if MathErrno=0. - IRgen uses const attribute on sqrt and pow library functions to decide if it can use the llvm intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64689 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-16RangeConstraintManager is not on by default.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64638 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-16castToDeclContext/castFromDeclContext are not meant to be used directly; ↵Argyrios Kyrtzidis
they are used indirectly by cast/dyn_cast. All Decl <-> DeclContext casting should be done through cast/dyn_cast. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64631 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-15PR3589: Don't simplify libcalls with -ffreestanding.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64599 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-14Add -ffreestanding to suppress the implicit declaration of library builtins ↵Douglas Gregor
like printf and malloc. Fixes PR3586 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64566 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-14Patch by Ben Laurie:Ted Kremenek
ConstraintManager: - constify getSymVal() BasicConstraintManager: - Pull out logic that would be common to ConstraintManagers of a similar nature and put them in a parent class called 'SimpleConstraintManager'. RangeConstraintManager: - Added a new prototype ConstraintManager to track ranges of variables! This ConstraintManager keeps tracks of ranges of concrete integers that a symbolic integer may have. AnalysisConsumer: - Add driver option to use RangeConstraintManager with GRExprEngine-based analyses. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64558 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-14Fix the build on win32.Cedric Venet
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64556 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-13Fix typo in printing of __private_extern__.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64501 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-13PTH: Cache directory and negative 'stat' calls. This gives us a 1% ↵Ted Kremenek
performance improvement on Cocoa.h (fsyntax-only+PTH). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64490 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-13Add some boilerplate to the PTH file to prepare for the caching of stats for ↵Ted Kremenek
directories (and negative stats too). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64477 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-13AnalysisConsumer: Explicitly destroy the PathDiagnosticClient at the end of ↵Ted Kremenek
HandleTranslationUnit to ensure that the client's destructor is called even with --disable-free. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64422 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-13factor token concatenation avoidance logic out of Chris Lattner
PrintPreprocessedOutput into its own file. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64418 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-12PTH: Cache stat information for files in the PTH file. Hook up FileManagerTed Kremenek
to use this stat information in the PTH file using a 'StatSysCallCache' object. Performance impact (Cocoa.h, PTH): - number of stat calls reduces from 1230 to 425 - fsyntax-only: time improves by 4.2% We can reduce the number of stat calls to almost zero by caching negative stat calls and directory stat calls in the PTH file as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64353 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-12for now, disable all debug info generation at -O1 and above. This mirrorsChris Lattner
similar logic in llvm-gcc and will hopefully be fixed soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64349 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-11PTH: Have meta data be at the beginning of the PTH file, not the end.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64338 91177308-0d34-0410-b5e6-96231b3b80d8