Chris Lattner
10c42185d8
add a nice predicate to check to see if nan
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43304 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24 18:54:28 +00:00
Owen Anderson
975de81086
Update Makefile to use simpler llvm-config parameters.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43292 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24 16:06:42 +00:00
Owen Anderson
8f9710b0b2
Update Makefile to use simpler llvm-config parameters.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43291 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24 16:04:08 +00:00
Chris Lattner
44f1476048
switch some calls to SelectionDAG::getTargetNode to use
...
the one that takes an operand list instead of explicit
operands. There is one left though, the more interesting
one :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43290 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24 06:25:09 +00:00
Chris Lattner
99c65745a2
Implement a couple of foldings for ordered and unordered comparisons,
...
implementing cases related to PR1738.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43289 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24 05:38:08 +00:00
Chris Lattner
9ac0ca07f9
further simplify run options, thanks to gordonh for pointing this out
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43288 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24 05:09:48 +00:00
Chris Lattner
06bb404d0a
Fix instructions now that PR1739 is fixed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43287 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24 04:37:23 +00:00
Chris Lattner
4a444c717d
Fix PR1739.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43286 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24 04:35:54 +00:00
Hartmut Kaiser
fac5be9d9a
Added VC++ solution file allowing to build clang.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43279 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24 00:13:40 +00:00
Hartmut Kaiser
4d40b50743
Silenced a VC++ warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43276 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24 00:06:31 +00:00
Hartmut Kaiser
3d251c626d
Updated VC++ build system
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43275 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 23:57:01 +00:00
Bill Wendling
30eeb3c6c0
Fix comment and use the "Size" variable that's already provided.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43271 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 23:36:57 +00:00
Bill Wendling
8b1c68cee4
If there's an unaligned memcpy to/from the stack, don't lower it. Just call the
...
memcpy library function instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43270 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 23:32:40 +00:00
Dale Johannesen
79217064c6
Disable a couple more things for ppcf128.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43267 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 23:20:14 +00:00
Ted Kremenek
211f674e3f
Added "ReadEnum" and "WriteEnum" to serialization classes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43265 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 22:17:03 +00:00
Bill Wendling
803396fce2
This broke lots. Reverting.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43264 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 22:04:26 +00:00
Owen Anderson
7feb3be0b7
Make DomTreeBase not a FunctionPass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43263 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 21:42:49 +00:00
Bill Wendling
de09040946
Lowering a memcpy to the stack is killing PPC. The ARM and X86 backends already
...
have their own custom memcpy lowering code. This code needs to be factored out
into a target-independent lowering method with hooks to the backend. In the
meantime, just call memcpy if we're trying to copy onto a stack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43262 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 21:30:25 +00:00
Ted Kremenek
0b2d7aaf5c
Added preliminary implementation of generic object serialization to bitcode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43261 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 21:29:33 +00:00
Owen Anderson
78daec973e
Unbreak the build. Forgot to commit this file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43260 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 21:04:37 +00:00
Owen Anderson
d20cc14dbf
Make DomTree and PostDomTree thin wrappers around DomTreeBase, rather than inheriting from it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43259 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 20:58:37 +00:00
Evan Cheng
7bb175b4d1
It's possible to commute instrctions with more than 3 operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43256 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 20:14:40 +00:00
Chris Lattner
a91547790b
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43252 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 18:07:23 +00:00
Chris Lattner
ee19b866c3
llvm/test programs should not be execution programs. This
...
will hopefully fix Gabor's Sparc problem.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43251 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 17:56:04 +00:00
Evan Cheng
e11fb34381
isSubRegOf() is a dup of isSubRegister.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43249 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 06:51:50 +00:00
Evan Cheng
152b7e1874
Temporary solution: added a different set of BCTRL_Macho / BCTRL_ELF with right callee-saved defs set for ppc64.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43248 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 06:42:42 +00:00
Chris Lattner
8eef4b2d05
Fix validation problems, which were somewhat ironically in the "valid html" button code :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43247 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 06:30:50 +00:00
Chris Lattner
c0b42e9558
add a skeleton for part 4
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43246 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 06:27:55 +00:00
Chris Lattner
35abbf518f
complete the codegen chapter
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43245 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 06:23:57 +00:00
Owen Anderson
bad82d8c94
Now with valid HTML 4.01!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43244 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 06:22:21 +00:00
Owen Anderson
a6f31fe9a1
Add a link to the "writing an optimization" tutorial.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43243 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 06:17:39 +00:00
Owen Anderson
a7dfb75726
Add downloadable code sample for tutorial 2.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43242 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 06:05:37 +00:00
Owen Anderson
c04ee69007
Add the second of the "basic topics" tutorials.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43241 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 06:03:24 +00:00
Owen Anderson
485eff5f90
Reorder the optimization and bitcode tutorials.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43240 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 06:02:14 +00:00
Chris Lattner
d93a584eae
Fix up a broken #include, move code to its own section, add conclusions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43239 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 05:43:01 +00:00
Chris Lattner
d3f0cddb62
Finish up expr codegen.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43238 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 04:51:30 +00:00
Chris Lattner
28571edba8
several improvements suggested by Dan, thanks!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43237 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-23 04:27:44 +00:00
Evan Cheng
4102eb57bb
Fix memcpy lowering when addresses are 4-byte aligned but size is not multiple of 4.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43234 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 22:11:27 +00:00
Dan Gohman
ac72058dd6
The #include <iterator> isn't needed in this header.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43232 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 20:44:10 +00:00
Dan Gohman
02e4fa7d5f
Strength reduction improvements.
...
- Avoid attempting stride-reuse in the case that there are users that
aren't addresses. In that case, there will be places where the
multiplications won't be folded away, so it's better to try to
strength-reduce them.
- Several SSE intrinsics have operands that strength-reduction can
treat as addresses. The previous item makes this more visible, as
any non-address use of an IV can inhibit stride-reuse.
- Make ValidStride aware of whether there's likely to be a base
register in the address computation. This prevents it from thinking
that things like stride 9 are valid on x86 when the base register is
already occupied.
Also, XFAIL the 2007-08-10-LEA16Use32.ll test; the new logic to avoid
stride-reuse elimintes the LEA in the loop, so the test is no longer
testing what it was intended to test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43231 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 20:40:42 +00:00
Dan Gohman
8368805e25
Fix the folding of multiplication into addresses on x86, which was broken
...
by the recent {U,S}MUL_LOHI changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43230 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 20:22:24 +00:00
Evan Cheng
3311876c3c
Use ptr type in the immediate field of a BxA instruction so we don't end up selecting 32-bit call instruction for ppc64.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43228 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 19:46:19 +00:00
Evan Cheng
76500d52be
Add missing paratheses.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43227 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 19:42:28 +00:00
Chris Lattner
706a5e6124
add a 'don't use me' marker.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43226 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 19:41:46 +00:00
Duncan Sands
fec3ad3e5f
Support for expanding extending loads of integers with
...
funky bit-widths.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43225 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 19:00:05 +00:00
Dan Gohman
246b2564d3
Move the SCEV object factors from being static members of the individual
...
SCEV subclasses to being non-static member functions of the ScalarEvolution
class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43224 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 18:31:58 +00:00
Duncan Sands
245741d2a1
Fix up the logic for result expanding the various extension
...
operations so they work right for integers with funky
bit-widths. For example, consider extending i48 to i64
on a 32 bit machine. The i64 result is expanded to 2 x i32.
We know that the i48 operand will be promoted to i64, then
also expanded to 2 x i32. If we had the expanded promoted
operand to hand, then expanding the result would be trivial.
Unfortunately at this stage we can only get hold of the
promoted operand. So instead we kind of hand-expand, doing
explicit shifting and truncating to get the top and bottom
halves of the i64 operand into 2 x i32, which are then used
to expand the result. This is harmless, because when the
promoted operand is finally expanded all this bit fiddling
turns into trivial operations which are eliminated either
by the expansion code itself or the DAG combiner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43223 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 18:26:21 +00:00
Chris Lattner
bee175b3dc
fit in 80 cols :)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43222 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 16:44:31 +00:00
Chris Lattner
2e90204d59
start of chapter 3
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43221 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 07:01:42 +00:00
Owen Anderson
c6311b9d62
Fix a few typos I noticed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43220 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-22 06:48:28 +00:00