Wojciech Matyjewicz
2874a19254
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).
llvm-svn: 46959
2008-02-11 18:37:34 +00:00
Ted Kremenek
f06b7ac532
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.
llvm-svn: 46957
2008-02-11 17:24:50 +00:00
Duncan Sands
b9bf0dcb7c
Add arbitrary integer support to getRegisterType and
...
getNumRegisters. This is needed for calling functions
with apint parameters or return values.
llvm-svn: 46956
2008-02-11 11:09:23 +00:00
Wojciech Matyjewicz
76c2b22ee4
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!
llvm-svn: 46955
2008-02-11 11:03:14 +00:00
Duncan Sands
204c89cafa
Add a isBigEndian method to complement isLittleEndian.
...
llvm-svn: 46954
2008-02-11 10:37:04 +00:00
Evan Cheng
19f684ed72
Determine whether a spill kills the register it's spilling before insertion rather than trying to undo the kill marker afterwards.
...
llvm-svn: 46953
2008-02-11 08:30:52 +00:00
Chris Lattner
3db3d4a614
tweaks from dale.
...
llvm-svn: 46952
2008-02-11 07:27:21 +00:00
Chris Lattner
d2465e32c8
updates from Evan
...
llvm-svn: 46951
2008-02-11 07:21:08 +00:00
Nate Begeman
5a4e290b70
Enable SSE4 codegen and pattern matching.
...
Add some notes to the README.
llvm-svn: 46949
2008-02-11 04:19:36 +00:00
Nate Begeman
9e8b2ffd52
additional missing feature
...
llvm-svn: 46948
2008-02-11 04:16:09 +00:00
Gabor Greif
8165a93e7a
corrected some spellings
...
maybe c380004 can be hyperlinked too?
llvm-svn: 46934
2008-02-10 20:08:16 +00:00
Chris Lattner
85c2d36cfe
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."
llvm-svn: 46933
2008-02-10 19:11:04 +00:00
Chris Lattner
068321707d
Fix scalarrepl to not 'miscompile' undefined code, part #2 .
...
This fixes the store case, my previous patch just fixed the load
case. rdar://5707076.
llvm-svn: 46932
2008-02-10 19:05:37 +00:00
Nate Begeman
297d683980
xmm0 variable blends
...
llvm-svn: 46931
2008-02-10 18:47:57 +00:00
Dan Gohman
cabaec582f
Rename MRegisterInfo to TargetRegisterInfo.
...
llvm-svn: 46930
2008-02-10 18:45:23 +00:00
Chris Lattner
40b5c6c1bc
close an li tag
...
llvm-svn: 46929
2008-02-10 17:52:05 +00:00
Duncan Sands
022743c2af
Add some Ada info and correct a few buglets.
...
llvm-svn: 46928
2008-02-10 13:40:55 +00:00
Duncan Sands
2c2b2822d3
Add truncate and AssertZext result expansion.
...
llvm-svn: 46926
2008-02-10 10:08:52 +00:00
Chris Lattner
051f089b21
remove the in progress marker.
...
llvm-svn: 46925
2008-02-10 08:19:35 +00:00
Chris Lattner
5afdb9598d
validation fixes
...
llvm-svn: 46924
2008-02-10 08:18:42 +00:00
Chris Lattner
1eefe978e3
final set of major updates
...
llvm-svn: 46923
2008-02-10 08:17:19 +00:00
Bill Wendling
20621788d4
Return "(c1 + c2)" instead of yet another ADD node (which made this a
...
no-op).
llvm-svn: 46922
2008-02-10 08:10:24 +00:00
Chris Lattner
81b4bcbd89
more prose, some organization improvements.
...
llvm-svn: 46921
2008-02-10 07:46:44 +00:00
Chris Lattner
f11f7981bc
random notes
...
llvm-svn: 46920
2008-02-10 07:04:35 +00:00
Chris Lattner
bc59a2704b
add anote
...
llvm-svn: 46918
2008-02-10 01:01:35 +00:00
Nick Lewycky
b072c0b3ed
Match GCC's behaviour for these sections.
...
llvm-svn: 46916
2008-02-10 00:03:54 +00:00
Nate Begeman
2627ffd14b
memopv16i8 had wrong alignment requirement, would have broken pabsb
...
pabs{b,w,d} are not two address
fix extract-to-mem sse4 ops
add sse4 vector sign extend nodes
llvm-svn: 46915
2008-02-09 23:46:37 +00:00
Chris Lattner
c58cabb0bd
add some more notes, still not ready for review :)
...
llvm-svn: 46914
2008-02-09 22:58:07 +00:00
Chris Lattner
b9f862e239
scoped_ptr.h was removed.
...
llvm-svn: 46913
2008-02-09 22:50:06 +00:00
Gabor Greif
3453f29f65
explain that NumElements in alloca and malloc defaults to one
...
llvm-svn: 46912
2008-02-09 22:24:34 +00:00
Dale Johannesen
304406f01c
Alignment of struct containing vectors depends on
...
whether SSE is present, on Darwin anyway. Make it
explicit.
llvm-svn: 46909
2008-02-09 19:04:25 +00:00
Wojciech Matyjewicz
8095000596
We should check that existing cast operation has the appropriate opcode before we reuse it.
...
llvm-svn: 46908
2008-02-09 18:30:13 +00:00
Wojciech Matyjewicz
2e45476439
Add a check if the initial value of the induction variable is 0 (the method comment says it should be).
...
llvm-svn: 46907
2008-02-09 18:06:58 +00:00
Evan Cheng
869b54e60c
Remove unused hidden option.
...
llvm-svn: 46903
2008-02-09 08:36:28 +00:00
Nate Begeman
a78c35a368
Skeleton of insert and extract matching, more to come
...
llvm-svn: 46902
2008-02-09 01:38:08 +00:00
Nate Begeman
336fba2146
Tablegen support for insert & extract element matching
...
llvm-svn: 46901
2008-02-09 01:37:05 +00:00
Chris Lattner
22696c10f0
check that terminators only occur at the end of a block. This catches the
...
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
2008-02-09 01:06:01 +00:00
Dan Gohman
672d341167
Change ConstantSDNode to store an APInt instead of a uint64_t, and
...
begin adding some methods to use it this way.
llvm-svn: 46899
2008-02-08 22:59:30 +00:00
Devang Patel
9aba178666
Fix PR 1995.
...
llvm-svn: 46898
2008-02-08 22:49:13 +00:00
Evan Cheng
83066786b0
Forgot these files.
...
llvm-svn: 46896
2008-02-08 22:05:27 +00:00
Evan Cheng
2d3d000878
Also print alignment.
...
llvm-svn: 46895
2008-02-08 22:05:07 +00:00
Dan Gohman
3d296e049c
Add an isSignedIntN, like isIntN but for signed integer values instead of
...
unsigned.
llvm-svn: 46894
2008-02-08 21:58:15 +00:00
Evan Cheng
90f03a0b88
It's not always safe to fold movsd into xorpd, etc. Check the alignment of the load address first to make sure it's 16 byte aligned.
...
llvm-svn: 46893
2008-02-08 21:20:40 +00:00
Dale Johannesen
9bbfeaea4d
64-bit (MMX) vectors do not need restrictive alignment.
...
128-bit vectors need it only when SSE is on.
llvm-svn: 46890
2008-02-08 19:48:20 +00:00
Ted Kremenek
557bbab669
Constified operator<< in APSInt.
...
llvm-svn: 46882
2008-02-08 07:14:19 +00:00
Dan Gohman
d1cc100aef
Avoid needlessly casting away const qualifiers.
...
llvm-svn: 46877
2008-02-08 03:29:40 +00:00
Dan Gohman
1f255f2db7
Avoid needlessly casting away const qualifiers.
...
llvm-svn: 46876
2008-02-08 03:26:46 +00:00
Evan Cheng
b2bc19ee5b
Added missing entries in X86 load / store folding tables.
...
llvm-svn: 46866
2008-02-08 00:12:56 +00:00
Devang Patel
1e5c60dee9
Begin setting features for target based on target triple string.
...
llvm-svn: 46863
2008-02-07 22:32:50 +00:00
Evan Cheng
0c6aedd740
Remove remnant of load folding in local register allocator. Patch by Holger Schurig.
...
llvm-svn: 46861
2008-02-07 19:46:55 +00:00