Skip to content
  1. Dec 20, 2011
  2. Dec 19, 2011
  3. Dec 14, 2011
  4. Dec 13, 2011
  5. Dec 12, 2011
    • Akira Hatanaka's avatar
      Test case for r146432 by Jack Carter. · 9e5908ae
      Akira Hatanaka authored
      llvm-svn: 146433
      9e5908ae
    • Chandler Carruth's avatar
      Manually upgrade the test suite to specify the flag to cttz and ctlz. · 6b0e34c4
      Chandler Carruth authored
      I followed three heuristics for deciding whether to set 'true' or
      'false':
      
      - Everything target independent got 'true' as that is the expected
        common output of the GCC builtins.
      - If the target arch only has one way of implementing this operation,
        set the flag in the way that exercises the most of codegen. For most
        architectures this is also the likely path from a GCC builtin, with
        'true' being set. It will (eventually) require lowering away that
        difference, and then lowering to the architecture's operation.
      - Otherwise, set the flag differently dependending on which target
        operation should be tested.
      
      Let me know if anyone has any issue with this pattern or would like
      specific tests of another form. This should allow the x86 codegen to
      just iteratively improve as I teach the backend how to differentiate
      between the two forms, and everything else should remain exactly the
      same.
      
      llvm-svn: 146370
      6b0e34c4
  6. Dec 09, 2011
  7. Dec 08, 2011
  8. Dec 07, 2011
  9. Dec 05, 2011
  10. Dec 02, 2011
  11. Nov 30, 2011
  12. Nov 27, 2011
  13. Nov 03, 2011
  14. Oct 29, 2011
  15. Oct 28, 2011
    • Dan Gohman's avatar
      Reapply r143177 and r143179 (reverting r143188), with scheduler · 73057ad2
      Dan Gohman authored
      fixes: Use a separate register, instead of SP, as the
      calling-convention resource, to avoid spurious conflicts with
      actual uses of SP. Also, fix unscheduling of calling sequences,
      which can be triggered by pseudo-two-address dependencies.
      
      llvm-svn: 143206
      73057ad2
    • Duncan Sands's avatar
      Speculatively disable Dan's commits 143177 and 143179 to see if · 225a7037
      Duncan Sands authored
      it fixes the dragonegg self-host (it looks like gcc is miscompiled).
      Original commit messages:
      Eliminate LegalizeOps' LegalizedNodes map and have it just call RAUW
      on every node as it legalizes them. This makes it easier to use
      hasOneUse() heuristics, since unneeded nodes can be removed from the
      DAG earlier.
      
      Make LegalizeOps visit the DAG in an operands-last order. It previously
      used operands-first, because LegalizeTypes has to go operands-first, and
      LegalizeTypes used to be part of LegalizeOps, but they're now split.
      The operands-last order is more natural for several legalization tasks.
      For example, it allows lowering code for nodes with floating-point or
      vector constants to see those constants directly instead of seeing the
      lowered form (often constant-pool loads). This makes some things
      somewhat more complicated today, though it ought to allow things to be
      simpler in the future. It also fixes some bugs exposed by Legalizing
      using RAUW aggressively.
      
      Remove the part of LegalizeOps that attempted to patch up invalid chain
      operands on libcalls generated by LegalizeTypes, since it doesn't work
      with the new LegalizeOps traversal order. Instead, define what
      LegalizeTypes is doing to be correct, and transfer the responsibility
      of keeping calls from having overlapping calling sequences into the
      scheduler.
      
      Teach the scheduler to model callseq_begin/end pairs as having a
      physical register definition/use to prevent calls from having
      overlapping calling sequences. This is also somewhat complicated, though
      there are ways it might be simplified in the future.
      
      This addresses rdar://9816668, rdar://10043614, rdar://8434668, and others.
      Please direct high-level questions about this patch to management.
      
      Delete #if 0 code accidentally left in.
      
      llvm-svn: 143188
      225a7037
    • Dan Gohman's avatar
      Eliminate LegalizeOps' LegalizedNodes map and have it just call RAUW · 4db3f7dd
      Dan Gohman authored
      on every node as it legalizes them. This makes it easier to use
      hasOneUse() heuristics, since unneeded nodes can be removed from the
      DAG earlier.
      
      Make LegalizeOps visit the DAG in an operands-last order. It previously
      used operands-first, because LegalizeTypes has to go operands-first, and
      LegalizeTypes used to be part of LegalizeOps, but they're now split.
      The operands-last order is more natural for several legalization tasks.
      For example, it allows lowering code for nodes with floating-point or
      vector constants to see those constants directly instead of seeing the
      lowered form (often constant-pool loads). This makes some things
      somewhat more complicated today, though it ought to allow things to be
      simpler in the future. It also fixes some bugs exposed by Legalizing
      using RAUW aggressively.
      
      Remove the part of LegalizeOps that attempted to patch up invalid chain
      operands on libcalls generated by LegalizeTypes, since it doesn't work
      with the new LegalizeOps traversal order. Instead, define what
      LegalizeTypes is doing to be correct, and transfer the responsibility
      of keeping calls from having overlapping calling sequences into the
      scheduler.
      
      Teach the scheduler to model callseq_begin/end pairs as having a
      physical register definition/use to prevent calls from having
      overlapping calling sequences. This is also somewhat complicated, though
      there are ways it might be simplified in the future.
      
      This addresses rdar://9816668, rdar://10043614, rdar://8434668, and others.
      Please direct high-level questions about this patch to management.
      
      llvm-svn: 143177
      4db3f7dd
  16. Oct 24, 2011
  17. Oct 11, 2011
  18. Oct 03, 2011
  19. Sep 30, 2011
Loading