summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Fix sdisel memcpy, memset, memmove lowering:Evan Cheng2010-04-014-15/+23
| | | | | | | | | | | | | 1. Makes it possible to lower with floating point loads and stores. 2. Avoid unaligned loads / stores unless it's fast. 3. Fix some memcpy lowering logic bug related to when to optimize a load from constant string into a constant. 4. Adjust x86 memcpy lowering threshold to make it more sane. 5. Fix x86 target hook so it uses vector and floating point memory ops more effectively. rdar://7774704 llvm-svn: 100090
* Nehalem unaligned memory access is fast.Evan Cheng2010-04-013-2/+15
| | | | llvm-svn: 100089
* Add aeskeygenassist intrinsic and rename all of the aes intrinsics toEric Christopher2010-04-011-21/+29
| | | | | | | aes instead of sse4.2. Add a brief todo for a subtarget flag and rework the aeskeygenassist instruction to more closely match the docs. llvm-svn: 100078
* vml[as] are slow on 1136jf-s also.Jim Grosbach2010-04-011-1/+2
| | | | llvm-svn: 100066
* reduce indentation, minor cleanups.Chris Lattner2010-03-311-38/+42
| | | | llvm-svn: 100042
* Use spaces, not tabsJakob Stoklund Olesen2010-03-311-1/+1
| | | | llvm-svn: 100037
* Comment the changes for r98218 and friends inside the source code.Bill Wendling2010-03-311-0/+5
| | | | llvm-svn: 100033
* Comment the changes for r98218 and friends inside the source code.Bill Wendling2010-03-312-0/+10
| | | | llvm-svn: 100031
* Fix PR6750. Don't try to merge a DomainValue with itself.Jakob Stoklund Olesen2010-03-311-0/+2
| | | | llvm-svn: 100016
* Replace V_SET0 with variants for each SSE execution domain.Jakob Stoklund Olesen2010-03-313-15/+26
| | | | llvm-svn: 99975
* Fix typo. Thank you, valgrind.Jakob Stoklund Olesen2010-03-311-1/+1
| | | | llvm-svn: 99974
* Enable -sse-domain-fix by default. Now with tests!Jakob Stoklund Olesen2010-03-301-6/+1
| | | | llvm-svn: 99954
* V_SETALLONES is an integer instruction.Jakob Stoklund Olesen2010-03-301-1/+1
| | | | | | | Since it is just a pxor in disguise, we should probably expand it to a full polymorphic triple. llvm-svn: 99953
* Renumber SSE execution domains for better code size.Jakob Stoklund Olesen2010-03-303-24/+21
| | | | | | | | SSEDomainFix will collapse to the domain with the lower number when it has a choice. The SSEPackedSingle domain often has smaller instructions, so prefer that. llvm-svn: 99952
* Revert Mon Ping's change 99928, since it broke all the llvm-gcc buildbots.Bob Wilson2010-03-306-19/+15
| | | | llvm-svn: 99948
* Revert "Enable -sse-domain-fix by default. What could possibly go wrong?"Jakob Stoklund Olesen2010-03-301-1/+6
| | | | | | Not running 'make check-all' before committing is a bad idea. llvm-svn: 99933
* Enable -sse-domain-fix by default. What could possibly go wrong?Jakob Stoklund Olesen2010-03-301-6/+1
| | | | llvm-svn: 99931
* Added support for address spaces and added a isVolatile field to memcpy, ↵Mon P Wang2010-03-306-15/+19
| | | | | | | | | memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) A update of langref will occur in a subsequent checkin. llvm-svn: 99928
* Add cross-block inference to SSEDomainFix.Jakob Stoklund Olesen2010-03-301-29/+85
| | | | llvm-svn: 99916
* Remove the pmulld intrinsic and autoupdate it as a vector multiply.Eric Christopher2010-03-302-3/+22
| | | | | | | Rewrite the pmulld patterns, and make sure that they fold in loads of arguments into the instruction. llvm-svn: 99910
* Rip out the 'is temporary' nonsense from the MCContext interface toChris Lattner2010-03-307-21/+18
| | | | | | | | | create symbols. It is extremely error prone and a source of a lot of the remaining integrated assembler bugs on x86-64. This fixes rdar://7807601. llvm-svn: 99902
* XFAIL some PIC16 tests when running under valgrind-leaks. I don't expect theseBenjamin Kramer2010-03-301-0/+2
| | | | | | to be fixed any time soon. llvm-svn: 99888
* PIC16: Plug a leak in PIC16Section by allocating name & address strings in theBenjamin Kramer2010-03-302-13/+20
| | | | | | MCContext. There is still one leak left in PIC16Section (the Items vector). llvm-svn: 99887
* Add FIXME for operand promotion.Eric Christopher2010-03-301-0/+4
| | | | llvm-svn: 99859
* Be gentle to MSVC. C++ is hard, after all.Jakob Stoklund Olesen2010-03-301-2/+3
| | | | llvm-svn: 99855
* Basic implementation of SSEDomainFix pass.Jakob Stoklund Olesen2010-03-293-57/+399
| | | | | | Cross-block inference is primitive and wrong, but the pass is working otherwise. llvm-svn: 99848
* Make isInt?? and isUint?? template specializations of the generic versions. ThisBenjamin Kramer2010-03-299-40/+42
| | | | | | | makes calls a little bit more consistent and allows easy removal of the specializations in the future. Convert all callers to the templated functions. llvm-svn: 99838
* We'll never match these as instructions, just as intrinsics so removeEric Christopher2010-03-291-16/+10
| | | | | | the SDNodes. llvm-svn: 99835
* Remove a bunch of integer width predicate functions in favor of MathExtras.Benjamin Kramer2010-03-294-139/+11
| | | | | | | Most of these were unused, some of them were wrong and unused (isS16Constant<short>, isS10Constant<short>). llvm-svn: 99827
* From Kalle Raiskila:Chris Lattner2010-03-294-14/+158
| | | | | | | | "the bigstack patch for SPU, with testcase. It is essentially the patch committed as 97091, and reverted as 97099, but with the following additions: -in vararg handling, registers are marked to be live, to not confuse the register scavenger -function prologue and epilogue are not emitted, if the stack size is 16. 16 means it is empty - there is only the register scavenger emergency spill slot, which is not used as there is no stack." llvm-svn: 99819
* add a note.Chris Lattner2010-03-291-0/+3
| | | | llvm-svn: 99815
* Add NVTBLFrm to represent A8.6.406 VTBL, VTBX Vector Table Lookup Instructions.Johnny Chen2010-03-292-8/+9
| | | | | | | | | | | | | These instructions use byte index in a control vector (M:Vm) to lookup byte values in a table and generate a new vector (D:Vd). The table is specified via a list of vectors, which can be: {Dn} {Dn D<n+1>} {Dn D<n+1> D<n+2>} {Dn D<n+1> D<n+2> D<n+3>} llvm-svn: 99789
* zap an extra line that Eli noticed!Chris Lattner2010-03-281-1/+0
| | | | llvm-svn: 99770
* fix a type contradition: XCoreISD::RETSP has one argument, not zero.Chris Lattner2010-03-281-1/+1
| | | | llvm-svn: 99760
* remove a pattern with no testcase that doesn't appear to be Chris Lattner2010-03-281-2/+0
| | | | | | matchable: it seems like it would always constant fold. llvm-svn: 99758
* fix integer negates to use the proper type for the zero vectors,Chris Lattner2010-03-281-11/+14
| | | | | | | this also depends on the new "bitconvert dropping" behavior just added to tblgen. llvm-svn: 99757
* fix a typo, bitconvert from node to itself isn't valid.Chris Lattner2010-03-281-1/+1
| | | | llvm-svn: 99755
* fix vnot matching to explicitly specify the type of theChris Lattner2010-03-281-10/+16
| | | | | | | | | input to be v8i8 or v16i8, which buildvectors get canonicalized to. This allows the patterns that were previously using a bare 'vnot' to match, before they couldn't. llvm-svn: 99754
* fix up vnot matching, eliminating a dead pattern, correcting a couple ofChris Lattner2010-03-281-6/+11
| | | | | | | patterns that would never match because of bitcast, and eliminating use of vnot_conv. llvm-svn: 99753
* stop using vnot_convChris Lattner2010-03-281-3/+8
| | | | llvm-svn: 99750
* revert r99743, this is saying that the repmovs instructinos have anChris Lattner2010-03-281-2/+4
| | | | | | *input* of other type, which is the VT. llvm-svn: 99749
* remove a bunch of dead patterns.Chris Lattner2010-03-281-13/+0
| | | | llvm-svn: 99748
* claiming to return other is pointless.Chris Lattner2010-03-281-4/+2
| | | | llvm-svn: 99743
* Improve systemz to model cmp and ucmp nodes as returningChris Lattner2010-03-282-43/+33
| | | | | | their flags correctly. llvm-svn: 99738
* the FPCmp node returns an i32.Chris Lattner2010-03-281-6/+8
| | | | llvm-svn: 99737
* fix some modelling problems exposed by a patch I'm working on. bsr/bsf/ptestChris Lattner2010-03-283-26/+21
| | | | | | nodes all have an EFLAGS result when made by isel lowering. llvm-svn: 99736
* Fix indentation.Bob Wilson2010-03-271-34/+34
| | | | llvm-svn: 99705
* Add a format argument to the N3V and N3VX classes, removing the N3Vf class.Bob Wilson2010-03-272-198/+198
| | | | llvm-svn: 99704
* eliminate the last of the parallel's!Chris Lattner2010-03-272-173/+102
| | | | llvm-svn: 99700
* Add NVMulSLFrm to represent "3-register multiply with scalar" operations and setJohnny Chen2010-03-272-122/+130
| | | | | | | | | | | | it as the format for the appropriate N3V*SL*<> classes. These instructions require special handling of the M:Vm field which encodes the restricted Dm and the lane index within Dm. Examples are A8.6.325 VMLA, VMLAL, VMLS, VMLSL (by scalar): vmlal.s32 q3, d2, d10[0] llvm-svn: 99690
OpenPOWER on IntegriCloud