summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* minor speedups/cleanups for -E mode.Chris Lattner2009-01-261-8/+11
| | | | llvm-svn: 63029
* This change refactors some of the low-level lexer interfaces a bit.Chris Lattner2009-01-2615-112/+153
| | | | | | | | | | | | | Token now has a class of kinds for "literals", which include numeric constants, strings, etc. These tokens can optionally have a pointer to the start of the token in the lexer buffer. This makes it faster to get spelling and do other gymnastics, because we don't have to go through source locations. This change is performance neutral, but will make other changes more feasible down the road. llvm-svn: 63028
* ABITestGen: Add generation of vector types.Daniel Dunbar2009-01-262-24/+41
| | | | llvm-svn: 63024
* Meta-data for nonfragile-abi's categoriesFariborz Jahanian2009-01-261-2/+51
| | | | llvm-svn: 63020
* make sure we have a definition of uintptr_t.Chris Lattner2009-01-261-0/+1
| | | | llvm-svn: 63019
* Many updates to Windows project files.Steve Naroff2009-01-265-0/+28
| | | | llvm-svn: 63018
* Comment fix.Daniel Dunbar2009-01-261-1/+1
| | | | llvm-svn: 63016
* ccc: -o should not be automatically forwarded to generic gcc tools.Daniel Dunbar2009-01-261-1/+1
| | | | llvm-svn: 63015
* ccc: Recognize -emit-llvm [-S].Daniel Dunbar2009-01-266-16/+50
| | | | | | | - Unlike llvm-gcc, this doesn't yet treat -emit-llvm output as a linker input. llvm-svn: 63014
* start plumbing together the line table information. So far we justChris Lattner2009-01-263-22/+127
| | | | | | unique the Filenames in #line directives, assigning them UIDs. llvm-svn: 63010
* Lazily paging in file contents is a big win for PTH, strip out the oldChris Lattner2009-01-261-20/+2
| | | | | | testing code. llvm-svn: 63006
* Bitmangle file characteristic bits into the low bits of Chris Lattner2009-01-261-10/+12
| | | | | | | | | | the content cache pointer. This saves 105876 bytes on cocoa.h because it shrinks the SLocEntry union, which we have a big array of. It would be nice to use PointerIntPair here, but we can't because it is in a union. llvm-svn: 63004
* add parsing and constraint enforcement for GNU line marker directives.Chris Lattner2009-01-264-40/+173
| | | | llvm-svn: 63003
* Use tag classes instead of typedefs for GDM entries 'ConstNotEq' and ↵Ted Kremenek2009-01-261-29/+33
| | | | | | 'ConstEq'. This avoids collisions in the GDM. llvm-svn: 63002
* add another sanity test.Chris Lattner2009-01-261-0/+4
| | | | llvm-svn: 63001
* a few minor cleanupsChris Lattner2009-01-261-2/+6
| | | | llvm-svn: 63000
* parse and enforce required constraints on #line directives. Right nowChris Lattner2009-01-264-14/+104
| | | | | | we just discard them. llvm-svn: 62999
* added to wrong directoryChris Lattner2009-01-261-0/+0
| | | | llvm-svn: 62997
* an insane macro testcase.Chris Lattner2009-01-261-0/+639
| | | | llvm-svn: 62996
* eagerly resolve the spelling locations of macro argument preexpansions.Chris Lattner2009-01-262-3/+10
| | | | | | | | | | | | | | | This reduces fsyntax-only time on c99-intconst-1.c from 2.43s down to 2.01s (20%), reducing the number of fileid lookups from 2529040 linear and 64771121 binary to 5625902 linear and 4151182 binary. This knocks getFileID down to only 4.6% of compile time on this testcase. At this point, malloc/free is over 35% of compile time, primarily allocating MacroArgs objects and their argument preexpansion vectors. I don't feel like malloc avoiding right now, so I'm just going to call this good. llvm-svn: 62994
* Eagerly resolve the spelling location of the tokens in a definitionChris Lattner2009-01-262-0/+18
| | | | | | | | | | | | of a macro. Since these tokens may themselves be from macro expansions, we need to resolve down to the spelling loc when the macro ends up being instantiated. Instead of resolving this for each token expanded from the macro definition, just do it once when the macro is defined. This speeds up clang on c99-intconst-1.c from 2.66s to 2.43s (9.5%), reducing the FileID lookups from 407244 linear and 114175649 binary to 2529040 linear and 64771121 binary. llvm-svn: 62993
* Only resolve a macro's instantiation loc once per macro, instead of onceChris Lattner2009-01-261-0/+7
| | | | | | | | per token lexed from it. This speeds up clang on c99-intconst-1.c from the GCC testsuite from 3.64s to 2.66s (36%). This reduces the number of binary search FileID lookups from 251570522 to 114175649 on this testcase. llvm-svn: 62992
* PR3269: create an empty InitListExpr as a child for the Eli Friedman2009-01-261-3/+7
| | | | | | CompoundLiteralExpr so that there aren't any null pointers in the AST. llvm-svn: 62981
* Check in the long promised SourceLocation rewrite. This lays theChris Lattner2009-01-2611-429/+516
| | | | | | | | | | ground work for implementing #line, and fixes the "out of macro ID's" problem. There is nothing particularly tricky about the code, other than the very performance sensitive SourceManager::getFileID() method. llvm-svn: 62978
* Update C++ status table with new member pointer conversion capabilities.Sebastian Redl2009-01-261-7/+7
| | | | llvm-svn: 62977
* improve ASTContext::getDeclAlign comment, as suggested by Eli.Chris Lattner2009-01-251-3/+3
| | | | llvm-svn: 62975
* use simpler methodChris Lattner2009-01-251-1/+1
| | | | llvm-svn: 62974
* Implement implicit conversions for pointers-to-member.Sebastian Redl2009-01-257-10/+147
| | | | llvm-svn: 62971
* Introduce an explicit case for member pointers in CodeGenTypes. However, it ↵Sebastian Redl2009-01-251-0/+7
| | | | | | simply asserts. llvm-svn: 62960
* Fix compile error from r62953.Sebastian Redl2009-01-251-1/+2
| | | | llvm-svn: 62959
* One more case for Expr::isConstantInitializer; I think this covers Eli Friedman2009-01-251-0/+2
| | | | | | everything that we aren't intending to implement in Expr::Evaluate. llvm-svn: 62953
* Enhancements to Expr::isConstantInitializer to deal with a few Eli Friedman2009-01-251-6/+25
| | | | | | cases it couldn't deal with before. llvm-svn: 62952
* Rename Expr::isConstantExpr to Expr::isConstantInitializer; this more Eli Friedman2009-01-255-9/+9
| | | | | | | | accurately states what the function is trying to do and how it is different from Expr::isEvaluatable. Also get rid of a parameter that is both unused and inaccurate. llvm-svn: 62951
* Get rid of some code that should be unnecessary.Eli Friedman2009-01-251-52/+0
| | | | llvm-svn: 62950
* Make the constant folder aware of Eli Friedman2009-01-254-3/+21
| | | | | | | __builtin___CFStringMakeConstantString. (We get into trouble in GenerateStaticBlockVarDecl if the constant folder isn't accurate.) llvm-svn: 62949
* Fix the address of a label to be properly considered and emitted as aEli Friedman2009-01-253-0/+12
| | | | | | constant. llvm-svn: 62948
* Fix for PR2100: merge types for variables.Eli Friedman2009-01-242-4/+20
| | | | llvm-svn: 62947
* Correct test; sorry for any inconvenience.Eli Friedman2009-01-241-1/+1
| | | | llvm-svn: 62946
* Compute instaceStart/instanceSize fields of the class_ro_t meta-dataFariborz Jahanian2009-01-241-2/+41
| | | | | | for objc2's non-fragile abi. llvm-svn: 62945
* Make tentative parsing of pointer-to-member decls work, and fix other stuff ↵Sebastian Redl2009-01-244-5/+17
| | | | | | pointed out by Doug. llvm-svn: 62944
* PR3062: statement expressions should be illegal at file scope. I don't Eli Friedman2009-01-243-0/+9
| | | | | | | think this has any significant effects at the moment, but it could matter if we start constant-folding statement expressions like gcc does. llvm-svn: 62943
* Fix for PR2910: implement CodeGen for non-constant offsetof.Eli Friedman2009-01-242-7/+54
| | | | | | Note that there are still other issues in this area; see PR3396. llvm-svn: 62942
* Refactor sizeof handling to use constant folding logic for constant Eli Friedman2009-01-242-41/+24
| | | | | | sizeof expressions. llvm-svn: 62941
* add initial support for the gcc "alignof(decl) is the alignment of the declChris Lattner2009-01-243-5/+39
| | | | | | | not the type" semantics. This can definitely be improved, but is better than what we had. llvm-svn: 62939
* Undo accidental disabling of smart pointers.Sebastian Redl2009-01-241-1/+1
| | | | llvm-svn: 62937
* Implement C99 6.5.3.4p1, rejecting sizeof(bitfield)Chris Lattner2009-01-243-8/+15
| | | | llvm-svn: 62936
* Patch to build class meta-data for each implementation Fariborz Jahanian2009-01-241-9/+44
| | | | | | of class in objc2's nonfragile abi. llvm-svn: 62935
* Add support for declaring pointers to members.Sebastian Redl2009-01-2412-56/+378
| | | | | | Add serialization support for ReferenceType. llvm-svn: 62934
* remove a bunch of alignment handling code out of CGExprScalar, sinceChris Lattner2009-01-241-20/+18
| | | | | | | alignment must always be a constant. Just let the constant folder do it. llvm-svn: 62933
* Improve handling of alignof. alignof(VLA) now works properly for example.Chris Lattner2009-01-241-13/+50
| | | | llvm-svn: 62932
OpenPOWER on IntegriCloud