Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Similarly, analyze truncate through multiply. | Nick Lewycky | 2011-01-19 | 1 | -0/+14 |
| | | | | llvm-svn: 123842 | ||||
* | Add a missed SCEV fold that is required to continue analyzing the IR produced | Nick Lewycky | 2011-01-19 | 1 | -0/+14 |
| | | | | | | | | | | | by indvars through the scev expander. trunc(add x, y) --> add(trunc x, y). Currently SCEV largely folds the other way which is probably wrong, but preserved to minimize churn. Instcombine doesn't do this fold either, demonstrating a missed optz'n opportunity on code doing add+trunc+add. llvm-svn: 123838 | ||||
* | Fix the encoding of mrrc and mcrr family of instructions. Also add testcases ↵ | Bruno Cardoso Lopes | 2011-01-19 | 1 | -16/+16 |
| | | | | | | for mcr and mrc llvm-svn: 123837 | ||||
* | Add unnamed_addr when we can show that address of a global is not used. | Rafael Espindola | 2011-01-19 | 1 | -13/+42 |
| | | | | llvm-svn: 123834 | ||||
* | Add a missing SCEV simplification sext(zext x) --> zext x. | Nick Lewycky | 2011-01-19 | 1 | -0/+4 |
| | | | | llvm-svn: 123832 | ||||
* | ARM/ISel: Factor out isScaledConstantInRange() helper. | Daniel Dunbar | 2011-01-19 | 1 | -122/+110 |
| | | | | llvm-svn: 123823 | ||||
* | For ARM subtargets with useNEONForSinglePrecisionFP, double count uses | Andrew Trick | 2011-01-19 | 1 | -0/+16 |
| | | | | | | | | of the floating point types less than 64-bits. It's somewhat of a temporary hack but forces more accurate modeling of register pressure and results in fewer spills. llvm-svn: 123811 | ||||
* | whitespace | Andrew Trick | 2011-01-19 | 1 | -16/+16 |
| | | | | llvm-svn: 123810 | ||||
* | Don't forget to emit the load from indirect symbol when using movw + movt to ↵ | Evan Cheng | 2011-01-19 | 4 | -6/+14 |
| | | | | | | materialize GA indirect symbols. llvm-svn: 123809 | ||||
* | Create two new generic classes to represent the following VMRS/VMSR variations: | Bruno Cardoso Lopes | 2011-01-18 | 2 | -30/+55 |
| | | | | | | | | | vmrs reg, fpexc vmrs reg, fpsid vmsr fpexc, reg vmsr fpsid, reg llvm-svn: 123783 | ||||
* | Fix MRS encoding for arm and thumb. | Bruno Cardoso Lopes | 2011-01-18 | 2 | -4/+9 |
| | | | | llvm-svn: 123778 | ||||
* | Fix the encoding of t2ISB by using the right class and also parse it correctly | Bruno Cardoso Lopes | 2011-01-18 | 2 | -2/+2 |
| | | | | llvm-svn: 123776 | ||||
* | Teach BasicAA to return PartialAlias in cases where both pointers | Dan Gohman | 2011-01-18 | 1 | -12/+35 |
| | | | | | | | | are pointing to the same object, one pointer is accessing the entire object, and the other is access has a non-zero size. This prevents TBAA from kicking in and saying NoAlias in such cases. llvm-svn: 123775 | ||||
* | Add RAGreedy methods for splitting live ranges around regions. | Jakob Stoklund Olesen | 2011-01-18 | 5 | -1/+356 |
| | | | | | | | | | | Analyze the live range's behavior entering and leaving basic blocks. Compute an interference pattern for each allocation candidate, and use SpillPlacement to find an optimal region where that register can be live. This code is still not enabled. llvm-svn: 123774 | ||||
* | Follow the current hack set and enable the correct parsing of bkpt while in ↵ | Bruno Cardoso Lopes | 2011-01-18 | 1 | -3/+9 |
| | | | | | | thumb mode. llvm-svn: 123772 | ||||
* | fix rdar://8878965, a regression I introduced with the recent | Chris Lattner | 2011-01-18 | 1 | -1/+3 |
| | | | | | | llvm.objectsize changes. llvm-svn: 123771 | ||||
* | Add support for parsing and encoding ARM's official syntax for the BFI ↵ | Bruno Cardoso Lopes | 2011-01-18 | 4 | -13/+79 |
| | | | | | | instruction llvm-svn: 123770 | ||||
* | Add a FIXME. | Jim Grosbach | 2011-01-18 | 1 | -0/+1 |
| | | | | llvm-svn: 123769 | ||||
* | Ensure Mips::GP is properly reloaded after a function call. Patch by Sasa ↵ | Bruno Cardoso Lopes | 2011-01-18 | 2 | -0/+9 |
| | | | | | | Stankovic llvm-svn: 123768 | ||||
* | Negative zero is not legal on mips. Patch by Sasa Stankovic | Bruno Cardoso Lopes | 2011-01-18 | 1 | -0/+2 |
| | | | | llvm-svn: 123766 | ||||
* | Handle (i32,i32) => f64 in a cleaner way. Patch by Sasa Stankovic | Bruno Cardoso Lopes | 2011-01-18 | 1 | -3/+2 |
| | | | | llvm-svn: 123763 | ||||
* | Add support for mips32 madd and msub instructions. Patch by Akira Hatanaka | Bruno Cardoso Lopes | 2011-01-18 | 3 | -10/+229 |
| | | | | llvm-svn: 123760 | ||||
* | For completeness, generalize the (X + Y) - Y -> X transform and add X - (X + ↵ | Duncan Sands | 2011-01-18 | 1 | -15/+57 |
| | | | | | | | | | | 1) -> -1. These were not recommended by my auto-simplifier since they don't fire often enough. However they do fire from time to time, for example they remove one subtraction from the final bitcode for 483.xalancbmk. llvm-svn: 123755 | ||||
* | Simplify (X<<1)-X into X. According to my auto-simplier this is the most ↵ | Duncan Sands | 2011-01-18 | 1 | -0/+6 |
| | | | | | | | | | | | | | common missed simplification in fully optimized code. It occurs sporadically in the testsuite, and many times in 403.gcc: the final bitcode has 131 fewer subtractions after this change. The reason that the multiplies are not eliminated is the same reason that instcombine did not catch this: they are used by other instructions (instcombine catches this with a more general transform which in general is only profitable if the operands have only one use). llvm-svn: 123754 | ||||
* | add a note | Chris Lattner | 2011-01-18 | 1 | -0/+20 |
| | | | | llvm-svn: 123752 | ||||
* | SPARC backend: Modified LowerCall and LowerFormalArguments so that they use ↵ | Venkatraman Govindaraju | 2011-01-18 | 2 | -272/+221 |
| | | | | | | CallingConv assignments. llvm-svn: 123749 | ||||
* | Remove an unnecessary #include. | Cameron Zwarich | 2011-01-18 | 1 | -1/+0 |
| | | | | llvm-svn: 123748 | ||||
* | Move DominanceFrontier from VMCore to Analysis. | Cameron Zwarich | 2011-01-18 | 5 | -130/+140 |
| | | | | llvm-svn: 123747 | ||||
* | McARM: Use accessors where appropriate. | Daniel Dunbar | 2011-01-18 | 1 | -13/+13 |
| | | | | llvm-svn: 123746 | ||||
* | McARM: Fill in ASMOperand::dump() for memory operands. | Daniel Dunbar | 2011-01-18 | 1 | -1/+56 |
| | | | | llvm-svn: 123745 | ||||
* | McARM: Make ARMOperand use a union where appropriate. | Daniel Dunbar | 2011-01-18 | 1 | -9/+13 |
| | | | | llvm-svn: 123744 | ||||
* | There is no point in verifying an analysis that is never updated. | Cameron Zwarich | 2011-01-18 | 1 | -11/+0 |
| | | | | llvm-svn: 123743 | ||||
* | McARM: Unify ParseMemory() successfull return. | Daniel Dunbar | 2011-01-18 | 1 | -40/+22 |
| | | | | llvm-svn: 123740 | ||||
* | McARM: Early exit on failure (NEFC). | Daniel Dunbar | 2011-01-18 | 1 | -7/+8 |
| | | | | llvm-svn: 123739 | ||||
* | McARM: Always keep an offset expression, if used (instead of assuming == 0 ↵ | Daniel Dunbar | 2011-01-18 | 1 | -24/+29 |
| | | | | | | | | if used but not present), and simplify logic. Also, clean up various non-sensicalisms in isMemModeRegThumb() and isMemModeImmThumb(). llvm-svn: 123738 | ||||
* | McARM: Add a variety of asserts on the sanity of memory operands. | Daniel Dunbar | 2011-01-18 | 1 | -1/+10 |
| | | | | llvm-svn: 123737 | ||||
* | McARM: Use a consistent marker for not-set OffsetRegNum. | Daniel Dunbar | 2011-01-18 | 1 | -1/+1 |
| | | | | llvm-svn: 123736 | ||||
* | Convert a std::map to a DenseMap for another 1.7% speedup on -scalarrepl. | Cameron Zwarich | 2011-01-18 | 1 | -3/+3 |
| | | | | llvm-svn: 123732 | ||||
* | Make a std::vector a SmallVector<*, 32> like the other vectors in the same | Cameron Zwarich | 2011-01-18 | 1 | -1/+1 |
| | | | | | | | function. This seems to be about a 1.5% speedup of -scalarrepl on test-suite with SPEC2000 and SPEC2006. llvm-svn: 123731 | ||||
* | Reduce indentation and remove commented out code. | Rafael Espindola | 2011-01-18 | 1 | -122/+101 |
| | | | | llvm-svn: 123729 | ||||
* | Remove some now-unused DominanceFrontier methods. | Cameron Zwarich | 2011-01-18 | 1 | -124/+0 |
| | | | | llvm-svn: 123726 | ||||
* | Remove code for updating dominance frontiers and some outdated references to | Cameron Zwarich | 2011-01-18 | 7 | -105/+21 |
| | | | | | | dominance and post-dominance frontiers. llvm-svn: 123725 | ||||
* | Remove outdated references to dominance frontiers. | Cameron Zwarich | 2011-01-18 | 4 | -29/+27 |
| | | | | llvm-svn: 123724 | ||||
* | McARM: Start marking T2 address operands as such, for the benefit of the parser. | Daniel Dunbar | 2011-01-18 | 1 | -0/+5 |
| | | | | llvm-svn: 123722 | ||||
* | Support/CommandLine: Add "Did you mean" print for mismatched operands. | Daniel Dunbar | 2011-01-18 | 1 | -0/+39 |
| | | | | llvm-svn: 123717 | ||||
* | The stub routine that we're calling uses test and so clobbers | Eric Christopher | 2011-01-18 | 1 | -2/+2 |
| | | | | | | the flags. llvm-svn: 123712 | ||||
* | minor change to rafael's recent patches: if something is | Chris Lattner | 2011-01-18 | 1 | -1/+7 |
| | | | | | | | constant but requires a unique address, we can still put it in a readonly section, just not a mergable one. llvm-svn: 123711 | ||||
* | Remove unused variables found by gcc-4.6's -Wunused-but-set-variable. | Jeffrey Yasskin | 2011-01-18 | 5 | -17/+0 |
| | | | | llvm-svn: 123707 | ||||
* | Remove checking that prevented overlapping CALLSEQ_START/CALLSEQ_END | Stuart Hastings | 2011-01-18 | 1 | -15/+9 |
| | | | | | | | ranges, add legalizer support for nested calls. Necessary for ARM byval support. Radar 7662569. llvm-svn: 123704 | ||||
* | Windows/PathV2.inc: For CryptAcquireContext(), CRYPT_VERIFYCONTEXT may be ↵ | NAKAMURA Takumi | 2011-01-17 | 1 | -1/+1 |
| | | | | | | specified for easy use. llvm-svn: 123687 |