| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Propagate LeftDistributes and RightDistributes into their only uses. | Duncan Sands | 2010-11-23 | 1 | -6/+4 |
| | | | | | | | Stylistic improvement suggested by Frits van Bommel. llvm-svn: 120026 | ||||
| * | Fix typo pointed out by Frits van Bommel and Marius Wachtler. | Duncan Sands | 2010-11-23 | 1 | -1/+1 |
| | | | | | llvm-svn: 120025 | ||||
| * | Exploit distributive laws (eg: And distributes over Or, Mul over Add, etc) in a | Duncan Sands | 2010-11-23 | 4 | -42/+133 |
| | | | | | | | | | | | | | fairly systematic way in instcombine. Some of these cases were already dealt with, in which case I removed the existing code. The case of Add has a bunch of funky logic which covers some of this plus a few variants (considers shifts to be a form of multiplication), which I didn't touch. The simplification performed is: A*B+A*C -> A*(B+C). The improvement is to do this in cases that were not already handled [such as A*B-A*C -> A*(B-C), which was reported on the mailing list], and also to do it more often by not checking for "only one use" if "B+C" simplifies. llvm-svn: 120024 | ||||
| * | Division by pow-of-2 is not cheap on SPU, do it with | Kalle Raiskila | 2010-11-23 | 1 | -2/+0 |
| | | | | | | | shifts. llvm-svn: 120022 | ||||
| * | Implement the rex64 prefix. | Rafael Espindola | 2010-11-23 | 2 | -1/+5 |
| | | | | | llvm-svn: 120017 | ||||
| * | Expand a little on the description of what InstructionSimplify does. | Duncan Sands | 2010-11-23 | 1 | -2/+4 |
| | | | | | llvm-svn: 120016 | ||||
| * | Clarify that constant folding of instructions applies when all operands | Duncan Sands | 2010-11-23 | 1 | -10/+11 |
| | | | | | | | | | are constant. There was in fact one exception to this (phi nodes) - so remove that exception (InstructionSimplify handles this so there should be no loss). llvm-svn: 120015 | ||||
| * | Invalidate the layout on any relaxation, not just Instructions. Bug found by ↵ | Rafael Espindola | 2010-11-23 | 1 | -9/+11 |
| | | | | | | | | | David Meyer. While here, remove unused argument and rename UpdateForSlide to Invalidate. llvm-svn: 120009 | ||||
| * | Produce a relocation for pcrel absolute values. Based on a patch by David Meyer. | Rafael Espindola | 2010-11-23 | 1 | -8/+12 |
| | | | | | llvm-svn: 120006 | ||||
| * | Revert functionality doug added in r98575 that was never | Chris Lattner | 2010-11-23 | 1 | -15/+11 |
| | | | | | | | documented and only used by some clang stuff I just removed. llvm-svn: 120002 | ||||
| * | Reuse data fragments while lowering. Patch by David Meyer. | Rafael Espindola | 2010-11-23 | 1 | -26/+77 |
| | | | | | llvm-svn: 119999 | ||||
| * | Renaming ISD::BIT_CONVERT to ISD::BITCAST to better reflect the LLVM IR concept. | Wesley Peck | 2010-11-23 | 27 | -1123/+1120 |
| | | | | | llvm-svn: 119990 | ||||
| * | add a 'LLVMConstIntOfArbitraryPrecision' api to the C api, | Chris Lattner | 2010-11-23 | 1 | -0/+8 |
| | | | | | | | patch by Greg Pfeil! llvm-svn: 119989 | ||||
| * | duncan's spider sense was right, I completely reversed the condition | Chris Lattner | 2010-11-23 | 1 | -8/+8 |
| | | | | | | | on this instcombine xform. This fixes a miscompilation of 403.gcc. llvm-svn: 119988 | ||||
| * | Fixed some style issues (no _, no spc after !) | Jason W Kim | 2010-11-22 | 1 | -6/+6 |
| | | | | | llvm-svn: 119986 | ||||
| * | Remove duplicated constants. Thanks to Jason for noticing it. | Rafael Espindola | 2010-11-22 | 2 | -42/+26 |
| | | | | | llvm-svn: 119985 | ||||
| * | InstCombine: Implement X - A*-B -> X + A*B. | Benjamin Kramer | 2010-11-22 | 2 | -16/+9 |
| | | | | | llvm-svn: 119984 | ||||
| * | Make the <ARCH>ELFObjectWriter statics private | Jason W Kim | 2010-11-22 | 1 | -0/+3 |
| | | | | | llvm-svn: 119982 | ||||
| * | Fix misplaced statics. | Jason W Kim | 2010-11-22 | 1 | -6/+5 |
| | | | | | llvm-svn: 119981 | ||||
| * | Kill trailing whitespace | Jason W Kim | 2010-11-22 | 1 | -3/+3 |
| | | | | | llvm-svn: 119979 | ||||
| * | Refactor the ELFRelocationEntry (pull up) and move the arch-specific statics ↵ | Jason W Kim | 2010-11-22 | 1 | -46/+54 |
| | | | | | | | | | | | to inside the class where it belongs. Next step is to rationally break apart the RecordRelocation() Probably the step will be to have 1 member function for ech slot of the ELFRelocationEntry() llvm-svn: 119978 | ||||
| * | Fix epilogue codegen to avoid leaving the stack pointer in an invalid | Evan Cheng | 2010-11-22 | 3 | -23/+50 |
| | | | | | | | | | | | | | | | | | | state. Previously Thumb2 would restore sp from fp like this: mov sp, r7 sub, sp, #4 If an interrupt is taken after the 'mov' but before the 'sub', callee-saved registers might be clobbered by the interrupt handler. Instead, try restoring directly from sp: add sp, #4 Or, if necessary (with VLA, etc.) use a scratch register to compute sp and then restore it: sub.w r4, r7, #8 mov sp, r7 rdar://8465407 llvm-svn: 119977 | ||||
| * | If a GEP index simply advances by multiples of a type of zero size, | Duncan Sands | 2010-11-22 | 2 | -15/+25 |
| | | | | | | | then replace the index with zero. llvm-svn: 119974 | ||||
| * | Fix a bug with extractelement on SPU. | Kalle Raiskila | 2010-11-22 | 1 | -1/+1 |
| | | | | | | | | In the attached testcase, the element was never extracted (missing rotate). llvm-svn: 119973 | ||||
| * | Add basic CFI methods to the streamer interface. | Rafael Espindola | 2010-11-22 | 3 | -7/+125 |
| | | | | | llvm-svn: 119972 | ||||
| * | Move the "gep undef" -> "undef" transform from instcombine to | Duncan Sands | 2010-11-22 | 2 | -7/+11 |
| | | | | | | | InstructionSimplify. llvm-svn: 119970 | ||||
| * | Remove some #includes. | Rafael Espindola | 2010-11-22 | 1 | -0/+1 |
| | | | | | llvm-svn: 119967 | ||||
| * | Implement the "if (X == 6 || X == 4)" -> "if ((X|2) == 6)" optimization. | Benjamin Kramer | 2010-11-22 | 2 | -11/+47 |
| | | | | | | | | This currently only catches the most basic case, a two-case switch, but can be extended later. llvm-svn: 119964 | ||||
| * | Don't keep track of inserted phis in PromoteMemoryToRegister: the information | Duncan Sands | 2010-11-22 | 1 | -8/+3 |
| | | | | | | | is never used. Patch by Cameron Zwarich. llvm-svn: 119963 | ||||
| * | Fix a compiler warning about Kind being used uninitialized | Duncan Sands | 2010-11-22 | 1 | -1/+1 |
| | | | | | | | when assertions are disabled. llvm-svn: 119962 | ||||
| * | Pseudos default to 4byte size, let the instruction size field notice | Eric Christopher | 2010-11-21 | 1 | -1/+3 |
| | | | | | | | that branch tables are special. llvm-svn: 119954 | ||||
| * | Implement ELF object file writing support for the MBlaze backend. Its not ↵ | Wesley Peck | 2010-11-21 | 6 | -113/+244 |
| | | | | | | | perfect yet, but it works for many tests. llvm-svn: 119952 | ||||
| * | Implement branch analysis in the MBlaze backend. | Wesley Peck | 2010-11-21 | 2 | -46/+201 |
| | | | | | llvm-svn: 119951 | ||||
| * | Make it a little bit more explicit that the MBlaze backend only supports upto | Wesley Peck | 2010-11-21 | 2 | -3/+3 |
| | | | | | | | 32-bit immediate values. llvm-svn: 119950 | ||||
| * | Fix an error in the MBlaze delay slot filler where instructions that already | Wesley Peck | 2010-11-21 | 1 | -16/+29 |
| | | | | | | | fill a delay slot are moved to fill a different delay slot. llvm-svn: 119949 | ||||
| * | fix comment | Chris Lattner | 2010-11-21 | 1 | -1/+0 |
| | | | | | llvm-svn: 119948 | ||||
| * | apparently tailcalls are better on darwin/x86-64 than on linux? | Chris Lattner | 2010-11-21 | 1 | -0/+18 |
| | | | | | llvm-svn: 119947 | ||||
| * | Initialize MemDep's TD member so buildbots don't trip over an uninitialized ↵ | Benjamin Kramer | 2010-11-21 | 1 | -0/+2 |
| | | | | | | | | | pointer (TD is passed to PHITransAddr). I wonder why this didn't explode earlier. llvm-svn: 119944 | ||||
| * | Add a rather pointless InstructionSimplify transform, inspired by recent ↵ | Duncan Sands | 2010-11-21 | 1 | -2/+10 |
| | | | | | | | | | | | constant folding improvements: if P points to a type of size zero, turn "gep P, N" into "P". More generally, if a gep index type has size zero, instcombine could replace the index with zero, but that is not done here. llvm-svn: 119942 | ||||
| * | Fix spelling. | Duncan Sands | 2010-11-21 | 1 | -2/+2 |
| | | | | | llvm-svn: 119941 | ||||
| * | More Thumb encodings. | Bill Wendling | 2010-11-21 | 1 | -25/+82 |
| | | | | | llvm-svn: 119940 | ||||
| * | Add encoding for ARM "trap" instruction. | Bill Wendling | 2010-11-21 | 1 | -4/+1 |
| | | | | | llvm-svn: 119938 | ||||
| * | The "trap" instruction is one of this which doesn't have a condition code. Hack | Bill Wendling | 2010-11-21 | 1 | -2/+5 |
| | | | | | | | the code to not add a "condition code" if it's trap. llvm-svn: 119937 | ||||
| * | - Give "trap" the correct encoding, at least according to Darwin's assembler. | Bill Wendling | 2010-11-21 | 1 | -3/+10 |
| | | | | | | | - Add comments saying where the encodings for other instructions came from. llvm-svn: 119936 | ||||
| * | apply Dan's fix for PR8268 which allows constant folding to handle indexes over | Chris Lattner | 2010-11-21 | 1 | -7/+15 |
| | | | | | | | | | | | | zero sized elements. This allows us to compile: #include <string> void foo() { std::string s; } into an empty function. llvm-svn: 119933 | ||||
| * | implement PR8524, apparently mainline gas accepts movq as an alias for movd | Chris Lattner | 2010-11-21 | 1 | -0/+4 |
| | | | | | | | when transfering between i64 gprs and mmx regs. llvm-svn: 119931 | ||||
| * | rework some DSE paths to use the newly-public "getPointerDependencyFrom" | Chris Lattner | 2010-11-21 | 1 | -46/+37 |
| | | | | | | | | method in MemDep instead of inserting an instruction, doing a query, then removing it. Neither operation is effectively cached. llvm-svn: 119930 | ||||
| * | add "getLocation" method to AliasAnalysis for getting the source and | Chris Lattner | 2010-11-21 | 1 | -0/+23 |
| | | | | | | | | | destination location of a memcpy/memmove. I'm not clear about whether TBAA works on these, so I'm leaving it out for now. Dan, please revisit this when convenient. llvm-svn: 119928 | ||||
| * | implement PR8576, deleting dead stores with intervening may-alias stores. | Chris Lattner | 2010-11-21 | 2 | -5/+24 |
| | | | | | llvm-svn: 119927 | ||||
| * | add some random notes. | Chris Lattner | 2010-11-21 | 1 | -2/+33 |
| | | | | | llvm-svn: 119925 | ||||

