summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Don't attempt load PRE when there is no real redundancy (i.e., the load is inBob Wilson2010-03-021-4/+6
| | | | | | a loop and is itself the only dependency). llvm-svn: 97526
* refactor some code out of OPC_EmitMergeInputChains into aChris Lattner2010-03-021-21/+37
| | | | | | new helper function. llvm-svn: 97525
* When GVN needs to split critical edges for load PRE, check all of theBob Wilson2010-03-011-1/+4
| | | | | | | | predecessors before returning. Otherwise, if multiple predecessor edges need splitting, we only get one of them per iteration. This makes a small but measurable compile time improvement with -enable-full-load-pre. llvm-svn: 97521
* remove a little hack I did for the old isel, not neededChris Lattner2010-03-011-16/+2
| | | | | | now that it is gone. llvm-svn: 97516
* MemoryDepAnalysis is not used if redundant load processing is disabled.Evan Cheng2010-03-011-1/+1
| | | | llvm-svn: 97512
* remove all but one version of SelectionDAG::MorphNodeToChris Lattner2010-03-011-81/+0
| | | | | | (the most general) the others are dead. llvm-svn: 97511
* Remove the optimize for code size limitation on r67917. Optimize 64-bit imul ↵Evan Cheng2010-03-011-4/+0
| | | | | | by constants into leas + shl regardless if optimizing for code size. The size saving from using imulq isn't worth it. Also, the lea and shl instructions may expose further optimization. llvm-svn: 97507
* remove a terrible hack that disabled assertions from this file because of ↵Chris Lattner2010-03-011-9/+0
| | | | | | | | build time problems. rdar://7697850. llvm-svn: 97500
* Use methods to determine if a LiveInterval is spillable.Jakob Stoklund Olesen2010-03-011-18/+26
| | | | | | Don't accidentally produce unspillable intervals for deeply nested loops. llvm-svn: 97496
* Update CMake build.Ted Kremenek2010-03-011-1/+0
| | | | llvm-svn: 97488
* stop using generated sdnodexforms.Chris Lattner2010-03-011-1/+5
| | | | llvm-svn: 97485
* remove anders-aa from mainline, it isn't maintained and isChris Lattner2010-03-011-2868/+0
| | | | | | tantalyzing enough that people keep trying to use it. llvm-svn: 97483
* Added STRHT for disassembly only and fixed a bug in AI3sthpo class where the WJohnny Chen2010-03-012-2/+10
| | | | | | bit should be set to 0 instead of 1. llvm-svn: 97481
* Accelerate isel dispatch for tables that start with a top-level Chris Lattner2010-03-011-1/+36
| | | | | | | OPC_SwitchOpcode to use a table lookup instead of having to go through the interpreter for this. llvm-svn: 97469
* Don't potentially read past the end of the fill data when making a NaN fromJohn McCall2010-03-011-1/+2
| | | | | | an APInt. llvm-svn: 97467
* Fix optimization of ISD::TRUNCATE on vector operands. Based on a patchDan Gohman2010-03-011-4/+5
| | | | | | by Micah Villmow for PR6335. llvm-svn: 97461
* Add explicit keywords.Dan Gohman2010-03-012-2/+3
| | | | llvm-svn: 97460
* Add a comment.Dan Gohman2010-03-011-1/+5
| | | | llvm-svn: 97459
* Add some debug output to LoopSimplify.Dan Gohman2010-03-011-0/+30
| | | | llvm-svn: 97458
* Spelling fixes.Dan Gohman2010-03-015-37/+37
| | | | llvm-svn: 97453
* This is now done.Dan Gohman2010-03-011-5/+0
| | | | llvm-svn: 97450
* Fix a missing newline in debug output.Dan Gohman2010-03-011-1/+1
| | | | llvm-svn: 97449
* Prune #includes.Dan Gohman2010-03-011-1/+0
| | | | llvm-svn: 97448
* Don't print "Modified" for passes which haven't modified anything.Dan Gohman2010-03-011-6/+12
| | | | llvm-svn: 97446
* Add JIT support to the TODO list (test commit)Nathan Keynes2010-03-011-0/+1
| | | | llvm-svn: 97443
* some trivial microoptimizations.Chris Lattner2010-03-012-9/+18
| | | | llvm-svn: 97441
* eliminate the CheckMultiOpcodeMatcher code and have each Chris Lattner2010-03-011-9/+0
| | | | | | | | | ComplexPattern at the root be generated multiple times, once for each opcode they are part of. This encourages factoring because the opcode checks get treated just like everything else in the matcher. llvm-svn: 97439
* add a new OPC_SwitchOpcode which is semantically equivalentChris Lattner2010-03-011-0/+30
| | | | | | | | | | | | to a scope where every child starts with a CheckOpcode, but executes more efficiently. Enhance DAGISelMatcherOpt to form it. This also fixes a bug in CheckOpcode: apparently the SDNodeInfo objects are not pointer comparable, we have to compare the enum name. llvm-svn: 97438
* 80-col violations/trailing whitespace.Mikhail Glushenkov2010-02-281-11/+12
| | | | llvm-svn: 97427
* eliminate GetInt1/2Chris Lattner2010-02-281-16/+3
| | | | llvm-svn: 97426
* hoist the new isel interpreter out of DAGISelHeader.hChris Lattner2010-02-281-0/+859
| | | | | | | | (which gets #included into the middle of each target's DAGISel class) into a .cpp file where it is only compiled once. llvm-svn: 97425
* enhance the new isel to handle the 'node already exists'Chris Lattner2010-02-281-1/+1
| | | | | | case of MorphNodeTo directly. llvm-svn: 97417
* simplify this code, return only ever has zero or one operands.Chris Lattner2010-02-281-8/+6
| | | | llvm-svn: 97408
* Properly clear all the extra bits in a significand when making a NaN from anJohn McCall2010-02-281-8/+28
| | | | | | | APInt. Be certain to set the integer bit in an x87 extended-precision significand so that we don't accidentally make a pseudo-NaN. llvm-svn: 97382
* Add an override to StringRef::getAsInteger which parses into an APInt.John McCall2010-02-281-12/+93
| | | | | | | | | | It gets its own implementation totally divorced from the (presumably performance-sensitive) routines which parse into a uint64_t. Add APInt::operator|=(uint64_t), which is situationally much better than using a full APInt. llvm-svn: 97381
* Add support for global variables in an address space for llvm-c and ocaml.Erick Tryzelaar2010-02-281-0/+8
| | | | llvm-svn: 97377
* Add indirect br support to llvm-c and ocaml.Erick Tryzelaar2010-02-281-0/+13
| | | | llvm-svn: 97376
* Add metadata functions to llvm-c and ocaml.Erick Tryzelaar2010-02-281-0/+56
| | | | llvm-svn: 97375
* remove redundant instruction.Chris Lattner2010-02-281-2/+2
| | | | llvm-svn: 97374
* Add the new builder arthmetic instructions to llvm-c and ocaml.Erick Tryzelaar2010-02-281-0/+81
| | | | llvm-svn: 97372
* Add the new union arthmetic instructions to llvm-c and ocaml.Erick Tryzelaar2010-02-281-1/+3
| | | | llvm-svn: 97371
* Add generic binary op and cast builder functions.Erick Tryzelaar2010-02-281-0/+13
| | | | llvm-svn: 97370
* Revert r97245 which seems to be causing performance problems.Bob Wilson2010-02-281-6/+5
| | | | llvm-svn: 97366
* Teach APFloat how to create both QNaNs and SNaNs and with arbitrary-widthJohn McCall2010-02-282-12/+45
| | | | | | | | payloads. APFloat's internal folding routines always make QNaNs now, instead of sometimes making QNaNs and sometimes SNaNs depending on the type. llvm-svn: 97364
* Don't try to replace physical registers when doing CSE.Dan Gohman2010-02-281-1/+12
| | | | llvm-svn: 97360
* Add a flag to addPassesToEmit* to disable the Verifier pass runDan Gohman2010-02-286-14/+30
| | | | | | after LSR, so that clients can opt in. llvm-svn: 97357
* Implement XMM subregs.Dan Gohman2010-02-285-163/+168
| | | | | | | | | | | Extracting the low element of a vector is now done with EXTRACT_SUBREG, and the zero-extension performed by load movss is now modeled with SUBREG_TO_REG, and so on. Register-to-register movss and movsd are no longer considered copies; they are two-address instructions which insert a scalar into a vector. llvm-svn: 97354
* Don't unconditionally suppress hoisting of instructions with implicitDan Gohman2010-02-281-26/+4
| | | | | | | | defs or uses. The regular def and use checking below covers them, and can be more precise. It's safe to hoist an instruction with a dead implicit def if the register isn't live into the loop header. llvm-svn: 97352
* The mayHaveSideEffects flag is no longer used.Dan Gohman2010-02-2712-26/+24
| | | | llvm-svn: 97348
* remove a bogus pattern, which had the same pattern as STDUChris Lattner2010-02-272-8/+1
| | | | | | | | | but codegen'd differently. This really wanted to use some sort of subreg to get the low 4 bytes of the G8RC register or something. However, it's invalid and nothing is testing it, so I'm just zapping the bogosity. llvm-svn: 97345
OpenPOWER on IntegriCloud