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
Duncan Sands
310343bae7
Unbreak the llvm-gcc build: recent changes to
...
IRBuilder are not expecting null names.
llvm-svn: 54581
2008-08-09 15:14:59 +00:00
Cedric Venet
15817f1acc
update VS project.
...
llvm-svn: 54580
2008-08-09 11:57:39 +00:00
Chris Lattner
270ee0cb58
Make 'Insert' set the name for Loads, instead of passing the name into the
...
LoadInst ctor, which causes std::string thrashing.
llvm-svn: 54577
2008-08-09 06:26:23 +00:00
Chris Lattner
64e06e8dac
comment update
...
llvm-svn: 54576
2008-08-09 06:25:46 +00:00
Gordon Henriksen
051f7c07a9
Fix some typos. Apparently I think C needs a power-of operator.
...
llvm-svn: 54574
2008-08-09 03:48:46 +00:00
Gordon Henriksen
78a53c516d
Delete a redundant binding, LLVMHasInitializer.
...
Please use !LLVMIsDeclaration instead.
llvm-svn: 54572
2008-08-09 02:13:58 +00:00
Gordon Henriksen
b3806a3386
[PR-2610] Adding Ocaml bindings for Switch::addCase.
...
llvm-svn: 54571
2008-08-09 01:55:52 +00:00
Gordon Henriksen
b0ee2172b0
Fix the LLVMCreateJITCompiler C binding.
...
Evan broke it in r54523 by adding a parameter in the implementation without
updating the header correspondingly.
llvm-svn: 54555
2008-08-08 20:49:28 +00:00
Eric Christopher
dcd4752642
Have IRBuilder take a template argument on whether or not to preserve
...
names. This can save a lot of allocations if you aren't going to be
looking at the output.
llvm-svn: 54546
2008-08-08 19:39:37 +00:00
Dan Gohman
c3d40ae243
Canonicalize nested AddRecs in by nesting them in order of loop depth.
...
llvm-svn: 54545
2008-08-08 18:33:12 +00:00
Dan Gohman
ac992cdc1c
Add an EXTRACTPSmr pattern to match the pattern that
...
X86ISelLowering creates.
llvm-svn: 54544
2008-08-08 18:30:21 +00:00
Anton Korobeynikov
62d8837ed2
Properly print flags on Sparc
...
llvm-svn: 54543
2008-08-08 18:26:10 +00:00
Anton Korobeynikov
14142919d0
Generalize
...
llvm-svn: 54542
2008-08-08 18:25:52 +00:00