Skip to content
  1. Jul 14, 2009
  2. Jul 11, 2009
  3. Jul 10, 2009
  4. Jul 09, 2009
  5. Jul 08, 2009
  6. Jul 07, 2009
  7. Jul 03, 2009
  8. Jul 02, 2009
  9. Jul 01, 2009
  10. Jun 30, 2009
  11. Jun 29, 2009
    • Evan Cheng's avatar
      Implement Thumb2 ldr. · b23b50d5
      Evan Cheng authored
      After much back and forth, I decided to deviate from ARM design and split LDR into 4 instructions (r + imm12, r + imm8, r + r << imm12, constantpool). The advantage of this is 1) it follows the latest ARM technical manual, and 2) makes it easier to reduce the width of the instruction later. The down side is this creates more inconsistency between the two sub-targets. We should split ARM LDR instruction in a similar fashion later. I've added a README entry for this.
      
      llvm-svn: 74420
      b23b50d5
  12. Jun 27, 2009
  13. Jun 26, 2009
  14. Jun 23, 2009
  15. Jun 22, 2009
  16. Jun 17, 2009
  17. Jun 09, 2009
  18. May 19, 2009
  19. Apr 07, 2009
    • Jim Grosbach's avatar
      PR2985 / <rdar://problem/6584986> · fde2110a
      Jim Grosbach authored
      When compiling in Thumb mode, only the low (R0-R7) registers are available
      for most instructions. Breaking the low registers into a new register class
      handles this. Uses of R12, SP, etc, are handled explicitly where needed
      with copies inserted to move results into low registers where the rest of
      the code generator can deal with them.
      
      llvm-svn: 68545
      fde2110a
  20. Mar 26, 2009
  21. Feb 12, 2009
  22. Feb 06, 2009
  23. Jan 15, 2009
    • Dan Gohman's avatar
      Move a few containers out of ScheduleDAGInstrs::BuildSchedGraph · 619ef48a
      Dan Gohman authored
      and into the ScheduleDAGInstrs class, so that they don't get
      destructed and re-constructed for each block. This fixes a
      compile-time hot spot in the post-pass scheduler.
      
      To help facilitate this, tidy and do some minor reorganization
      in the scheduler constructor functions.
      
      llvm-svn: 62275
      619ef48a
  24. Dec 10, 2008
  25. Dec 03, 2008
  26. Nov 05, 2008
    • Dan Gohman's avatar
      Eliminate the ISel priority queue, which used the topological order for a · f14b77eb
      Dan Gohman authored
      priority function. Instead, just iterate over the AllNodes list, which is
      already in topological order. This eliminates a fair amount of bookkeeping,
      and speeds up the isel phase by about 15% on many testcases.
      
      The impact on most targets is that AddToISelQueue calls can be simply removed.
      
      In the x86 target, there are two additional notable changes.
      
      The rule-bending AND+SHIFT optimization in MatchAddress that creates new
      pre-isel nodes during isel is now a little more verbose, but more robust.
      Instead of either creating an invalid DAG or creating an invalid topological
      sort, as it has historically done, it can now just insert the new nodes into
      the node list at a position where they will be consistent with the topological
      ordering.
      
      Also, the address-matching code has logic that checked to see if a node was
      "already selected". However, when a node is selected, it has all its uses
      taken away via ReplaceAllUsesWith or equivalent, so it won't recieve any
      further visits from MatchAddress. This code is now removed.
      
      llvm-svn: 58748
      f14b77eb
  27. Oct 27, 2008
    • David Greene's avatar
      · ce2a9381
      David Greene authored
      Have TableGen emit setSubgraphColor calls under control of a -gen-debug
      flag.  Then in a debugger developers can set breakpoints at these calls
      to see waht is about to be selected and what the resulting subgraph
      looks like.  This really helps when debugging instruction selection.
      
      llvm-svn: 58278
      ce2a9381
  28. Oct 03, 2008
    • Dan Gohman's avatar
      Avoid creating two TargetLowering objects for each target. · 2c836cf1
      Dan Gohman authored
      Instead, just create one, and make sure everything that needs
      it can access it. Previously most of the SelectionDAGISel
      subclasses all had their own TargetLowering object, which was
      redundant with the TargetLowering object in the TargetMachine
      subclasses, except on Sparc, where SparcTargetMachine
      didn't have a TargetLowering object. Change Sparc to work
      more like the other targets here.
      
      llvm-svn: 57016
      2c836cf1
  29. Sep 18, 2008
Loading