Skip to content
  1. Jun 15, 2009
  2. Jun 12, 2009
  3. Jun 11, 2009
    • Bruno Cardoso Lopes's avatar
      Support for ELF Visibility · 1656366e
      Bruno Cardoso Lopes authored
      Emission for globals, using the correct data sections
      Function alignment can be computed for each target using TargetELFWriterInfo
      Some small fixes
      
      llvm-svn: 73201
      1656366e
  4. Jun 10, 2009
  5. Jun 09, 2009
  6. Jun 08, 2009
  7. Jun 07, 2009
  8. Jun 06, 2009
  9. Jun 05, 2009
    • Devang Patel's avatar
      Add new function attribute - noimplicitfloat · d1c7d349
      Devang Patel authored
      Update code generator to use this attribute and remove NoImplicitFloat target option.
      Update llc to set this attribute when -no-implicit-float command line option is used.
      
      llvm-svn: 72959
      d1c7d349
    • Nate Begeman's avatar
      Adapt the x86 build_vector dagcombine to the current state of the legalizer. · 624690c6
      Nate Begeman authored
      build vectors with i64 elements will only appear on 32b x86 before legalize.
      Since vector widening occurs during legalize, and produces i64 build_vector 
      elements, the dag combiner is never run on these before legalize splits them
      into 32b elements.
      
      Teach the build_vector dag combine in x86 back end to recognize consecutive 
      loads producing the low part of the vector.
      
      Convert the two uses of TLI's consecutive load recognizer to pass LoadSDNodes
      since that was required implicitly.
      
      Add a testcase for the transform.
      
      Old:
      	subl	$28, %esp
      	movl	32(%esp), %eax
      	movl	4(%eax), %ecx
      	movl	%ecx, 4(%esp)
      	movl	(%eax), %eax
      	movl	%eax, (%esp)
      	movaps	(%esp), %xmm0
      	pmovzxwd	%xmm0, %xmm0
      	movl	36(%esp), %eax
      	movaps	%xmm0, (%eax)
      	addl	$28, %esp
      	ret
      
      New:
      	movl	4(%esp), %eax
      	pmovzxwd	(%eax), %xmm0
      	movl	8(%esp), %eax
      	movaps	%xmm0, (%eax)
      	ret
      
      llvm-svn: 72957
      624690c6
    • Devang Patel's avatar
      Evan thinks NoImplicitFloat check is not required here. · 54707b42
      Devang Patel authored
      llvm-svn: 72954
      54707b42
    • Bill Wendling's avatar
      The DWARF unwind info was incorrect. While compiling with · 5f0d6c44
      Bill Wendling authored
      `-fomit-frame-pointer', we would lack the DW_CFA_advance_loc information for a
      lot of function, and then they would be `0'. The linker (at least on Darwin)
      needs to encode the stack size. In some cases, the stack size is too large to
      directly encode. So the linker checks to see if there is a "subl $xxx,%esp"
      instruction at the point where the `DW_CFA_def_cfa_offset' says the pc was. If
      so, the compact encoding records the offset in the function to where the stack
      size is embedded. But because the `DW_CFA_advance_loc' instructions are missing,
      it looks before the function and dies.
      
      So, instead of emitting the EH debug label before the stack adjustment
      operations, emit it afterwards, right before the frame move stuff.
      
      llvm-svn: 72898
      5f0d6c44
    • Devang Patel's avatar
      Add new function attribute - noredzone. · 72a4d2fe
      Devang Patel authored
      Update code generator to use this attribute and remove DisableRedZone target option.
      Update llc to set this attribute when -disable-red-zone command line option is used.
      
      llvm-svn: 72894
      72a4d2fe
  10. Jun 04, 2009
  11. Jun 03, 2009
  12. Jun 02, 2009
    • Evan Cheng's avatar
      448641d8
    • Dale Johannesen's avatar
      Revert 72707 and 72709, for the moment. · 5234d379
      Dale Johannesen authored
      llvm-svn: 72712
      5234d379
    • Dale Johannesen's avatar
      Add missing file. · 7fde88cc
      Dale Johannesen authored
      llvm-svn: 72709
      7fde88cc
    • Dale Johannesen's avatar
      Make the implicit inputs and outputs of target-independent · 0b8ca792
      Dale Johannesen authored
      ADDC/ADDE use MVT::i1 (later, whatever it gets legalized to)
      instead of MVT::Flag.  Remove CARRY_FALSE in favor of 0; adjust
      all target-independent code to use this format.
      
      Most targets will still produce a Flag-setting target-dependent
      version when selection is done.  X86 is converted to use i32
      instead, which means TableGen needs to produce different code
      in xxxGenDAGISel.inc.  This keys off the new supportsHasI1 bit
      in xxxInstrInfo, currently set only for X86; in principle this
      is temporary and should go away when all other targets have
      been converted.  All relevant X86 instruction patterns are
      modified to represent setting and using EFLAGS explicitly.  The
      same can be done on other targets.
      
      The immediate behavior change is that an ADC/ADD pair are no
      longer tightly coupled in the X86 scheduler; they can be
      separated by instructions that don't clobber the flags (MOV).
      I will soon add some peephole optimizations based on using
      other instructions that set the flags to feed into ADC.
      
      llvm-svn: 72707
      0b8ca792
Loading