Skip to content
  1. Apr 02, 2010
    • David Greene's avatar
      · 8f32cb9f
      David Greene authored
      Let's try this again.  Re-apply 100143 including an apparent missing
      <string> include.  For some reason the buildbot choked on this while my
      builds did not.  It's probably due to a difference in system headers.
      
      ---
      
      Add some switches helpful for debugging:
      
      -print-before=<Pass Name>
      
      Dump IR before running pass <Pass Name>.
      
      -print-before-all
      
      Dump IR before running each pass.
      
      -print-after-all
      
      Dump IR after running each pass.
      
      These are helpful when tracking down a miscompilation.  It is easy to
      get IR dumps and do diffs on them, etc.
      
      To make this work well, add a new getPrinterPass API to Pass so that
      each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass
      suitable for dumping out the kind of object the Pass works on.
      
      llvm-svn: 100204
      8f32cb9f
    • Eric Christopher's avatar
      Revert r100143. · 5342ddaa
      Eric Christopher authored
      llvm-svn: 100146
      5342ddaa
    • David Greene's avatar
      · 6789e210
      David Greene authored
      Add some switches helpful for debugging:
      
      -print-before=<Pass Name>
      
      Dump IR before running pass <Pass Name>.
      
      -print-before-all
      
      Dump IR before running each pass.
      
      -print-after-all
      
      Dump IR after running each pass.
      
      These are helpful when tracking down a miscompilation.  It is easy to
      get IR dumps and do diffs on them, etc.
      
      To make this work well, add a new getPrinterPass API to Pass so that
      each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass
      suitable for dumping out the kind of object the Pass works on.
      
      llvm-svn: 100143
      6789e210
  2. Mar 30, 2010
  3. Mar 19, 2010
    • Bob Wilson's avatar
      Stop trying to merge identical jump tables. This had been inadvertently · bc5af98f
      Bob Wilson authored
      disabled for several months (since svn r88806) and no one noticed.  My fix
      for pr6543 yesterday reenabled it, but broke the ARM port's code for using
      TBB/TBH.  Rather than adding a target hook to disable merging for Thumb2 only,
      I'm just taking this out.  It is not common to have identical jump tables,
      the code we used to merge them was O(N^2), and it only helps code size, not
      performance.
      
      llvm-svn: 98977
      bc5af98f
  4. Mar 18, 2010
    • Dan Gohman's avatar
      Define placement new wrappers for BumpPtrAllocator and · 01c65a26
      Dan Gohman authored
      RecyclingAllocator to allow client code to be simpler, and
      simplify several clients.
      
      llvm-svn: 98847
      01c65a26
    • 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
  5. 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
  6. Mar 11, 2010
  7. Mar 10, 2010
  8. Feb 19, 2010
  9. Feb 10, 2010
  10. Jan 27, 2010
  11. 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
  12. Jan 19, 2010
  13. Jan 16, 2010
  14. Jan 05, 2010
    • David Greene's avatar
      · 6671011c
      David Greene authored
      Change errs() to dbgs().
      
      llvm-svn: 92544
      6671011c
  15. Dec 03, 2009
  16. Nov 30, 2009
  17. Nov 14, 2009
  18. 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
  19. 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
  20. Oct 28, 2009
  21. Oct 25, 2009
  22. Oct 09, 2009
  23. Oct 01, 2009
  24. 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
  25. Sep 16, 2009
  26. Aug 29, 2009
  27. Aug 26, 2009
  28. 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
  29. Aug 23, 2009
Loading