Ted Kremenek
4284b7c63c
Changed access control within FoldingSet for some ivars from "private"
...
to "protected". This allows iterators to work.
llvm-svn: 43559
2007-10-31 17:12:47 +00:00
Rafael Espindola
27a8907a7c
Make ARM and X86 LowerMEMCPY identical by moving the isThumb check into getMaxInlineSizeThreshold
...
and by restructuring the X86 version.
New I just have to move this to a common place :-)
llvm-svn: 43554
2007-10-31 14:39:58 +00:00
Dan Gohman
51cadc3b59
Fix a typo in a comment.
...
llvm-svn: 43553
2007-10-31 14:35:39 +00:00
Rafael Espindola
fae98471a9
Make ARM an X86 memcpy expansion more similar to each other.
...
Now both subtarget define getMaxInlineSizeThreshold and the expansion uses it.
This should not change generated code.
llvm-svn: 43552
2007-10-31 11:52:06 +00:00
Duncan Sands
b86535ad9a
Promotion of sdiv/srem/udiv/urem.
...
llvm-svn: 43551
2007-10-31 08:57:43 +00:00
Duncan Sands
c945dfa9af
Add a newline at the end of the file.
...
llvm-svn: 43550
2007-10-31 08:49:24 +00:00
Chris Lattner
4c331443c8
fix validation
...
llvm-svn: 43549
2007-10-31 07:30:39 +00:00
Chris Lattner
945b810036
okay, fine, make me finish this chapter. :)
...
Feedback appreciated!
llvm-svn: 43548
2007-10-31 07:29:43 +00:00
Chris Lattner
b2b616f4d5
add the code for expression code that we'll add, though most of the
...
description is missing.
llvm-svn: 43547
2007-10-31 06:47:39 +00:00
Chris Lattner
e94d86d349
Add the first half of chapter 5: if/then/else.
...
To come: for statement.
llvm-svn: 43546
2007-10-31 06:30:21 +00:00
Chris Lattner
5082217e07
__main is dead along with llvm-gcc3.
...
llvm-svn: 43545
2007-10-31 05:53:31 +00:00
Owen Anderson
ae0530aaf4
Add the skeleton of a better PHI elimination pass.
...
llvm-svn: 43542
2007-10-31 03:37:57 +00:00
Owen Anderson
4314cf9d58
Some fixes to get MachineDomTree working better.
...
llvm-svn: 43541
2007-10-31 03:30:14 +00:00
Dale Johannesen
9bc04ae496
Make i64=expand_vector_elt(v2i64) work in 32-bit mode.
...
llvm-svn: 43535
2007-10-31 00:32:36 +00:00
Evan Cheng
06ec64fcda
At end of LSR, replace uses of now constant (as result of SplitCriticalEdge) PHI node with the constant value.
...
llvm-svn: 43533
2007-10-30 23:45:15 +00:00
Ted Kremenek
d3e5310f68
Added member function "size()" to FoldingSet to return the number of
...
nodes in the FoldingSet.
llvm-svn: 43531
2007-10-30 23:35:55 +00:00
Devang Patel
d646b31441
New test.
...
llvm-svn: 43527
2007-10-30 23:07:47 +00:00
Evan Cheng
5e058e94b5
It's not safe to tell SplitCriticalEdge to merge identical edges. It may delete the phi instruction that's being processed.
...
llvm-svn: 43524
2007-10-30 22:27:26 +00:00
Dale Johannesen
7167117945
Add missing SSE builtins: CVTPD2PI, CVTPS2PI,
...
CVTTPD2PI, CVTTPS2PI, CVTPI2PD, CVTPI2PS.
llvm-svn: 43523
2007-10-30 22:15:38 +00:00
Evan Cheng
1fef4e369a
Typo.
...
llvm-svn: 43511
2007-10-30 20:11:21 +00:00
Dan Gohman
9365affecc
Add support for folding binary operators with vector zero operands.
...
llvm-svn: 43510
2007-10-30 19:00:49 +00:00
Duncan Sands
f6837e8634
Fix for visibility warnings generated by gcc-4.2.
...
llvm-svn: 43500
2007-10-30 13:14:37 +00:00
Duncan Sands
7f83f63eef
Add support for expanding trunc stores. Consider
...
storing an i170 on a 32 bit machine. This is first
promoted to a trunc-i170 store of an i256. On a
little-endian machine this expands to a store of
an i128 and a trunc-i42 store of an i128. The
trunc-i42 store is further expanded to a trunc-i42
store of an i64, then to a store of an i32 and a
trunc-i10 store of an i32. At this point the operand
type is legal (i32) and expansion stops (legalization
of the trunc-i10 needs to be handled in LegalizeDAG.cpp).
On big-endian machines the high bits are stored first,
and some bit-fiddling is needed in order to generate
aligned stores.
llvm-svn: 43499
2007-10-30 12:50:39 +00:00
Duncan Sands
d095f59cde
If a call to getTruncStore is for a normal store,
...
offload to getStore rather than trying to handle
both cases at once (the assertions for example
assume the store really is truncating).
llvm-svn: 43498
2007-10-30 12:40:58 +00:00
Dale Johannesen
c4bfe4a99e
Fix argument types for PSLLQ, PSRLQ.
...
llvm-svn: 43490
2007-10-30 01:44:33 +00:00
Dale Johannesen
461a0c47f8
Add missing MMX PSUBQ.
...
llvm-svn: 43488
2007-10-30 01:18:38 +00:00
Evan Cheng
633cd3e84d
- Bug fixes.
...
- Allow icmp rewrite using an iv / stride of a smaller integer type.
llvm-svn: 43480
2007-10-29 22:07:18 +00:00
Hartmut Kaiser
5ff0631910
Updated VC++ build system
...
llvm-svn: 43479
2007-10-29 21:56:15 +00:00
Dan Gohman
02b8beff5f
Fix a DAGCombiner abort on a bitcast from a scalar to a vector.
...
llvm-svn: 43470
2007-10-29 20:44:42 +00:00
Dan Gohman
1c499173c8
Don't bitcast from pointer-to-vector to pointer-to-array when
...
lowering load and store instructions.
llvm-svn: 43468
2007-10-29 20:34:35 +00:00
Dan Gohman
8f74d7f5c0
Use an array instead of a fixed-length std::vector.
...
llvm-svn: 43467
2007-10-29 20:24:00 +00:00
Dan Gohman
0e9e5b6534
Do a real assert if there is an unhandled vector instruction instead
...
of just printing to cerr.
llvm-svn: 43466
2007-10-29 20:14:29 +00:00
Evan Cheng
5fe81cf64e
Enable more fold (sext (load x)) -> (sext (truncate (sextload x)))
...
transformation. Previously, it's restricted by ensuring the number of load uses
is one. Now the restriction is loosened up by allowing setcc uses to be
"extended" (e.g. setcc x, c, eq -> setcc sext(x), sext(c), eq).
llvm-svn: 43465
2007-10-29 19:58:20 +00:00
Dan Gohman
65be3b6502
Add explicit keywords.
...
llvm-svn: 43464
2007-10-29 19:52:04 +00:00
Dan Gohman
a309c59972
Update a comment to reflect the current code.
...
llvm-svn: 43463
2007-10-29 19:32:39 +00:00
Dan Gohman
459bb8cbd2
Remove an unused function argument.
...
llvm-svn: 43462
2007-10-29 19:31:25 +00:00
Dan Gohman
30b8bd2ad4
Fix a typo in a comment.
...
llvm-svn: 43461
2007-10-29 19:26:14 +00:00
Dan Gohman
957fd1704a
Avoid calling ValidStride when not all uses are addresses.
...
llvm-svn: 43460
2007-10-29 19:23:53 +00:00
Ted Kremenek
4f7fd889e1
Fixed warning concerning implicit conversion from a NULL pointer
...
constant to an unsigned int. We now just directly assign the literal 0.
llvm-svn: 43459
2007-10-29 18:43:39 +00:00
Chris Lattner
875ca50576
update testcase
...
llvm-svn: 43452
2007-10-29 17:06:35 +00:00
Evan Cheng
1113931fd8
Avoid doing something dumb like rewriting using a 64-bit iv in 32-bit mode.
...
llvm-svn: 43446
2007-10-29 07:57:50 +00:00
Chris Lattner
be8379fac5
add a note.
...
llvm-svn: 43444
2007-10-29 06:19:48 +00:00
Chris Lattner
3d6151bcd1
Model stacksave and stackrestore as both writing memory, since we
...
don't model their dependences on allocas correctly. This fixes
PR1745.
llvm-svn: 43442
2007-10-29 05:47:52 +00:00
Owen Anderson
229333c94b
Add a first attempt at dominator information for MBB's. Use with caution: this has been tested to compile. It has not yet been confirmed to generate correct analysis.
...
llvm-svn: 43438
2007-10-29 04:50:50 +00:00
Chris Lattner
1659eb3c3f
I am not sure this is a good idea to be an option, but rename the option for
...
now. It conflicts with clang's -pedantic flag.
llvm-svn: 43431
2007-10-29 03:14:55 +00:00
Chris Lattner
1503362624
Add support for the x86-64 'q' regigster modifier, and add support for the
...
b/h/w/k/q inline asm memory modifiers, which are just ignored. This fixes
PR1748 and CodeGen/X86/2007-10-28-inlineasm-q-modifier.ll
llvm-svn: 43430
2007-10-29 03:09:07 +00:00
Chris Lattner
7e3a8a7604
Fix PR1749 and InstCombine/2007-10-28-EmptyField.ll by handling
...
zero-length fields better.
llvm-svn: 43427
2007-10-29 02:40:02 +00:00
Chris Lattner
891066cfff
Fix PR1752 and LoopSimplify/2007-10-28-InvokeCrash.ll: terminators
...
can have uses too. Wouldn't it be nice if invoke didn't exist? :)
llvm-svn: 43426
2007-10-29 02:30:37 +00:00
Ted Kremenek
3ad324488b
Fixed assertion in Deserializer::~Deserializer that checks for
...
pointers that were not backpatched (previously checked the wrong invariant).
llvm-svn: 43425
2007-10-28 23:38:38 +00:00
Anton Korobeynikov
ab0c5f6d32
Add 'pedantic' mode to verifier rejecting syntactically valid, but 'bad' due to other reasons code
...
llvm-svn: 43424
2007-10-28 22:50:32 +00:00