summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Get rid of 'this' adjustments from the FinalOverriders class since they can ↵Anders Carlsson2010-02-241-34/+0
| | | | | | be different for the same overrider in different parts of the vtable. llvm-svn: 97068
* Improve this adjustment pointer calculation.Anders Carlsson2010-02-241-5/+16
| | | | llvm-svn: 97067
* Make ComputeThisAdjustmentBaseOffset public for now.Anders Carlsson2010-02-241-7/+8
| | | | llvm-svn: 97066
* Check for comparisons of +/- zero when optimizing less-than-or-equal andBob Wilson2010-02-242-22/+47
| | | | | | | | greater-than-or-equal SELECT_CCs to NEON vmin/vmax instructions. This is only allowed when UnsafeFPMath is set or when at least one of the operands is known to be nonzero. llvm-svn: 97065
* Make getTypeSizeInBits work correctly for array types; it should returnDan Gohman2010-02-246-20/+106
| | | | | | | | | | | | | | | the number of value bits, not the number of bits of allocation for in-memory storage. Make getTypeStoreSize and getTypeAllocSize work consistently for arrays and vectors. Fix several places in CodeGen which compute offsets into in-memory vectors to use TargetData information. This fixes PR1784. llvm-svn: 97064
* Add test case for PR6141, which was fixed a few days agoDouglas Gregor2010-02-241-0/+27
| | | | llvm-svn: 97063
* Add test for AST importing of C++ namespaces, missing from a prior commitDouglas Gregor2010-02-243-0/+40
| | | | llvm-svn: 97062
* Add PCH test for C++ namespaces, missing from a previous commitDouglas Gregor2010-02-242-0/+27
| | | | llvm-svn: 97061
* Retain source information for the "type-name ::" in aDouglas Gregor2010-02-243-11/+50
| | | | | | | | pseudo-destructor expression such as p->T::~T() llvm-svn: 97060
* convert cycle checker to smallptrset, add comments and make itChris Lattner2010-02-241-20/+20
| | | | | | more elegant. llvm-svn: 97059
* ActOnPseudoDestructorExpr now performs all semantic analysis forDouglas Gregor2010-02-248-64/+312
| | | | | | | | | | | | | | | | pseudo-destructor expressions, and builds the CXXPseudoDestructorExpr node directly. Currently, this only affects pseudo-destructor expressions when they are parsed, but not after template instantiation. That's coming next... Improve parsing of pseudo-destructor-names. When parsing the nested-name-specifier and we hit the sequence of tokens X :: ~, query the actual module to determine whether X is a type-name (in which case the X :: is part of the pseudo-destructor-name but not the nested-name-specifier) or not (in which case the X :: is part of the nested-name-specifier). llvm-svn: 97058
* revert david's patch which does not even build.Chris Lattner2010-02-241-4/+4
| | | | llvm-svn: 97057
* Use a SmallPtrSet as suggested by Chris.David Greene2010-02-241-4/+4
| | | | llvm-svn: 97056
* Fix an iterator-invalidation bug that was causing selfhost errorsJohn McCall2010-02-241-10/+6
| | | | | | | on non-darwin platforms. Fixes PR6411. Test case doesn't reduce, unfortunately. llvm-svn: 97055
* Adding function "lookupGCCName" to MBlazeIntrinsicInfoWesley Peck2010-02-245-13/+17
| | | | | | | | | | | Adding the function "lookupGCCName" to the MBlazeIntrinsicInfo class to support the Clang MicroBlaze target. Additionally, minor fixes which remove some unused PIC code (PIC is not supported yet in the MicroBlaze backend) and removed some unused variables. llvm-svn: 97054
* contract movechild+checktype into a new checkchild node, shrinking theChris Lattner2010-02-245-5/+66
| | | | | | x86 table by 1200 bytes. llvm-svn: 97053
* Added Vector Swap (VSWPd and VSWPq) instructions for disassembly only.Johnny Chen2010-02-241-0/+8
| | | | | | A8.6.405 llvm-svn: 97052
* split the movechild/record/moveparent -> recordchild optzn into aChris Lattner2010-02-241-16/+22
| | | | | | | | movechild/record -> recordchild/movechild and movechild/moveparent -> noop xforms. This slightly shrinks the tables (x86 to 117454) and enables adding future improvements. llvm-svn: 97051
* ConstantFoldInstOperands can theoretically return null if itDan Gohman2010-02-241-2/+3
| | | | | | didn't fold anything. llvm-svn: 97049
* Simplify this code; these casts aren't necessary.Dan Gohman2010-02-241-12/+4
| | | | llvm-svn: 97048
* emit a histogram of the opcodes in comments.Chris Lattner2010-02-241-2/+59
| | | | llvm-svn: 97047
* Stay away from str <undef> in ARMLoadStoreOpt. This pass does not understandJakob Stoklund Olesen2010-02-241-1/+9
| | | | | | | <undef> operands, and can cause scavenger failures when it translates <kill,undef> to <kill>. llvm-svn: 97046
* Rework parsing of pseudo-destructor expressions and explicitDouglas Gregor2010-02-247-27/+373
| | | | | | | | | | | | | | | | | | | | | | | | | | | | destructor calls, e.g., p->T::~T We now detect when the member access that we've parsed, e.g., p-> or x. may be a pseudo-destructor expression, either because the type of p or x is a scalar or because it is dependent (and, therefore, may become a scalar at template instantiation time). We then parse the pseudo-destructor grammar specifically: ::[opt] nested-name-specifier[opt] type-name :: ∼ type-name and hand those results to a new action, ActOnPseudoDestructorExpr, which will cope with both dependent member accesses of destructors and with pseudo-destructor expressions. This commit affects the parsing of pseudo-destructors, only; the semantic actions still go through the semantic actions for member access expressions. That will change soon. llvm-svn: 97045
* Fixed typo of opcodestr, should be "vst1", not "vld1".Johnny Chen2010-02-241-9/+9
| | | | llvm-svn: 97044
* Convert a few more backedge-taken count functions to use BackedgeTakenInfo.Dan Gohman2010-02-242-17/+16
| | | | llvm-svn: 97042
* Speculatively revert r97011, "Re-apply 96540 and 96556 with fixes.", again inDaniel Dunbar2010-02-248-185/+35
| | | | | | the hopes of fixing PPC bootstrap. llvm-svn: 97040
* Generate correct vcall offsets when we have a primary virtual base that is ↵Anders Carlsson2010-02-242-7/+61
| | | | | | not a primary base in the complete class hierarchy. llvm-svn: 97039
* References to const int parameters with ICE default arguments are not ICEs.John McCall2010-02-242-2/+14
| | | | | | Fixes PR6373. llvm-svn: 97037
* Reapply r97010, the speculative revert failed.Daniel Dunbar2010-02-244-50/+37
| | | | llvm-svn: 97036
* Make this test portable to ABIs that use sret.John McCall2010-02-241-1/+1
| | | | llvm-svn: 97035
* lets not break the old isel.Chris Lattner2010-02-241-1/+0
| | | | llvm-svn: 97034
* Since the new instruction selector now works, I don't need to keepChris Lattner2010-02-242-8/+7
| | | | | | | | the old one around for comparative purposes: have the ENABLE_NEW_ISEL #define (which is not enabled on mainline) stop emitting the old isel at all, yay for build time win. llvm-svn: 97033
* Fix test case and convert fully to FileCheck.John McCall2010-02-241-6/+6
| | | | llvm-svn: 97032
* implement a simple proof-of-concept optimization forChris Lattner2010-02-246-8/+92
| | | | | | | | the new isel: fold movechild+record+moveparent into a single recordchild N node. This shrinks the X86 table from 125443 to 117502 bytes. llvm-svn: 97031
* Canonicalize parameter and return types before computing ABI info. EliminatesJohn McCall2010-02-246-72/+91
| | | | | | | | | | | a common source of oddities and, in theory, removes some redundant ABI computations. Also fixes a miscompile I introduced yesterday by refactoring some code and causing a slightly different code path to be taken that didn't perform *parameter* type canonicalization, just normal type canonicalization; this in turn caused a bit of ABI code to misfire because it was looking for 'double' or 'float' but received 'const float'. llvm-svn: 97030
* The new isel passes all tests, time to start making it go fast.Chris Lattner2010-02-244-3/+29
| | | | | | | Also add an easy macro at the top of DAGISelEmitter.cpp to enable it. Lets see if I can avoid accidentally turning it on :) llvm-svn: 97029
* Add svn:ignore properties.Dan Gohman2010-02-240-0/+0
| | | | llvm-svn: 97028
* Speculatively revert r97010, "Add an argument to PHITranslateValue to specifyDaniel Dunbar2010-02-244-37/+50
| | | | | | the DominatorTree. ...", in hopes of restoring poor old PPC bootstrap. llvm-svn: 97027
* When forming SSE min and max nodes for UGE and ULE comparisons, it'sDan Gohman2010-02-246-23/+547
| | | | | | | | | | | necessary to swap the operands to handle NaN and negative zero properly. Also, reintroduce logic for checking for NaN conditions when forming SSE min and max instructions, fixed to take into consideration NaNs and negative zeros. This allows forming min and max instructions in more cases. llvm-svn: 97025
* Fix indentation.Dan Gohman2010-02-241-10/+10
| | | | llvm-svn: 97024
* Change the scheduler from adding nodes in allnodes orderChris Lattner2010-02-245-109/+18
| | | | | | | | | | | | | | | | | | to adding them in a determinstic order (bottom up from the root) based on the structure of the graph itself. This updates tests for some random changes, interesting bits: CodeGen/Blackfin/promote-logic.ll no longer crashes. I have no idea why, but that's good right? CodeGen/X86/2009-07-16-LoadFoldingBug.ll also fails, but now compiles to have one fewer constant pool entry, making the expected load that was being folded disappear. Since it is an unreduced mass of gnast, I just removed it. This fixes PR6370 llvm-svn: 97023
* Remove an unused variable. Was this intentional?Chandler Carruth2010-02-241-1/+0
| | | | llvm-svn: 97022
* The new isel was not properly handling patterns that coveredChris Lattner2010-02-245-15/+112
| | | | | | | | | internal nodes with flag results. Record these with a new OPC_MarkFlagResults opcode and use this to update the interior nodes' flag results properly. This fixes CodeGen/X86/i256-add.ll with the new isel. llvm-svn: 97021
* Add comments.Zhongxing Xu2010-02-241-0/+2
| | | | llvm-svn: 97020
* add node #'s to debug dumps.Chris Lattner2010-02-241-3/+3
| | | | llvm-svn: 97019
* Added for disassembly VST1 (multiple single elements) which stores elements toJohnny Chen2010-02-241-0/+35
| | | | | | | | | memory from three or four registers and VST2 (multiple two-element structures) which stores to memory from two double-spaced registers. A8.6.391 & A8.6.393 llvm-svn: 97018
* Changed the table generator so that the X86Sean Callanan2010-02-241-3/+4
| | | | | | disassembler never recognizes InitReg instructions. llvm-svn: 97017
* Disable one test case because of the inconsistent results it is giving onTed Kremenek2010-02-241-1/+3
| | | | | | Windows and Mac OS X. Will investigate later. llvm-svn: 97016
* When we encounter a function-specific attribute in a declaration specifier,Charles Davis2010-02-242-5/+13
| | | | | | | apply it only to the function itself, and never to the return type. Fixes part of PR6408. llvm-svn: 97015
* Always add CallExpr as block-level expression. Inline-based interproceduralZhongxing Xu2010-02-243-5/+5
| | | | | | analysis needs this. llvm-svn: 97014
OpenPOWER on IntegriCloud