Evan Cheng
168a66b21e
A number of LSR fixes:
...
- ChangeCompareStride only reuse stride that is larger than current stride. It
will let the general reuse mechanism to try to reuse a smaller stride.
- Watch out for multiplication overflow in ChangeCompareStride.
- Replace std::set with SmallPtrSet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43408 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 23:08:19 +00:00
Ted Kremenek
cd9c2ba7f7
Added SerializeAPInt.cpp and DeserializeAPInt.cpp to the XCode project.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43406 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 21:53:37 +00:00
Ted Kremenek
1a43e5ffe1
Added serialization support for APInt.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43405 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 21:50:10 +00:00
Ted Kremenek
7f46734b66
Fixed incorrect "path name" in preamble (comment) of header file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43402 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 20:44:02 +00:00
Ted Kremenek
02760ed19a
Fixed incorrect "path name" in preamble (comment) of header file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43401 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 20:42:45 +00:00
Bill Wendling
61297f960e
On second thought. Remove this as it should never be generated in the first
...
place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43400 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 20:34:37 +00:00
Bill Wendling
984e986929
- Remove the hacky code that forces a memcpy. Alignment is taken care of in the
...
FE.
- Explicitly pass in the alignment of the load & store.
- XFAIL 2007-10-23-UnalignedMemcpy.ll because llc has a bug that crashes on
unaligned pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43398 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 20:24:42 +00:00
Ted Kremenek
6a13dfdc6d
Added default implementation of SerializeTrait<> that dispatches to
...
calling member functions of the target type to perform type-specific
serialization.
Added version of ReadPtr that allows passing references to uintptr_t
(useful for smart pointers).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43396 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 20:23:27 +00:00
Evan Cheng
f1fc54f951
Fix a crash. Make sure TLI is not null.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43384 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 17:24:46 +00:00
Anton Korobeynikov
8d9d74eaa8
Fix off-by-one stack offset computations (dwarf information) for callee-saved
...
registers in case, when FP pointer was eliminated. This should fixes misc. random
EH-related crahses, when stuff is compiled with -fomit-frame-pointer.
Thanks Duncan for nailing this bug!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43381 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 09:13:24 +00:00
Eric Christopher
3c999a270e
clo/clz aren't supported on mips I. Keep them around for when we'll
...
want them later (mips32/64).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43380 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 04:00:13 +00:00
Owen Anderson
ef15029258
Make a comment better.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43379 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 03:47:14 +00:00
Gordon Henriksen
55cbec317d
More fleshing out of docs/Passes.html, plus some typo fixes and
...
improved wording in source files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43377 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 03:03:51 +00:00
Evan Cheng
2bd122c4d9
Loosen up iv reuse to allow reuse of the same stride but a larger type when truncating from the larger type to smaller type is free.
...
e.g.
Turns this loop:
LBB1_1: # entry.bb_crit_edge
xorl %ecx, %ecx
xorw %dx, %dx
movw %dx, %si
LBB1_2: # bb
movl L_X$non_lazy_ptr, %edi
movw %si, (%edi)
movl L_Y$non_lazy_ptr, %edi
movw %dx, (%edi)
addw $4, %dx
incw %si
incl %ecx
cmpl %eax, %ecx
jne LBB1_2 # bb
into
LBB1_1: # entry.bb_crit_edge
xorl %ecx, %ecx
xorw %dx, %dx
LBB1_2: # bb
movl L_X$non_lazy_ptr, %esi
movw %cx, (%esi)
movl L_Y$non_lazy_ptr, %esi
movw %dx, (%esi)
addw $4, %dx
incl %ecx
cmpl %eax, %ecx
jne LBB1_2 # bb
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43375 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-26 01:56:11 +00:00
Hartmut Kaiser
081fdf238b
Silenced a VC++ warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43374 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 23:49:14 +00:00
Ted Kremenek
3bd9dcc08f
Updated backpatching during object deserialization to support "smart"
...
pointers that employ unused bits in a pointer to store extra data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43373 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 23:40:35 +00:00
Hartmut Kaiser
8df77a9e0f
Clarified operator precedence.
...
Silenced VC++ warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43372 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 23:15:31 +00:00
Hartmut Kaiser
0fcf68a5e0
Disambiguated variable name to comply with VC++'s archaic variable scoping rules.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43369 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 22:57:48 +00:00
Hartmut Kaiser
3faa173448
Updated VC++ build system
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43368 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 22:56:13 +00:00
Evan Cheng
5f8ebaa5c0
Do not rewrite compare instruction using iv of a different stride if the new
...
stride may be rewritten using the stride of the compare instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43367 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 22:45:20 +00:00
Dale Johannesen
ca4571e79f
Support non-POSIX hosts by removing use of strncasecmp.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43364 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 21:54:43 +00:00
Bill Wendling
da6efc5268
Changed XXX to FIXME, and added comment to the README file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43359 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 19:49:32 +00:00
Ted Kremenek
2423e03ca8
Added special treatment of serializing NULL pointers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43357 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 18:42:52 +00:00
Evan Cheng
2c8ca5c415
Remove code that's commented out.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43356 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 18:38:24 +00:00
Bill Wendling
0713a22423
Added comment explaining why we are doing this check.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43353 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 18:23:45 +00:00
Ted Kremenek
3b8ac40e63
Created header file to include minimal forward references needed for
...
object serialization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43352 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 18:19:29 +00:00
Chris Lattner
e949512dfa
typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43351 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 18:05:29 +00:00
Chris Lattner
7271423a99
some minor edits, link to Passes.html, make one point
...
I forgot about yesterday.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43350 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 17:52:39 +00:00
Ted Kremenek
89a354d7fa
Added Serialization.h, Serialize.h, Deserialize.h, Serialize.cpp, and
...
Deserialize.cpp to the XCode project.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43345 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 16:09:09 +00:00
Duncan Sands
2e606cfc7a
Small formatting changes. Add a sanity check.
...
Use NVT rather than looking it up, since we have
it to hand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43341 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 12:35:51 +00:00
Duncan Sands
cac99db7da
Promote SETCC operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43340 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 12:32:31 +00:00
Duncan Sands
a3d10d808e
Correctly extract the ValueType from a VTSDNode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43339 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 12:30:51 +00:00
Duncan Sands
b36904be91
Fix comment typos.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43338 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 12:28:12 +00:00
Gordon Henriksen
0e15dc26ec
Fleshing out docs/Passes.html for some analyses.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43337 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 10:18:27 +00:00
Evan Cheng
cdf43b1fad
If a loop termination compare instruction is the only use of its stride,
...
and the compaison is against a constant value, try eliminate the stride
by moving the compare instruction to another stride and change its
constant operand accordingly. e.g.
loop:
...
v1 = v1 + 3
v2 = v2 + 1
if (v2 < 10) goto loop
=>
loop:
...
v1 = v1 + 3
if (v1 < 30) goto loop
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43336 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 09:11:16 +00:00
Gordon Henriksen
ddaa61d8b5
Passes.html now 'passes' validation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43335 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 08:58:56 +00:00
Gordon Henriksen
1f5cce0b7b
Bringing Passes.html structurally up-to-date, and enabling
...
semi-automated maintenance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43334 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 08:46:12 +00:00
Owen Anderson
6867aec148
Fix an obvious typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43333 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 06:50:30 +00:00
Owen Anderson
18f09925a2
More tutorial cleanups.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43332 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 06:49:29 +00:00
Owen Anderson
34ba67adf0
Add proper footers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43331 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 06:45:01 +00:00
Owen Anderson
5339f85715
Don't bother providing code samples. Maintaining zip files in the repository is a pain.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43330 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 06:41:23 +00:00
Chris Lattner
118749e02c
Add chapter 4, feedback appreciated.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43329 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 06:23:36 +00:00
Chris Lattner
33819d9704
remove unimplemented ctor, add some comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43328 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 05:19:24 +00:00
Chris Lattner
d9b8616c27
Run the verifier on generated code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43327 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 04:30:35 +00:00
Owen Anderson
f92ff03f71
Fix for PR1741.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43326 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 02:36:18 +00:00
Dale Johannesen
691645e90f
Testcase for PR 1397.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43323 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 00:50:14 +00:00
Owen Anderson
4d6d5783d8
Make it possible for DomTreeBase to be constructed from MachineFunction's as well as just Function's.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43321 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 00:16:57 +00:00
Ted Kremenek
fe2a012338
Implemented prototype serialization of pointers, including support
...
for backpatching.
Added Deserialize::ReadVal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43319 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 00:10:21 +00:00
Dale Johannesen
8eadd5a6db
Another expansion for i64 multiply, suitable for PPC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43314 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24 22:26:08 +00:00
Dale Johannesen
0bd5fcf49f
This was failing on Darwin, which defaults to PIC;
...
no lea was generated. I think this follows the intent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43312 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-24 20:58:14 +00:00