summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* [mips] Refactor LUI instruction.Akira Hatanaka2012-12-213-6/+17
| | | | llvm-svn: 170944
* [mips] Refactor count leading zero or one instructions.Akira Hatanaka2012-12-213-20/+29
| | | | llvm-svn: 170942
* [mips] Refactor sign-extension-in-register instructions.Akira Hatanaka2012-12-213-11/+21
| | | | llvm-svn: 170940
* [mips] Refactor instructions which copy from and to HI/LO registers.Akira Hatanaka2012-12-213-22/+35
| | | | llvm-svn: 170939
* [mips] Refactor logical NOR instructions.Akira Hatanaka2012-12-212-7/+6
| | | | llvm-svn: 170937
* [mips] Move instruction definitions in MipsInstrInfo.td.Akira Hatanaka2012-12-211-37/+39
| | | | llvm-svn: 170936
* R600: Coding style - remove empty spaces from the beginning of functionsTom Stellard2012-12-213-35/+0
| | | | | | No functionality change. llvm-svn: 170923
* R600: Fix MAX_UINT definitionTom Stellard2012-12-211-1/+1
| | | | | | | Patch by: Vadim Girlin Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 170922
* R600: Add SHADOWCUBE to TEX_SHADOW patternTom Stellard2012-12-211-1/+1
| | | | | | | Patch by: Vadim Girlin Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> llvm-svn: 170921
* Cleanup compiler warnings on discarding type qualifiers in casts. Switch to ↵Benjamin Kramer2012-12-212-6/+10
| | | | | | | | | | C++ style casts. Patch by Saleem Abdulrasool! Differential Revision: http://llvm-reviews.chandlerc.com/D204 llvm-svn: 170917
* X86: Match pmin/pmax as a target specific dag combine. This occurs during ↵Benjamin Kramer2012-12-211-0/+77
| | | | | | | | vectorization. Part of PR14667. llvm-svn: 170908
* Remove duplicate includes.Roman Divacky2012-12-2113-14/+0
| | | | llvm-svn: 170902
* R600: Expand vec4 INT <-> FP conversionsTom Stellard2012-12-211-0/+4
| | | | llvm-svn: 170901
* X86: Match the SSE/AVX min/max vector ops using a custom node instead of ↵Benjamin Kramer2012-12-215-97/+171
| | | | | | | | intrinsics This is very mechanical, no functionality change. Preparation for PR14667. llvm-svn: 170898
* [msan] Remove unreachable blocks before instrumenting a function.Evgeniy Stepanov2012-12-212-0/+49
| | | | llvm-svn: 170883
* Add a missing "virtual" keyword.Nadav Rotem2012-12-211-2/+2
| | | | llvm-svn: 170842
* Enable if-conversion.Nadav Rotem2012-12-211-1/+1
| | | | llvm-svn: 170841
* Add ARM cortex-r5 subtarget.Quentin Colombet2012-12-212-1/+13
| | | | llvm-svn: 170840
* Don't skip __DWARF,Rafael Espindola2012-12-211-2/+0
| | | | | | | Now that we don't merge section and segment names, we don't need to skip the segment name to get to the section name. llvm-svn: 170839
* Add a function to get the segment name of a section.Rafael Espindola2012-12-211-14/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | On MachO, sections also have segment names. When a tool looking at a .o file prints a segment name, this is what they mean. In reality, a .o has only one anonymous, segment. This patch adds a MachO only function to fetch that segment name. I named it getSectionFinalSegmentName since the main use for the name seems to be inform the linker with segment this section should go to. The patch also changes MachOObjectFile::getSectionName to return just the section name instead of computing SegmentName,SectionName. The main difference from the previous patch is that it doesn't use InMemoryStruct. It is extremely dangerous: if the endians match it returns a pointer to the file buffer, if not, it returns a pointer to an internal buffer that is overwritten in the next API call. We should change all of this code to use support::detail::packed_endian_specific_integral like ELF, but since these functions only handle strings, they work with big and little endian machines as is. I have tested this by installing ubuntu 12.10 ppc on qemu, that is why it took so long :-) llvm-svn: 170838
* Add targets to skip running the GC passes.Evan Cheng2012-12-211-3/+10
| | | | llvm-svn: 170836
* Every pass deserves a name, even codegenprep.Evan Cheng2012-12-211-0/+2
| | | | llvm-svn: 170831
* Improve the X86 cost model for loads and stores.Nadav Rotem2012-12-212-0/+28
| | | | llvm-svn: 170830
* BB-Vectorizer: Check the cost of the store pointer typeNadav Rotem2012-12-212-2/+3
| | | | | | | and not the return type, which is void. A number of test cases fail after adding the assertion in TTImpl. llvm-svn: 170828
* Call llvm_unreachable instead of assert.Reed Kotler2012-12-211-1/+1
| | | | llvm-svn: 170822
* Fix a bug in the code that checks if we can vectorize loops while using dynamicNadav Rotem2012-12-211-19/+24
| | | | | | | | | | memory bound checks. Before the fix we were able to vectorize this loop from the Livermore Loops benchmark: for ( k=1 ; k<n ; k++ ) x[k] = x[k-1] + y[k]; llvm-svn: 170811
* Require the two-argument MI::addOperand(MF, MO) for dangling instructions.Jakob Stoklund Olesen2012-12-201-1/+9
| | | | | | | | | | | Instructions that are inserted in a basic block can still be decorated with addOperand(MO). Make the two-argument addOperand() function contain the actual implementation. This function will now always have a valid MF reference that it can use for memory allocation. llvm-svn: 170798
* Add an MF argument to MI::copyImplicitOps().Jakob Stoklund Olesen2012-12-205-7/+8
| | | | | | | | | This function is often used to decorate dangling instructions, so a context reference is required to allocate memory for the operands. Also add a corresponding MachineInstrBuilder method. llvm-svn: 170797
* Use two-arg addOperand(MF, MO) internally in MachineInstr when possible.Jakob Stoklund Olesen2012-12-202-8/+8
| | | | llvm-svn: 170796
* MachineInstrBuilderize ARM.Jakob Stoklund Olesen2012-12-201-3/+4
| | | | llvm-svn: 170795
* MachineInstrBuilderize NVPTX.Jakob Stoklund Olesen2012-12-201-39/+30
| | | | llvm-svn: 170794
* Fix an unitialized member variable that may have caused sporadic failuresEli Bendersky2012-12-201-1/+2
| | | | | | for code that wasn't even in bundling mode. llvm-svn: 170793
* Whitespace and 80-column cleanup.Eric Christopher2012-12-205-25/+31
| | | | llvm-svn: 170771
* Start splitting out the debug string section handling by moving itEric Christopher2012-12-206-40/+63
| | | | | | into the DwarfUnits class. llvm-svn: 170770
* Some random comment, naming, and format changes.Bill Wendling2012-12-202-12/+19
| | | | | | | Rename the AttributeImpl* from Attrs to pImpl to be consistent with other code. Add comments where none were before. Or doxygen-ify other comments. llvm-svn: 170767
* Remove two dead functions.Jakob Stoklund Olesen2012-12-201-35/+0
| | | | llvm-svn: 170766
* Revert "Adding support for llvm.arm.neon.vaddl[su].* and"Bob Wilson2012-12-203-66/+4
| | | | | | | This reverts r170694. The operations can be represented in IR without adding any new intrinsics. llvm-svn: 170765
* LoopVectorize: Fix a bug in the scalarization of instructions.Nadav Rotem2012-12-201-1/+1
| | | | | | | | | | Before if-conversion we could check if a value is loop invariant if it was declared inside the basic block. Now that loops have multiple blocks this check is incorrect. This fixes External/SPEC/CINT95/099_go/099_go llvm-svn: 170756
* On some ARM cpus, flags setting movs with shifter operand, i.e. lsl, lsr, asr,Evan Cheng2012-12-204-77/+103
| | | | | | | | | are more expensive than the non-flag setting variant. Teach thumb2 size reduction pass to avoid generating them unless we are optimizing for size. rdar://12892707 llvm-svn: 170728
* Aligned bundling support. Following the discussion here:Eli Bendersky2012-12-206-15/+276
| | | | | | | | | | | http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-December/056754.html The proposal and implementation are fully documented here: https://sites.google.com/a/chromium.org/dev/nativeclient/pnacl/aligned-bundling-support-in-llvm Tests will follow shortly. llvm-svn: 170718
* Use MachineInstrBuilder for PHI nodes in SelectionDAGISel.Jakob Stoklund Olesen2012-12-201-50/+25
| | | | llvm-svn: 170716
* Use MachineInstrBuilder in InstrEmitter.Jakob Stoklund Olesen2012-12-202-79/+73
| | | | | | | | | | | | This is supposed to be a mechanical change with no functional effects. InstrEmitter can generate all types of MachineOperands which revealed that MachineInstrBuilder was missing a few methods, added by this patch. Besides providing a context pointer to MI::addOperand(), MachineInstrBuilder seems like a better fit for this code. llvm-svn: 170712
* Use MachineInstrBuilder in a few CodeGen passes.Jakob Stoklund Olesen2012-12-205-18/+12
| | | | | | This automatically passes a context pointer to MI->addOperand(). llvm-svn: 170711
* Loop Vectorizer: turn-off if-conversion.Nadav Rotem2012-12-201-1/+1
| | | | llvm-svn: 170708
* Add a new attribute, 'noduplicate'. If a function contains a noduplicate ↵James Molloy2012-12-2011-11/+77
| | | | | | | | call, the call cannot be duplicated - Jump threading, loop unrolling, loop unswitching, and loop rotation are inhibited if they would duplicate the call. Similarly inlining of the function is inhibited, if that would duplicate the call (in particular inlining is still allowed when there is only one callsite and the function has internal linkage). llvm-svn: 170704
* Remove MCTargetAsmLexer and its derived classes now that edis,Roman Divacky2012-12-2011-435/+0
| | | | | | its only user, is gone. llvm-svn: 170699
* Adding support for llvm.arm.neon.vaddl[su].* andRenato Golin2012-12-203-4/+66
| | | | | | | | llvm.arm.neon.vsub[su].* intrinsics. Patch by Pete Couperus <pjcoup@gmail.com> llvm-svn: 170694
* Formatting fixes. Remove some unnecessary 'else' after 'return'. No ↵Craig Topper2012-12-201-21/+14
| | | | | | functional change. llvm-svn: 170676
* Removing trailing whitespaceCraig Topper2012-12-201-146/+146
| | | | llvm-svn: 170675
* Implement cfi_def_cfa_offset. "Make check" test case for this comming in theReed Kotler2012-12-201-0/+27
| | | | | | | next few days but it's already tested a lot from test-suite and works fine. This patch completes almost 100% pass of test-suite for mips 16. llvm-svn: 170674
OpenPOWER on IntegriCloud