summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix PR3274: when promoting the condition of a BRCOND node,Duncan Sands2009-01-0119-117/+144
| | | | | | | | | | promote from i1 all the way up to the canonical SetCC type. In order to discover an appropriate type to use, pass MVT::Other to getSetCCResultType. In order to be able to do this, change getSetCCResultType to take a type as an argument, not a value (this is also more logical). llvm-svn: 61542
* Fix comment.Bill Wendling2009-01-011-1/+1
| | | | llvm-svn: 61538
* Add transformation:Bill Wendling2009-01-011-1/+32
| | | | | | | | xor (or (icmp, icmp), true) -> and(icmp, icmp) This is possible because of De Morgan's law. llvm-svn: 61537
* Look through phi nodes and select instructions whenDuncan Sands2008-12-311-3/+8
| | | | | | calculating nocapture attributes. llvm-svn: 61535
* Don't analyze arguments already marked 'nocapture'.Duncan Sands2008-12-312-1/+9
| | | | llvm-svn: 61532
* Rename AddReadAttrs to FunctionAttrs, and teach it howDuncan Sands2008-12-312-13/+127
| | | | | | | | to work out (in a very simplistic way) which function arguments (pointer arguments only) are only dereferenced and so do not escape. Mark such arguments 'nocapture'. llvm-svn: 61525
* Get live interval reconstruction several steps closer to working.Owen Anderson2008-12-311-66/+86
| | | | llvm-svn: 61514
* add a noteChris Lattner2008-12-311-0/+9
| | | | llvm-svn: 61513
* - Start moving target-dependent nodes that could be represented by anScott Michel2008-12-3010-614/+608
| | | | | | | | | | | | | instruction sequence and cannot ordinarily be simplified by DAGcombine into the various target description files or SPUDAGToDAGISel.cpp. This makes some 64-bit operations legal. - Eliminate target-dependent ISD enums. - Update tests. llvm-svn: 61508
* Linux wants the FDE initial location and address range to be forced to 32-bit.Bill Wendling2008-12-293-2/+6
| | | | | | Darwin doesn't. Make this optional for platforms. llvm-svn: 61484
* The FDE initial location and address range data should be free to be 64-bitBill Wendling2008-12-291-2/+2
| | | | | | (quad) on a 64-bit platform. This fixes a problem with EH frames on Darwin. llvm-svn: 61483
* Make stripPointerCasts and getUnderlyingObjectDuncan Sands2008-12-291-26/+39
| | | | | | non-recursive. llvm-svn: 61479
* Experiments show that looking through phi nodesDuncan Sands2008-12-291-0/+2
| | | | | | | | | | and select instructions doesn't buy anything here except extra complexity: the only difference in the entire testsuite was that a readonly function became readnone in MiBench/consumer-typeset. Add a comment about this. llvm-svn: 61478
* Fixed spelling, removed trailing whitespace.Misha Brukman2008-12-291-2/+2
| | | | llvm-svn: 61477
* Allow readnone functions to read (and write!) globalDuncan Sands2008-12-291-4/+19
| | | | | | | | | | | | | | | | constants, since doing so is irrelevant for aliasing purposes. While this doesn't increase the total number of functions marked readonly or readnone in MultiSource/ Applications (3089), it does result in 12 functions being marked readnone rather than readonly. Before: readnone: 820 readonly: 2269 After: readnone: 832 readonly: 2257 llvm-svn: 61469
* Add braces, as suggested by a gcc warning.Duncan Sands2008-12-291-4/+6
| | | | llvm-svn: 61465
* - Various '#if 0' cleanups.Scott Michel2008-12-293-156/+174
| | | | | | | | | - Move v4i32, i32 mul into SPUInstrInfo.td, with a few more instruction cleanups there as well. - Make SMUL_LOHI, UMUL_LOHI competely illegal for Cell SPU, to better assist Chris to see the problem in bug 3101. llvm-svn: 61464
* Teach LeaglizeDAG that i64 mul can be a libcall.Scott Michel2008-12-291-0/+2
| | | | llvm-svn: 61463
* select constant exprs should have the same constraints as select instructions,Chris Lattner2008-12-291-3/+1
| | | | | | notably, they should support vectors and aggregates. llvm-svn: 61462
* move select validation logic into a shared place where the select ctor,Chris Lattner2008-12-292-17/+31
| | | | | | verifier, asm parser, etc can share it. llvm-svn: 61461
* Fix up kill/dead marking in the new live interval reconstruction code.Owen Anderson2008-12-281-6/+18
| | | | llvm-svn: 61460
* Add prototype code for recomputing a live interval's ranges and valnos ↵Owen Anderson2008-12-281-1/+260
| | | | | | through recursive phi construction. llvm-svn: 61458
* Check that the function prototypes are correct before assuming that the Nick Lewycky2008-12-271-18/+28
| | | | | | parameters are pointers. llvm-svn: 61451
* - Remove Tilmann's custom truncate lowering: it completely hosed overScott Michel2008-12-2712-628/+1148
| | | | | | | | | | | | | | | | | | | | | | | | DAGcombine's ability to find reasons to remove truncates when they were not needed. Consequently, the CellSPU backend would produce correct, but _really slow and horrible_, code. Replaced with instruction sequences that do the equivalent truncation in SPUInstrInfo.td. - Re-examine how unaligned loads and stores work. Generated unaligned load code has been tested on the CellSPU hardware; see the i32operations.c and i64operations.c in CodeGen/CellSPU/useful-harnesses. (While they may be toy test code, it does prove that some real world code does compile correctly.) - Fix truncating stores in bug 3193 (note: unpack_df.ll will still make llc fault because i64 ult is not yet implemented.) - Added i64 eq and neq for setcc and select/setcc; started new instruction information file for them in SPU64InstrInfo.td. Additional i64 operations should be added to this file and not to SPUInstrInfo.td. llvm-svn: 61447
* Add a simple pattern for matching 'bt'.Chris Lattner2008-12-251-10/+46
| | | | llvm-svn: 61426
* Fix some JIT encodings.Chris Lattner2008-12-252-10/+10
| | | | llvm-svn: 61425
* BT memory operands load from their address operand.Chris Lattner2008-12-252-3/+3
| | | | llvm-svn: 61424
* translateX86CC can never fail. Simplify it based on this.Chris Lattner2008-12-241-42/+30
| | | | llvm-svn: 61423
* Darwin likes for the EH frame to be non-local.Bill Wendling2008-12-243-4/+18
| | | | llvm-svn: 61420
* GCC doesn't emit DW_EH_PE_sdata4 for the FDE encoding on Darwin. I'm not sureBill Wendling2008-12-243-4/+18
| | | | | | about other platforms. llvm-svn: 61415
* Fix a compiler-abort on a testcase where the stack-pointer is added toDan Gohman2008-12-241-6/+13
| | | | | | | a symbolic constant. This is unlikely to be intentional, but it shouldn't crash the compiler. llvm-svn: 61408
* indentationChris Lattner2008-12-241-9/+8
| | | | llvm-svn: 61407
* Change comments so everybody can understand them, hopefully.Dale Johannesen2008-12-231-2/+2
| | | | llvm-svn: 61405
* simplify some control flow and reduce indentation, no functionality change.Chris Lattner2008-12-231-63/+46
| | | | llvm-svn: 61404
* Revert 61362 and 61402 until SPEC breakage is fixed.Dale Johannesen2008-12-231-135/+43
| | | | llvm-svn: 61403
* This fixes the bug in 175.vpr. It doesn't fix theDale Johannesen2008-12-231-2/+9
| | | | | | | | other SPEC breakage. I'll be reverting all recent changes shortly, this checking is mostly so this change doesn't get lost. llvm-svn: 61402
* Add another permutation where we should get rid of a-a.Dale Johannesen2008-12-231-4/+11
| | | | llvm-svn: 61401
* Add instruction patterns and encodings for the x86 bt instructions.Dan Gohman2008-12-234-0/+42
| | | | llvm-svn: 61400
* Restore debug printingAnton Korobeynikov2008-12-231-23/+26
| | | | llvm-svn: 61398
* Sometimes APInt syntax is really ugly... :(Anton Korobeynikov2008-12-231-10/+21
| | | | llvm-svn: 61397
* Indent stuff properlyAnton Korobeynikov2008-12-231-25/+25
| | | | llvm-svn: 61396
* Initial checkin of APInt'ififcation of switch loweringAnton Korobeynikov2008-12-232-127/+126
| | | | llvm-svn: 61395
* Silence unused variable warnings.Devang Patel2008-12-232-0/+7
| | | | llvm-svn: 61392
* Fix typo.Devang Patel2008-12-231-1/+2
| | | | | | Silence unused variable warning. llvm-svn: 61391
* Silience unused warnings.Devang Patel2008-12-232-0/+4
| | | | llvm-svn: 61390
* Clean up the atomic opcodes in SelectionDAG.Dan Gohman2008-12-236-574/+166
| | | | | | | | | | | | | This removes all the _8, _16, _32, and _64 opcodes and replaces each group with an unsuffixed opcode. The MemoryVT field of the AtomicSDNode is now used to carry the size information. In tablegen, the size-specific opcodes are replaced by size-independent opcodes that utilize the ability to compose them with predicates. This shrinks the per-opcode tables and makes the code that handles atomics much more concise. llvm-svn: 61389
* add some notes for simplifylibcalls optimizationsChris Lattner2008-12-231-0/+25
| | | | llvm-svn: 61385
* Tweak --version to include the date and time.Steve Naroff2008-12-231-0/+1
| | | | llvm-svn: 61378
* Rename BuildSchedUnits to BuildSchedGraph, and refactor theDan Gohman2008-12-236-14/+24
| | | | | | code in ScheduleDAGSDNodes' BuildSchedGraph into separate functions. llvm-svn: 61376
* Use isTerminator() instead of isBranch()||isReturn() inDan Gohman2008-12-233-5/+4
| | | | | | | | several places. isTerminator() returns true for a superset of cases, and includes things like FP_REG_KILL, which are nither return or branch but aren't safe to move/remat/etc. llvm-svn: 61373
OpenPOWER on IntegriCloud