summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Remove pcmpgt/pcmpeq intrinsics as clang is not using them.Craig Topper2012-01-311-20/+0
| | | | llvm-svn: 149367
* with recent changes, ConstantArray is never a "string". Remove the associatedChris Lattner2012-01-312-96/+25
| | | | | | methods and constant fold the clients to false. llvm-svn: 149362
* use the right accessor for ConstantDataArray.Chris Lattner2012-01-311-1/+1
| | | | llvm-svn: 149342
* PR11834: Use macros which are defined on Windows. Patch by Marina Yatsina.Evan Cheng2012-01-302-2/+4
| | | | llvm-svn: 149294
* Intel syntax. Adjust special code, used to recognize cmp<comparison ↵Devang Patel2012-01-301-2/+4
| | | | | | code>{ss,sd,ps,pd}, for intel syntax. llvm-svn: 149291
* Intel syntax. Support .intel_syntax directive.Devang Patel2012-01-301-10/+24
| | | | llvm-svn: 149270
* Fix refacto.Benjamin Kramer2012-01-301-2/+2
| | | | llvm-svn: 149269
* Eliminate narrowing conversion in initializer list, to make C++11 happyDouglas Gregor2012-01-301-2/+2
| | | | llvm-svn: 149254
* X86: Simplify shuffle mask generation code.Benjamin Kramer2012-01-301-53/+34
| | | | llvm-svn: 149248
* Fix pattern for memory form of PSHUFD for use with FP vectors to remove ↵Craig Topper2012-01-302-10/+3
| | | | | | bitcast to an integer vector that normal code wouldn't have. Also remove bitcasts from code that turns splat vector loads into a shuffle as it was making the broken pattern necessary. llvm-svn: 149232
* Move some XOP patterns into instruction definition. Replae VPCMOV intrinsic ↵Craig Topper2012-01-304-452/+252
| | | | | | patterns with custom lowering to a target specific nodes. llvm-svn: 149216
* Cleanups for EABI standard functionsAnton Korobeynikov2012-01-291-2/+7
| | | | llvm-svn: 149195
* Use base AAPCS for varargs functions even for AAPCS-VFP CCAnton Korobeynikov2012-01-291-1/+3
| | | | llvm-svn: 149194
* Add a note about a potential optimization for clz/ctz patterns for ARMBob Wilson2012-01-281-0/+16
| | | | | | (and other targets). llvm-svn: 149182
* Ensure .AliasedSymbol() is called on all uses of getSymbol(). Affects ARM ↵James Molloy2012-01-282-2/+2
| | | | | | | | and MIPS ELF backends. Fixes PR11877 llvm-svn: 149180
* Intel Syntax: Parse mem operand with seg reg. QWORD PTR FS:[320]Devang Patel2012-01-271-3/+5
| | | | llvm-svn: 149142
* Move some patterns back near their instructions and use AddedComplexity to ↵Craig Topper2012-01-271-49/+41
| | | | | | fix priority. Merge some patterns into their instruction definition. llvm-svn: 149122
* Keep source location information for X86 MCFixup's.Jim Grosbach2012-01-272-18/+23
| | | | llvm-svn: 149106
* Better user diagnostics for more ARM MachO relocation errors.Jim Grosbach2012-01-271-4/+8
| | | | llvm-svn: 149102
* Better diagnostic for malformed .org assembly directive.Jim Grosbach2012-01-271-3/+3
| | | | | | Provide source line number information. llvm-svn: 149101
* Keep source information, if available, around for ARM Fixups.Jim Grosbach2012-01-263-9/+15
| | | | | | | | | | | | | | | | | Adjust an example MachObjectWriter diagnostic to use the information to issue a better message. Before: LLVM ERROR: unknown ARM fixup kind! After: x.s:6:5: error: unsupported relocation on symbol beq bar ^ rdar://9800182 llvm-svn: 149093
* Handle call-clobbered ymm registers on Win64.Jakob Stoklund Olesen2012-01-262-1/+8
| | | | | | | | | | | | | | The Win64 calling convention has xmm6-15 as callee-saved while still clobbering all ymm registers. Add a YMM_HI_6_15 pseudo-register that aliases the clobbered part of the ymm registers, and mark that as call-clobbered. This allows live xmm registers across calls. This hack wouldn't be necessary with RegisterMask operands representing the call clobbers, but they are not quite operational yet. llvm-svn: 149088
* Tidy up. Fix mismatched return types for error handling.Jim Grosbach2012-01-261-8/+4
| | | | llvm-svn: 149062
* Add support for the R_ARM_TARGET1 relocation, which should be given to ↵James Molloy2012-01-263-1/+21
| | | | | | | | relocations applied to all C++ constructors and destructors. This enables the linker to match concrete relocation types (absolute or relative) with whatever library or C++ support code is being linked against. llvm-svn: 149057
* Fix for the following bug in AVX codegen for double-to-int conversions:Victor Umansky2012-01-261-2/+2
| | | | | | | | | | | | | . "fptosi" and "fptoui" IR instructions are defined with round-to-zero rounding mode. . Currently for AVX mode for <4xdouble> and <8xdouble> the "VCVTPD2DQ.128" and "VCVTPD2DQ.256" instructions are selected (for .fp_to_sint. DAG node operation ) by AVX codegen. However they use round-to-nearest-even rounding mode. . Consequently, the conversion produces incorrect numbers. The fix is to replace selection of VCVTPD2DQ instructions with VCVTTPD2DQ instructions. The latter use truncate (i.e. round-to-zero) rounding mode. As .fp_to_sint. DAG node operation is used only for lowering of "fptosi" and "fptoui" IR instructions, the fix in X86InstrSSE.td definition file doesn.t have an impact on other LLVM flows. The patch includes changes in the .td file, LIT test for the changes and a fix in a legacy LIT test (which produced asm code conflicting with LLVN IR spec). llvm-svn: 149056
* Add HasXOP predicate check covering a bunch of XOP intrinsic patterns.Craig Topper2012-01-261-0/+2
| | | | llvm-svn: 149054
* Fix AVX vs SSE patterns ordering issue for VPCMPESTRM and VPCMPISTRM.Craig Topper2012-01-261-2/+4
| | | | llvm-svn: 149053
* Remove some more patterns by custom lowering intrinsics to target specific ↵Craig Topper2012-01-262-25/+14
| | | | | | nodes. llvm-svn: 149052
* Properly emit ctors / dtors with priorities into desired sectionsAnton Korobeynikov2012-01-252-2/+37
| | | | | | | | and let linker handle the rest. This finally fixes PR5329 llvm-svn: 148990
* ARM assemly parsing and validation of IT instruction.Jim Grosbach2012-01-252-3/+14
| | | | | | | | | | "Although a Thumb2 instruction, the IT mnemonic shall be permitted in ARM mode, and the condition verified to match the condition code(s) on the following instruction(s)." PR11853 llvm-svn: 148969
* fix a bug I introduced in r148929, this is not a splat!Chris Lattner2012-01-251-1/+5
| | | | | | Thanks to Eli for noticing. llvm-svn: 148947
* Custom lower PSIGN and PSHUFB intrinsics to their corresponding target ↵Craig Topper2012-01-254-74/+49
| | | | | | specific nodes so we can remove the isel patterns. llvm-svn: 148933
* use ConstantVector::getSplat in a few places.Chris Lattner2012-01-251-24/+14
| | | | llvm-svn: 148929
* Custom lower phadd and phsub intrinsics to target specific nodes. Remove the ↵Craig Topper2012-01-253-63/+70
| | | | | | patterns that are no longer necessary. llvm-svn: 148927
* Remove AVX 256-bit unaligned load intrinsics. 128-bit versions had been ↵Craig Topper2012-01-251-4/+0
| | | | | | removed a while ago. llvm-svn: 148922
* Mark 64-bit register RA_64 unused too.Akira Hatanaka2012-01-251-4/+5
| | | | llvm-svn: 148918
* Modify MipsFrameLowering::emitPrologue and emitEpilogue.Akira Hatanaka2012-01-251-78/+68
| | | | | | | | | | | - Use MipsAnalyzeImmediate to expand immediates that do not fit in 16-bit. - Change the types of variables so that they are sufficiently large to handle 64-bit pointers. - Emit instructions to set register $28 in a function prologue after instructions which store callee-saved registers have been emitted. llvm-svn: 148917
* Modify MipsRegisterInfo::eliminateFrameIndex to use MipsAnalyzeImmediate toAkira Hatanaka2012-01-251-12/+34
| | | | | | | | expand offsets that do not fit in the 16-bit immediate field of load and store instructions. Also change the types of variables so that they are sufficiently large to handle 64-bit pointers. llvm-svn: 148916
* Merge intrinsic pattern and no pattern versions of VCVTSD2SI intruction ↵Craig Topper2012-01-251-24/+5
| | | | | | definitions. Matches non-AVX version of same instructions. llvm-svn: 148914
* MipsAnalyzeImmediate.h: Fix to add DataTypes.h for msvc.NAKAMURA Takumi2012-01-251-0/+1
| | | | | | inttypes.h is not supplied in msvc. llvm-svn: 148912
* Target/Mips: Unbreak CMake build.NAKAMURA Takumi2012-01-251-0/+1
| | | | llvm-svn: 148909
* Lower 64-bit immediates using MipsAnalyzeImmediate that has just been added. Akira Hatanaka2012-01-252-31/+42
| | | | | | | Add a test case to show fewer instructions are needed to load an immediate with the new way of loading immediates. llvm-svn: 148908
* Add class MipsAnalyzeImmediate which comes up with an instruction sequence toAkira Hatanaka2012-01-252-0/+215
| | | | | | load an immediate. llvm-svn: 148900
* NEON VLD4(all lanes) assembly parsing and encoding.Jim Grosbach2012-01-254-2/+215
| | | | llvm-svn: 148884
* Tidy up. Rename VLD4DUP patterns for consistency.Jim Grosbach2012-01-241-6/+6
| | | | llvm-svn: 148883
* NEON VLD3(all lanes) assembly parsing and encoding.Jim Grosbach2012-01-244-6/+212
| | | | llvm-svn: 148882
* Sign-extend 32-bit integer arguments when they are passed in 64-bit registers,Akira Hatanaka2012-01-241-1/+4
| | | | | | which is what N32/64 does. llvm-svn: 148875
* Pass CCState by reference.Akira Hatanaka2012-01-241-1/+1
| | | | llvm-svn: 148871
* Pattern for f32 to i64 conversion.Akira Hatanaka2012-01-241-0/+1
| | | | llvm-svn: 148869
* Intel Syntax: Extend special hand coded logic, to recognize special ↵Devang Patel2012-01-241-5/+15
| | | | | | instructions, for intel syntax. llvm-svn: 148864
OpenPOWER on IntegriCloud