summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a dag combine pattern for folding C2-(A+C1) -> (C2-C1)-AEric Christopher2011-07-141-2/+10
| | | | | | Fixes rdar://9761830 llvm-svn: 135123
* Revert r135121 which broke a gcc-4.2 builder.Jakob Stoklund Olesen2011-07-143-70/+11
| | | | llvm-svn: 135122
* Count references to interference cache entries.Jakob Stoklund Olesen2011-07-143-11/+70
| | | | | | | | | | | | | | | | | Each InterferenceCache::Cursor instance references a cache entry. A non-zero reference count guarantees that the entry won't be reused for a new register. This makes it possible to have multiple live cursors examining interference for different physregs. The total number of live cursors into a cache must be kept below InterferenceCache::getMaxCursors(). Code generation should be unaffected by this change, and it doesn't seem to affect the cache replacement strategy either. llvm-svn: 135121
* Fix up assertion in r135018 so it doesn't trigger on 32-bit; when we're in ↵Eli Friedman2011-07-141-1/+2
| | | | | | 32-bit, it doesn't matter whether the operation overflows because the computed address is not wider than the immediate. llvm-svn: 135120
* Simplify. Compile unit check inside hasValidLocation() did not add any value.Devang Patel2011-07-141-26/+10
| | | | llvm-svn: 135118
* ARM Assembler support for DSB instruction.Jim Grosbach2011-07-141-0/+2
| | | | | | Add instalias for default 'sy' option. Add tests. llvm-svn: 135116
* Reapply r135074 and r135080 with a fix.Jakob Stoklund Olesen2011-07-142-28/+39
| | | | | | | | | | The cache entry referenced by the best split candidate could become clobbered by an unsuccessful candidate. The correct fix here is to use reference counts on the cache entries. Coming up. llvm-svn: 135113
* DMB instalias needs the same predicate as the instruction.Jim Grosbach2011-07-141-1/+1
| | | | llvm-svn: 135112
* Fix typo in DEBUG message.Devang Patel2011-07-141-2/+2
| | | | llvm-svn: 135111
* Add DEBUG messages.Devang Patel2011-07-141-0/+5
| | | | llvm-svn: 135110
* ARM Assembler support for DMB instruction.Jim Grosbach2011-07-132-0/+6
| | | | | | | | Flesh out the options supported for the instruction. Shuffle tests a bit and add entries for the rest of the options. Add an alias to handle the default operand of "sy". llvm-svn: 135109
* Update comments. These are for assembler, too.Jim Grosbach2011-07-131-3/+2
| | | | llvm-svn: 135107
* Add a target-indepedent entry to MCInstrDesc to describe the encoded size of ↵Owen Anderson2011-07-138-246/+213
| | | | | | an opcode. Switch ARM over to using that rather than its own special MCInstrDesc bits. llvm-svn: 135106
* Add code to handle a "frameless" unwind stack.Bill Wendling2011-07-131-13/+55
| | | | | | | The frameless unwind stack has a special encoding, the algorithm for which is in "permuteEncode". llvm-svn: 135103
* ARM Assembler support for DBG instruction.Jim Grosbach2011-07-132-5/+3
| | | | | | Add range checking and testing for parsing and encoding of DBG instruction. llvm-svn: 135102
* Revert r135074 and r135080. They broke clamscan.Jakob Stoklund Olesen2011-07-132-34/+28
| | | | llvm-svn: 135096
* Revert 135093. Think-o.Jim Grosbach2011-07-131-2/+2
| | | | llvm-svn: 135094
* Correct range for thumb co-processor immediateJim Grosbach2011-07-131-2/+2
| | | | llvm-svn: 135093
* Range checking for CDP[2] immediates.Jim Grosbach2011-07-134-12/+50
| | | | llvm-svn: 135092
* Make X86ISD::ANDNP more general and Codegen 256-bit VANDNP. A moreBruno Cardoso Lopes2011-07-133-64/+37
| | | | | | | general version of X86ISD::ANDNP also opened the room for a little bit of refactoring. llvm-svn: 135088
* The target specific node PANDN name is misleading. That happens becauseBruno Cardoso Lopes2011-07-134-12/+12
| | | | | | | it's later selected to a ANDNPD/ANDNPS instruction instead of the PANDN instruction. Rename it. llvm-svn: 135087
* Cleanup Thumb co-processor instructions a bit.Jim Grosbach2011-07-131-79/+35
| | | | | | Combine redundant base classes and such. No indended functional change. llvm-svn: 135085
* Make sure we don't combine a large displacement and a frame index in the ↵Eli Friedman2011-07-131-8/+25
| | | | | | | | same addressing mode on x86-64. It can overflow, leading to a crash/miscompile. <rdar://problem/9763308> llvm-svn: 135084
* Parameterize away the ARM T1Cop class.Jim Grosbach2011-07-132-13/+12
| | | | llvm-svn: 135082
* Fix predicates for Thumb co-processor instructions.Jim Grosbach2011-07-133-104/+95
| | | | | | | They're all Thumb2 only, not just some of them. More refactoring cleanup coming. llvm-svn: 135081
* Only keep the global split candidates that work out.Jakob Stoklund Olesen2011-07-131-12/+15
| | | | | | | | | Some pysical registers create split solutions that would spill anywhere. They should not even be considered in future multi-way global splits. This does not affect code generation (yet). llvm-svn: 135080
* Refactor out checking for displacements on x86-64 addressing modes. No ↵Eli Friedman2011-07-131-46/+34
| | | | | | | | functionality change. Refactoring in preparation for an additional safety check in FoldOffsetIntoAddress. Part of <rdar://problem/9763308>. llvm-svn: 135079
* Fix encoding for ARM BXJ instruction.Jim Grosbach2011-07-131-3/+5
| | | | llvm-svn: 135077
* Fix encoding of predicate bits on ARM BX_pred.Jim Grosbach2011-07-131-3/+2
| | | | llvm-svn: 135076
* Move the InterferenceCache cursor into the GlobalSplitCand struct.Jakob Stoklund Olesen2011-07-132-20/+23
| | | | | | | This is in preparation of supporting multiple global split candidates in a single live range split operation. llvm-svn: 135074
* Range checking for 16-bit immediates in ARM assembly.Jim Grosbach2011-07-132-1/+17
| | | | llvm-svn: 135071
* Revert r135042. As Chris pointed out, it had no effect, and was based onJay Foad2011-07-131-5/+0
| | | | | | a complete misunderstanding of the code. llvm-svn: 135070
* Fix up TargetLoweringObjectFile ctors to properly initialize fields.Evan Cheng2011-07-132-26/+67
| | | | llvm-svn: 135068
* Give the ARM BKPT instruction the right operand type.Jim Grosbach2011-07-131-5/+4
| | | | | | The immediate is of limited range and the operand type should reflect that. llvm-svn: 135066
* Add tests for ARM parsing of 'BKPT' instruction.Jim Grosbach2011-07-131-2/+1
| | | | llvm-svn: 135063
* It's not safe to fold (fptrunc (sqrt (fpext x))) to (sqrtf x) if there is ↵Evan Cheng2011-07-131-1/+2
| | | | | | another use of sqrt. rdar://9763193 llvm-svn: 135058
* Improve ARM assembly parsing diagnostics a bit.Jim Grosbach2011-07-131-21/+33
| | | | | | | | | Catch potential cascading errors on a malformed so_reg operand and bail after the first error. Add some tests for the diagnostics we do want. llvm-svn: 135055
* Destination register operand is optional for ADC and SBC ARM.Jim Grosbach2011-07-131-5/+24
| | | | llvm-svn: 135052
* Flesh out ARM Parser support for shifted-register operands.Jim Grosbach2011-07-133-8/+105
| | | | | | | Now works for parsing register shifted register and register shifted immediate arithmetic instructions, including the 'rrx' rotate with extend. llvm-svn: 135049
* 80 columns.Jim Grosbach2011-07-131-4/+5
| | | | llvm-svn: 135047
* Update MCParsedAsmOperand debug methods.Jim Grosbach2011-07-135-7/+11
| | | | | | | | | | | Update the debug output interface for MCParsedAsmOperand to have a print() method which takes an output stream argument, an << operator which invokes the print method using the given stream, and a dump() method which prints the operand to the dbgs() stream. This makes the interface more consistent with the rest of LLVM, and more convenient to use at the debugger command line. llvm-svn: 135043
* Really cache function types and anonymous struct types.Jay Foad2011-07-131-0/+5
| | | | llvm-svn: 135042
* Convert InsertValueInst and ExtractValueInst APIs to use ArrayRef.Jay Foad2011-07-1317-195/+117
| | | | llvm-svn: 135040
* Add to RuntimeDyld support different object formatsDanil Malyshev2011-07-134-599/+693
| | | | llvm-svn: 135037
* stop leaking all named struct types with an empty name. ThanksChris Lattner2011-07-133-8/+18
| | | | | | to Benjamin Kramer for steering me in the right direction here. llvm-svn: 135031
* Add an entry.Evan Cheng2011-07-131-0/+18
| | | | llvm-svn: 135024
* AVX Codegen support for 256-bit versions of vandps, vandpd, vorps, vorpd, ↵Bruno Cardoso Lopes2011-07-132-8/+27
| | | | | | vxorps, vxorpd llvm-svn: 135023
* Don't emit the FDE end label if the last thing emitted was a compact unwind andBill Wendling2011-07-132-8/+18
| | | | | | not the FDE llvm-svn: 135020
* Add an assert (which should never trigger) that triggers on a testcase I'm ↵Eli Friedman2011-07-131-1/+3
| | | | | | looking at. llvm-svn: 135018
* Improve codegen for select's:Evan Cheng2011-07-132-1/+67
| | | | | | | | | | | | | | | | | | | | if (x != 0) x = 1 if (x == 1) x = 1 Previous codegen looks like this: mov r1, r0 cmp r1, #1 mov r0, #0 moveq r0, #1 The naive lowering select between two different values. It should recognize the test is equality test so it's more a conditional move rather than a select: cmp r0, #1 movne r0, #0 rdar://9758317 llvm-svn: 135017
OpenPOWER on IntegriCloud