Evan Cheng
6e56e2c602
Fixed a bug which causes x86 be to incorrectly match
...
shuffle v, undef, <2, ?, 3, ?>
to movhlps
It should match to unpckhps instead.
Added proper matching code for
shuffle v, undef, <2, 3, 2, 3>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31519 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 22:14:24 +00:00
Devang Patel
92c45eebf7
Add ModulePassManager_New.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31517 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 22:03:15 +00:00
Jim Laskey
4d0c1a04bc
Accidently reran commit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31516 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 21:58:55 +00:00
Devang Patel
448d27cd79
Add FunctionPassManager_New.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31515 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 21:49:50 +00:00
Jim Laskey
5e213ea697
Missed a label map, reverting till covered.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31514 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 21:37:31 +00:00
Devang Patel
55fd43f909
Add BasicBlockPassManager_New.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31513 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 21:31:57 +00:00
Jim Laskey
fffcd69709
Missed a label map, reverting till covered.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31512 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 20:53:05 +00:00
Andrew Lenharth
1bce1fb054
Optionally allow comparison operations from affect DSGraphs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31511 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 20:39:05 +00:00
Andrew Lenharth
df983de743
Allow loop detection during debug in forwarding nodes, and revert auxcall patch as it make 176.gcc untenable
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31510 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 20:36:02 +00:00
Andrew Lenharth
eb01e395e7
debug type for DSA TD
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31509 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 20:35:11 +00:00
Jim Laskey
9d4209fb82
1. Add a pass to fold debug label instructions so a debug info client can detect
...
empty ranges.
2. Reorg how MachineDebugInfo maintains changes to debug labels.
3. Have dwarf writer use debug label info to simplify scopes and source line
coorespondence.
4. Revert the merging of compile units until I can get the bugs ironed out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31507 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 19:33:46 +00:00
Chris Lattner
6e11295b23
add a note from viterbi
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31506 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 18:30:21 +00:00
Chris Lattner
393ebae0ef
Enable improved spilling costs by default. This speeds up viterbi on x86
...
by 40%, FreeBench/fourinarow by 20%, and many other programs 10-25%.
On PPC, this speeds up fourinarow by 18%, and probably other things as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31504 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 18:04:58 +00:00
Jim Laskey
7902c75331
Use correct value for float HUGH_VAL.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31500 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 12:25:45 +00:00
Evan Cheng
bbd6f6ec1a
Add post-indexed load / store transformations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31498 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 09:03:05 +00:00
Chris Lattner
b75a663707
Add a new llcbeta option. This speeds up viterbi from 12.34 to 8.76s on
...
X86. If happy, I'll enable this by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31493 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 07:18:40 +00:00
Reid Spencer
5a4951e936
Unbreak X86/ELF Debugging. Somehow this line got lost in Jim's cleanup.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31492 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 06:36:36 +00:00
Chris Lattner
fa9aa2b424
Fix PR988 and CodeGen/Generic/2006-11-06-MemIntrinsicExpand.ll.
...
The low part goes in the first operand of expandop, not the second one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31487 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 04:11:44 +00:00
Chris Lattner
0921365b88
fix encoding of BLR
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31485 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-07 01:51:50 +00:00
Evan Cheng
d5ad440f43
Remove dead code; added a missing null ptr check.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31478 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-06 21:33:46 +00:00
Chris Lattner
8c97c07040
add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31477 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-06 21:26:49 +00:00
Jim Laskey
f910a3ff0f
Tab interferes with uniqueness.
...
NOTE: There doesn't seem to be consistency for whether a leading tab
is present in a section heading.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31475 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-06 16:23:59 +00:00
Jim Laskey
84ca10f47b
D'oh - reversed logic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31474 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-06 13:20:29 +00:00
Evan Cheng
3ef554d2b1
Add comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31473 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-06 08:14:30 +00:00
Jeff Cohen
d41b30def3
Unbreak VC++ build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31464 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-05 19:31:28 +00:00
Reid Spencer
bcf81242df
Fix a bug in the last patch and convert to && instead of & for logical expr.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31463 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-05 19:26:37 +00:00
Reid Spencer
7c475c5d12
Implement the -enabled-cbe-printf-a feature.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31462 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-05 17:09:41 +00:00
Nick Lewycky
8b2989ae91
Remove commented line from earlier debugging.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31460 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-05 14:19:40 +00:00
Evan Cheng
33dbedcdcb
Added pre-indexed store support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31459 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-05 09:31:14 +00:00
Evan Cheng
9109fb1eb7
Added getIndexedStore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31458 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-05 09:30:09 +00:00
Jim Laskey
5cd496e727
Live local variables are being dropped because the begin or end labels marking
...
their scope are being deleted. Workaround is to widen scope to full function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31454 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-04 10:48:07 +00:00
Evan Cheng
95f6edeff5
Changes to use operand constraints to process two-address instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31453 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-04 09:44:31 +00:00
Chris Lattner
6fc40079f3
encode BLR predicate info for the JIT
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31450 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-04 05:42:48 +00:00
Chris Lattner
af53a87052
Go through all kinds of trouble to mark 'blr' as having a predicate operand
...
that takes a register and condition code. Print these pieces of BLR the
right way, even though it is currently set to 'always'.
Next up: get the JIT encoding right, then enhance branch folding to produce
predicated blr for simple examples.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31449 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-04 05:27:39 +00:00
Evan Cheng
e077ef6e85
Fixed some spiller bugs exposed by the recent two-address code changes. Now
...
there may be other def(s) apart from the use&def two-address operand. We need
to check if the register reuse for a use&def operand may conflicts with another
def. Provide a mean to recover from the conflict if it is detected when the
defs are processed later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31439 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-04 00:21:55 +00:00
Chris Lattner
0638b260dc
Describe PPC predicates, which are a pair of CR# and condition.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31438 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 23:53:25 +00:00
Chris Lattner
60a09a5d6d
initial steps to getting the predicate on PPC::BLR right.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31437 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 23:52:18 +00:00
Chris Lattner
e69c436e6f
remove dead var
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31436 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 23:50:15 +00:00
Chris Lattner
3751844b39
remove dead/redundant vars
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31435 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 23:48:56 +00:00
Chris Lattner
56fe5276ef
remove redundant/dead vars
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31434 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 23:47:20 +00:00
Chris Lattner
7049540de5
remove dead vars
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31433 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 23:46:45 +00:00
Andrew Lenharth
8ed4c47d70
The wrong parameter was being tested to deturmine i32 vs i64
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31431 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 22:45:50 +00:00
Chris Lattner
d7c628de89
add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31429 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 22:27:39 +00:00
Chris Lattner
7765d71304
Fix BasicAA/2006-11-03-BasicAAVectorCrash.ll by handling out-of-range
...
vector accesses like we handle out-of-range array accesses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31427 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 21:58:48 +00:00
Chris Lattner
033b107e10
this will work better
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31419 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 19:15:55 +00:00
Chris Lattner
0709718665
Fix the build on xcode < 2.4
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31417 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 19:13:59 +00:00
Andrew Lenharth
118c094176
Split the External and Intrinsic handling into seperate functions. This
...
improves readability of the call handling code significantly, as well as
makes it clear which parts are hacky (externals) and which parts are good
(call handling).
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31415 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 17:43:19 +00:00
Evan Cheng
e6e97e66a3
Fix comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31414 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 07:31:32 +00:00
Evan Cheng
1a854be352
Rename
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31413 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 07:21:16 +00:00
Reid Spencer
b8f4e0aa17
Remove dead variable. Fix 80 column violations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31412 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 03:30:34 +00:00
Rafael Espindola
f05696c1b5
revert previous patch
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31411 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 03:08:28 +00:00
Evan Cheng
7fc033a24d
Added DAG combiner transformation to generate pre-indexed loads.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31410 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 03:06:21 +00:00
Evan Cheng
c5fc57dcae
Added isPredecessor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31409 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 03:05:24 +00:00
Evan Cheng
bf105c8424
Proper check for two-addressness.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31408 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 03:04:46 +00:00
Evan Cheng
bdd371c0ed
Dead code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31405 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 02:08:41 +00:00
Reid Spencer
e03f09c64f
Remove some dead code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31401 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:44:51 +00:00
Rafael Espindola
115bfcb574
add createCFGSimplificationPass to ARMTargetMachine::addInstSelector
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31400 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:39:25 +00:00
Rafael Espindola
39c6d3aac1
assert.h -> cassert
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31399 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:38:14 +00:00
Chris Lattner
ffa0a9b7ea
remove dead code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31398 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:34:58 +00:00
Chris Lattner
02cb49ee67
silence warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31397 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:28:29 +00:00
Chris Lattner
6f51a77827
silence warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31395 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:19:31 +00:00
Chris Lattner
1331dec131
silence warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31394 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:18:29 +00:00
Chris Lattner
15092547e4
silence warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31393 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:13:15 +00:00
Chris Lattner
9c5d4de837
silence warnings
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31392 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 01:11:05 +00:00
Reid Spencer
3a717d522f
Make CBackend -pedantic clean.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31388 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-03 00:00:57 +00:00
Reid Spencer
97821311a3
Make CodeGen libs -pedantic clean.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31387 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 23:56:21 +00:00
Rafael Espindola
2b8ba512be
#include <assert.h>
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31386 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 23:48:53 +00:00
Chris Lattner
4d5c0014b6
fix a bug reid noticed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31385 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 23:39:53 +00:00
Jim Laskey
f673388351
1. Hash not quite right for DIEValues.
...
2. Not going to use Usage (no significant benefit.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31384 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 21:48:18 +00:00
Reid Spencer
9bd6d65e29
Remove unused variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31382 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 20:55:40 +00:00
Reid Spencer
3ed469ccd7
For PR786:
...
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31380 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 20:25:50 +00:00
Jim Laskey
ef42a01113
General clean up of teh dwarf writer.
...
1. Most significant is the folding of debug information entries. This
reduced self hosted -g SelectionDAGISel.s from 120M to 13M and pretty
close to matching .o file sizes with gcc.
2. Debug information entry printing for debugging the dwarf code.
3. Bring all the code closer to llvm standards.
4. Misc. fixes and doc clean ups.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31379 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 20:12:39 +00:00
Rafael Espindola
e931a37a4e
move ARMCondCodeToString to ARMAsmPrinter.cpp
...
remove unused variables from lowerCall
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31378 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 15:00:02 +00:00
Jim Laskey
1f67a99260
Allow FoldingSet clients to pump up the initial hash size.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31377 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 14:21:26 +00:00
Reid Spencer
41562398b6
Remove unused variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31376 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 08:23:44 +00:00
Reid Spencer
4ab09d4bb7
Remove unused variables.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31375 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 08:18:15 +00:00
Reid Spencer
45430ac4f6
Remove a function prototype that is no longer needed (REM patch missed it)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31374 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 08:12:02 +00:00
Reid Spencer
2b86b0e95c
Get rid of unused variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31373 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 07:59:59 +00:00
Andrew Lenharth
d079cdb6d3
fix 2006-11-01-vastart.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31371 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 03:05:26 +00:00
Reid Spencer
0a783f783c
For PR950:
...
Replace the REM instruction with UREM, SREM and FREM.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31369 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 01:53:59 +00:00
Chris Lattner
331d1bc5df
Implement the getRegForInlineAsmConstraint method for PPC. With recent
...
sdisel changes, this eliminates a ton of copies around common inline asms.
For example:
int test2(int Y, int X) {
asm("foo %0, %1" : "=r"(X): "r"(X));
return X;
}
now compiles to:
_test2:
foo r3, r4
blr
instead of:
_test2:
mr r2, r4
foo r2, r2
mr r3, r2
blr
GCC produces:
_test2:
foo r4, r4
mr r3,r4
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31367 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 01:44:04 +00:00
Chris Lattner
2a821601f1
Allow the getRegForInlineAsmConstraint method to return a register class with
...
no fixes physreg. Treat this as permission to use any register in the register
class. When this happens and it is safe, allow the llvm register allcoator to
allocate the register instead of doing it at isel time. This eliminates a ton
of copies around common inline asms. For example:
int test2(int Y, int X) {
asm("foo %0, %1" : "=r"(X): "r"(X));
return X;
}
now compiles to:
_test2:
foo r3, r4
blr
instead of:
_test2:
mr r2, r4
foo r2, r2
mr r3, r2
blr
GCC produces:
_test2:
foo r4, r4
mr r3,r4
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31366 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-02 01:41:49 +00:00
Evan Cheng
e6ae14e1f4
Rename
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31364 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 23:18:32 +00:00
Evan Cheng
360c2dd25a
Two-address instructions no longer have to be A := A op C. Now any pair of dest / src operands can be tied together.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31363 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 23:06:55 +00:00
Devang Patel
e0805a2d36
There can be more than one PHINode at the start of the block.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31362 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 23:04:45 +00:00
Evan Cheng
981b5bd708
Added getTiedToSrcOperand() to check for two-address'ness.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31360 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 23:00:31 +00:00
Evan Cheng
1dabb68ab4
Clean up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31359 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 22:39:30 +00:00
Devang Patel
2c0565f8e0
Handle PHINode with only one incoming value.
...
This fixes http://llvm.org/bugs/show_bug.cgi?id=979
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31358 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 22:26:43 +00:00
Evan Cheng
93467e7fe3
CopyFromReg starts a live range so its use should not be considered a floater.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31356 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 22:17:06 +00:00
Reid Spencer
48d8a70d22
Make ScalarEvolution actually use a ZeroExtend expression instead of
...
having SCZeroExtendExpr be equivalent to SCTruncate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31355 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 21:53:12 +00:00
Chris Lattner
d4bf3c2fd6
give branch folding a simple heuristic to decide which block to split so that
...
it inserts an uncond branch where it is less likely to cause a problem. This
fixes some perf issues on ppc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31354 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 19:36:29 +00:00
Chris Lattner
25de4e5c21
Fix GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll and McGill/chomp
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31352 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 18:03:33 +00:00
Rafael Espindola
560a8d0512
print null values in bss
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31349 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 14:26:44 +00:00
Rafael Espindola
9dca7ad78f
implement zextload bool and truncstore bool
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31348 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 14:13:27 +00:00
Evan Cheng
41349c10cb
Add a printSetLabel that takes two id's.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31347 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 09:23:08 +00:00
Chris Lattner
9c08050ac7
Factor gep instructions through phi nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31346 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 07:43:41 +00:00
Chris Lattner
76c7314650
Turn a phi of many loads into a phi of the address and a single load of the
...
result. This can significantly shrink code and exposes identities more
aggressively.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31344 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 07:13:54 +00:00
Evan Cheng
acf7f2e3a9
Fix ldmxcsr JIT encoding.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31343 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 06:53:52 +00:00
Chris Lattner
a90a24c623
Fix a bug in the previous patch
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31342 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 04:55:47 +00:00
Chris Lattner
7da52b295b
Fold things like "phi [add (a,b), add(c,d)]" into two phi's and one add.
...
This triggers thousands of times on multisource.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31341 91177308-0d34-0410-b5e6-96231b3b80d8
2006-11-01 04:51:18 +00:00