aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* decode and validate instruction alias result definitions.Chris Lattner2010-11-061-0/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118327 91177308-0d34-0410-b5e6-96231b3b80d8
* simplifyChris Lattner2010-11-061-6/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118326 91177308-0d34-0410-b5e6-96231b3b80d8
* fix another fixme, replacing a string with a semantic pointer.Chris Lattner2010-11-061-10/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118325 91177308-0d34-0410-b5e6-96231b3b80d8
* disolve a hack, having CodeGenInstAlias decode the alias in the .tdChris Lattner2010-11-063-13/+31
| | | | | | | file instead of the asmmatcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118324 91177308-0d34-0410-b5e6-96231b3b80d8
* Hook up the '.code {16|32}' directive to the streamer.Jim Grosbach2010-11-051-2/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118310 91177308-0d34-0410-b5e6-96231b3b80d8
* Add '.code 32' assembler directive to MC streamers.Jim Grosbach2010-11-054-1/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118309 91177308-0d34-0410-b5e6-96231b3b80d8
* Hook up the '.thumb_func' directive to the streamer.Jim Grosbach2010-11-051-3/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118307 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix past-o.Jim Grosbach2010-11-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118304 91177308-0d34-0410-b5e6-96231b3b80d8
* MC'ize the '.code 16' and '.thumb_func' ARM directives.Jim Grosbach2010-11-059-14/+44
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118301 91177308-0d34-0410-b5e6-96231b3b80d8
* Disallow the certain NEON modified-immediate forms when generating vorr or vbic.Owen Anderson2010-11-052-7/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118300 91177308-0d34-0410-b5e6-96231b3b80d8
* Trailing whitespace.Jim Grosbach2010-11-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118296 91177308-0d34-0410-b5e6-96231b3b80d8
* MC'ize simple ARMConstantValue entry emission (with a FIXME).Jim Grosbach2010-11-051-28/+37
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118295 91177308-0d34-0410-b5e6-96231b3b80d8
* Put class into an anonymous namespace.Benjamin Kramer2010-11-051-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118294 91177308-0d34-0410-b5e6-96231b3b80d8
* Add codegen and encoding support for the immediate form of vbic.Owen Anderson2010-11-055-6/+102
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118291 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable MachO writing for ARM/Darwin. Lots of stuff still doesn't workJim Grosbach2010-11-051-1/+0
| | | | | | (relocations, e.g.), but this will allow simple things to flow through. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118289 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow targets to specify the MachO CPUType/CPUSubtype information.Jim Grosbach2010-11-054-11/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118288 91177308-0d34-0410-b5e6-96231b3b80d8
* syntaxunified directive is a no-op for MachO writing.Jim Grosbach2010-11-051-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118287 91177308-0d34-0410-b5e6-96231b3b80d8
* Add v5 and v7 ARM CPU subtype values.Jim Grosbach2010-11-051-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118281 91177308-0d34-0410-b5e6-96231b3b80d8
* Add FIXME.Jim Grosbach2010-11-051-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118280 91177308-0d34-0410-b5e6-96231b3b80d8
* When passing a parameter using the 'byval' mechanism, inline code needs to ↵Duncan Sands2010-11-051-0/+2
| | | | | | | | | | | | | | be used to perform the copy, which may be of lots of memory [*]. It would be good if the fall-back code generated something reasonable, i.e. did the copy in a loop, rather than vast numbers of loads and stores. Add a note about this. Currently target specific code seems to always kick in so this is more of a theoretical issue rather than a practical one now that X86 has been fixed. [*] It's amazing how often people pass mega-byte long arrays by copy... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118275 91177308-0d34-0410-b5e6-96231b3b80d8
* CrashRecoveryContext: Add RunSafelyOnThread helper function.Daniel Dunbar2010-11-052-0/+31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118272 91177308-0d34-0410-b5e6-96231b3b80d8
* When passing a huge parameter using the byval mechanism, a longDuncan Sands2010-11-042-7/+28
| | | | | | | | | | sequence of loads and stores was being generated to perform the copy on the x86 targets if the parameter was less than 4 byte aligned, causing llc to use up vast amounts of memory and time. Use a "rep movs" form instead. PR7170. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118260 91177308-0d34-0410-b5e6-96231b3b80d8
* Use arrays instead of constant-sized SmallVectors.Benjamin Kramer2010-11-041-132/+143
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118257 91177308-0d34-0410-b5e6-96231b3b80d8
* Add 118023 back, but with proper spelling for .uleb128/.sleb128.Rafael Espindola2010-11-042-9/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118254 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert previous patch. Some targets don't support uleb and sayRafael Espindola2010-11-041-6/+7
| | | | | | they do :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118250 91177308-0d34-0410-b5e6-96231b3b80d8
* MCize.Rafael Espindola2010-11-041-7/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118249 91177308-0d34-0410-b5e6-96231b3b80d8
* Introduce DIBuilder. It is intended to be a front-end friendly interface to ↵Devang Patel2010-11-043-0/+344
| | | | | | | | | | | | | | | emit debuggging information entries in LLVM IR. To create debugging information for a pointer, using DIBUilder front-end just needs DBuilder.CreatePointerType(Ty, Size); instead of DebugFactory.CreateDerivedType(llvm::dwarf::DW_TAG_pointer_type, TheCU, "", getOrCreateMainFile(), 0, Size, 0, 0, 0, OCTy); git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118248 91177308-0d34-0410-b5e6-96231b3b80d8
* Add getFile() to get DIFile of a DIType.Devang Patel2010-11-041-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118247 91177308-0d34-0410-b5e6-96231b3b80d8
* In the calling convention logic, ValVT is always a legal type,Duncan Sands2010-11-049-33/+33
| | | | | | | | and as such can be represented by an MVT - the more complicated EVT is not needed. Use MVT for ValVT everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118245 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix @llvm.prefetch isel. Selecting between pld / pldw using the first ↵Evan Cheng2010-11-044-54/+50
| | | | | | immediate rw. There is currently no intrinsic that matches to pli. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118237 91177308-0d34-0410-b5e6-96231b3b80d8
* partition operand processing between aliases and instructions.Chris Lattner2010-11-041-8/+65
| | | | | | | | | Right now the code is partitioned but the behavior is the same. This should be improved in the near future. This removes some uses of TheOperandList. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118232 91177308-0d34-0410-b5e6-96231b3b80d8
* pull name slicing out of BuildInstructionOperandReference soChris Lattner2010-11-041-16/+12
| | | | | | | it doesn't do any lexical stuff anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118230 91177308-0d34-0410-b5e6-96231b3b80d8
* cleanups.Chris Lattner2010-11-041-18/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118228 91177308-0d34-0410-b5e6-96231b3b80d8
* replace SrcOpNum with SrcOpName, eliminating a numering dependencyChris Lattner2010-11-041-26/+23
| | | | | | | on the incoming operand list. This also makes the code simpler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118225 91177308-0d34-0410-b5e6-96231b3b80d8
* System: Add llvm_execute_on_thread, which does what it says.Daniel Dunbar2010-11-042-0/+66
| | | | | | | - Primarily useful for running some code with a specified stack size, when pthreads are available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118222 91177308-0d34-0410-b5e6-96231b3b80d8
* Add ARM fixup info for load/store label references. Probably will need a bit ofJim Grosbach2010-11-042-30/+79
| | | | | | | tweaking when we start using it for object file emission or JIT, but it's a start. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118221 91177308-0d34-0410-b5e6-96231b3b80d8
* Add encoding for VSTR.Bill Wendling2010-11-043-30/+44
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118220 91177308-0d34-0410-b5e6-96231b3b80d8
* strength reduce some code, resolving a fixme.Chris Lattner2010-11-041-66/+59
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118219 91177308-0d34-0410-b5e6-96231b3b80d8
* take a big step to making aliases more general and less of a hack:Chris Lattner2010-11-041-112/+197
| | | | | | | | | now matchables contain an explicit list of how to populate each operand in the result instruction instead of having them somehow magically be correlated to the input inst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118217 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable fancy splitting during spilling unless -extra-spiller-splits is given.Jakob Stoklund Olesen2010-11-041-8/+18
| | | | | | | | This way, InlineSpiller does the same amount of splitting as the standard spiller. Splitting should really be guided by the register allocator, and doesn't belong in the spiller at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118216 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach ARM Target to use the tblgen support for generating an MC'izedJim Grosbach2010-11-033-47/+64
| | | | | | CodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118209 91177308-0d34-0410-b5e6-96231b3b80d8
* Add rule to build MC'ized CodeEmitter.Jim Grosbach2010-11-031-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118207 91177308-0d34-0410-b5e6-96231b3b80d8
* Support generating an MC'ized CodeEmitter directly. Maintain a reference to theJim Grosbach2010-11-031-5/+18
| | | | | | | Fixups list for the instruction so the operand encoders can add to it as needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118206 91177308-0d34-0410-b5e6-96231b3b80d8
* Covert VORRIMM to be produced via early target-specific DAG combining, ↵Owen Anderson2010-11-033-32/+29
| | | | | | | | | rather than legalization. This is both the conceptually correct place for it, as well as allowing it to be more aggressive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118204 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for code generation of the one register with immediate form of vorr.Owen Anderson2010-11-035-1/+99
| | | | | | | | We could be more aggressive about making this work for a larger range of constants, but this seems like a good start. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118201 91177308-0d34-0410-b5e6-96231b3b80d8
* trailing whitespaceJim Grosbach2010-11-031-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118199 91177308-0d34-0410-b5e6-96231b3b80d8
* Just return undef for invalid masks or elts, and since we're doing that,Eric Christopher2010-11-031-5/+6
| | | | | | | just do it earlier too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118195 91177308-0d34-0410-b5e6-96231b3b80d8
* Let RegAllocBasic require MachineDominators - they are already available andJakob Stoklund Olesen2010-11-031-0/+3
| | | | | | splitting needs them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118194 91177308-0d34-0410-b5e6-96231b3b80d8
* Tag debug output as regallocJakob Stoklund Olesen2010-11-032-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118193 91177308-0d34-0410-b5e6-96231b3b80d8
* Optimize generated code for integer materialization a bit.Eric Christopher2010-11-031-1/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118192 91177308-0d34-0410-b5e6-96231b3b80d8