summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* ARM Allow 'q' registers in VLD/VST vector lists.Jim Grosbach2011-10-281-4/+47
| | | | | | | | Just treat it as if the constituent D registers where specified. rdar://10348896 llvm-svn: 143167
* Remove the Alpha backend.Dan Gohman2011-10-2740-5322/+0
| | | | llvm-svn: 143164
* Add some NEON stores to the VLD decoding hook that were accidentally omitted ↵Owen Anderson2011-10-271-0/+4
| | | | | | previously. llvm-svn: 143162
* Also set addrmode6 alignment when align==size.Jakob Stoklund Olesen2011-10-271-1/+1
| | | | | | | Previously, we were only setting the alignment bits on over-aligned loads and stores. llvm-svn: 143160
* ARM isel for vld1, opcode selection for register stride post-index pseudos.Jim Grosbach2011-10-271-0/+4
| | | | llvm-svn: 143158
* If we're searching for a symbol reference to pretty-print a scattered ↵Owen Anderson2011-10-271-0/+18
| | | | | | relocation address, and we don't find a symbol table entry, try section begin addresses as well. llvm-svn: 143151
* Avoid partial CPSR dependency from loop backedges. rdar://10357570Evan Cheng2011-10-271-24/+43
| | | | llvm-svn: 143145
* Fix pretty printing of i386 local sect diff relocations, TLV relocations, ↵Owen Anderson2011-10-271-7/+50
| | | | | | and x86_64 TLV relocations in MachO. llvm-svn: 143140
* Add a pinned metadata name for fpaccuracy, and document itPeter Collingbourne2011-10-271-0/+5
| | | | llvm-svn: 143135
* Reapply commit 143028 with a fix: the problem was casting a ConstantExpr MulDuncan Sands2011-10-272-9/+52
| | | | | | | | | | | using BinaryOperator (which only works for instructions) when it should have been a cast to OverflowingBinaryOperator (which also works for constants). While there, correct a few other dubious looking uses of BinaryOperator. Thanks to Chad Rosier for the testcase. Original commit message: My super-optimizer noticed that we weren't folding this expression to true: (x *nsw x) sgt 0, where x = (y | 1). This occurs in 464.h264ref. llvm-svn: 143125
* Change the sysexit mnemonic (and sysexitl) to never have the REX.W prefix andKevin Enderby2011-10-272-3/+3
| | | | | | | not depend on In32BitMode. Use the sysexitq mnemonic for the version with the REX.W prefix and only allow it only In64BitMode. rdar://9738584 llvm-svn: 143112
* Thumb2 t2LDMDB[_UPD] assembly parsing to recognize .w suffix.Jim Grosbach2011-10-271-0/+6
| | | | | | rdar://10348844 llvm-svn: 143110
* Expose relocation accessors through the libObject C API.Owen Anderson2011-10-271-0/+45
| | | | llvm-svn: 143109
* Thumb2 t2MVNi assembly parsing to recognize ".w" suffix.Jim Grosbach2011-10-271-1/+3
| | | | | | rdar://10348584 llvm-svn: 143108
* Add relocation iterators to the libObject C API.Owen Anderson2011-10-271-0/+23
| | | | llvm-svn: 143107
* BlockFrequency: Use a smarter overflow check.Benjamin Kramer2011-10-271-4/+8
| | | | | | This trades one 64 bit div for one 64 bit mul and some arithmetic. llvm-svn: 143106
* Revert Duncan's r143028 expression folding which appears to be the culpritBob Wilson2011-10-271-46/+4
| | | | | | behind a compile failure on 483.xalancbmk. llvm-svn: 143102
* LLLexer: Factor hex char parsing.Benjamin Kramer2011-10-271-38/+16
| | | | llvm-svn: 143101
* Teach our Dwarf emission to use the string pool.Nick Lewycky2011-10-278-39/+58
| | | | llvm-svn: 143097
* Don't crash on 128-bit sdiv by constant. Found by inspection.Eli Friedman2011-10-271-9/+6
| | | | llvm-svn: 143095
* It is not safe to sink an alloca into a stacksave/stackrestore pair, so ↵Eli Friedman2011-10-271-5/+6
| | | | | | don't do that. <rdar://problem/10352360> llvm-svn: 143093
* A branch predicated on a constant can just FastEmit an unconditional branch.Chad Rosier2011-10-271-0/+6
| | | | llvm-svn: 143086
* Rename NonScalarIntSafe to something more appropriate.Lang Hames2011-10-265-13/+13
| | | | llvm-svn: 143080
* Add a TODO comment. FastISel works by parsing each basic block from the bottomChad Rosier2011-10-261-0/+1
| | | | | | | | up. Thus, improving the support for compares is goodness because it increases the number of terminator instructions we can handle. This creates many more opportunities for target specific fast-isel. llvm-svn: 143079
* Factor a little more code into EmitCmp, which should have been done in the firstChad Rosier2011-10-261-23/+16
| | | | | | place. No functional change intended. llvm-svn: 143078
* Use EmitCmp in SelectBranch. No functional change intended.Chad Rosier2011-10-261-33/+6
| | | | llvm-svn: 143076
* Reflow lines, fix comments for doxygen style, fix whitespace. No functionalityNick Lewycky2011-10-262-34/+27
| | | | | | change. llvm-svn: 143074
* Factor out an EmitCmp function that can be used by both SelectCmp andChad Rosier2011-10-261-18/+24
| | | | | | SelectBranch. No functional change intended. llvm-svn: 143072
* Trailing whitespace.Jim Grosbach2011-10-261-2/+2
| | | | llvm-svn: 143071
* Thumb2 ldr pc-relative encoding fixes.Jim Grosbach2011-10-262-7/+16
| | | | | | | | | We were parsing label references to the i12 encoding, which isn't right. They need to go to the pci variant instead. More of rdar://10348687 llvm-svn: 143068
* Fixes an issue reported by -verify-machineinstrs.Rafael Espindola2011-10-262-6/+7
| | | | | | Patch by Sanjoy Das. llvm-svn: 143064
* ARM parse parenthesized expressions for label references.Jim Grosbach2011-10-261-0/+1
| | | | | | Partial fix for rdar://10348687. llvm-svn: 143063
* This commit introduces two fake instructions MORESTACK_RET andRafael Espindola2011-10-263-21/+39
| | | | | | | | | | | | MORESTACK_RET_RESTORE_R10; which are lowered to a RET and a RET followed by a MOV respectively. Having a fake instruction prevents the verifier from seeing a MachineBasicBlock end with a non-terminator (MOV). It also prevents the rather eccentric case of a MachineBasicBlock ending with RET but having successors nevertheless. Patch by Sanjoy Das. llvm-svn: 143062
* Make sure short memsets on ARM lower to stores, even when optimizing for size.Lang Hames2011-10-261-0/+2
| | | | llvm-svn: 143055
* The maximum power of 2 dividing a power of 2 is itself. This occursDuncan Sands2011-10-262-10/+36
| | | | | | in 403.gcc and was spotted by my super-optimizer. llvm-svn: 143054
* Add support for scattered relocations to the MachO relocatation pretty printer.Owen Anderson2011-10-261-86/+144
| | | | llvm-svn: 143051
* On an ELF system, ".debug_str" is mergeable and contains null terminated stringsNick Lewycky2011-10-261-2/+3
| | | | | | composed of one byte characters. llvm-svn: 143044
* The order of the two symbol listings in a Macho x86_64 subtractor relocation ↵Owen Anderson2011-10-261-1/+3
| | | | | | is reversed from what seems intuitive to me. llvm-svn: 143035
* Thumb2 remove redundant ".w" suffix from t2MVNCCi pattern.Jim Grosbach2011-10-261-1/+1
| | | | llvm-svn: 143034
* Include the full 64 bits of relocation data in the type info for MachO ↵Owen Anderson2011-10-261-1/+3
| | | | | | relocations, so that we can recognize scattered relocations. llvm-svn: 143033
* Expand relocation type field to 64 bits. MachO scattered relocations ↵Owen Anderson2011-10-263-4/+4
| | | | | | require 33 bits of type info. llvm-svn: 143032
* Improve pretty printing of GOT relocations in MachO on x86_64.Owen Anderson2011-10-261-0/+7
| | | | llvm-svn: 143031
* My super-optimizer noticed that we weren't folding this expression toDuncan Sands2011-10-261-4/+46
| | | | | | true: (x *nsw x) sgt 0, where x = (y | 1). This occurs in 464.h264ref. llvm-svn: 143028
* Simplify SplitVecRes_UnaryOp by removing all the code that isDuncan Sands2011-10-261-43/+5
| | | | | | | | | | | | | | | | | | | | trying to legalize the operand types when only the result type is required to be legalized - the type legalization machinery will get round to the operands later if they need legalizing. There can be a point to legalizing operands in parallel with the result: when this saves compile time or results in better code. There was only one case in which this was true: when the operand is also split, so keep the logic for that bit. As a result of this change, additional operand legalization methods may need to be introduced to handle nodes where the result and operand types can differ, like SIGN_EXTEND, but the testsuite doesn't contain any tests where this is the case. In any case, it seems better to require such methods (and die with an assert if they doesn't exist) than to quietly produce wrong code if we forgot to special case the node in SplitVecRes_UnaryOp. llvm-svn: 143026
* Revert r142530 at least temporarily while a discussion is had on ↵James Molloy2011-10-261-5/+2
| | | | | | llvm-commits regarding exactly how much optsize should optimize for size over performance. llvm-svn: 143023
* Use a worklist to prevent the iterator from becoming invalidated because of ↵Bill Wendling2011-10-261-3/+4
| | | | | | the 'removeSuccessor' call. Noticed in a Release+Asserts+Check buildbot. llvm-svn: 143018
* Remove unused variable.Eric Christopher2011-10-261-1/+0
| | | | llvm-svn: 143011
* Don't use floating point to do an integer's job.Jakob Stoklund Olesen2011-10-261-4/+7
| | | | | | | | | | | This code makes different decisions when compiled into x87 instructions because of different rounding behavior. That caused phase 2/3 miscompares on 32-bit Linux when the phase 1 compiler was built with gcc (using x87), and the phase 2 compiler was built with clang (using SSE). This fixes PR11200. llvm-svn: 143006
* Disable LICM speculation in high register pressure situation again now that ↵Evan Cheng2011-10-261-1/+1
| | | | | | Devang has fixed other issues. llvm-svn: 143003
* Revert part of r142530. The patch potentially hurts performance especiallyEvan Cheng2011-10-261-3/+3
| | | | | | | on Darwin platforms where -Os means optimize for size without hurting performance. llvm-svn: 143002
OpenPOWER on IntegriCloud