Skip to content
  1. Mar 18, 2010
    • Bob Wilson's avatar
      Fix pr6543: svn r88806 changed MachineJumpTableInfo::getJumpTableIndex() to · 3c7cde46
      Bob Wilson authored
      always create a new jump table.  The intention was to avoid merging jump
      tables in SelectionDAGBuilder, and to wait for the branch folding pass to
      merge tables.  Unfortunately, the same getJumpTableIndex() method is also
      used to merge tables in branch folding, so as a result of this change
      branch tables are never merged.  Worse, the branch folding code is expecting
      getJumpTableIndex to always return the index of an existing table, but with
      this change, it never does so.  In at least some cases, e.g., pr6543, this
      creates references to non-existent tables.
      
      I've fixed the problem by adding a new createJumpTableIndex function, which
      will always create a new table, and I've changed getJumpTableIndex to only
      look at existing tables.
      
      llvm-svn: 98845
      3c7cde46
  2. Mar 13, 2010
    • Chris Lattner's avatar
      rearrange MCContext ownership. Before LLVMTargetMachine created it · e468f88b
      Chris Lattner authored
      and passing off ownership to AsmPrinter.  Now MachineModuleInfo
      creates it and owns it by value.  This allows us to use MCSymbols
      more consistently throughout the rest of the code generator, and
      simplifies a bit of code.  This also allows MachineFunction to 
      keep an MCContext reference handy, and cleans up the TargetRegistry
      interfaces for AsmPrinters.
      
      llvm-svn: 98450
      e468f88b
  3. Mar 11, 2010
  4. Mar 10, 2010
  5. Feb 19, 2010
  6. Feb 10, 2010
  7. Jan 27, 2010
  8. Jan 26, 2010
    • Chris Lattner's avatar
      Move getJTISymbol from MachineJumpTableInfo to MachineFunction, · 8a785d7a
      Chris Lattner authored
      which is more convenient, and change getPICJumpTableRelocBaseExpr
      to take a MachineFunction to match.
      
      Next, move the X86 code that create a PICBase symbol to
      X86TargetLowering::getPICBaseSymbol from 
      X86MCInstLower::GetPICBaseSymbol, which was an asmprinter specific 
      library.  This eliminates a 'gross hack', and allows us to
      implement X86ISelLowering::getPICJumpTableRelocBaseExpr which now
      calls it.
      
      This in turn allows us to eliminate the 
      X86AsmPrinter::printPICJumpTableSetLabel method, which was the
      only overload of printPICJumpTableSetLabel.
      
      llvm-svn: 94526
      8a785d7a
    • Chris Lattner's avatar
      add a new MachineJumpTableInfo::getJTISymbol method, · 273735bc
      Chris Lattner authored
      use it to implement the default TargetLowering::getPICJumpTableRelocBaseExpr
      
      llvm-svn: 94523
      273735bc
    • Chris Lattner's avatar
      make MachineFunction keep track of its ID and make · 6715952c
      Chris Lattner authored
      MachineFunctionAnalysis dole them out, instead of having
      AsmPrinter do both.  Have the AsmPrinter::SetupMachineFunction
      method set the 'AsmPrinter::MF' variable.
      
      llvm-svn: 94509
      6715952c
    • Chris Lattner's avatar
      Add support for target-specific 32-bit custom-lowered · 5fc4160e
      Chris Lattner authored
      jump table entries.
      
      llvm-svn: 94505
      5fc4160e
    • Chris Lattner's avatar
      Rearrange handling of jump tables. Highlights: · b6db2c6b
      Chris Lattner authored
      1. MachineJumpTableInfo is now created lazily for a function the first time
         it actually makes a jump table instead of for every function.
      2. The encoding of jump table entries is now described by the
         MachineJumpTableInfo::JTEntryKind enum.  This enum is determined by the
         TLI::getJumpTableEncoding() hook, instead of by lots of code scattered
         throughout the compiler that "knows" that jump table entries are always
         32-bits in pic mode (for example).
      3. The size and alignment of jump table entries is now calculated based on
         their kind, instead of at machinefunction creation time.
      
      Future work includes using the EntryKind in more places in the compiler,
      eliminating other logic that "knows" the layout of jump tables in various
      situations.
      
      llvm-svn: 94470
      b6db2c6b
  9. Jan 19, 2010
  10. Jan 16, 2010
  11. Jan 05, 2010
    • David Greene's avatar
      · 6671011c
      David Greene authored
      Change errs() to dbgs().
      
      llvm-svn: 92544
      6671011c
  12. Dec 03, 2009
  13. Nov 30, 2009
  14. Nov 14, 2009
  15. Nov 12, 2009
    • David Greene's avatar
      · 1fbe0544
      David Greene authored
      Add a bool flag to StackObjects telling whether they reference spill
      slots.  The AsmPrinter will use this information to determine whether to
      print a spill/reload comment.
      
      Remove default argument values.  It's too easy to pass a wrong argument
      value when multiple arguments have default values.  Make everything
      explicit to trap bugs early.
      
      Update all targets to adhere to the new interfaces..
      
      llvm-svn: 87022
      1fbe0544
  16. Oct 31, 2009
    • Dan Gohman's avatar
      Make -print-machineinstrs more readable. · 34341e69
      Dan Gohman authored
       - Be consistent when referring to MachineBasicBlocks: BB#0.
       - Be consistent when referring to virtual registers: %reg1024.
       - Be consistent when referring to unknown physical registers: %physreg10.
       - Be consistent when referring to known physical registers: %RAX
       - Be consistent when referring to register 0: %reg0
       - Be consistent when printing alignments: align=16
       - Print jump table contents.
       - Don't print host addresses, in general.
       - and various other cleanups.
      
      llvm-svn: 85682
      34341e69
    • Dan Gohman's avatar
      Fix 80-column violation. · 97abba5b
      Dan Gohman authored
      llvm-svn: 85653
      97abba5b
  17. Oct 28, 2009
  18. Oct 25, 2009
  19. Oct 09, 2009
  20. Oct 01, 2009
  21. Sep 25, 2009
    • Dan Gohman's avatar
      Improve MachineMemOperand handling. · 48b185d6
      Dan Gohman authored
       - Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions.
         This eliminates MachineInstr's std::list member and allows the data to be
         created by isel and live for the remainder of codegen, avoiding a lot of
         copying and unnecessary translation. This also shrinks MemSDNode.
       - Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated
         fields for MachineMemOperands.
       - Change MemSDNode to have a MachineMemOperand member instead of its own
         fields with the same information. This introduces some redundancy, but
         it's more consistent with what MachineInstr will eventually want.
       - Ignore alignment when searching for redundant loads for CSE, but remember
         the greatest alignment.
      
      Target-specific code which previously used MemOperandSDNodes with generic
      SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range
      so that the SelectionDAG framework knows that MachineMemOperand information
      is available.
      
      llvm-svn: 82794
      48b185d6
  22. Sep 16, 2009
  23. Aug 29, 2009
  24. Aug 26, 2009
  25. Aug 25, 2009
    • Devang Patel's avatar
      Update DebugInfo interface to use metadata, instead of special named... · 02aac922
      Devang Patel authored
      Update DebugInfo interface to use metadata, instead of special named llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well.
      
      This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!)
      
      llvm-svn: 79977
      02aac922
  26. Aug 23, 2009
  27. Aug 20, 2009
    • David Greene's avatar
      · 8230a93a
      David Greene authored
      Add missing includes.
      
      llvm-svn: 79480
      8230a93a
  28. Aug 17, 2009
  29. Aug 13, 2009
Loading