Skip to content
  1. Apr 05, 2010
  2. Apr 03, 2010
    • David Greene's avatar
      · 9b063df4
      David Greene authored
      Ok, third time's the charm.  No changes from last time except the CMake
      source addition.  Apparently the buildbots were wrong about failures.
      
      ---
      
      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: 100249
      9b063df4
  3. Apr 02, 2010
    • Chris Lattner's avatar
      Switch the code generator (except the JIT) onto the new DebugLoc · 915c5f98
      Chris Lattner authored
      representation.  This eliminates the 'DILocation' MDNodes for 
      file/line/col tuples from -O0 -g codegen.
      
      This remove the old DebugLoc class, making it a typedef for DebugLoc,
      I'll rename NewDebugLoc next.
      
      I didn't update the JIT to use the new apis, so it will continue to
      work, but be as slow as before.  Someone should eventually do this
      or, better yet, rip out the JIT debug info stuff and build the JIT
      on top of MC.
      
      llvm-svn: 100209
      915c5f98
    • Evan Cheng's avatar
    • 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
  4. Mar 30, 2010
  5. 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
  6. 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
  7. 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
  8. Mar 11, 2010
  9. Mar 10, 2010
  10. Feb 19, 2010
  11. Feb 10, 2010
  12. Jan 27, 2010
  13. 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
  14. Jan 19, 2010
  15. Jan 16, 2010
  16. Jan 05, 2010
    • David Greene's avatar
      · 6671011c
      David Greene authored
      Change errs() to dbgs().
      
      llvm-svn: 92544
      6671011c
  17. Dec 03, 2009
  18. Nov 30, 2009
  19. Nov 14, 2009
  20. 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
  21. 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
  22. Oct 28, 2009
  23. Oct 25, 2009
  24. Oct 09, 2009
  25. Oct 01, 2009
  26. 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
  27. Sep 16, 2009
Loading