Evan Cheng [Sun, 5 Nov 2006 09:30:09 +0000 (09:30 +0000)]
Added getIndexedStore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31458
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Spencer [Sun, 5 Nov 2006 03:58:44 +0000 (03:58 +0000)]
Don't check variables before they are set.
Be careful about blanks when checking LLVMGCC variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31455
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Sat, 4 Nov 2006 10:48:07 +0000 (10:48 +0000)]
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
Evan Cheng [Sat, 4 Nov 2006 09:44:31 +0000 (09:44 +0000)]
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
Evan Cheng [Sat, 4 Nov 2006 09:42:53 +0000 (09:42 +0000)]
Move to operand constraints for two-address instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31452
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 4 Nov 2006 09:40:23 +0000 (09:40 +0000)]
Clean up some code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31451
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 4 Nov 2006 05:42:48 +0000 (05:42 +0000)]
encode BLR predicate info for the JIT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31450
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 4 Nov 2006 05:27:39 +0000 (05:27 +0000)]
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
Chris Lattner [Sat, 4 Nov 2006 05:12:02 +0000 (05:12 +0000)]
Parse PredicateOperand's. When an instruction takes one, have the generated
isel fill in the instruction operands with the 'execute always' value
automatically.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31448
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 4 Nov 2006 01:35:50 +0000 (01:35 +0000)]
First steps to getting PredicateOperand's to work. This handles instruction
and pat pattern definitions. Codegen is not right for them yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31444
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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