summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* fold immediates into stores in simple cases, this produces diffs like Chris Lattner2008-10-151-30/+46
| | | | | | | | | | this: - movl $0, %eax - movl %eax, _yy_n_chars + movl $0, _yy_n_chars llvm-svn: 57555
* fold compare of null pointer into compare with 0.Chris Lattner2008-10-151-0/+4
| | | | llvm-svn: 57553
* Some minor cleanups:Chris Lattner2008-10-151-40/+30
| | | | | | | | | | | | | 1. Compute action in X86SelectSelect based on MVT instead of type. 2. Use TLI.getValueType(..) instead of MVT::getVT(..) because the former handles pointers and the later doesn't. 3. Don't pass TLI into isTypeLegal, since it already has access to it as an ivar. #2 gives fast isel some minor new functionality: handling load/stores of pointers. llvm-svn: 57552
* Use switch on VT instead of Type* comparisons.Chris Lattner2008-10-151-19/+18
| | | | llvm-svn: 57551
* Use X86FastEmitCompare for FCMP_OEQ and FCMP_UNE: it doesn'tChris Lattner2008-10-151-17/+8
| | | | | | change the generated code, but makes the code simpler. llvm-svn: 57550
* refactor compare emission out into a new X86FastEmitCompare method,Chris Lattner2008-10-151-29/+49
| | | | | | | | which makes it easy to share the compare/imm folding logic with 'setcc'. This shaves a bunch of instructions off the common select case, which happens a lot in llvm-gcc. llvm-svn: 57549
* Fold immediates into compares when possible, producing "cmp $4, %eax" instead ofChris Lattner2008-10-151-3/+36
| | | | | | loading 4 into a register and then doing the compare. llvm-svn: 57548
* more minor refactoring of X86SelectBranch, no functionality change.Chris Lattner2008-10-151-13/+11
| | | | llvm-svn: 57547
* factor buildmi calls in X86SelectBranchChris Lattner2008-10-151-89/+30
| | | | llvm-svn: 57546
* factor some more BuildMI's in X86SelectCmpChris Lattner2008-10-151-92/+30
| | | | llvm-svn: 57545
* factor some BuildMI calls, no functionality change.Chris Lattner2008-10-151-46/+56
| | | | llvm-svn: 57544
* Adjust whitespace in debug messages to be more consistentDan Gohman2008-10-152-5/+5
| | | | | | with other debug messages. llvm-svn: 57543
* - Add target lowering hooks that specify which setcc conditions are illegal,Evan Cheng2008-10-153-26/+66
| | | | | | | | | | | i.e. conditions that cannot be checked with a single instruction. For example, SETONE and SETUEQ on x86. - Teach legalizer to implement *illegal* setcc as a and / or of a number of legal setcc nodes. For now, only implement FP conditions. e.g. SETONE is implemented as SETO & SETNE, SETUEQ is SETUO | SETEQ. - Move x86 target over. llvm-svn: 57542
* FastISel support for exception-handling constructs.Dan Gohman2008-10-145-57/+159
| | | | | | | | | - Move the EH landing-pad code and adjust it so that it works with FastISel as well as with SDISel. - Add FastISel support for @llvm.eh.exception and @llvm.eh.selector. llvm-svn: 57539
* Prevent assert when using '"' in names (via hexadecimal).Daniel Dunbar2008-10-141-2/+1
| | | | | | Update LangRef to mention \xx quoting in names. llvm-svn: 57538
* Change getLLVMName to use raw_ostream & PrintLLVMName.Daniel Dunbar2008-10-141-59/+15
| | | | | | | | - Avoids duplicated quotification code. - Remove QuoteNameIfNeeded. - No functionality change. llvm-svn: 57537
* Accept -march=i586, because gcc does (a synonymDale Johannesen2008-10-141-0/+1
| | | | | | | | for pentium). Fixes gcc.target/i386/20000720-1.c gcc.target/i386/pr26826.c llvm-svn: 57528
* Rename LoadX to LoadExt.Evan Cheng2008-10-1412-51/+51
| | | | llvm-svn: 57526
* Update ARM Insn encoding to get endian-ness to match the documentation (31-0 ↵Jim Grosbach2008-10-142-61/+57
| | | | | | left to right) llvm-svn: 57524
* Fix command-line option printing to print two spaces where needed,Dan Gohman2008-10-1425-40/+40
| | | | | | | | | instead of requiring all "short description" strings to begin with two spaces. This makes these strings less mysterious, and it fixes some cases where short description strings mistakenly did not begin with two spaces. llvm-svn: 57521
* Combine (fcmp cc0 x, y) | (fcmp cc1 x, y) into a single fcmp when possible.Evan Cheng2008-10-141-1/+41
| | | | llvm-svn: 57515
* - Somehow I forgot about one / une.Evan Cheng2008-10-141-9/+21
| | | | | | | - Renumber fcmp predicates to match their icmp counterparts. - Try swapping operands to expose more optimization opportunities. llvm-svn: 57513
* Fix indentation.Evan Cheng2008-10-141-2/+2
| | | | llvm-svn: 57508
* Optimize anding of two fcmp into a single fcmp if the operands are the same. ↵Evan Cheng2008-10-141-3/+111
| | | | | | | | | e.g. uno && ueq -> ueq ord && olt -> olt ord && ueq -> oeq llvm-svn: 57507
* little optimization: reuse getPointerToGlobalIfAvailable(CGV) value in ↵Nuno Lopes2008-10-141-1/+1
| | | | | | emitGlobals() llvm-svn: 57484
* When doing the very-late shift-and address-mode optimization,Dan Gohman2008-10-131-0/+3
| | | | | | | | | | | | | | create a new DAG node to represent the new shift to keep the DAG consistent, even though it'll almost always be folded into the address. If a user of the resulting address has multiple uses, the nodes may get revisited by a later MatchAddress call, in which case DAG inconsistencies do matter. This fixes PR2849. llvm-svn: 57465
* FIX PR2794. Make sure SIGN_EXTEND_INREG nodes introduced by ↵Evan Cheng2008-10-131-1/+4
| | | | | | LegalizeSetCCOperands are leglized. Patch by Richard Pennington. llvm-svn: 57460
* Also update sub-register intervals after a trivial computation is rematt'ed ↵Evan Cheng2008-10-131-0/+10
| | | | | | for a copy instruction. PR2775. llvm-svn: 57458
* Make InstructionCombining::getBitCastOperand() recognize GEP instructions andMatthijs Kooijman2008-10-131-3/+23
| | | | | | constant expression with all zero indices as being the same as a bitcast. llvm-svn: 57442
* * Make TargetLowering not crash when TargetMachine::getTargetAsmInfo() returnsMatthijs Kooijman2008-10-131-1/+2
| | | | | | | null. This assumes that any target that does not have AsmInfo, does not support "LocAndDot". llvm-svn: 57438
* Make MachineFunction not crash when TargetMachine::getRegisterInfo() returnsMatthijs Kooijman2008-10-131-5/+9
| | | | | | NULL, but just hide some debug output then. llvm-svn: 57437
* do not use deprecated interfacesGabor Greif2008-10-131-3/+3
| | | | llvm-svn: 57433
* Disallow the construction of SCEVs with could-not-compute operands. Catch CNCsNick Lewycky2008-10-131-72/+6
| | | | | | | returned by BinomialCoefficient and don't try to operate with them. This replaces the previous fix for PR2857. llvm-svn: 57431
* calls can be supported.Chris Lattner2008-10-131-9/+9
| | | | llvm-svn: 57428
* Change TAG_ names to DW_TAG for gcc (testsuite) compatibility.Dale Johannesen2008-10-121-59/+59
| | | | llvm-svn: 57425
* Fix a bug in live-in detection that caused lost-copy problems to show up.Owen Anderson2008-10-121-1/+1
| | | | llvm-svn: 57424
* Update size of inst correctly with segment override.Anton Korobeynikov2008-10-122-0/+12
| | | | llvm-svn: 57414
* Add special-case code to allow null-guards on calls to malloc.Owen Anderson2008-10-121-2/+16
| | | | llvm-svn: 57413
* Make Escape Analysis work for any pointer.Owen Anderson2008-10-121-6/+10
| | | | llvm-svn: 57412
* Change Dwarf comments starting with AT_ to DW_AT_ toDale Johannesen2008-10-121-96/+96
| | | | | | match gcc. Helps with the testsuite. llvm-svn: 57410
* Fix crashes and infinite loops.Owen Anderson2008-10-121-12/+14
| | | | llvm-svn: 57408
* Duncan convinced me that it's not possible to transform control-based ↵Owen Anderson2008-10-121-13/+10
| | | | | | | | escapes into data-based ones. Just be conservative when analyzing control-based escapes. llvm-svn: 57400
* fix typoChris Lattner2008-10-111-1/+1
| | | | llvm-svn: 57388
* Fix PR2697 by rewriting the '(X / pos) op neg' logic. This also changesChris Lattner2008-10-111-10/+15
| | | | | | | | a couple other cases for clarity, but shouldn't affect correctness. Patch by Eli Friedman! llvm-svn: 57387
* Change CALLSEQ_BEGIN and CALLSEQ_END to take TargetConstant's asChris Lattner2008-10-1118-70/+53
| | | | | | | parameters instead of raw Constants. This prevents the constants from being selected by the isel pass, fixing PR2735. llvm-svn: 57385
* rearrange some code.Chris Lattner2008-10-111-6/+6
| | | | llvm-svn: 57384
* Fix comment typo.Duncan Sands2008-10-111-1/+1
| | | | llvm-svn: 57381
* Add ability to override segment (mostly for code emitter purposes).Anton Korobeynikov2008-10-114-1/+23
| | | | llvm-svn: 57380
* Unbreak DbgStopPointInst::getFileName().Daniel Dunbar2008-10-111-1/+1
| | | | llvm-svn: 57373
* simplify comparisonChris Lattner2008-10-111-1/+1
| | | | llvm-svn: 57371
OpenPOWER on IntegriCloud