oota-llvm.git
18 years agoOkay, need a pattern before and after the cast pattern.
Reid Spencer [Sat, 4 Nov 2006 01:11:19 +0000 (01:11 +0000)]
Okay, need a pattern before and after the cast pattern.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31443 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAllow the regular expression to be extended by a parameter.
Reid Spencer [Sat, 4 Nov 2006 00:58:39 +0000 (00:58 +0000)]
Allow the regular expression to be extended by a parameter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31442 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFor PR950:
Reid Spencer [Sat, 4 Nov 2006 00:49:52 +0000 (00:49 +0000)]
For PR950:
A little script to return 1 if it encounters any of the cast instructions
on the stdin.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31441 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd a note about warnings from the GNU ld 2.16.X linker.
Reid Spencer [Sat, 4 Nov 2006 00:33:42 +0000 (00:33 +0000)]
Add a note about warnings from the GNU ld 2.16.X linker.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31440 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFixed some spiller bugs exposed by the recent two-address code changes. Now
Evan Cheng [Sat, 4 Nov 2006 00:21:55 +0000 (00:21 +0000)]
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

18 years agoDescribe PPC predicates, which are a pair of CR# and condition.
Chris Lattner [Fri, 3 Nov 2006 23:53:25 +0000 (23:53 +0000)]
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

18 years agoinitial steps to getting the predicate on PPC::BLR right.
Chris Lattner [Fri, 3 Nov 2006 23:52:18 +0000 (23:52 +0000)]
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

18 years agoremove dead var
Chris Lattner [Fri, 3 Nov 2006 23:50:15 +0000 (23:50 +0000)]
remove dead var

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31436 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoremove dead/redundant vars
Chris Lattner [Fri, 3 Nov 2006 23:48:56 +0000 (23:48 +0000)]
remove dead/redundant vars

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31435 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoremove redundant/dead vars
Chris Lattner [Fri, 3 Nov 2006 23:47:20 +0000 (23:47 +0000)]
remove redundant/dead vars

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31434 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoremove dead vars
Chris Lattner [Fri, 3 Nov 2006 23:46:45 +0000 (23:46 +0000)]
remove dead vars

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31433 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoeliminate need for the NumMIOperands field in Operand.
Chris Lattner [Fri, 3 Nov 2006 23:45:17 +0000 (23:45 +0000)]
eliminate need for the NumMIOperands field in Operand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31432 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoThe wrong parameter was being tested to deturmine i32 vs i64
Andrew Lenharth [Fri, 3 Nov 2006 22:45:50 +0000 (22:45 +0000)]
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

18 years agoadd a regression for memmove
Andrew Lenharth [Fri, 3 Nov 2006 22:45:09 +0000 (22:45 +0000)]
add a regression for memmove

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31430 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd a note
Chris Lattner [Fri, 3 Nov 2006 22:27:39 +0000 (22:27 +0000)]
add a note

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31429 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agothis started failing due to Reid's changes in the bc format. insulate it
Chris Lattner [Fri, 3 Nov 2006 22:01:15 +0000 (22:01 +0000)]
this started failing due to Reid's changes in the bc format.  insulate it
from future changes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31428 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix BasicAA/2006-11-03-BasicAAVectorCrash.ll by handling out-of-range
Chris Lattner [Fri, 3 Nov 2006 21:58:48 +0000 (21:58 +0000)]
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

18 years agonew testcase
Chris Lattner [Fri, 3 Nov 2006 21:58:14 +0000 (21:58 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31426 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake the huge_val test run a C++ program not C
Reid Spencer [Fri, 3 Nov 2006 19:49:16 +0000 (19:49 +0000)]
Make the huge_val test run a C++ program not C

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31422 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agothis will work better
Chris Lattner [Fri, 3 Nov 2006 19:15:55 +0000 (19:15 +0000)]
this will work better

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31419 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix the build on xcode < 2.4
Chris Lattner [Fri, 3 Nov 2006 19:13:59 +0000 (19:13 +0000)]
Fix the build on xcode < 2.4

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31417 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd a check to see if HUGE_VAL is sane or not.
Reid Spencer [Fri, 3 Nov 2006 18:04:08 +0000 (18:04 +0000)]
Add a check to see if HUGE_VAL is sane or not.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31416 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoSplit the External and Intrinsic handling into seperate functions. This
Andrew Lenharth [Fri, 3 Nov 2006 17:43:19 +0000 (17:43 +0000)]
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

18 years agoFix comments.
Evan Cheng [Fri, 3 Nov 2006 07:31:32 +0000 (07:31 +0000)]
Fix comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31414 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRename
Evan Cheng [Fri, 3 Nov 2006 07:21:16 +0000 (07:21 +0000)]
Rename

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31413 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove dead variable. Fix 80 column violations.
Reid Spencer [Fri, 3 Nov 2006 03:30:34 +0000 (03:30 +0000)]
Remove dead variable. Fix 80 column violations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31412 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agorevert previous patch
Rafael Espindola [Fri, 3 Nov 2006 03:08:28 +0000 (03:08 +0000)]
revert previous patch

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31411 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded DAG combiner transformation to generate pre-indexed loads.
Evan Cheng [Fri, 3 Nov 2006 03:06:21 +0000 (03:06 +0000)]
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

18 years agoAdded isPredecessor.
Evan Cheng [Fri, 3 Nov 2006 03:05:24 +0000 (03:05 +0000)]
Added isPredecessor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31409 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoProper check for two-addressness.
Evan Cheng [Fri, 3 Nov 2006 03:04:46 +0000 (03:04 +0000)]
Proper check for two-addressness.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31408 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded a target specific hook to check whether / how a node can be transformed
Evan Cheng [Fri, 3 Nov 2006 03:04:06 +0000 (03:04 +0000)]
Added a target specific hook to check whether / how a node can be transformed
into a pair of base / offset nodes for pre-indexed load / store ops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31407 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd isPredecessor to check whether a node is another's predecessor.
Evan Cheng [Fri, 3 Nov 2006 03:02:18 +0000 (03:02 +0000)]
Add isPredecessor to check whether a node is another's predecessor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31406 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoDead code.
Evan Cheng [Fri, 3 Nov 2006 02:08:41 +0000 (02:08 +0000)]
Dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31405 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove unused variable.
Reid Spencer [Fri, 3 Nov 2006 01:58:30 +0000 (01:58 +0000)]
Remove unused variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31404 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove an unused variable.
Reid Spencer [Fri, 3 Nov 2006 01:48:30 +0000 (01:48 +0000)]
Remove an unused variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31403 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agosilence warning
Chris Lattner [Fri, 3 Nov 2006 01:45:13 +0000 (01:45 +0000)]
silence warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31402 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove some dead code.
Reid Spencer [Fri, 3 Nov 2006 01:44:51 +0000 (01:44 +0000)]
Remove some dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31401 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd createCFGSimplificationPass to ARMTargetMachine::addInstSelector
Rafael Espindola [Fri, 3 Nov 2006 01:39:25 +0000 (01:39 +0000)]
add createCFGSimplificationPass to ARMTargetMachine::addInstSelector

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31400 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoassert.h -> cassert
Rafael Espindola [Fri, 3 Nov 2006 01:38:14 +0000 (01:38 +0000)]
assert.h -> cassert

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31399 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoremove dead code
Chris Lattner [Fri, 3 Nov 2006 01:34:58 +0000 (01:34 +0000)]
remove dead code

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31398 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agosilence warning
Chris Lattner [Fri, 3 Nov 2006 01:28:29 +0000 (01:28 +0000)]
silence warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31397 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoDon't write out variables that are never used.
Reid Spencer [Fri, 3 Nov 2006 01:28:12 +0000 (01:28 +0000)]
Don't write out variables that are never used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31396 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agosilence warning
Chris Lattner [Fri, 3 Nov 2006 01:19:31 +0000 (01:19 +0000)]
silence warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31395 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agosilence warnings.
Chris Lattner [Fri, 3 Nov 2006 01:18:29 +0000 (01:18 +0000)]
silence warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31394 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agosilence warning
Chris Lattner [Fri, 3 Nov 2006 01:13:15 +0000 (01:13 +0000)]
silence warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31393 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agosilence warnings
Chris Lattner [Fri, 3 Nov 2006 01:11:05 +0000 (01:11 +0000)]
silence warnings

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31392 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake sample project -pedantic clean.
Reid Spencer [Fri, 3 Nov 2006 00:09:53 +0000 (00:09 +0000)]
Make sample project -pedantic clean.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31391 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake Stacker Runtime -pedantic clean.
Reid Spencer [Fri, 3 Nov 2006 00:08:08 +0000 (00:08 +0000)]
Make Stacker Runtime -pedantic clean.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31390 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake llvm2cpp -pedantic clean.
Reid Spencer [Fri, 3 Nov 2006 00:05:16 +0000 (00:05 +0000)]
Make llvm2cpp -pedantic clean.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31389 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake CBackend -pedantic clean.
Reid Spencer [Fri, 3 Nov 2006 00:00:57 +0000 (00:00 +0000)]
Make CBackend -pedantic clean.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31388 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake CodeGen libs -pedantic clean.
Reid Spencer [Thu, 2 Nov 2006 23:56:21 +0000 (23:56 +0000)]
Make CodeGen libs -pedantic clean.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31387 91177308-0d34-0410-b5e6-96231b3b80d8

18 years ago#include <assert.h>
Rafael Espindola [Thu, 2 Nov 2006 23:48:53 +0000 (23:48 +0000)]
#include <assert.h>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31386 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agofix a bug reid noticed
Chris Lattner [Thu, 2 Nov 2006 23:39:53 +0000 (23:39 +0000)]
fix a bug reid noticed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31385 91177308-0d34-0410-b5e6-96231b3b80d8

18 years ago1. Hash not quite right for DIEValues.
Jim Laskey [Thu, 2 Nov 2006 21:48:18 +0000 (21:48 +0000)]
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

18 years agoRevert last patch which causes tblgen to segfault (why, I'm not sure).
Reid Spencer [Thu, 2 Nov 2006 21:07:40 +0000 (21:07 +0000)]
Revert last patch which causes tblgen to segfault (why, I'm not sure).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31383 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove unused variable.
Reid Spencer [Thu, 2 Nov 2006 20:55:40 +0000 (20:55 +0000)]
Remove unused variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31382 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFor PR786:
Reid Spencer [Thu, 2 Nov 2006 20:46:16 +0000 (20:46 +0000)]
For PR786:
Remove unused variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31381 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFor PR786:
Reid Spencer [Thu, 2 Nov 2006 20:25:50 +0000 (20:25 +0000)]
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

18 years agoGeneral clean up of teh dwarf writer.
Jim Laskey [Thu, 2 Nov 2006 20:12:39 +0000 (20:12 +0000)]
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

18 years agomove ARMCondCodeToString to ARMAsmPrinter.cpp
Rafael Espindola [Thu, 2 Nov 2006 15:00:02 +0000 (15:00 +0000)]
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

18 years agoAllow FoldingSet clients to pump up the initial hash size.
Jim Laskey [Thu, 2 Nov 2006 14:21:26 +0000 (14:21 +0000)]
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

18 years agoRemove unused variable.
Reid Spencer [Thu, 2 Nov 2006 08:23:44 +0000 (08:23 +0000)]
Remove unused variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31376 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove unused variables.
Reid Spencer [Thu, 2 Nov 2006 08:18:15 +0000 (08:18 +0000)]
Remove unused variables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31375 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove a function prototype that is no longer needed (REM patch missed it)
Reid Spencer [Thu, 2 Nov 2006 08:12:02 +0000 (08:12 +0000)]
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

18 years agoGet rid of unused variable.
Reid Spencer [Thu, 2 Nov 2006 07:59:59 +0000 (07:59 +0000)]
Get rid of unused variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31373 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd some documentation about the arguments.
Reid Spencer [Thu, 2 Nov 2006 03:37:39 +0000 (03:37 +0000)]
Add some documentation about the arguments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31372 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agofix 2006-11-01-vastart.ll
Andrew Lenharth [Thu, 2 Nov 2006 03:05:26 +0000 (03:05 +0000)]
fix 2006-11-01-vastart.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31371 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoa regression :(
Andrew Lenharth [Thu, 2 Nov 2006 03:04:37 +0000 (03:04 +0000)]
a regression :(

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31370 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFor PR950:
Reid Spencer [Thu, 2 Nov 2006 01:53:59 +0000 (01:53 +0000)]
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

18 years agonew testcase
Chris Lattner [Thu, 2 Nov 2006 01:45:28 +0000 (01:45 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31368 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoImplement the getRegForInlineAsmConstraint method for PPC. With recent
Chris Lattner [Thu, 2 Nov 2006 01:44:04 +0000 (01:44 +0000)]
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

18 years agoAllow the getRegForInlineAsmConstraint method to return a register class with
Chris Lattner [Thu, 2 Nov 2006 01:41:49 +0000 (01:41 +0000)]
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

18 years agogeneralize this api
Chris Lattner [Thu, 2 Nov 2006 01:39:10 +0000 (01:39 +0000)]
generalize this api

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31365 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRename
Evan Cheng [Wed, 1 Nov 2006 23:18:32 +0000 (23:18 +0000)]
Rename

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31364 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoTwo-address instructions no longer have to be A := A op C. Now any pair of dest ...
Evan Cheng [Wed, 1 Nov 2006 23:06:55 +0000 (23:06 +0000)]
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

18 years agoThere can be more than one PHINode at the start of the block.
Devang Patel [Wed, 1 Nov 2006 23:04:45 +0000 (23:04 +0000)]
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

18 years agoTied-to constraint must be op_with_larger_idx = op_with_smaller_idx or else throw...
Evan Cheng [Wed, 1 Nov 2006 23:03:11 +0000 (23:03 +0000)]
Tied-to constraint must be op_with_larger_idx = op_with_smaller_idx or else throw an exception.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31361 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded getTiedToSrcOperand() to check for two-address'ness.
Evan Cheng [Wed, 1 Nov 2006 23:00:31 +0000 (23:00 +0000)]
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

18 years agoClean up.
Evan Cheng [Wed, 1 Nov 2006 22:39:30 +0000 (22:39 +0000)]
Clean up.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31359 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoHandle PHINode with only one incoming value.
Devang Patel [Wed, 1 Nov 2006 22:26:43 +0000 (22:26 +0000)]
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

18 years agoTestcase from http://llvm.org/bugs/show_bug.cgi?id=979
Devang Patel [Wed, 1 Nov 2006 22:25:48 +0000 (22:25 +0000)]
Testcase from llvm.org/bugs/show_bug.cgi?id=979

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31357 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoCopyFromReg starts a live range so its use should not be considered a floater.
Evan Cheng [Wed, 1 Nov 2006 22:17:06 +0000 (22:17 +0000)]
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

18 years agoMake ScalarEvolution actually use a ZeroExtend expression instead of
Reid Spencer [Wed, 1 Nov 2006 21:53:12 +0000 (21:53 +0000)]
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

18 years agogive branch folding a simple heuristic to decide which block to split so that
Chris Lattner [Wed, 1 Nov 2006 19:36:29 +0000 (19:36 +0000)]
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

18 years agoextra pass is required now
Chris Lattner [Wed, 1 Nov 2006 18:30:25 +0000 (18:30 +0000)]
extra pass is required now

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31353 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll and McGill/chomp
Chris Lattner [Wed, 1 Nov 2006 18:03:33 +0000 (18:03 +0000)]
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

18 years agonew testcase that crashes global opt, reduced from chomp
Chris Lattner [Wed, 1 Nov 2006 18:02:53 +0000 (18:02 +0000)]
new testcase that crashes global opt, reduced from chomp

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31351 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoPartial update for Release 1.9
Reid Spencer [Wed, 1 Nov 2006 16:15:04 +0000 (16:15 +0000)]
Partial update for Release 1.9

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31350 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoprint null values in bss
Rafael Espindola [Wed, 1 Nov 2006 14:26:44 +0000 (14:26 +0000)]
print null values in bss

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31349 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoimplement zextload bool and truncstore bool
Rafael Espindola [Wed, 1 Nov 2006 14:13:27 +0000 (14:13 +0000)]
implement  zextload bool and truncstore bool

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31348 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd a printSetLabel that takes two id's.
Evan Cheng [Wed, 1 Nov 2006 09:23:08 +0000 (09:23 +0000)]
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

18 years agoFactor gep instructions through phi nodes.
Chris Lattner [Wed, 1 Nov 2006 07:43:41 +0000 (07:43 +0000)]
Factor gep instructions through phi nodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31346 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoremove a testcase for a marginal feature
Chris Lattner [Wed, 1 Nov 2006 07:15:44 +0000 (07:15 +0000)]
remove a testcase for a marginal feature

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31345 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoTurn a phi of many loads into a phi of the address and a single load of the
Chris Lattner [Wed, 1 Nov 2006 07:13:54 +0000 (07:13 +0000)]
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

18 years agoFix ldmxcsr JIT encoding.
Evan Cheng [Wed, 1 Nov 2006 06:53:52 +0000 (06:53 +0000)]
Fix ldmxcsr JIT encoding.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31343 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix a bug in the previous patch
Chris Lattner [Wed, 1 Nov 2006 04:55:47 +0000 (04:55 +0000)]
Fix a bug in the previous patch

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31342 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFold things like "phi [add (a,b), add(c,d)]" into two phi's and one add.
Chris Lattner [Wed, 1 Nov 2006 04:51:18 +0000 (04:51 +0000)]
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

18 years agoPrint jumptable index.
Evan Cheng [Wed, 1 Nov 2006 04:48:30 +0000 (04:48 +0000)]
Print jumptable index.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31340 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove unnecessary sign conversions made possible by last patch.
Reid Spencer [Wed, 1 Nov 2006 03:45:43 +0000 (03:45 +0000)]
Remove unnecessary sign conversions made possible by last patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31339 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix a bug in the interpreter where divides of unmatched signed operands
Reid Spencer [Wed, 1 Nov 2006 03:41:05 +0000 (03:41 +0000)]
Fix a bug in the interpreter where divides of unmatched signed operands
would fail. E.g. udiv sint X, Y  or sdiv uint X, Y would fail to find a
type match in the switch statement and fail the operation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31338 91177308-0d34-0410-b5e6-96231b3b80d8