Skip to content
  1. Feb 02, 2012
    • Andrew Trick's avatar
      Instruction scheduling itinerary for Intel Atom. · 8523b16f
      Andrew Trick authored
      Adds an instruction itinerary to all x86 instructions, giving each a default latency of 1, using the InstrItinClass IIC_DEFAULT.
      
      Sets specific latencies for Atom for the instructions in files X86InstrCMovSetCC.td, X86InstrArithmetic.td, X86InstrControl.td, and X86InstrShiftRotate.td. The Atom latencies for the remainder of the x86 instructions will be set in subsequent patches.
      
      Adds a test to verify that the scheduler is working.
      
      Also changes the scheduling preference to "Hybrid" for i386 Atom, while leaving x86_64 as ILP.
      
      Patch by Preston Gurd!
      
      llvm-svn: 149558
      8523b16f
    • Jakob Stoklund Olesen's avatar
      c7024a48
  2. Feb 01, 2012
  3. Jan 31, 2012
  4. Jan 30, 2012
  5. Jan 29, 2012
  6. Jan 28, 2012
  7. Jan 27, 2012
  8. Jan 26, 2012
    • Jakob Stoklund Olesen's avatar
      Handle call-clobbered ymm registers on Win64. · fc9dce25
      Jakob Stoklund Olesen authored
      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
      fc9dce25
    • Jim Grosbach's avatar
      Tidy up. Fix mismatched return types for error handling. · c8f2b787
      Jim Grosbach authored
      llvm-svn: 149062
      c8f2b787
    • James Molloy's avatar
      Add support for the R_ARM_TARGET1 relocation, which should be given to... · 6685c08e
      James Molloy authored
      Add support for the R_ARM_TARGET1 relocation, which should be given to 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
      6685c08e
    • Victor Umansky's avatar
      Fix for the following bug in AVX codegen for double-to-int conversions: · 5f29b0e5
      Victor Umansky authored
      .	"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
      5f29b0e5
Loading