Dan Gohman
027326ba3e
Use empty() instead of begin() == end().
...
llvm-svn: 54780
2008-08-14 18:13:49 +00:00
Matthijs Kooijman
3bbc2deb9c
Replace two for loops with while(!X->use_empty()) loops. This prevents
...
invalidating the iterator by deleting the current use. This fixes a segfault on
64 bit linux reported in PR2675.
Also remove an unneeded if.
llvm-svn: 54778
2008-08-14 15:03:05 +00:00
Owen Anderson
34aee11210
Get rid of a use of std::map.
...
llvm-svn: 54770
2008-08-13 23:36:23 +00:00
Dan Gohman
db5b503d60
Fix a bogus srem rule - a negative value srem'd by a power-of-2
...
can have a non-negative result; for example, -16%16 is 0. Also,
clarify the related comments. This fixes PR2670.
llvm-svn: 54767
2008-08-13 23:12:35 +00:00
Owen Anderson
de29970fc6
Expunge the last uses of std::map from LiveIntervals.
...
llvm-svn: 54766
2008-08-13 22:28:50 +00:00
Owen Anderson
550fc15832
Move r2iMap_ over to DenseMap from std::map.
...
llvm-svn: 54765
2008-08-13 22:08:30 +00:00
Dan Gohman
096cdc6059
Allow SelectionDAG to create EXTRACT_VECTOR_ELT nodes with
...
non-constant indices. Only a few of the peephole checks require
a constant index.
llvm-svn: 54764
2008-08-13 21:51:37 +00:00
Owen Anderson
28f2e658f1
Make the allocation of LiveIntervals explicit, rather than holding them in the r2iMap_ by value. This will prevent references to them from being invalidated
...
if the map is changed.
llvm-svn: 54763
2008-08-13 21:49:13 +00:00
Owen Anderson
612fc9babc
Switch this from std::map to DenseMap.
...
llvm-svn: 54761
2008-08-13 21:24:24 +00:00
Dan Gohman
374d9328b7
Fix SCCP's handling of struct value loads and stores. SCCP doesn't
...
track individual leaf values in such cases, so it needs to treat
struct values as normal values in this case.
llvm-svn: 54760
2008-08-13 21:22:48 +00:00
Daniel Dunbar
e249d30421
Add default constructor to APSInt
...
- Creates uninitialized APInt.
- Prevents need for embedding arbitrary constants when used as an out
parameter, for example.
llvm-svn: 54757
2008-08-13 20:53:17 +00:00
Daniel Dunbar
4e592412d4
Update makellvm to return correct result code.
...
llvm-svn: 54756
2008-08-13 20:43:56 +00:00
Devang Patel
bb9cb77326
Rename. s/FindIVForUser/FindIVUserForCond/g
...
llvm-svn: 54754
2008-08-13 20:31:11 +00:00
Duncan Sands
26e54f3570
Teach constant folding that an inttoptr of a
...
ptrtoint can be turned into a bitcast if the
integer is at least as wide as a pointer.
llvm-svn: 54752
2008-08-13 20:20:35 +00:00
Dan Gohman
4b1b033f89
Initial checkin of the new "fast" instruction selection support. See
...
the comments in FastISelEmitter.cpp for details on what this is.
This is currently experimental and unusable.
llvm-svn: 54751
2008-08-13 20:19:35 +00:00
Dan Gohman
502d2aebff
Oops, check in these files too, for the FastISel -> Fast rename.
...
llvm-svn: 54750
2008-08-13 19:55:00 +00:00
Dan Gohman
9e27bed4f0
Rename SelectionDAGISel's FastISel to Fast, to begin to make
...
room for the new FastISel instruction selection code.
llvm-svn: 54749
2008-08-13 19:47:40 +00:00
Dale Johannesen
b23672a4e3
Generated files for 54744.
...
llvm-svn: 54745
2008-08-13 18:41:46 +00:00
Dale Johannesen
c3d88ff804
Add read/write support for X86's sseregparm.
...
llvm-svn: 54744
2008-08-13 18:40:23 +00:00
Owen Anderson
9007c9afde
Get rid of unused variable.
...
llvm-svn: 54742
2008-08-13 17:44:52 +00:00
Owen Anderson
95ac2ab349
1) Merge entire live intervals instead of parts of them.
...
2) Conditionalize temporary insertion if we don't need it.
llvm-svn: 54741
2008-08-13 17:25:42 +00:00
Duncan Sands
77e09ca5d0
Rename this, in case people think that NullFolder
...
has something to do with folding null values.
llvm-svn: 54725
2008-08-13 08:56:48 +00:00
Bruno Cardoso Lopes
97e12b0e44
Removed SELECT_CC custom lowering. This is not needed anymore, the SELECT node
...
is lowered properly and covers everything LowerSELECT_CC did.
Added method printUnsignedImm in AsmPrinter to print uimm16 operands. This
avoid the ugly instruction by instruction checking in printOperand.
Added a swap instruction present in the allegrex core.
Added two conditional instructions present in the allegrex core : MOVZ and MOVN.
They both allow a more efficient SELECT operation for integers.
Also added SELECT patterns to optimize MOVZ and MOVN usage.
The brcond and setcc patterns were cleaned: redundant and suboptimal patterns
were
removed. The suboptimals were replaced by more efficient ones.
Fixed some instructions that were using immZExt16 instead of immSExt16.
llvm-svn: 54724
2008-08-13 07:13:40 +00:00
Devang Patel
a82e51a430
Check sign to detect overflow before changing compare stride.
...
llvm-svn: 54710
2008-08-13 02:05:14 +00:00
Dale Johannesen
686068490f
When resolving a stub in x86-64 JIT, use a PC-relative branch
...
rather than the absolute address if the target is within range.
llvm-svn: 54708
2008-08-12 23:20:24 +00:00
Bill Wendling
d910182ca9
Remove tabs.
...
llvm-svn: 54707
2008-08-12 23:15:44 +00:00
Bill Wendling
b1b6acfb74
Update. Remove bogus webpage.
...
llvm-svn: 54705
2008-08-12 21:55:54 +00:00
Dale Johannesen
4dc25a234c
Make x86-64 JIT changes Darwin-specific.
...
llvm-svn: 54700
2008-08-12 21:02:08 +00:00
Duncan Sands
0f1ba9dee5
Add a NullFolder class that doesn't fold constants.
...
This may be used as the second IRBuilder template
parameter, the idea being that people learning LLVM
may find it helpful (several people asked on IRC
if it was possible to turn off constant folding
because it made it hard for them to see what was
going on). Compiles, but otherwise completely
untested.
llvm-svn: 54698
2008-08-12 20:39:27 +00:00
Dan Gohman
37da9e9dbd
Extend ScalarEvolution's executesAtLeastOnce logic to be able to
...
continue past the first conditional branch when looking for a
relevant test. This helps it avoid using MAX expressions in
loop trip counts in more cases.
llvm-svn: 54697
2008-08-12 20:17:31 +00:00
Jim Grosbach
df52e6897d
Whitespace cleanup. Test commit.
...
llvm-svn: 54695
2008-08-12 18:34:45 +00:00
Dale Johannesen
74bf5907fa
In the absence of a linker to build the GOT, use the 32-bit
...
non_lazy_ptr mechanism on x86-64 Darwin JIT. Fixes a bunch
of last night's failures.
llvm-svn: 54692
2008-08-12 18:23:48 +00:00
Dan Gohman
f927e9615f
Correct the filename in the top-of-file comment.
...
llvm-svn: 54688
2008-08-12 17:42:33 +00:00
Dan Gohman
74ac3fddee
Avoid repeatedly reallocating the FoldingSetNodeID when searching
...
through multiple nodes in a bucket.
llvm-svn: 54687
2008-08-12 17:40:22 +00:00
Devang Patel
d0aabe5ce6
Use SmallVector instead of std::vector
...
llvm-svn: 54685
2008-08-12 15:44:31 +00:00
Duncan Sands
ceacf7d17b
Point people to ConstantExpr and ConstantFolding,
...
in case they get the wrong idea. Fit in 80 columns.
llvm-svn: 54676
2008-08-12 09:43:15 +00:00
Devang Patel
670f3a9e03
Use DenseMap to keep track of last users.
...
Use inversed map for faster queries.
llvm-svn: 54662
2008-08-12 00:26:16 +00:00
Dale Johannesen
718fcee02d
Some fixes for x86-64 JIT. Make it use small code
...
model, except for external calls; this makes
addressing modes PC-relative. Incomplete.
The assertion at the top of Emitter::runOnMachineFunction
was obviously bogus (always true) so I removed it.
If someone knows what the correct test should be to cover
all the various targets, please fix.
llvm-svn: 54656
2008-08-11 23:46:25 +00:00
Chris Lattner
0e03352a9f
add a helper method to sys::Path for clang, patch by
...
Kovarththanan Rajaratnam!
llvm-svn: 54655
2008-08-11 23:39:47 +00:00
Chris Lattner
ae09ade343
Implement support for simplifying vector comparisons by 0.0 and 1.0 like we
...
do for scalars. Patch contributed by Nicolas Capens
This also generalizes the previous xforms to work on long double, now that
isExactlyValue works for long double.
llvm-svn: 54653
2008-08-11 22:06:05 +00:00
Devang Patel
404762f720
Keep track of analysis usage information for passes. Avoid invoking
...
getAnalysisUsage() repeatedly.
llvm-svn: 54650
2008-08-11 21:13:39 +00:00
Dan Gohman
6789ef32d7
Improve the grep commands for this test to be tolerant of ABI
...
differences, and to be more specific.
llvm-svn: 54648
2008-08-11 20:10:41 +00:00
Dan Gohman
a27ed39f05
Take the FrameOffset into account when computing the alignment
...
of stack objects. This fixes PR2656.
llvm-svn: 54646
2008-08-11 18:27:03 +00:00
Nate Begeman
9be47adde4
Implement ISD::TRAP support on PPC
...
llvm-svn: 54644
2008-08-11 17:36:31 +00:00
Duncan Sands
cac74d2a10
Make it possible to use different constant
...
folding policies with IRBuilder. The default,
provided by ConstantFolder, is to do minimal
folding like now: what ConstantExpr provides.
An alternative is to use TargetFolder, which
uses target information to fold constants more.
llvm-svn: 54640
2008-08-11 15:29:30 +00:00
Chris Lattner
90a1c7faa8
the stacker doc is way out of date.
...
llvm-svn: 54631
2008-08-11 06:13:31 +00:00
Chris Lattner
fecb2b44a4
remove obsolete files
...
llvm-svn: 54630
2008-08-11 06:12:45 +00:00
Chris Lattner
6e083dfadd
move some more stuff out of my email into readme.txt
...
llvm-svn: 54603
2008-08-10 01:14:08 +00:00
Chris Lattner
7673a468dc
add a note
...
llvm-svn: 54602
2008-08-10 00:47:21 +00:00
Chris Lattner
89120a8e63
"This patch adds a virtual call to AbstractLatticeFunction to derive a
...
type lattice value for an Argument*, giving clients the opportunity to
use something other than Top for it if they choose to."
Patch by John McCall!
llvm-svn: 54589
2008-08-09 17:23:35 +00:00