Evan Cheng
c55e151e45
Rename a test-not-cmp.ll to cmp-test.ll; add a test.
...
llvm-svn: 30243
2006-09-11 02:33:29 +00:00
Evan Cheng
f82eb13e3b
1) With X86 lowering change, the following can no longer happen since
...
the branch's chain is also produced by cmp.
[ch, r : ld]
^ ^
| |
[XX]--/ \- [flag : cmp]
^ ^
| |
\---[br flag]-
Remove an isel check which prevents loads from being folded into cmp / test
instructions.
2) Whenever possible, delete a selected node to allow more load folding
opportunities. Note not all nodes can be deleted after it has been
selected. Some may have simply morphed; some have not changed at all (e.g.
EntryToken).
llvm-svn: 30242
2006-09-11 02:24:43 +00:00
Evan Cheng
cfd7b147cf
X86ISD::CMP now produces a chain as well as a flag. Make that the chain
...
operand of a conditional branch to allow load folding into CMP / TEST
instructions.
llvm-svn: 30241
2006-09-11 02:19:56 +00:00
Nate Begeman
1109e4a222
Behold, more work on relocations. Things are looking pretty good now.
...
llvm-svn: 30240
2006-09-10 23:03:44 +00:00
Anton Korobeynikov
4141c7992e
Removed unnecessary Mangler creation.
...
llvm-svn: 30239
2006-09-10 21:17:03 +00:00
Chris Lattner
02d50a2254
add a testcase for this commit: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050606/026673.html
...
llvm-svn: 30238
2006-09-10 18:52:25 +00:00
Chris Lattner
2921612126
Allow tail duplication in more cases, relaxing the previous restriction a
...
bit. This fixes Regression/Transforms/TailDup/MergeTest.ll
llvm-svn: 30237
2006-09-10 18:17:58 +00:00
Chris Lattner
480465a171
This code was trying too hard. By eliminating redundant edges in the CFG
...
due to switch cases going to the same place, it make #pred != #phi entries,
breaking live interval analysis.
This fixes 458.sjeng on x86 with llc.
llvm-svn: 30236
2006-09-10 06:36:57 +00:00
Nick Lewycky
3bfe103166
Replace EquivalenceClasses with a custom-built data structure. Many common
...
operations (like findProperties) should be faster, at the expense of
unionSets being slower in cases that are rare in practise.
Don't erase a dead Instruction. This fixes a memory corruption issue.
llvm-svn: 30235
2006-09-10 02:27:07 +00:00
Chris Lattner
91d21d85e8
Implement Transforms/InstCombine/hoist_instr.ll
...
llvm-svn: 30234
2006-09-09 22:02:56 +00:00
Chris Lattner
2343a5c79f
new testcase
...
llvm-svn: 30233
2006-09-09 22:02:25 +00:00
Chris Lattner
1f4901d69e
Move ipsccp pass earlier to clean up obvious bogosities
...
llvm-svn: 30232
2006-09-09 21:30:13 +00:00
Chris Lattner
2122c2e124
Make inlining costs more accurate.
...
llvm-svn: 30231
2006-09-09 20:40:44 +00:00
Chris Lattner
6847781b3e
Turn div X, (Cond ? Y : 0) -> div X, Y
...
This implements select.ll::test18.
llvm-svn: 30230
2006-09-09 20:26:32 +00:00
Chris Lattner
053797e5c7
new testcase
...
llvm-svn: 30229
2006-09-09 20:26:04 +00:00
Jim Laskey
a482c765bb
Missing anchor
...
llvm-svn: 30227
2006-09-09 09:10:37 +00:00
Chris Lattner
e4ef84f421
Add cbe support for powi
...
llvm-svn: 30226
2006-09-09 06:17:12 +00:00
Chris Lattner
b935214653
Implement the fpowi now by lowering to a libcall
...
llvm-svn: 30225
2006-09-09 06:03:30 +00:00
Chris Lattner
00b84b6eab
(indirect) test for the __builtin_powi builtin which we now support.
...
llvm-svn: 30224
2006-09-09 06:02:16 +00:00
Chris Lattner
7005757ced
Implement new fpowi node
...
llvm-svn: 30223
2006-09-09 05:55:44 +00:00
Chris Lattner
8536526496
Allow targets to custom lower expanded BIT_CONVERT's
...
llvm-svn: 30217
2006-09-09 00:20:27 +00:00
Nate Begeman
2dfa13e74f
First pass at supporting relocations. Relocations are written correctly to
...
the file now, however the relocated address is currently wrong. Fixing
that will require some deep pondering.
llvm-svn: 30207
2006-09-08 22:42:09 +00:00
Evan Cheng
59e25ca829
Fixed a FuseTwoAddrInst() bug: consider GlobalAddress and JumpTableIndex
...
in addition to immediate operands.
llvm-svn: 30205
2006-09-08 21:08:13 +00:00
Chris Lattner
d269774664
Non-allocatable physregs can be killed and dead, but don't treat them as
...
safe for later allocation. This fixes McCat/18-imp with llc-beta.
llvm-svn: 30204
2006-09-08 20:21:31 +00:00
Chris Lattner
a531dd1879
This fixes Benchmarks/Prolangs-C/unix-smail
...
llvm-svn: 30198
2006-09-08 19:11:11 +00:00
Chris Lattner
16e4937a31
Fix a bunch of llc-beta failures on x86 yesterday. Don't allow selection
...
of unallocatable registers, just because an alias is allocatable. We were
picking registers like SIL just because ESI was being used.
llvm-svn: 30197
2006-09-08 19:03:30 +00:00
Chris Lattner
818f2a71e8
ok this really works :)
...
llvm-svn: 30195
2006-09-08 18:33:49 +00:00
Devang Patel
325ff2c001
Remove redundant include.
...
llvm-svn: 30194
2006-09-08 18:20:25 +00:00
Chris Lattner
701a3083ec
Need to include Makefile.config to get the value of $(OS). Add a comment.
...
llvm-svn: 30193
2006-09-08 18:08:50 +00:00
Anton Korobeynikov
c63a56537f
Enabling LTO building on Darwin only right now. This probably should be
...
removed after 'PIC vs non-PIC' problem solution
llvm-svn: 30192
2006-09-08 18:00:43 +00:00
Rafael Espindola
20146be5e8
implement shl and sra
...
llvm-svn: 30191
2006-09-08 17:36:23 +00:00
Chris Lattner
6366d97d9e
Use __USER_LABEL_PREFIX__ to get the prefix added by the current host.
...
llvm-svn: 30190
2006-09-08 17:03:56 +00:00
Rafael Espindola
9ffcdb8ab7
add the eor (xor) instruction
...
llvm-svn: 30189
2006-09-08 16:59:47 +00:00
Jim Laskey
8cbf601f06
Missing tab
...
llvm-svn: 30188
2006-09-08 13:06:56 +00:00
Rafael Espindola
faf67d2718
fix select.ll to always test a select node
...
llvm-svn: 30187
2006-09-08 12:52:50 +00:00
Rafael Espindola
af1689d5a5
implement unconditional branches
...
fix select.ll
llvm-svn: 30186
2006-09-08 12:47:03 +00:00
Evan Cheng
9d17d65cc4
Generated isel should favors explicit constant operand (+2) over an operand with a predicate (+1).
...
llvm-svn: 30180
2006-09-08 07:26:39 +00:00
Evan Cheng
384c254470
New test case.
...
llvm-svn: 30179
2006-09-08 07:24:20 +00:00
Evan Cheng
100e48fe40
Remove TEST64mr. It's same as TEST64rm since and is commutative.
...
llvm-svn: 30178
2006-09-08 06:56:55 +00:00
Evan Cheng
15dd42884e
Committing X86-64 support.
...
llvm-svn: 30177
2006-09-08 06:48:29 +00:00
Chris Lattner
98c39f8e5b
add powi intrinsics.
...
llvm-svn: 30176
2006-09-08 06:43:00 +00:00
Chris Lattner
06c3df5cb1
new powi intrinsic
...
llvm-svn: 30175
2006-09-08 06:34:02 +00:00
Nate Begeman
bb053826f9
We actually do support object file writing, so don't return true (error)
...
llvm-svn: 30173
2006-09-08 03:42:15 +00:00
Evan Cheng
f56e6f2861
Add a new test case for 'undef' shuffles.
...
llvm-svn: 30172
2006-09-08 01:54:32 +00:00
Evan Cheng
da0f93c5af
- Identify a vector_shuffle that can be turned into an undef, e.g.
...
shuffle V1, <undef>, <undef, undef, 4, 5>
- Fix some suspicious logic into LowerVectorShuffle that cause less than
optimal code by failing to identify MOVL (move to lowest element of a
vector).
llvm-svn: 30171
2006-09-08 01:50:06 +00:00
Jim Laskey
160a8aa339
1. Remove condition on delete.
...
2. Protect and outline createTargetAsmInfo.
3. Misc. kruft.
llvm-svn: 30169
2006-09-07 23:39:26 +00:00
Devang Patel
2e8547542f
Untabify.
...
llvm-svn: 30168
2006-09-07 23:29:19 +00:00
Devang Patel
6971b40067
Use iterative do-while loop instead of recursive DFSPass calls to
...
reduce amount of stack space used at runtime.
llvm-svn: 30167
2006-09-07 23:22:37 +00:00
Chris Lattner
f4c05c3170
add a new value for the command line optn
...
llvm-svn: 30165
2006-09-07 22:32:28 +00:00
Chris Lattner
6d59598acc
Fix a cross-build issue. The asmsyntax shouldn't be affected by the build
...
host, it should be affected by the target. Allow the command line option to
override in either case.
llvm-svn: 30164
2006-09-07 22:29:41 +00:00