aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2008-02-13Convert SelectionDAG::ComputeMaskedBits to use APInt instead of uint64_t.Dan Gohman
Add an overload that supports the uint64_t interface for use by clients that haven't been updated yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47039 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12__DATA not __DATA__ is the right segment name on darwin.Dale Johannesen
Spotted by Nick Kledzik. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47037 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12Remove some dead codeNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47036 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12SSE4.1 64b integer insert/extract pattern supportNate Begeman
Move formats into the formats file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47035 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12Re-apply the patch to improve the optimizations of memcpy's, with severalOwen Anderson
bugs fixed. This now passes PPC bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47026 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12Generalize getCopyFromParts and getCopyToParts toDuncan Sands
handle arbitrary precision integers and any number of parts. For example, on a 32 bit machine an i50 corresponds to two i32 parts. getCopyToParts will extend the i50 to an i64 then write half of the i64 to each part; getCopyFromParts will combine the two i32 parts into an i64 then truncate the result to i50. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47024 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12Revert r46916 PPCTargetAsmInfo.cpp.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47020 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12Only using x86-64 rip relative addressing in non-staic mode?Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47019 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12Fix PR2002. Suppose n is the initial value for the induction Wojciech Matyjewicz
variable (with step 1) and m is its final value. Then, the correct trip count is SMAX(m,n)-n. Previously, we used SMAX(0,m-n), but m-n may overflow and can't in general be interpreted as signed. Patch by Nick Lewycky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47007 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12Fix for bug 1996: optimize out loads of undef. This code basically just Eli Friedman
checks for a malloc/alloca immediately followed by a load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47006 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12Update comment.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47002 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12Unbreak various insert_vector_elt and extract_vector_elt tests in presence ↵Evan Cheng
of SSE4. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47001 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11Stuff noticed while grepping codeNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46979 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11Generalize the handling of call and return arguments,Duncan Sands
in preparation for apint support. These changes are intended to have no functional effect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46967 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11From Chris' review: use isa instead of explicitly using classof.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46964 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11From Chris' review: minor corrections in comments.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46963 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11From Chris' review: use cast instead of dyn_cast with an assert.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46962 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11From Chris' review: fix 80 column violationsDan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46961 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11If the LHS of the comparison is a loop-invariant we also want to move it Wojciech Matyjewicz
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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46959 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11Added "Profile" method to APFloat for use with FoldingSet.Ted Kremenek
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46957 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11Fix PR1798 - an error in the evaluation of SCEVAddRecExpr at an Wojciech Matyjewicz
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! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46955 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11Add a isBigEndian method to complement isLittleEndian.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46954 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11Determine whether a spill kills the register it's spilling before insertion ↵Evan Cheng
rather than trying to undo the kill marker afterwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46953 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11Enable SSE4 codegen and pattern matching.Nate Begeman
Add some notes to the README. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46949 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11additional missing featureNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46948 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-10Fix scalarrepl to not 'miscompile' undefined code, part #2.Chris Lattner
This fixes the store case, my previous patch just fixed the load case. rdar://5707076. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46932 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-10xmm0 variable blendsNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46931 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-10Rename MRegisterInfo to TargetRegisterInfo.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46930 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-10Add truncate and AssertZext result expansion.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46926 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-10Return "(c1 + c2)" instead of yet another ADD node (which made this aBill Wendling
no-op). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46922 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-10add anoteChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46918 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-10Match GCC's behaviour for these sections.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46916 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-09memopv16i8 had wrong alignment requirement, would have broken pabsbNate Begeman
pabs{b,w,d} are not two address fix extract-to-mem sse4 ops add sse4 vector sign extend nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46915 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-09We should check that existing cast operation has the appropriate opcode ↵Wojciech Matyjewicz
before we reuse it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46908 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-09Remove unused hidden option.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46903 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-09Skeleton of insert and extract matching, more to comeNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46902 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-09Tablegen support for insert & extract element matchingNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46901 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-09check that terminators only occur at the end of a block. This catches theChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46900 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-08Change ConstantSDNode to store an APInt instead of a uint64_t, andDan Gohman
begin adding some methods to use it this way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46899 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-08Fix PR 1995.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46898 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-08Forgot these files.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46896 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-08Also print alignment.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46895 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-08It's not always safe to fold movsd into xorpd, etc. Check the alignment of ↵Evan Cheng
the load address first to make sure it's 16 byte aligned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46893 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-0864-bit (MMX) vectors do not need restrictive alignment.Dale Johannesen
128-bit vectors need it only when SSE is on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46890 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-08Avoid needlessly casting away const qualifiers.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46877 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-08Avoid needlessly casting away const qualifiers.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46876 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-08Added missing entries in X86 load / store folding tables.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46866 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07Remove remnant of load folding in local register allocator. Patch by Holger ↵Evan Cheng
Schurig. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46861 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07Follow Chris' suggestion; change the PseudoSourceValue accessorsDan Gohman
to return pointers instead of references, since this is always what is needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46857 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-07Add SourceValue information for outgoing argument stores on x86.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46854 91177308-0d34-0410-b5e6-96231b3b80d8