aboutsummaryrefslogtreecommitdiff
path: root/lib/Target
AgeCommit message (Collapse)Author
2010-10-01PR8200: The MMX unpack instructions were no longer selected. Reverted the partsBill Wendling
that caused this to happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@115298 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-29Merge in r114506.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@115101 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-14Approved by ChrisBill Wendling
$ svn merge -c 113894 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113894 into '.': U test/MC/AsmParser/X86/x86_instructions.s U lib/Target/X86/AsmParser/X86AsmParser.cpp Log: add a terrible hack to allow out with dx is parens, a gas bug. This fixes PR8114 git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113896 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Approved by Evan:Bill Wendling
$ svn merge -c 113637 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113637 into '.': U lib/Target/ARM/ARMBaseInstrInfo.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113639 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-10Approved by Evan.Bill Wendling
$ svn merge -c 113576 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113576 into '.': U test/CodeGen/ARM/2007-01-19-InfiniteLoop.ll U lib/Target/ARM/ARMLoadStoreOptimizer.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113583 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-09Approved by Evan:Bill Wendling
$ svn merge -c 113297 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113297 into '.': U lib/Target/ARM/Thumb2SizeReduction.cpp $ svn merge -c 113322 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113322 into '.': U lib/Target/ARM/ARMInstrNEON.td U lib/Target/ARM/ARMInstrVFP.td U lib/Target/ARM/ARMInstrFormats.td $ svn merge -c 113365 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113365 into '.': U lib/Target/ARM/ARMBaseRegisterInfo.cpp $ svn merge -c 113366 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113366 into '.': G lib/Target/ARM/ARMBaseRegisterInfo.cpp $ svn merge -c 113394 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113394 into '.': G lib/Target/ARM/ARMBaseRegisterInfo.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113540 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-08$ svn merge -c 113255 https://llvm.org/svn/llvm-project/llvm/trunkBill Wendling
--- Merging r113255 into '.': U lib/Target/ARM/Disassembler/ARMDisassemblerCore.h $ svn merge -c 113345 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113345 into '.': U lib/Target/ARM/Disassembler/ARMDisassembler.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113353 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-06Approved by Chris:Bill Wendling
$ svn merge -c 113158 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113158 into '.': U lib/Target/X86/X86InstrInfo.td Log: Redefine LOOP* instructions from I to Ii8PCRel as they take an i8 argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113175 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-04Emit target specific nodes for isPSHUFHWMask and isPSHUFLWMaskBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113050 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-04Emit target specific nodes for isSHUFPMaskBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113048 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-04Previous isMOVLMask matching already emits targets nodes, remove checkBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113047 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-04One more check from the original isShuffleMaskLegal goes awayBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113045 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-04Remove a duplicated but useless check that i've inserted in the previous commit.Bruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113044 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-04Refactor some code and remove the extra checks for unpckl_undef and unpckh_undefBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113043 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Remove check for unpckh maskBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113035 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Remove check for unpckl maskBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113034 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Inline isShuffleMaskLegal into LowerVECTOR_SHUFFLE, so we can startBruno Cardoso Lopes
checking each standalone condition and decide whether emit target specific nodes or remove the condition if it's already matched before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113031 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Reapply considered harmfull part of rr112934 and r112942.Bruno Cardoso Lopes
"Use target specific nodes instead of relying in unpckl and unpckh pattern fragments during isel time. Also place a depth limit in getShuffleScalarElt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113020 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Remove the rest of the nonexistent 64-bit AVX instructions.Dale Johannesen
Bruno, please review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113014 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Reapply last harmless part of r112934, the pattern fragment to match X86UnpcklpdBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113009 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Reintroduce a simple function refactoring done in r112934, also without any ↵Bruno Cardoso Lopes
functionality changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113008 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Reapply piecies of r112942 and r112934 which don't doBruno Cardoso Lopes
functional changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113007 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Reapply Fix commentBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113006 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Revert r112934, "- Use specific nodes to match unpckl masks.", which introducedDaniel Dunbar
some infinite loop and select failures. - Apologies for eager reverting, but its branch day. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113000 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Revert r112938 "Fix comment", which depends on r112934, which introduced someDaniel Dunbar
infinite loop and select failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112999 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Revert r112942, "Use punpckh and unpckh family of nodes instead of using unpckhDaniel Dunbar
mask pattern fragment", which depends on r112934, which introduced some infinite loop and select failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112998 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Re-apply r112883:Jim Grosbach
"For ARM stack frames that utilize variable sized objects and have either large local stack areas or require dynamic stack realignment, allocate a base register via which to access the local frame. This allows efficient access to frame indices not accessible via the FP (either due to being out of range or due to dynamic realignment) or the SP (due to variable sized object allocation). In particular, this greatly improves efficiency of access to spill slots in Thumb functions which contain VLAs." r112986 fixed a latent bug exposed by the above. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112989 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Check the local frame alignment for determining whether dynamic stackJim Grosbach
alignment should be performed. Otherwise dynamic realignment may trigger when the register allocator has already used the frame pointer as a general purpose register. That is, we need to make sure that the list of reserved registers doesn't change after register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112986 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Finish converting the rest of the NEON VLD instructions to use pseudo-Bob Wilson
instructions prior to regalloc. Since it's getting a little close to the 2.8 branch deadline, I'll have to leave the rest of the instructions handled by the NEONPreAllocPass for now, but I didn't want to leave half of the VLD instructions converted and the other half not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112983 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Revert "For ARM stack frames that utilize variable sized objects and have ↵Daniel Dunbar
either", it is breaking oggenc with Clang for ARMv6. This reverts commit 8d6e29cfda270be483abf638850311670829ee65. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112962 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Zap dead code.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112955 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03AVX doesn't support mm operations neither its instrinsics.Bruno Cardoso Lopes
The AVX versions of PALIGN and PABS* should only exist for 128-bit. Remove the unnecessary stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112944 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Use punpckh and unpckh family of nodes instead of using unpckh mask pattern ↵Bruno Cardoso Lopes
fragment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112942 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Replace NEON vabdl, vaba, and vabal intrinsics with combinations of theBob Wilson
vabd intrinsic and add and/or zext operations. In the case of vaba, this also avoids the need for a DAG combine pattern to combine vabd with add. Update tests. Auto-upgrade the old intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112941 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Fix commentBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112938 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03- Use specific nodes to match unpckl masks.Bruno Cardoso Lopes
- Teach getShuffleScalarElt how to handle more target specific nodes, so the DAGCombine can make use of it. - Add another hack to avoid the node update problem during legalization. More description on the comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112934 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Simple branch instruction support.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112923 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Don't call Predicate_* from X86 target.Jakob Stoklund Olesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112921 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Remove Predicate_* calls from MBlaze and XCoreJakob Stoklund Olesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112920 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-03Remove Predicate_* calls from MipsJakob Stoklund Olesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112919 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02Add basic support for materializing constants (including fp) andEric Christopher
stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112912 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02Properly emit __chkstk call instead of __alloca on non-mingw windows targets.Anton Korobeynikov
Patch by Cameron Esfahani! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112902 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02Move insertps mask decoding to header fileBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112896 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02Revert win64 changes. They seem to be incompleteAnton Korobeynikov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112885 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02For ARM stack frames that utilize variable sized objects and have eitherJim Grosbach
large local stack areas or require dynamic stack realignment, allocate a base register via which to access the local frame. This allows efficient access to frame indices not accessible via the FP (either due to being out of range or due to dynamic realignment) or the SP (due to variable sized object allocation). In particular, this greatly improves efficiency of access to spill slots in Thumb functions which contain VLAs. rdar://7352504 rdar://8374540 rdar://8355680 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112883 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02Properly allocate win64 shadow reg area.Anton Korobeynikov
Patch by Jan Sjodin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112875 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02Move decoding of insertps back to avoid unused warnings in x86 isel ↵Bruno Cardoso Lopes
lowering, and fix movlhps/movhlps to decode 4 elements shuffles git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112869 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02Don't narrow the load and store in a load+twiddle+store sequence unlessDan Gohman
there are clearly no stores between the load and the store. This fixes this miscompile reported as PR7833. This breaks the test/CodeGen/X86/narrow_op-2.ll optimization, which is safe, but awkward to prove safe. Move it to X86's README.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112861 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02trailing whitespaceJim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112852 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-02remove trailing whitespaceJim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112847 91177308-0d34-0410-b5e6-96231b3b80d8