summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Silence some -Asserts uninitialized variable warnings.Daniel Dunbar2010-07-312-2/+3
| | | | llvm-svn: 109956
* Speculatively revert r108614, "Another attempt at getting the clang self-host toDaniel Dunbar2010-07-311-32/+0
| | | | | | | like my instcombine patch.", in an attempt to fix Clang i386 bootstrap. - Also PR7719. llvm-svn: 109953
* MC: Remove HasAbsolutizedSet from WindowsX86AsmBackend.Michael J. Spencer2010-07-311-1/+0
| | | | llvm-svn: 109949
* Move newlines before inline jumptables from the asm strings in .td files toBob Wilson2010-07-314-9/+9
| | | | | | | the jtblock_operand print methods. This avoids extra newlines in the disassembler's output. PR7757. llvm-svn: 109948
* Add relax all support to the COFF object streamer.Michael J. Spencer2010-07-312-3/+6
| | | | llvm-svn: 109947
* Add support for disassembling VMVN (immediate) instructions. PR7747.Bob Wilson2010-07-311-0/+4
| | | | llvm-svn: 109946
* The BlockExtractorPass() constructor was not reading the BlockFile and that wasRafael Espindola2010-07-311-5/+3
| | | | | | | | | | | | | | exactly what bugpoint expected it to do. There was also only one user of BlockExtractorPass(const std::vector<BasicBlock*> &B), so just remove it and make BlockExtractorPass read BlockFile. This fixes bugpoint's block extraction. Nick, please review. llvm-svn: 109936
* Add an initial implementation of PHI translation for LazyValueInfo. This ↵Owen Anderson2010-07-301-35/+72
| | | | | | | | involves rolling back some of my earlier data structure improvements until I can ensure that there are no iterator invalidation problems. llvm-svn: 109935
* Add -disable-shifter-op to disable isel of shifter ops. On Cortex-a9 the ↵Evan Cheng2010-07-301-0/+11
| | | | | | shifts cost extra instructions so it might be better to emit them separately to take advantage of dual-issues. llvm-svn: 109934
* Add a check in the ARM disassembler for NEON instructions that wouldBob Wilson2010-07-301-5/+9
| | | | | | | reference registers past the end of the NEON register file, and report them as invalid instead of asserting when trying to print them. PR7746. llvm-svn: 109933
* PPC doesn't supported VLA with large alignment. This wasDale Johannesen2010-07-301-2/+2
| | | | | | | | formerly rejected by the FE, so asserted in the BE; now the FE only warns, so we treat it as a legitimate fatal error in PPC BE. This means the test for the feature won't pass, so it's xfail'd. llvm-svn: 109892
* Move MaximumAlignment to be a member of the Value class.Dan Gohman2010-07-302-2/+3
| | | | llvm-svn: 109891
* Revert my last two patches to LVI, which recent changes have exposed a ↵Owen Anderson2010-07-301-56/+94
| | | | | | miscompilation in. llvm-svn: 109889
* Add missing newline to debug statement.Nick Lewycky2010-07-301-1/+1
| | | | llvm-svn: 109886
* Add the __TEXT,__StaticInit section to the list of sections emitted at theBob Wilson2010-07-301-0/+6
| | | | | | | beginning on ARM Darwin assembly files so that it won't be placed after debug sections. Radar 8252813. llvm-svn: 109879
* Support all 128-bit AVX vector intrinsics. Most part of them I alreadyBruno Cardoso Lopes2010-07-303-232/+240
| | | | | | | | | | | declared during the addition of the assembler support, the additional changes are: - Add missing intrinsics - Move all SSE conversion instructions in X86InstInfo64.td to the SSE.td file. - Duplicate some patterns to AVX mode. - Step into PCMPEST/PCMPIST custom inserter and add AVX versions. llvm-svn: 109878
* Fix typo!Bruno Cardoso Lopes2010-07-301-8/+8
| | | | llvm-svn: 109877
* MC: Initialize MCFragment::Offset, noticed by Cameron Esfahani.Daniel Dunbar2010-07-301-1/+2
| | | | llvm-svn: 109875
* Fix -Wmissing-field-initializers warnings.Daniel Dunbar2010-07-301-15/+5
| | | | llvm-svn: 109872
* Fix for bug reported by Evzen Muller on llvm-commits: make sure to correctlyEli Friedman2010-07-301-6/+3
| | | | | | | check the range of the constant when optimizing a comparison between a constant and a sign_extend_inreg node. llvm-svn: 109854
* Many Thumb2 instructions can reference the full ARM register set (i.e.,Jim Grosbach2010-07-306-331/+465
| | | | | | | | | | | | | | | | | | | | | | | | have 4 bits per register in the operand encoding), but have undefined behavior when the operand value is 13 or 15 (SP and PC, respectively). The trivial coalescer in linear scan sometimes will merge a copy from SP into a subsequent instruction which uses the copy, and if that instruction cannot legally reference SP, we get bad code such as: mls r0,r9,r0,sp instead of: mov r2, sp mls r0, r9, r0, r2 This patch adds a new register class for use by Thumb2 that excludes the problematic registers (SP and PC) and is used instead of GPR for those operands which cannot legally reference PC or SP. The trivial coalescer explicitly requires that the register class of the destination for the COPY instruction contain the source register for the COPY to be considered for coalescing. This prevents errant instructions like that above. PR7499 llvm-svn: 109842
* Add builtins for ssat/usat, similar to RealView's __ssat and __usat intrinsics.Nate Begeman2010-07-292-0/+6
| | | | llvm-svn: 109813
* Refactor ARM-specific DAG combining in preparation for adding some moreBob Wilson2010-07-291-12/+25
| | | | | | transformations. llvm-svn: 109800
* Implement vector constants which are splat ofDale Johannesen2010-07-291-8/+62
| | | | | | | | | integers with mov + vdup. 8003375. This is currently disabled by default because LICM will not hoist a VDUP, so it pessimizes the code if the construct occurs inside a loop (8248029). llvm-svn: 109799
* Don't assert on an unrecognized BrMiscFrm instruction.Bob Wilson2010-07-291-1/+0
| | | | | | PR7745. llvm-svn: 109788
* PR7750: !CExpr->isNullValue() only properly computes whether CExpr is nonnullEli Friedman2010-07-291-1/+1
| | | | | | if CExpr is a ConstantInt. llvm-svn: 109773
* Add intrinsics __builtin_arm_qadd & __builtin_arm_qsub to allow access to ↵Nate Begeman2010-07-292-9/+14
| | | | | | | | the QADD & QSUB instructions. Behave identically to __qadd & __qsub RealView instruction intrinsics. llvm-svn: 109770
* Plug the remaining MC leaks by giving MCObjectStreamer/MCAsmStreamer ↵Benjamin Kramer2010-07-293-5/+5
| | | | | | ownership of the TargetAsmBackend and the MCCodeEmitter. llvm-svn: 109767
* Comment typo.Dale Johannesen2010-07-291-1/+1
| | | | llvm-svn: 109765
* Revert r109652, and remove the offending assert in loadRegFromStackSlot instead.Jakob Stoklund Olesen2010-07-292-6/+1
| | | | | | | | | | | | We do sometimes load from a too small stack slot when dealing with x86 arguments (varargs and smaller-than-32-bit args). It looks like we know what we are doing in those cases, so I am going to remove the assert instead of artifically enlarging stack slot sizes. The assert in storeRegToStackSlot stays in. We don't want to write beyond the bounds of a stack slot. llvm-svn: 109764
* CrashRecovery: Use ThreadLocal::erase() instead of set(0).Daniel Dunbar2010-07-291-1/+1
| | | | llvm-svn: 109752
* Stop leaking std::strings in GetDwarfFile.Benjamin Kramer2010-07-291-8/+8
| | | | llvm-svn: 109746
* COFFObjectWriter: Don't leak COFFSymbols and COFFSections.Benjamin Kramer2010-07-291-0/+8
| | | | llvm-svn: 109745
* Make sure to include config.h, to pickup LLVM_ON_WIN32.Daniel Dunbar2010-07-291-0/+1
| | | | llvm-svn: 109721
* MC: Destroy Macro instances.Daniel Dunbar2010-07-291-0/+7
| | | | llvm-svn: 109720
* Speculatively revert r109705 since it seems to be causing some build botEric Christopher2010-07-291-45/+29
| | | | | | angst. llvm-svn: 109718
* CrashRecoveryContext: Add a simple POSIX implementation.Daniel Dunbar2010-07-291-1/+102
| | | | | | | | - This works, but won't handle crashes on stack overflow, or signals delivered to a thread other than the one that crashed. The latter is particular annoying on Darwin, because SIGABRT tends to go to the main thread. llvm-svn: 109717
* Fix a bug in the -regalloc=fast handling of exotic two-address instruction withJakob Stoklund Olesen2010-07-291-3/+11
| | | | | | | | | | | | | | | | | multiple defs, like t2LDRSB_POST. The first def could accidentally steal the physreg that the second, tied def was required to be allocated to. Now, the tied use-def is treated more like an early clobber, and the physreg is reserved before allocating the other defs. This would never be a problem when the tied def was the only def which is the usual case. This fixes MallocBench/gs for thumb2 -O0. llvm-svn: 109715
* Factor out some of the code for updating old SCEVUnknown values, andDan Gohman2010-07-291-29/+45
| | | | | | | | | extend it to handle the case where multiple RAUWs affect a single SCEVUnknown. Add a ScalarEvolution unittest to test for this situation. llvm-svn: 109705
* Pass the queried value by argument rather than in a member, in preparation ↵Owen Anderson2010-07-281-36/+25
| | | | | | for supporting PHI translation. llvm-svn: 109701
* ARM mode version of r109693. Remove incorrect substitution pattern for ↵Jim Grosbach2010-07-281-2/+6
| | | | | | UXTB16. It wrongly assumed the input shift was actually a rotate. rdar://8240138 llvm-svn: 109696
* Remove incorrect substitution pattern for UXTB16. It wrongly assumed the ↵Jim Grosbach2010-07-281-2/+6
| | | | | | input shift was actually a rotate. rdar://8240138 llvm-svn: 109693
* Remove dead prototypeJim Grosbach2010-07-281-1/+0
| | | | llvm-svn: 109691
* simplify by using CallSite constructors; virtually eliminates CallSite::get ↵Gabor Greif2010-07-288-24/+24
| | | | | | from the tree llvm-svn: 109687
* Add an erase() method to llvm::ThreadLocal.Owen Anderson2010-07-283-0/+9
| | | | llvm-svn: 109686
* Get rid of LVIQuery as a distinct data structure, so that we don't have to ↵Owen Anderson2010-07-281-93/+66
| | | | | | initialize a new set of maps on every query. llvm-svn: 109679
* Make GlobalValue alignment consistent with load, store, and allocaDan Gohman2010-07-281-1/+8
| | | | | | alignment, fixing silent truncation of alignment values. llvm-svn: 109653
* Create a fixed stack object for varargs that is as large as any register.Jakob Stoklund Olesen2010-07-281-1/+4
| | | | | | | | | | The size of this object isn't used for anything - technically it is of variable size. This avoids a false positive from the assert in X86InstrInfo::loadRegFromStackSlot, and fixes PR7735. llvm-svn: 109652
* Added first bit of support for the dwarf .file directive. This patch collectsKevin Enderby2010-07-284-1/+99
| | | | | | | the info from the .file directive and makes file and directory tables that will eventually be put out as part of the dwarf info in the output file. llvm-svn: 109651
* RegionInfo: Make sure to free cached nodes; Tobias, please check!Daniel Dunbar2010-07-281-0/+5
| | | | llvm-svn: 109650
OpenPOWER on IntegriCloud