summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* CellSPU:Scott Michel2009-01-2110-133/+320
| | | | | | | | | | | | | - Ensure that (operation) legalization emits proper FDIV libcall when needed. - Fix various bugs encountered during llvm-spu-gcc build, along with various cleanups. - Start supporting double precision comparisons for remaining libgcc2 build. Discovered interesting DAGCombiner feature, which is currently solved via custom lowering (64-bit constants are not legal on CellSPU, but DAGCombiner insists on inserting one anyway.) - Update README. llvm-svn: 62664
* Allow targets to legalize operations (with illegal operands) that produces ↵Sanjiv Gupta2009-01-216-68/+102
| | | | | | multiple values. For example, a load with an illegal operand (a load produces two values, a value and chain). llvm-svn: 62663
* Don't look up decls with no name (such as parameters and unnamed tagged types),Chris Lattner2009-01-211-13/+15
| | | | | | this removes 4266 calls to LookupDecl. llvm-svn: 62662
* Favors generating "not" over "xor -1". For example.Evan Cheng2009-01-212-1/+4
| | | | | | | | | | | | | | | | | unsigned test(unsigned a) { return ~a; } llvm used to generate: movl $4294967295, %eax xorl 4(%esp), %eax Now it generates: movl 4(%esp), %eax notl %eax It's 3 bytes shorter. llvm-svn: 62661
* Disable on x86_64 until I figure out what's wrong.Dale Johannesen2009-01-211-0/+1
| | | | llvm-svn: 62660
* ccc: Implement file & path searching.Daniel Dunbar2009-01-214-40/+64
| | | | | | | | - Toolchain is responsible for providing list of prefixes to search. - Implement -print-file-name=xxx and -print-prog-name=xxx driver options. llvm-svn: 62659
* Fix more bugs I discoveredAnders Carlsson2009-01-212-5/+21
| | | | llvm-svn: 62656
* Updated checker build.Ted Kremenek2009-01-211-1/+1
| | | | llvm-svn: 62655
* ccc: Add --analyze test case.Daniel Dunbar2009-01-211-0/+7
| | | | llvm-svn: 62654
* ccc: Add --analyze driver mode (for running static analyzer).Daniel Dunbar2009-01-218-10/+66
| | | | | | | | | | | - For now forces generation of plist files, need to think about the right interface. - Changed -fsyntax-only mode to be its own phase (more consistent). - Add -WA, for passing options verbatim to analyzer. llvm-svn: 62649
* Static Analyzer: When generating plists for errors reports, generate one ↵Ted Kremenek2009-01-213-68/+90
| | | | | | plist file per translation unit that contains all of the diagnostics. llvm-svn: 62647
* Commented objective-c's metadata types. Minor clean up.Fariborz Jahanian2009-01-211-5/+89
| | | | | | No change in functionality. llvm-svn: 62646
* Make special cases (0 inf nan) work for frem.Dale Johannesen2009-01-215-38/+384
| | | | | | | | Besides APFloat, this involved removing code from two places that thought they knew the result of frem(0., x) but were wrong. llvm-svn: 62645
* Convert expressions over to Sebastian's spiffy ASTContext::new() operator.Steve Naroff2009-01-211-113/+106
| | | | | | No functionality change. llvm-svn: 62640
* Be more aggressive about renumbering vregs after splitting them.Owen Anderson2009-01-212-4/+8
| | | | llvm-svn: 62639
* Encode member accessibility.Devang Patel2009-01-212-2/+6
| | | | llvm-svn: 62638
* ccc: Unbreak -pipe handling broken in previous refactoring.Daniel Dunbar2009-01-212-3/+5
| | | | llvm-svn: 62637
* Fix: <rdar://problem/6510344> [pth] PTH slows down regular lexer ↵Ted Kremenek2009-01-205-47/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | considerably (when it has substantial work) Changes to IdentifierTable: - High-level summary: StringMap never owns IdentifierInfos. It just references them. - The string map now has StringMapEntry<IdentifierInfo*> instead of StringMapEntry<IdentifierInfo>. The IdentifierInfo object is allocated using the same bump pointer allocator as used by the StringMap. Changes to IdentifierInfo: - Added an extra pointer to point to the StringMapEntry<IdentifierInfo*> in the string map. This pointer will be null if the IdentifierInfo* is *only* used by the PTHLexer (that is it isn't in the StringMap). Algorithmic changes: - Non-PTH case: IdentifierInfo::get() will always consult the StringMap first to see if we have an IdentifierInfo object. If that StringMapEntry references a null pointer, we allocate a new one from the BumpPtrAllocator and update the reference in the StringMapEntry. - PTH case: We do the same lookup as with the non-PTH case, but if we don't get a hit in the StringMap we do a secondary lookup in the PTHManager for the IdentifierInfo. If we don't find an IdentifierInfo we create a new one as in the non-PTH case. If we do find and IdentifierInfo in the PTHManager, we update the StringMapEntry to refer to it so that the IdentifierInfo will be found on the next StringMap lookup. This way we only do a binary search in the PTH file at most once for a given IdentifierInfo. This greatly speeds things up for source files containing a non-trivial amount of code. Performance impact: While these changes do add some extra indirection in IdentifierTable to access an IdentifierInfo*, I saw speedups even in the non-PTH case as well. Non-PTH: For -fsyntax-only on Cocoa.h, we see a 6% speedup. PTH (with Cocoa.h in token cache): 11% speedup. I also did an experiment where we did -fsyntax-only on a source file including a large header and Cocoa.h, but the token cache did not contain the larger header. For this file, we were seeing a performance *regression* when using PTH of 3% over non-PTH. Now we are seeing a performance improvement of 9%! Tests: The serialization tests are now failing. I looked at this extensively, and I my belief is that this change is unmasking a bug rather than introducing a new one. I have disabled the serialization tests for now. llvm-svn: 62636
* Add -analyze action to run static analyzer, instead of inferring fromDaniel Dunbar2009-01-2040-51/+50
| | | | | | individual checker options. llvm-svn: 62634
* Appropriately mark fowrad decls.Devang Patel2009-01-203-12/+18
| | | | llvm-svn: 62625
* Need compile unit to find location.Devang Patel2009-01-201-2/+2
| | | | llvm-svn: 62624
* Provide a placement new taking an ASTContext argument.Sebastian Redl2009-01-202-10/+47
| | | | | | | This allows more concise syntax when allocating an object using the ASTContext's allocator. Convert a few allocations to this operator to for test purposes. llvm-svn: 62623
* Calls to fmod, it turns out, are constant-folded byDale Johannesen2009-01-201-6/+4
| | | | | | | | invoking the host fmod, not by lowering to frem and constant-folding that. Fix this so it tests what I want to test. llvm-svn: 62622
* Fix ccclib building when building in a separate build tree.Mike Stump2009-01-201-7/+7
| | | | llvm-svn: 62621
* Fix some errors I noticedAnders Carlsson2009-01-201-4/+4
| | | | llvm-svn: 62620
* Don't bother running the assembler, we don't know that it will be configuredChris Lattner2009-01-201-1/+1
| | | | | | for whatever llc defaults to. This fixes PR3363 llvm-svn: 62619
* ccc: Allow downstream tools to be aware of final output name.Daniel Dunbar2009-01-203-109/+121
| | | | | | | | | | | | | - This is a hack to allow the Darwin linker to get -final_output when doing universal builds; the mechanism should be generalized. - Handle multiple redundant -arch arguments correctly. - Forward -arch_multiple and -final_output to gcc when necessary. - Simplified implementation of derived gcc tools. llvm-svn: 62618
* Fix PR3243: a LiveVariables bug. When HandlePhysRegKill is checking whether ↵Evan Cheng2009-01-203-14/+31
| | | | | | the last reference is also the last def (i.e. dead def), it should also check if last reference is the current machine instruction being processed. This can happen when it is processing a physical register use and setting the current machine instruction as sub-register's last ref. llvm-svn: 62617
* Fix typo. Patch by Alexei Svitkine.Duncan Sands2009-01-201-1/+1
| | | | llvm-svn: 62616
* Use "SINT_TO_FP" instead of "UINT_TO_FP" when getting the exponent. This wasBill Wendling2009-01-201-12/+13
| | | | | | | causing the limited precision stuff to produce the wrong result for values in the range [0, 1). llvm-svn: 62615
* Fix make test when configuring for a seperate build directory.Mike Stump2009-01-201-0/+8
| | | | llvm-svn: 62614
* Fix a crash Anders' was seeing due to free'ing an invalid pointerChris Lattner2009-01-202-12/+12
| | | | | | caused by my previous commit. llvm-svn: 62613
* Convert more exprs to use ASTContext's Allocator.Steve Naroff2009-01-201-11/+18
| | | | | | | | When using a BumpPtrAllocator, this reduces malloc overhead from 2.2->1.9% (for Cocoa.h). At this point, malloc() has dropped the fourth most expensive routine (behind Preprocessor::HandleIdentifier()). llvm-svn: 62612
* Use the ASTContext's allocator for FunctionTypeNoProto and TypeOfExprDouglas Gregor2009-01-201-2/+4
| | | | llvm-svn: 62611
* Fix struct member's debug info.Devang Patel2009-01-201-7/+24
| | | | llvm-svn: 62610
* Improvements to Sema of asm statements. Fixes <rdar://problem/6156893>Anders Carlsson2009-01-203-9/+31
| | | | llvm-svn: 62609
* Detailed documentation for encoding of properties and a test Fariborz Jahanian2009-01-202-1/+65
| | | | | | case. llvm-svn: 62607
* Allocate expresssions through ASTContext (still more work to do).Steve Naroff2009-01-203-23/+66
| | | | | | Add debug hook to DeclContext. llvm-svn: 62605
* Add test case for PR3154.Evan Cheng2009-01-201-0/+104
| | | | llvm-svn: 62604
* indentation...Devang Patel2009-01-201-5/+5
| | | | llvm-svn: 62603
* Need only one set of debug info versions enum.Devang Patel2009-01-205-28/+19
| | | | llvm-svn: 62602
* Improving on encoding of objective-c's property types. More to come.Fariborz Jahanian2009-01-203-11/+67
| | | | llvm-svn: 62601
* Change TargetInstrInfo::isMoveInstr to return source and destination ↵Evan Cheng2009-01-2032-127/+161
| | | | | | sub-register indices as well. llvm-svn: 62600
* Optimize Declarator to avoid malloc/free traffic for the argument list of aChris Lattner2009-01-205-49/+85
| | | | | | | | | | | | | | | | function DeclaratorChunk in common cases. This uses a fixed array in Declarator when it is small enough for the first function declarator chunk in a declarator. This eliminates all malloc/free traffic from DeclaratorChunk::getFunction when running on Cocoa.h except for five functions: signal/bsd_signal/sigset, which have multiple Function DeclChunk's, and CFUUIDCreateWithBytes/CFUUIDGetConstantUUIDWithBytes, which take more than 16 arguments. This patch was pair programmed with Steve. llvm-svn: 62599
* zap white spaces.Devang Patel2009-01-201-56/+48
| | | | llvm-svn: 62598
* Fix global variable's address in a DIE.Devang Patel2009-01-201-1/+1
| | | | llvm-svn: 62596
* Enable debug info for enums.Devang Patel2009-01-201-10/+14
| | | | llvm-svn: 62594
* Add an IEEE remainder function, which is notDale Johannesen2009-01-202-1/+42
| | | | | | | | fully implemented yet and not used. This is mainly to clarify that APFloat::mod implements C fmod, not remainder. llvm-svn: 62593
* improve compatibility with various versions of graphviz, patch byChris Lattner2009-01-201-1/+1
| | | | | | Patrick Boettcher! llvm-svn: 62592
* eliminate use of uint32_t to improve compatibility with cygwinChris Lattner2009-01-201-76/+76
| | | | llvm-svn: 62591
OpenPOWER on IntegriCloud