summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Similarly, analyze truncate through multiply.Nick Lewycky2011-01-191-0/+14
| | | | llvm-svn: 123842
* Add a missed SCEV fold that is required to continue analyzing the IR producedNick Lewycky2011-01-191-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 Lopes2011-01-191-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 Espindola2011-01-191-13/+42
| | | | llvm-svn: 123834
* Add a missing SCEV simplification sext(zext x) --> zext x.Nick Lewycky2011-01-191-0/+4
| | | | llvm-svn: 123832
* ARM/ISel: Factor out isScaledConstantInRange() helper.Daniel Dunbar2011-01-191-122/+110
| | | | llvm-svn: 123823
* For ARM subtargets with useNEONForSinglePrecisionFP, double count usesAndrew Trick2011-01-191-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
* whitespaceAndrew Trick2011-01-191-16/+16
| | | | llvm-svn: 123810
* Don't forget to emit the load from indirect symbol when using movw + movt to ↵Evan Cheng2011-01-194-6/+14
| | | | | | materialize GA indirect symbols. llvm-svn: 123809
* Create two new generic classes to represent the following VMRS/VMSR variations:Bruno Cardoso Lopes2011-01-182-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 Lopes2011-01-182-4/+9
| | | | llvm-svn: 123778
* Fix the encoding of t2ISB by using the right class and also parse it correctlyBruno Cardoso Lopes2011-01-182-2/+2
| | | | llvm-svn: 123776
* Teach BasicAA to return PartialAlias in cases where both pointersDan Gohman2011-01-181-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 Olesen2011-01-185-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 Lopes2011-01-181-3/+9
| | | | | | thumb mode. llvm-svn: 123772
* fix rdar://8878965, a regression I introduced with the recentChris Lattner2011-01-181-1/+3
| | | | | | llvm.objectsize changes. llvm-svn: 123771
* Add support for parsing and encoding ARM's official syntax for the BFI ↵Bruno Cardoso Lopes2011-01-184-13/+79
| | | | | | instruction llvm-svn: 123770
* Add a FIXME.Jim Grosbach2011-01-181-0/+1
| | | | llvm-svn: 123769
* Ensure Mips::GP is properly reloaded after a function call. Patch by Sasa ↵Bruno Cardoso Lopes2011-01-182-0/+9
| | | | | | Stankovic llvm-svn: 123768
* Negative zero is not legal on mips. Patch by Sasa StankovicBruno Cardoso Lopes2011-01-181-0/+2
| | | | llvm-svn: 123766
* Handle (i32,i32) => f64 in a cleaner way. Patch by Sasa StankovicBruno Cardoso Lopes2011-01-181-3/+2
| | | | llvm-svn: 123763
* Add support for mips32 madd and msub instructions. Patch by Akira HatanakaBruno Cardoso Lopes2011-01-183-10/+229
| | | | llvm-svn: 123760
* For completeness, generalize the (X + Y) - Y -> X transform and add X - (X + ↵Duncan Sands2011-01-181-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 Sands2011-01-181-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 noteChris Lattner2011-01-181-0/+20
| | | | llvm-svn: 123752
* SPARC backend: Modified LowerCall and LowerFormalArguments so that they use ↵Venkatraman Govindaraju2011-01-182-272/+221
| | | | | | CallingConv assignments. llvm-svn: 123749
* Remove an unnecessary #include.Cameron Zwarich2011-01-181-1/+0
| | | | llvm-svn: 123748
* Move DominanceFrontier from VMCore to Analysis.Cameron Zwarich2011-01-185-130/+140
| | | | llvm-svn: 123747
* McARM: Use accessors where appropriate.Daniel Dunbar2011-01-181-13/+13
| | | | llvm-svn: 123746
* McARM: Fill in ASMOperand::dump() for memory operands.Daniel Dunbar2011-01-181-1/+56
| | | | llvm-svn: 123745
* McARM: Make ARMOperand use a union where appropriate.Daniel Dunbar2011-01-181-9/+13
| | | | llvm-svn: 123744
* There is no point in verifying an analysis that is never updated.Cameron Zwarich2011-01-181-11/+0
| | | | llvm-svn: 123743
* McARM: Unify ParseMemory() successfull return.Daniel Dunbar2011-01-181-40/+22
| | | | llvm-svn: 123740
* McARM: Early exit on failure (NEFC).Daniel Dunbar2011-01-181-7/+8
| | | | llvm-svn: 123739
* McARM: Always keep an offset expression, if used (instead of assuming == 0 ↵Daniel Dunbar2011-01-181-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 Dunbar2011-01-181-1/+10
| | | | llvm-svn: 123737
* McARM: Use a consistent marker for not-set OffsetRegNum.Daniel Dunbar2011-01-181-1/+1
| | | | llvm-svn: 123736
* Convert a std::map to a DenseMap for another 1.7% speedup on -scalarrepl.Cameron Zwarich2011-01-181-3/+3
| | | | llvm-svn: 123732
* Make a std::vector a SmallVector<*, 32> like the other vectors in the sameCameron Zwarich2011-01-181-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 Espindola2011-01-181-122/+101
| | | | llvm-svn: 123729
* Remove some now-unused DominanceFrontier methods.Cameron Zwarich2011-01-181-124/+0
| | | | llvm-svn: 123726
* Remove code for updating dominance frontiers and some outdated references toCameron Zwarich2011-01-187-105/+21
| | | | | | dominance and post-dominance frontiers. llvm-svn: 123725
* Remove outdated references to dominance frontiers.Cameron Zwarich2011-01-184-29/+27
| | | | llvm-svn: 123724
* McARM: Start marking T2 address operands as such, for the benefit of the parser.Daniel Dunbar2011-01-181-0/+5
| | | | llvm-svn: 123722
* Support/CommandLine: Add "Did you mean" print for mismatched operands.Daniel Dunbar2011-01-181-0/+39
| | | | llvm-svn: 123717
* The stub routine that we're calling uses test and so clobbersEric Christopher2011-01-181-2/+2
| | | | | | the flags. llvm-svn: 123712
* minor change to rafael's recent patches: if something isChris Lattner2011-01-181-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 Yasskin2011-01-185-17/+0
| | | | llvm-svn: 123707
* Remove checking that prevented overlapping CALLSEQ_START/CALLSEQ_ENDStuart Hastings2011-01-181-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 Takumi2011-01-171-1/+1
| | | | | | specified for easy use. llvm-svn: 123687
OpenPOWER on IntegriCloud