Commit Graph

37228 Commits

Author SHA1 Message Date
Nate Begeman
cdd1eeca2c SSE4.1 64b integer insert/extract pattern support
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-12 22:51:28 +00:00
Dan Gohman
ffe3e2514a Change APInt::getBitsSet to accept a "half-open" range, where the
hiBit parameter marks the index one past the last desired set bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47032 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 21:47:33 +00:00
Duncan Sands
caf4fbd5df Note that these instructions are for x86-32 linux
(the only platform on which the Ada compiler even
builds).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47031 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 21:40:21 +00:00
Duncan Sands
15bfd89b99 Add more spacing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47028 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 21:28:39 +00:00
Duncan Sands
d051f7a13d Add instructions for building Ada and Fortran.
Adjust mentions of gcc4 to be 4.0/4.2 agnostic.
This file should probably be renamed tor
 GCCFEBuildInstrs.html...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47027 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 21:22:58 +00:00
Owen Anderson
30b4bd4d10 Re-apply the patch to improve the optimizations of memcpy's, with several
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-12 21:15:18 +00:00
Duncan Sands
014e04a5da Generalize getCopyFromParts and getCopyToParts to
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-12 20:46:31 +00:00
Evan Cheng
394d28048c Revert r46916 PPCTargetAsmInfo.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47020 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 19:25:12 +00:00
Evan Cheng
9f143ce989 Only using x86-64 rip relative addressing in non-staic mode?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47019 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 19:20:46 +00:00
Evan Cheng
073c5b721d Don't mask the isel bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47018 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 19:11:29 +00:00
Evan Cheng
aeb231cb59 This test assumes no SSE4.1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47017 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 19:11:08 +00:00
Dan Gohman
14471be9ab Add a doxygen comment for SrcValueSDNode, to make its purpose
clear and to clarify how it differs from MemOperandSDNode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47015 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 18:52:52 +00:00
Devang Patel
2be680481b Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47012 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 18:20:50 +00:00
Wojciech Matyjewicz
52f321f525 Now that ScalarEvolution::print writes to the correct stream, there is
no need to redirect stderr into stdout.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47009 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 15:12:40 +00:00
Wojciech Matyjewicz
2a9054cfd6 Change negative grep into positive one in my yesterday's testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47008 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 15:10:35 +00:00
Wojciech Matyjewicz
7b5b76835a Fix PR2002. Suppose n is the initial value for the induction
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-12 15:09:36 +00:00
Eli Friedman
b6c36e4058 Fix for bug 1996: optimize out loads of undef. This code basically just
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-12 12:08:14 +00:00
Evan Cheng
add251754c Update comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47002 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 07:59:55 +00:00
Evan Cheng
5ae45caf79 Unbreak various insert_vector_elt and extract_vector_elt tests in presence of SSE4.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47001 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 07:59:45 +00:00
Tanya Lattner
3c593c947c Test case for annotate builtin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46999 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 07:46:33 +00:00
Evan Cheng
65b2e3df0d Fix some test cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46998 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 07:22:46 +00:00
Bill Wendling
0602df7403 More violation fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46997 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 07:12:46 +00:00
Bill Wendling
58d96d6e3c Fix validation errors: di -> dt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46996 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 07:09:05 +00:00
Bill Wendling
643eb5d7ba Reformatting. Adding "doc_code" divisions for code examples. Updated some
of the examples to reflect the current .TD files.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46995 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 07:06:19 +00:00
Chris Lattner
2b659ef4bd rip out llvm 2.2 stuff in preparation for llvm 2.3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46993 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 06:29:45 +00:00
Chris Lattner
18232a5fd1 heavily refactor this to have less duplication between BUILD_FOR_WEBSITE mode and not.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46991 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 06:07:47 +00:00
Chris Lattner
02b81fe5f5 remove unknown details
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46985 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 05:07:12 +00:00
Tanya Lattner
dd50f0f954 Add 2.2 release tag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46981 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-12 02:42:55 +00:00
Nate Begeman
5bb013c34a Stuff noticed while grepping code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46979 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 23:47:56 +00:00
Dan Gohman
d3993d13be Correct the order of the arguments in the examples in the comments
for APInt::getBitsSet. And fix an off-by-one bug in "wrapping" mode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46978 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 23:45:14 +00:00
Ted Kremenek
a618f82c9f The factories for ImutAVLTree/ImmutableSet/ImmutableMap now take an (optional)
BumpPtrAllocator argument to their constructors.  This BumpPtrAllocator
will be used to allocate trees.  If no BumpPtrAllocator is provided, one
is created (as before).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46975 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 23:11:12 +00:00
Scott Michel
8c77ff9f85 Added blurb for CellSPU progress
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46968 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 21:05:47 +00:00
Duncan Sands
b988baccc2 Generalize the handling of call and return arguments,
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-11 20:58:28 +00:00
Dan Gohman
cc20cd59e6 From Chris' review: use isa instead of explicitly using classof.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46964 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 19:00:34 +00:00
Dan Gohman
027ee7e3ca From Chris' review: minor corrections in comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46963 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 19:00:03 +00:00
Dan Gohman
bbbbb9c3dd From Chris' review: use cast instead of dyn_cast with an assert.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46962 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 18:58:42 +00:00
Dan Gohman
debeeba6ec From Chris' review: fix 80 column violations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46961 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 18:57:43 +00:00
Dan Gohman
f8df0ff9a5 From Chris' review: change MemOperandSDNode's constructor to pass its
argument by reference, rather than by value. 


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46960 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 18:56:50 +00:00
Wojciech Matyjewicz
a089b10421 If the LHS of the comparison is a loop-invariant we also want to move it
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-11 18:37:34 +00:00
Ted Kremenek
1f801fa5ad Added "Profile" method to APFloat for use with FoldingSet.
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-11 17:24:50 +00:00
Duncan Sands
04feb51886 Add arbitrary integer support to getRegisterType and
getNumRegisters.  This is needed for calling functions
with apint parameters or return values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46956 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 11:09:23 +00:00
Wojciech Matyjewicz
e3320a1bcc Fix PR1798 - an error in the evaluation of SCEVAddRecExpr at an
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-11 11:03:14 +00:00
Duncan Sands
0753fc1850 Add a isBigEndian method to complement isLittleEndian.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46954 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 10:37:04 +00:00
Evan Cheng
431bfcbe37 Determine whether a spill kills the register it's spilling before insertion 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-11 08:30:52 +00:00
Chris Lattner
786cb7e446 tweaks from dale.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46952 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 07:27:21 +00:00
Chris Lattner
db401e900a updates from Evan
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46951 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 07:21:08 +00:00
Nate Begeman
14d12caf1d Enable SSE4 codegen and pattern matching.
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-11 04:19:36 +00:00
Nate Begeman
a6ed0aa8ec additional missing feature
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46948 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-11 04:16:09 +00:00
Gabor Greif
3f2a209c77 corrected some spellings
maybe c380004 can be hyperlinked too?



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46934 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-10 20:08:16 +00:00
Chris Lattner
729eb14ae8 Various updates from Sam Bishop:
"I have been working my way through the JIT and Kaleidoscope tutorials in my
(minuscule) spare time.  Thanks again for writing them!  I have attached a
patch containing some minor changes, ranging from spelling and grammar fixes
to adding a "Next: <next tutorial section>" hyperlink to the bottom of each
page.

Every page has been given the "next link" treatment, but otherwise I'm only
half way through the Kaleidoscope tutorial.  I will send a follow-on patch
if time permits."



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46933 91177308-0d34-0410-b5e6-96231b3b80d8
2008-02-10 19:11:04 +00:00