Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | fold immediates into stores in simple cases, this produces diffs like | Chris Lattner | 2008-10-15 | 1 | -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 Lattner | 2008-10-15 | 1 | -0/+4 |
| | | | | llvm-svn: 57553 | ||||
* | Some minor cleanups: | Chris Lattner | 2008-10-15 | 1 | -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 Lattner | 2008-10-15 | 1 | -19/+18 |
| | | | | llvm-svn: 57551 | ||||
* | Use X86FastEmitCompare for FCMP_OEQ and FCMP_UNE: it doesn't | Chris Lattner | 2008-10-15 | 1 | -17/+8 |
| | | | | | | change the generated code, but makes the code simpler. llvm-svn: 57550 | ||||
* | refactor compare emission out into a new X86FastEmitCompare method, | Chris Lattner | 2008-10-15 | 1 | -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 of | Chris Lattner | 2008-10-15 | 1 | -3/+36 |
| | | | | | | loading 4 into a register and then doing the compare. llvm-svn: 57548 | ||||
* | more minor refactoring of X86SelectBranch, no functionality change. | Chris Lattner | 2008-10-15 | 1 | -13/+11 |
| | | | | llvm-svn: 57547 | ||||
* | factor buildmi calls in X86SelectBranch | Chris Lattner | 2008-10-15 | 1 | -89/+30 |
| | | | | llvm-svn: 57546 | ||||
* | factor some more BuildMI's in X86SelectCmp | Chris Lattner | 2008-10-15 | 1 | -92/+30 |
| | | | | llvm-svn: 57545 | ||||
* | factor some BuildMI calls, no functionality change. | Chris Lattner | 2008-10-15 | 1 | -46/+56 |
| | | | | llvm-svn: 57544 | ||||
* | Adjust whitespace in debug messages to be more consistent | Dan Gohman | 2008-10-15 | 2 | -5/+5 |
| | | | | | | with other debug messages. llvm-svn: 57543 | ||||
* | - Add target lowering hooks that specify which setcc conditions are illegal, | Evan Cheng | 2008-10-15 | 3 | -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 Gohman | 2008-10-14 | 5 | -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 Dunbar | 2008-10-14 | 1 | -2/+1 |
| | | | | | | Update LangRef to mention \xx quoting in names. llvm-svn: 57538 | ||||
* | Change getLLVMName to use raw_ostream & PrintLLVMName. | Daniel Dunbar | 2008-10-14 | 1 | -59/+15 |
| | | | | | | | | - Avoids duplicated quotification code. - Remove QuoteNameIfNeeded. - No functionality change. llvm-svn: 57537 | ||||
* | Accept -march=i586, because gcc does (a synonym | Dale Johannesen | 2008-10-14 | 1 | -0/+1 |
| | | | | | | | | for pentium). Fixes gcc.target/i386/20000720-1.c gcc.target/i386/pr26826.c llvm-svn: 57528 | ||||
* | Rename LoadX to LoadExt. | Evan Cheng | 2008-10-14 | 12 | -51/+51 |
| | | | | llvm-svn: 57526 | ||||
* | Update ARM Insn encoding to get endian-ness to match the documentation (31-0 ↵ | Jim Grosbach | 2008-10-14 | 2 | -61/+57 |
| | | | | | | left to right) llvm-svn: 57524 | ||||
* | Fix command-line option printing to print two spaces where needed, | Dan Gohman | 2008-10-14 | 25 | -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 Cheng | 2008-10-14 | 1 | -1/+41 |
| | | | | llvm-svn: 57515 | ||||
* | - Somehow I forgot about one / une. | Evan Cheng | 2008-10-14 | 1 | -9/+21 |
| | | | | | | | - Renumber fcmp predicates to match their icmp counterparts. - Try swapping operands to expose more optimization opportunities. llvm-svn: 57513 | ||||
* | Fix indentation. | Evan Cheng | 2008-10-14 | 1 | -2/+2 |
| | | | | llvm-svn: 57508 | ||||
* | Optimize anding of two fcmp into a single fcmp if the operands are the same. ↵ | Evan Cheng | 2008-10-14 | 1 | -3/+111 |
| | | | | | | | | | e.g. uno && ueq -> ueq ord && olt -> olt ord && ueq -> oeq llvm-svn: 57507 | ||||
* | little optimization: reuse getPointerToGlobalIfAvailable(CGV) value in ↵ | Nuno Lopes | 2008-10-14 | 1 | -1/+1 |
| | | | | | | emitGlobals() llvm-svn: 57484 | ||||
* | When doing the very-late shift-and address-mode optimization, | Dan Gohman | 2008-10-13 | 1 | -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 Cheng | 2008-10-13 | 1 | -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 Cheng | 2008-10-13 | 1 | -0/+10 |
| | | | | | | for a copy instruction. PR2775. llvm-svn: 57458 | ||||
* | Make InstructionCombining::getBitCastOperand() recognize GEP instructions and | Matthijs Kooijman | 2008-10-13 | 1 | -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() returns | Matthijs Kooijman | 2008-10-13 | 1 | -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() returns | Matthijs Kooijman | 2008-10-13 | 1 | -5/+9 |
| | | | | | | NULL, but just hide some debug output then. llvm-svn: 57437 | ||||
* | do not use deprecated interfaces | Gabor Greif | 2008-10-13 | 1 | -3/+3 |
| | | | | llvm-svn: 57433 | ||||
* | Disallow the construction of SCEVs with could-not-compute operands. Catch CNCs | Nick Lewycky | 2008-10-13 | 1 | -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 Lattner | 2008-10-13 | 1 | -9/+9 |
| | | | | llvm-svn: 57428 | ||||
* | Change TAG_ names to DW_TAG for gcc (testsuite) compatibility. | Dale Johannesen | 2008-10-12 | 1 | -59/+59 |
| | | | | llvm-svn: 57425 | ||||
* | Fix a bug in live-in detection that caused lost-copy problems to show up. | Owen Anderson | 2008-10-12 | 1 | -1/+1 |
| | | | | llvm-svn: 57424 | ||||
* | Update size of inst correctly with segment override. | Anton Korobeynikov | 2008-10-12 | 2 | -0/+12 |
| | | | | llvm-svn: 57414 | ||||
* | Add special-case code to allow null-guards on calls to malloc. | Owen Anderson | 2008-10-12 | 1 | -2/+16 |
| | | | | llvm-svn: 57413 | ||||
* | Make Escape Analysis work for any pointer. | Owen Anderson | 2008-10-12 | 1 | -6/+10 |
| | | | | llvm-svn: 57412 | ||||
* | Change Dwarf comments starting with AT_ to DW_AT_ to | Dale Johannesen | 2008-10-12 | 1 | -96/+96 |
| | | | | | | match gcc. Helps with the testsuite. llvm-svn: 57410 | ||||
* | Fix crashes and infinite loops. | Owen Anderson | 2008-10-12 | 1 | -12/+14 |
| | | | | llvm-svn: 57408 | ||||
* | Duncan convinced me that it's not possible to transform control-based ↵ | Owen Anderson | 2008-10-12 | 1 | -13/+10 |
| | | | | | | | | escapes into data-based ones. Just be conservative when analyzing control-based escapes. llvm-svn: 57400 | ||||
* | fix typo | Chris Lattner | 2008-10-11 | 1 | -1/+1 |
| | | | | llvm-svn: 57388 | ||||
* | Fix PR2697 by rewriting the '(X / pos) op neg' logic. This also changes | Chris Lattner | 2008-10-11 | 1 | -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 as | Chris Lattner | 2008-10-11 | 18 | -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 Lattner | 2008-10-11 | 1 | -6/+6 |
| | | | | llvm-svn: 57384 | ||||
* | Fix comment typo. | Duncan Sands | 2008-10-11 | 1 | -1/+1 |
| | | | | llvm-svn: 57381 | ||||
* | Add ability to override segment (mostly for code emitter purposes). | Anton Korobeynikov | 2008-10-11 | 4 | -1/+23 |
| | | | | llvm-svn: 57380 | ||||
* | Unbreak DbgStopPointInst::getFileName(). | Daniel Dunbar | 2008-10-11 | 1 | -1/+1 |
| | | | | llvm-svn: 57373 | ||||
* | simplify comparison | Chris Lattner | 2008-10-11 | 1 | -1/+1 |
| | | | | llvm-svn: 57371 |