Skip to content
  1. Aug 17, 2008
    • Chris Lattner's avatar
      Rework the routines that convert AP[S]Int into a string. Now, instead of · 17f7165f
      Chris Lattner authored
      returning an std::string by value, it fills in a SmallString/SmallVector
      passed in.  This significantly reduces string thrashing in some cases.
      
      More specifically, this:
       - Adds an operator<< and a print method for APInt that allows you to 
         directly send them to an ostream.
       - Reimplements APInt::toString to be much simpler and more efficient
         algorithmically in addition to not thrashing strings quite as much.
      
      This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the
      asmprinter.  This also fixes a bug I introduced into the asmwriter in a
      previous patch w.r.t. alias printing.
      
      llvm-svn: 54873
      17f7165f
  2. Aug 16, 2008
  3. Aug 08, 2008
  4. Jul 09, 2008
  5. Jul 08, 2008
  6. Jul 02, 2008
  7. Jul 01, 2008
  8. Jun 04, 2008
    • Duncan Sands's avatar
      Change packed struct layout so that field sizes · fc3c489b
      Duncan Sands authored
      are the same as in unpacked structs, only field
      positions differ.  This only matters for structs
      containing x86 long double or an apint; it may
      cause backwards compatibility problems if someone
      has bitcode containing a packed struct with a
      field of one of those types.
      The issue is that only 10 bytes are needed to
      hold an x86 long double: the store size is 10
      bytes, but the ABI size is 12 or 16 bytes (linux/
      darwin) which comes from rounding the store size
      up by the alignment.  Because it seemed silly not
      to pack an x86 long double into 10 bytes in a
      packed struct, this is what was done.  I now
      think this was a mistake.  Reserving the ABI size
      for an x86 long double field even in a packed
      struct makes things more uniform: the ABI size is
      now always used when reserving space for a type.
      This means that developers are less likely to
      make mistakes.  It also makes life easier for the
      CBE which otherwise could not represent all LLVM
      packed structs (PR2402).
      Front-end people might need to adjust the way
      they create LLVM structs - see following change
      to llvm-gcc.
      
      llvm-svn: 51928
      fc3c489b
  9. Jun 03, 2008
  10. May 19, 2008
  11. May 05, 2008
  12. Apr 02, 2008
  13. Mar 15, 2008
  14. Mar 11, 2008
  15. Feb 29, 2008
  16. Feb 28, 2008
  17. Feb 20, 2008
  18. Feb 07, 2008
  19. Feb 05, 2008
  20. Feb 02, 2008
    • Evan Cheng's avatar
      Get rid of the annoying blank lines before labels. · 32e5347e
      Evan Cheng authored
      llvm-svn: 46667
      32e5347e
    • Evan Cheng's avatar
      SDIsel processes llvm.dbg.declare by recording the variable debug information... · efd142a9
      Evan Cheng authored
      SDIsel processes llvm.dbg.declare by recording the variable debug information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc.
      Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes.
      For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time.
      
      llvm-svn: 46659
      efd142a9
  21. Feb 01, 2008
  22. Jan 29, 2008
  23. Jan 27, 2008
  24. Jan 07, 2008
  25. Dec 31, 2007
    • Chris Lattner's avatar
      Rename SSARegMap -> MachineRegisterInfo in keeping with the idea · a10fff51
      Chris Lattner authored
      that "machine" classes are used to represent the current state of
      the code being compiled.  Given this expanded name, we can start 
      moving other stuff into it.  For now, move the UsedPhysRegs and
      LiveIn/LoveOuts vectors from MachineFunction into it.
      
      Update all the clients to match.
      
      This also reduces some needless #includes, such as MachineModuleInfo
      from MachineFunction.
      
      llvm-svn: 45467
      a10fff51
    • Chris Lattner's avatar
      Add new shorter predicates for testing machine operands for various types: · a5bb370a
      Chris Lattner authored
      e.g. MO.isMBB() instead of MO.isMachineBasicBlock().  I don't plan on 
      switching everything over, so new clients should just start using the 
      shorter names.
      
      Remove old long accessors, switching everything over to use the short
      accessor: getMachineBasicBlock() -> getMBB(), 
      getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc.
      
      llvm-svn: 45464
      a5bb370a
  26. Dec 30, 2007
  27. Dec 29, 2007
  28. Dec 18, 2007
  29. Nov 14, 2007
  30. 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
  31. Nov 05, 2007
Loading