summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Remove a function prototype that is no longer needed (REM patch missed it)Reid Spencer2006-11-021-2/+0
| | | | llvm-svn: 31374
* Get rid of unused variable.Reid Spencer2006-11-021-1/+1
| | | | llvm-svn: 31373
* Add some documentation about the arguments.Reid Spencer2006-11-021-0/+3
| | | | llvm-svn: 31372
* fix 2006-11-01-vastart.llAndrew Lenharth2006-11-022-3/+5
| | | | llvm-svn: 31371
* a regression :(Andrew Lenharth2006-11-021-0/+18
| | | | llvm-svn: 31370
* For PR950:Reid Spencer2006-11-0220-271/+481
| | | | | | Replace the REM instruction with UREM, SREM and FREM. llvm-svn: 31369
* new testcaseChris Lattner2006-11-021-0/+14
| | | | llvm-svn: 31368
* Implement the getRegForInlineAsmConstraint method for PPC. With recentChris Lattner2006-11-022-56/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 31367
* Allow the getRegForInlineAsmConstraint method to return a register class withChris Lattner2006-11-021-4/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 31366
* generalize this apiChris Lattner2006-11-021-2/+8
| | | | llvm-svn: 31365
* RenameEvan Cheng2006-11-014-5/+7
| | | | llvm-svn: 31364
* Two-address instructions no longer have to be A := A op C. Now any pair of ↵Evan Cheng2006-11-013-113/+139
| | | | | | dest / src operands can be tied together. llvm-svn: 31363
* There can be more than one PHINode at the start of the block.Devang Patel2006-11-011-5/+4
| | | | llvm-svn: 31362
* Tied-to constraint must be op_with_larger_idx = op_with_smaller_idx or else ↵Evan Cheng2006-11-011-0/+3
| | | | | | throw an exception. llvm-svn: 31361
* Added getTiedToSrcOperand() to check for two-address'ness.Evan Cheng2006-11-012-1/+17
| | | | llvm-svn: 31360
* Clean up.Evan Cheng2006-11-011-5/+11
| | | | llvm-svn: 31359
* Handle PHINode with only one incoming value.Devang Patel2006-11-011-5/+9
| | | | | | This fixes http://llvm.org/bugs/show_bug.cgi?id=979 llvm-svn: 31358
* Testcase from http://llvm.org/bugs/show_bug.cgi?id=979Devang Patel2006-11-011-0/+1087
| | | | llvm-svn: 31357
* CopyFromReg starts a live range so its use should not be considered a floater.Evan Cheng2006-11-011-1/+1
| | | | llvm-svn: 31356
* Make ScalarEvolution actually use a ZeroExtend expression instead ofReid Spencer2006-11-011-2/+2
| | | | | | having SCZeroExtendExpr be equivalent to SCTruncate llvm-svn: 31355
* give branch folding a simple heuristic to decide which block to split so thatChris Lattner2006-11-011-6/+49
| | | | | | | it inserts an uncond branch where it is less likely to cause a problem. This fixes some perf issues on ppc. llvm-svn: 31354
* extra pass is required nowChris Lattner2006-11-011-1/+1
| | | | llvm-svn: 31353
* Fix GlobalOpt/2006-11-01-ShrinkGlobalPhiCrash.ll and McGill/chompChris Lattner2006-11-011-8/+14
| | | | llvm-svn: 31352
* new testcase that crashes global opt, reduced from chompChris Lattner2006-11-011-0/+33
| | | | llvm-svn: 31351
* Partial update for Release 1.9Reid Spencer2006-11-011-58/+24
| | | | llvm-svn: 31350
* print null values in bssRafael Espindola2006-11-011-2/+4
| | | | llvm-svn: 31349
* implement zextload bool and truncstore boolRafael Espindola2006-11-011-0/+10
| | | | llvm-svn: 31348
* Add a printSetLabel that takes two id's.Evan Cheng2006-11-012-0/+15
| | | | llvm-svn: 31347
* Factor gep instructions through phi nodes.Chris Lattner2006-11-011-10/+39
| | | | llvm-svn: 31346
* remove a testcase for a marginal featureChris Lattner2006-11-011-14/+0
| | | | llvm-svn: 31345
* Turn a phi of many loads into a phi of the address and a single load of theChris Lattner2006-11-011-41/+30
| | | | | | | result. This can significantly shrink code and exposes identities more aggressively. llvm-svn: 31344
* Fix ldmxcsr JIT encoding.Evan Cheng2006-11-011-6/+4
| | | | llvm-svn: 31343
* Fix a bug in the previous patchChris Lattner2006-11-011-3/+6
| | | | llvm-svn: 31342
* Fold things like "phi [add (a,b), add(c,d)]" into two phi's and one add.Chris Lattner2006-11-011-3/+57
| | | | | | This triggers thousands of times on multisource. llvm-svn: 31341
* Print jumptable index.Evan Cheng2006-11-012-0/+4
| | | | llvm-svn: 31340
* Remove unnecessary sign conversions made possible by last patch.Reid Spencer2006-11-011-4/+0
| | | | llvm-svn: 31339
* Fix a bug in the interpreter where divides of unmatched signed operandsReid Spencer2006-11-011-8/+11
| | | | | | | 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. llvm-svn: 31338
* make tail merging more aggressive. If two blocks share a common tail, but theChris Lattner2006-11-011-16/+53
| | | | | | | tail is not an entire block for either of them, pick one, split it, then merge the common part. llvm-svn: 31336
* enable branch folding with an optionChris Lattner2006-11-011-1/+2
| | | | llvm-svn: 31335
* Not meant to be checked in.Evan Cheng2006-11-011-5/+1
| | | | llvm-svn: 31334
* Add operand constraints to TargetInstrInfo.Evan Cheng2006-11-016-16/+110
| | | | llvm-svn: 31333
* Add constraints to Instruction class.Evan Cheng2006-11-011-0/+2
| | | | llvm-svn: 31332
* more shotenningAndrew Lenharth2006-10-315-130/+92
| | | | llvm-svn: 31331
* Compile CodeGen/PowerPC/fp-branch.ll to:Chris Lattner2006-10-311-6/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _intcoord_cond_next55: LBB1_3: ;cond_next55 lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr0, f1, f0 blt cr0, LBB1_2 ;cond_next62.exitStub LBB1_1: ;bb72.exitStub li r3, 1 blr LBB1_2: ;cond_next62.exitStub li r3, 0 blr instead of: _intcoord_cond_next55: LBB1_3: ;cond_next55 lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr0, f1, f0 bge cr0, LBB1_1 ;bb72.exitStub LBB1_4: ;cond_next55 lis r2, ha16(LCPI1_0) lfs f0, lo16(LCPI1_0)(r2) fcmpu cr0, f1, f0 bnu cr0, LBB1_2 ;cond_next62.exitStub LBB1_1: ;bb72.exitStub li r3, 1 blr LBB1_2: ;cond_next62.exitStub li r3, 0 blr llvm-svn: 31330
* This test should compile down to one comparison, not two.Chris Lattner2006-10-311-0/+20
| | | | llvm-svn: 31329
* look through isunordered to inline it into branch blocks.Chris Lattner2006-10-311-12/+43
| | | | llvm-svn: 31328
* Nuke dead code.Evan Cheng2006-10-311-1/+0
| | | | llvm-svn: 31327
* allow the address of a global to be used with the "i" constraint when inChris Lattner2006-10-312-1/+36
| | | | | | -static mode. This implements PR882. llvm-svn: 31326
* implement the 'c' inline asm modifier characterChris Lattner2006-10-311-0/+3
| | | | llvm-svn: 31325
* new testcase for PR882Chris Lattner2006-10-311-0/+29
| | | | llvm-svn: 31324
OpenPOWER on IntegriCloud