Skip to content
  1. Nov 24, 2007
    • Chris Lattner's avatar
      Several changes: · f81d5886
      Chris Lattner authored
      1) Change the interface to TargetLowering::ExpandOperationResult to 
         take and return entire NODES that need a result expanded, not just
         the value.  This allows us to handle things like READCYCLECOUNTER,
         which returns two values.
      2) Implement (extremely limited) support in LegalizeDAG::ExpandOp for MERGE_VALUES.
      3) Reimplement custom lowering in LegalizeDAGTypes in terms of the new
         ExpandOperationResult.  This makes the result simpler and fully 
         general.
      4) Implement (fully general) expand support for MERGE_VALUES in LegalizeDAGTypes.
      5) Implement ExpandOperationResult support for ARM f64->i64 bitconvert and ARM
         i64 shifts, allowing them to work with LegalizeDAGTypes.
      6) Implement ExpandOperationResult support for X86 READCYCLECOUNTER and FP_TO_SINT,
         allowing them to work with LegalizeDAGTypes.
      
      LegalizeDAGTypes now passes several more X86 codegen tests when enabled and when
      type legalization in LegalizeDAG is ifdef'd out.
      
      llvm-svn: 44300
      f81d5886
  2. Nov 16, 2007
  3. Nov 09, 2007
    • Evan Cheng's avatar
      Much improved pic jumptable codegen: · 797d56ff
      Evan Cheng authored
      Then:
              call    "L1$pb"
      "L1$pb":
              popl    %eax
      		...
      LBB1_1: # entry
              imull   $4, %ecx, %ecx
              leal    LJTI1_0-"L1$pb"(%eax), %edx
              addl    LJTI1_0-"L1$pb"(%ecx,%eax), %edx
              jmpl    *%edx
      
              .align  2
              .set L1_0_set_3,LBB1_3-LJTI1_0
              .set L1_0_set_2,LBB1_2-LJTI1_0
              .set L1_0_set_5,LBB1_5-LJTI1_0
              .set L1_0_set_4,LBB1_4-LJTI1_0
      LJTI1_0:
              .long    L1_0_set_3
              .long    L1_0_set_2
      
      Now:
              call    "L1$pb"
      "L1$pb":
              popl    %eax
      		...
      LBB1_1: # entry
              addl    LJTI1_0-"L1$pb"(%eax,%ecx,4), %eax
              jmpl    *%eax
      
      		.align  2
      		.set L1_0_set_3,LBB1_3-"L1$pb"
      		.set L1_0_set_2,LBB1_2-"L1$pb"
      		.set L1_0_set_5,LBB1_5-"L1$pb"
      		.set L1_0_set_4,LBB1_4-"L1$pb"
      LJTI1_0:
              .long    L1_0_set_3
              .long    L1_0_set_2
      
      llvm-svn: 43924
      797d56ff
  4. Nov 06, 2007
  5. Oct 29, 2007
  6. Oct 26, 2007
    • Evan Cheng's avatar
      Loosen up iv reuse to allow reuse of the same stride but a larger type when... · 7f3d0247
      Evan Cheng authored
      Loosen up iv reuse to allow reuse of the same stride but a larger type when truncating from the larger type to smaller type is free.
      e.g.
      Turns this loop:
      LBB1_1: # entry.bb_crit_edge
              xorl    %ecx, %ecx
              xorw    %dx, %dx
              movw    %dx, %si
      LBB1_2: # bb
              movl    L_X$non_lazy_ptr, %edi
              movw    %si, (%edi)
              movl    L_Y$non_lazy_ptr, %edi
              movw    %dx, (%edi)
      		addw    $4, %dx
      		incw    %si
      		incl    %ecx
      		cmpl    %eax, %ecx
      		jne     LBB1_2  # bb
      	
      into
      
      LBB1_1: # entry.bb_crit_edge
              xorl    %ecx, %ecx
              xorw    %dx, %dx
      LBB1_2: # bb
              movl    L_X$non_lazy_ptr, %esi
              movw    %cx, (%esi)
              movl    L_Y$non_lazy_ptr, %esi
              movw    %dx, (%esi)
              addw    $4, %dx
      		incl    %ecx
              cmpl    %eax, %ecx
              jne     LBB1_2  # bb
      
      llvm-svn: 43375
      7f3d0247
  7. Oct 11, 2007
  8. Oct 09, 2007
  9. Oct 08, 2007
  10. Sep 29, 2007
  11. Sep 28, 2007
  12. Sep 25, 2007
  13. Sep 23, 2007
    • Dale Johannesen's avatar
      Fix PR 1681. When X86 target uses +sse -sse2, · e36c4002
      Dale Johannesen authored
      keep f32 in SSE registers and f64 in x87.  This
      is effectively a new codegen mode.
      Change addLegalFPImmediate to permit float and
      double variants to do different things.
      Adjust callers.
      
      llvm-svn: 42246
      e36c4002
  14. Sep 17, 2007
  15. Sep 14, 2007
  16. Aug 31, 2007
  17. Aug 25, 2007
  18. Aug 15, 2007
  19. Aug 02, 2007
  20. Jul 27, 2007
  21. Jul 26, 2007
  22. Jul 14, 2007
    • Anton Korobeynikov's avatar
      Long live the exception handling! · 383a3247
      Anton Korobeynikov authored
      This patch fills the last necessary bits to enable exceptions
      handling in LLVM. Currently only on x86-32/linux.
      
      In fact, this patch adds necessary intrinsics (and their lowering) which
      represent really weird target-specific gcc builtins used inside unwinder.
      
      After corresponding llvm-gcc patch will land (easy) exceptions should be
      more or less workable. However, exceptions handling support should not be 
      thought as 'finished': I expect many small and not so small glitches
      everywhere.
      
      llvm-svn: 39855
      383a3247
  23. Jul 10, 2007
  24. Jun 22, 2007
  25. Apr 24, 2007
  26. Apr 20, 2007
  27. Apr 17, 2007
  28. Apr 10, 2007
  29. Mar 31, 2007
  30. Mar 25, 2007
  31. Mar 21, 2007
  32. Mar 13, 2007
  33. Mar 03, 2007
  34. Feb 28, 2007
  35. Feb 26, 2007
Loading