summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Thumb2 use 'ldm' as default mnemonic.Jim Grosbach2011-09-071-2/+2
| | | | | | Handle explicit 'ia' suffix via a MnemonicAlias (pre-existing). llvm-svn: 139234
* Detect attempt to use segmented stacks on non ELF systems and errorRafael Espindola2011-09-071-0/+5
| | | | | | (not assert) early. llvm-svn: 139233
* Better diagnostic location information for mnemonic suffices.Jim Grosbach2011-09-071-2/+4
| | | | llvm-svn: 139232
* Relax the MemOperands on atomics a bit. Fixes -verify-machineinstrs ↵Eli Friedman2011-09-071-2/+17
| | | | | | | | failures for atomic laod/store on ARM. (The fix for the related failures on x86 is going to be nastier because we actually need Acquire memoperands attached to the atomic load instrs, etc.) llvm-svn: 139221
* While sinking machine instructions, sink matching DBG_VALUEs also otherwise ↵Devang Patel2011-09-071-0/+31
| | | | | | live debug variable pass will drop DBG_VALUEs on the floor. llvm-svn: 139208
* Reenable compact unwind by default. However, also emit the old version of unwindBill Wendling2011-09-061-8/+1
| | | | | | information for older linkers. llvm-svn: 139206
* memset_pattern16 uses a 16 BYTE pattern, not a 16 BIT pattern. Add comments ↵Owen Anderson2011-09-061-2/+4
| | | | | | to that effect. llvm-svn: 139205
* Teach BasicAA about the aliasing properties of memset_pattern16.Owen Anderson2011-09-061-1/+40
| | | | | | Fixes PR10872 and <rdar://problem/10065079>. llvm-svn: 139204
* ISB is HasDB, not just HasV7.Jim Grosbach2011-09-061-1/+1
| | | | llvm-svn: 139202
* Thumb2 parsing and encoding for ISB.Jim Grosbach2011-09-061-8/+7
| | | | llvm-svn: 139200
* Thumb2 parsing and encoding for DMB.Jim Grosbach2011-09-061-0/+4
| | | | llvm-svn: 139193
* Thumb2 parsing and encoding for DBG.Jim Grosbach2011-09-061-6/+4
| | | | llvm-svn: 139191
* Thumb2 parsing and encoding for CMN and CMP.Jim Grosbach2011-09-061-21/+44
| | | | llvm-svn: 139188
* This transform only handles two-operand AddRec's. Prevent it from trying toNick Lewycky2011-09-061-13/+23
| | | | | | handle anything more complex. Fixes PR10383 again! llvm-svn: 139186
* Add mayLoad/mayStore markings to ARM 64-bit atomic pseudo-instructions.Eli Friedman2011-09-061-1/+1
| | | | llvm-svn: 139179
* Thumb2 parsing and encoding for CLREX.Jim Grosbach2011-09-062-5/+3
| | | | llvm-svn: 139172
* Add -verify-indvars for imperfect SCEV trip count verification after indvars.Andrew Trick2011-09-061-1/+9
| | | | llvm-svn: 139169
* Fix comment. Noticed by Duncan.Rafael Espindola2011-09-061-1/+1
| | | | llvm-svn: 139161
* Add codegen support for vector select (in the IR this means a selectDuncan Sands2011-09-0632-119/+190
| | | | | | | | | | | | with a vector condition); such selects become VSELECT codegen nodes. This patch also removes VSETCC codegen nodes, unifying them with SETCC nodes (codegen was actually often using SETCC for vector SETCC already). This ensures that various DAG combiner optimizations kick in for vector comparisons. Passes dragonegg bootstrap with no testsuite regressions (nightly testsuite as well as "make check-all"). Patch mostly by Nadav Rotem. llvm-svn: 139159
* Fix fall outs from my recent change on how carry bit is modeled during isel.Evan Cheng2011-09-063-33/+36
| | | | | | | | Now the 'S' instructions, e.g. ADDS, treat S bit as optional operand as well. Also fix isel hook to correctly set the optional operand. rdar://10073745 llvm-svn: 139157
* Use IRBuilder.Devang Patel2011-09-061-17/+14
| | | | llvm-svn: 139156
* ARM .code directive should always go to the streamer.Jim Grosbach2011-09-061-6/+4
| | | | | | | | | | Even if there's no mode switch performed, the .code directive should still be sent to the output streamer. Otherwise, for example, an output asm stream is not equivalent to the input stream which generated it (a dependency on the input target triple arm vs. thumb is introduced which was not originally there). llvm-svn: 139155
* Fix style issues and typos found by Duncan.Rafael Espindola2011-09-061-3/+3
| | | | llvm-svn: 139154
* As a first step, emit both the compact unwind and CIE/FDEs for a function.Bill Wendling2011-09-061-13/+7
| | | | llvm-svn: 139152
* Try again at r138809 (make DSE more aggressive in removing dead stores at ↵Owen Anderson2011-09-061-79/+80
| | | | | | the end of a function), now with less deleting stores before memcpy's. llvm-svn: 139150
* Atomic pseudos don't use (as in read) CPSR. They clobber it.Jakob Stoklund Olesen2011-09-061-2/+2
| | | | llvm-svn: 139148
* Now, named mdnode llvm.dbg.cu keeps track of all compile units in a module. ↵Devang Patel2011-09-061-6/+12
| | | | | | Update DebugInfoFinder to collect compile units from llvm.dbg.cu. llvm-svn: 139147
* Split the init.trampoline intrinsic, which currently combines GCC'sDuncan Sands2011-09-0612-46/+191
| | | | | | | | | | | | | | | | | | | | init.trampoline and adjust.trampoline intrinsics, into two intrinsics like in GCC. While having one combined intrinsic is tempting, it is not natural because typically the trampoline initialization needs to be done in one function, and the result of adjust trampoline is needed in a different (nested) function. To get around this llvm-gcc hacks the nested function lowering code to insert an additional parent variable holding the adjust.trampoline result that can be accessed from the child function. Dragonegg doesn't have the luxury of tweaking GCC code, so it stored the result of adjust.trampoline in the memory GCC set aside for the trampoline itself (this is always available in the child function), and set up some new memory (using an alloca) to hold the trampoline. Unfortunately this breaks Go which allocates trampoline memory on the heap and wants to use it even after the parent has exited (!). Rather than doing even more hacks to get Go working, it seemed best to just use two intrinsics like in GCC. Patch mostly by Sanjoy Das. llvm-svn: 139140
* Fix typo in comment again.Nick Lewycky2011-09-061-1/+1
| | | | llvm-svn: 139139
* Apparently we compile the code, not the comments. Thanks Eli!Nick Lewycky2011-09-061-2/+1
| | | | llvm-svn: 139138
* Fix typo in comment.Nick Lewycky2011-09-061-1/+1
| | | | llvm-svn: 139137
* Nope! I had it right the first time. Revert the operative part of r139135 andNick Lewycky2011-09-061-5/+8
| | | | | | add more showing of my work. llvm-svn: 139136
* Fix flipped sign. While there, show my math.Nick Lewycky2011-09-061-2/+9
| | | | llvm-svn: 139135
* No no no, fix typo properly!Nick Lewycky2011-09-061-2/+2
| | | | llvm-svn: 139134
* The logic inside getMulExpr to simplify {a,+,b}*{c,+,d} was wrong, which wasNick Lewycky2011-09-061-13/+20
| | | | | | | visible given a=b=c=d=1, on iteration #1 (the second iteration). Replace it with correct math. Fixes PR10383! llvm-svn: 139133
* Revert r139126 due to selfhost failures reported by buildbots.Nick Lewycky2011-09-061-6/+2
| | | | llvm-svn: 139130
* Teach SCEV to report a max backedge count in one interesting case inNick Lewycky2011-09-051-2/+6
| | | | | | HowFarToZero; the case for a canonical loop. llvm-svn: 139126
* Add a new MC bit for NaCl (Native Client) mode. NaCl requires that certainNick Lewycky2011-09-0510-3/+55
| | | | | | | instructions are more aligned than the CPU requires, and adds some additional directives, to follow in future patches. Patch by David Meyer! llvm-svn: 139125
* Update the C++ backend to use the new ArrayRef'ified APIs. Patch by arrowdodger!Nick Lewycky2011-09-051-4/+3
| | | | llvm-svn: 139124
* Fix typo in comment.Nick Lewycky2011-09-051-1/+1
| | | | llvm-svn: 139122
* InstSimplify: Don't try to replace an extractvalue/insertvalue pair with the ↵Benjamin Kramer2011-09-051-1/+2
| | | | | | | | original value if types don't match. Fixes clang selfhost. llvm-svn: 139120
* Delete trivial landing pads that just continue unwinding the caughtDuncan Sands2011-09-051-0/+49
| | | | | | exception. llvm-svn: 139117
* Add some simple insertvalue simplifications, for the purpose of cleaningDuncan Sands2011-09-051-0/+36
| | | | | | up do-nothing exception handling code produced by dragonegg. llvm-svn: 139113
* Use canonical forms for the branch probability zero heutistic.Benjamin Kramer2011-09-041-25/+30
| | | | | | | | - Drop support for X >u 0, it's equivalent to X != 0 and should be canonicalized into the latter. - Add X < 1 -> unlikely, which is what instcombine canonicalizes X <= 0 into. - Add X > -1 -> likely, which is what instcombine canonicalizes X >= 0 into. llvm-svn: 139110
* Use Duncan's patch to delete the instructions in reverse order (minus the ↵Bill Wendling2011-09-042-12/+20
| | | | | | landingpad and terminator). llvm-svn: 139090
* The insertion point for the loads is right before the llvm.eh.exceptionBill Wendling2011-09-041-1/+1
| | | | | | | | call. The call may be in the same BB as the landingpad instruction. If that's the case, then inserting the loads after the landingpad inst, but before the extractvalues, causes undefined behavior. llvm-svn: 139088
* Use internal storage for command line option.Benjamin Kramer2011-09-032-6/+4
| | | | llvm-svn: 139079
* Don't reload the values that are already there. The llvm.eh.resume uses the sameBill Wendling2011-09-031-7/+4
| | | | | | | values that the resume instruction uses. PR10850 llvm-svn: 139076
* Add AVX versions to match AESENC/AESDEC intrinsics. This hopefully endsBruno Cardoso Lopes2011-09-031-16/+37
| | | | | | the cycle of missing AVX counterparts of already present SSE* patterns llvm-svn: 139073
* Add AVX version of a SSE4.1 VPBLENDVB patternBruno Cardoso Lopes2011-09-031-1/+5
| | | | llvm-svn: 139072
OpenPOWER on IntegriCloud