summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* From Chris' review: use cast instead of dyn_cast with an assert.Dan Gohman2008-02-111-8/+4
| | | | llvm-svn: 46962
* From Chris' review: fix 80 column violationsDan Gohman2008-02-111-5/+10
| | | | llvm-svn: 46961
* If the LHS of the comparison is a loop-invariant we also want to move it Wojciech Matyjewicz2008-02-111-2/+2
| | | | | | | | to the RHS. This simple change allows to compute loop iteration count for loops with condition similar to the one in the testcase (which seems to be quite common). llvm-svn: 46959
* Added "Profile" method to APFloat for use with FoldingSet.Ted Kremenek2008-02-113-14/+9
| | | | | | | | | | Added member template "Add" to FoldingSetNodeID that allows "adding" arbitrary objects to a profile via dispatch to FoldingSetTrait<T>::Profile(). Removed FoldingSetNodeID::AddAPFloat and FoldingSetNodeID::APInt, as their functionality is now replaced using the above mentioned member template. llvm-svn: 46957
* Fix PR1798 - an error in the evaluation of SCEVAddRecExpr at an Wojciech Matyjewicz2008-02-111-49/+100
| | | | | | | | | | | | | | | | | | | | | | | | | arbitrary iteration. The patch: 1) changes SCEVSDivExpr into SCEVUDivExpr, 2) replaces PartialFact() function with BinomialCoefficient(); the computations (essentially, the division) in BinomialCoefficient() are performed with the apprioprate bitwidth necessary to avoid overflow; unsigned division is used instead of the signed one. Computations in BinomialCoefficient() require support from the code generator for APInts. Currently, we use a hack rounding up the neccessary bitwidth to the nearest power of 2. The hack is easy to turn off in future. One remaining issue: we assume the divisor of the binomial coefficient formula can be computed accurately using 16 bits. It means we can handle AddRecs of length up to 9. In future, we should use APInts to evaluate the divisor. Thanks to Nicholas for cooperation! llvm-svn: 46955
* Add a isBigEndian method to complement isLittleEndian.Duncan Sands2008-02-113-11/+11
| | | | llvm-svn: 46954
* Determine whether a spill kills the register it's spilling before insertion ↵Evan Cheng2008-02-111-8/+3
| | | | | | rather than trying to undo the kill marker afterwards. llvm-svn: 46953
* Enable SSE4 codegen and pattern matching.Nate Begeman2008-02-115-25/+242
| | | | | | Add some notes to the README. llvm-svn: 46949
* additional missing featureNate Begeman2008-02-111-0/+1
| | | | llvm-svn: 46948
* Fix scalarrepl to not 'miscompile' undefined code, part #2.Chris Lattner2008-02-101-1/+1
| | | | | | | This fixes the store case, my previous patch just fixed the load case. rdar://5707076. llvm-svn: 46932
* xmm0 variable blendsNate Begeman2008-02-101-2/+27
| | | | llvm-svn: 46931
* Rename MRegisterInfo to TargetRegisterInfo.Dan Gohman2008-02-1088-521/+536
| | | | llvm-svn: 46930
* Add truncate and AssertZext result expansion.Duncan Sands2008-02-103-0/+33
| | | | llvm-svn: 46926
* Return "(c1 + c2)" instead of yet another ADD node (which made this aBill Wendling2008-02-101-1/+1
| | | | | | no-op). llvm-svn: 46922
* add anoteChris Lattner2008-02-101-0/+7
| | | | llvm-svn: 46918
* Match GCC's behaviour for these sections.Nick Lewycky2008-02-101-2/+2
| | | | llvm-svn: 46916
* memopv16i8 had wrong alignment requirement, would have broken pabsbNate Begeman2008-02-091-129/+193
| | | | | | | | pabs{b,w,d} are not two address fix extract-to-mem sse4 ops add sse4 vector sign extend nodes llvm-svn: 46915
* We should check that existing cast operation has the appropriate opcode ↵Wojciech Matyjewicz2008-02-091-19/+21
| | | | | | before we reuse it. llvm-svn: 46908
* Remove unused hidden option.Evan Cheng2008-02-091-6/+1
| | | | llvm-svn: 46903
* Skeleton of insert and extract matching, more to comeNate Begeman2008-02-091-2/+62
| | | | llvm-svn: 46902
* Tablegen support for insert & extract element matchingNate Begeman2008-02-091-0/+16
| | | | llvm-svn: 46901
* check that terminators only occur at the end of a block. This catches theChris Lattner2008-02-091-0/+5
| | | | | | | | common problem of putting two terminators in the same block. I can't write a testcase for this because the .ll parser rejects this before the verifier can, but this can occur when generating IR. llvm-svn: 46900
* Change ConstantSDNode to store an APInt instead of a uint64_t, andDan Gohman2008-02-081-3/+10
| | | | | | begin adding some methods to use it this way. llvm-svn: 46899
* Fix PR 1995.Devang Patel2008-02-081-21/+17
| | | | llvm-svn: 46898
* Forgot these files.Evan Cheng2008-02-083-4/+4
| | | | llvm-svn: 46896
* Also print alignment.Evan Cheng2008-02-081-1/+1
| | | | llvm-svn: 46895
* It's not always safe to fold movsd into xorpd, etc. Check the alignment of ↵Evan Cheng2008-02-0814-33/+101
| | | | | | the load address first to make sure it's 16 byte aligned. llvm-svn: 46893
* 64-bit (MMX) vectors do not need restrictive alignment.Dale Johannesen2008-02-081-6/+4
| | | | | | 128-bit vectors need it only when SSE is on. llvm-svn: 46890
* Avoid needlessly casting away const qualifiers.Dan Gohman2008-02-084-8/+8
| | | | llvm-svn: 46877
* Avoid needlessly casting away const qualifiers.Dan Gohman2008-02-081-2/+2
| | | | llvm-svn: 46876
* Added missing entries in X86 load / store folding tables.Evan Cheng2008-02-081-0/+8
| | | | llvm-svn: 46866
* Remove remnant of load folding in local register allocator. Patch by Holger ↵Evan Cheng2008-02-071-7/+1
| | | | | | Schurig. llvm-svn: 46861
* Follow Chris' suggestion; change the PseudoSourceValue accessorsDan Gohman2008-02-075-39/+39
| | | | | | | to return pointers instead of references, since this is always what is needed. llvm-svn: 46857
* Add SourceValue information for outgoing argument stores on x86.Dan Gohman2008-02-071-2/+4
| | | | llvm-svn: 46854
* Don't abort if a MemOperand is missing a SourceValue; just print itDan Gohman2008-02-071-9/+13
| | | | | | | as <unknown>. And make some minor adjustments to the MemOperand dump format. llvm-svn: 46853
* Fix a x86-64 codegen deficiency. Allow gv + offset when using rip addressing ↵Evan Cheng2008-02-075-49/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mode. Before: _main: subq $8, %rsp leaq _X(%rip), %rax movsd 8(%rax), %xmm1 movss _X(%rip), %xmm0 call _t xorl %ecx, %ecx movl %ecx, %eax addq $8, %rsp ret Now: _main: subq $8, %rsp movsd _X+8(%rip), %xmm1 movss _X(%rip), %xmm0 call _t xorl %ecx, %ecx movl %ecx, %eax addq $8, %rsp ret Notice there is another idiotic codegen issue that needs to be fixed asap: xorl %ecx, %ecx movl %ecx, %eax llvm-svn: 46850
* In some cases, e.g. ADD32ri, no transformation is made. Guide against it.Evan Cheng2008-02-071-0/+2
| | | | llvm-svn: 46849
* Don't make up new directives. (".set_foobar")Nick Lewycky2008-02-071-1/+1
| | | | llvm-svn: 46848
* Fix a typo in a comment.Dan Gohman2008-02-071-1/+1
| | | | llvm-svn: 46836
* Add support to FoldingSet for hashing APInt objects.Dan Gohman2008-02-061-0/+4
| | | | llvm-svn: 46833
* Re-apply the memory operand changes, with a fix for the staticDan Gohman2008-02-0612-144/+345
| | | | | | | | initializer problem, a minor tweak to the way the DAGISelEmitter finds load/store nodes, and a renaming of the new PseudoSourceValue objects. llvm-svn: 46827
* Temporarily reverting:Bill Wendling2008-02-061-82/+0
| | | | | | | | http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20080128/057882.html This is causing a miscompilation on PPC G5 and just now seeing it on iMac x86-64. llvm-svn: 46822
* Fix a number of local register allocator issues: PR1609.Evan Cheng2008-02-061-14/+16
| | | | llvm-svn: 46821
* RegAllocaLocal still *requires* LiveVariables since it runs PHIElimination, ↵Evan Cheng2008-02-061-1/+3
| | | | | | followed by TwoAddress which requires LiveVariables. We cannot run LiveVariables on non-SSA code. llvm-svn: 46813
* Throttle the non-local dependence analysis for basic blocks with more than ↵Tanya Lattner2008-02-061-7/+20
| | | | | | 50 predecessors. Added command line option to play with this threshold. llvm-svn: 46790
* Fix PR1975: dag isel emitter produces patterns that isel wrong flag result.Evan Cheng2008-02-051-4/+0
| | | | llvm-svn: 46776
* Move to getCALLSEQ_END to ensure CALLSEQ_END node produces a flag. This is ↵Evan Cheng2008-02-051-2/+7
| | | | | | consistent with the definition in td file. llvm-svn: 46775
* Make RenamePass faster by making the 'is this a new phi node'Chris Lattner2008-02-051-11/+11
| | | | | | | | check more intelligent. This speeds up mem2reg from 5.29s to 0.79s on a synthetic testcase with tons of predecessors and phi nodes. llvm-svn: 46767
* Implement sseregparm.Dale Johannesen2008-02-052-4/+18
| | | | llvm-svn: 46764
* If a vr is already marked alive in a bb, then it has PHI uses that are ↵Evan Cheng2008-02-051-2/+3
| | | | | | visited earlier, then it is not killed in the def block (i.e. not dead). llvm-svn: 46763
OpenPOWER on IntegriCloud