1. 10 Feb, 2015 1 commit
    • Ben Gamari's avatar
      llvmGen: move to LLVM 3.6 exclusively · 5d5abdca
      Ben Gamari authored
      Summary:
      Rework llvmGen to use LLVM 3.6 exclusively. The plans for the 7.12 release are to ship LLVM alongside GHC in the interests of user (and developer) sanity.
      
      Along the way, refactor TNTC support to take advantage of the new `prefix` data support in LLVM 3.6. This allows us to drop the section-reordering component of the LLVM mangler.
      
      Test Plan: Validate, look at emitted code
      
      Reviewers: dterei, austin, scpmw
      
      Reviewed By: austin
      
      Subscribers: erikd, awson, spacekitteh, thomie, carter
      
      Differential Revision: https://phabricator.haskell.org/D530
      
      GHC Trac Issues: #10074
      5d5abdca
  2. 30 Jun, 2014 1 commit
    • tibbe's avatar
      Re-add more primops for atomic ops on byte arrays · 4ee4ab01
      tibbe authored
      This is the second attempt to add this functionality. The first
      attempt was reverted in 950fcae4, due
      to register allocator failure on x86. Given how the register
      allocator currently works, we don't have enough registers on x86 to
      support cmpxchg using complicated addressing modes. Instead we fall
      back to a simpler addressing mode on x86.
      
      Adds the following primops:
      
       * atomicReadIntArray#
       * atomicWriteIntArray#
       * fetchSubIntArray#
       * fetchOrIntArray#
       * fetchXorIntArray#
       * fetchAndIntArray#
      
      Makes these pre-existing out-of-line primops inline:
      
       * fetchAddIntArray#
       * casIntArray#
      4ee4ab01
  3. 26 Jun, 2014 1 commit
  4. 24 Jun, 2014 1 commit
    • tibbe's avatar
      Add more primops for atomic ops on byte arrays · d8abf85f
      tibbe authored
      Summary:
      Add more primops for atomic ops on byte arrays
      
      Adds the following primops:
      
       * atomicReadIntArray#
       * atomicWriteIntArray#
       * fetchSubIntArray#
       * fetchOrIntArray#
       * fetchXorIntArray#
       * fetchAndIntArray#
      
      Makes these pre-existing out-of-line primops inline:
      
       * fetchAddIntArray#
       * casIntArray#
      d8abf85f
  5. 27 Jun, 2013 3 commits
    • Peter Wortmann's avatar
      Iteration on dterei's metadata design · 12148d91
      Peter Wortmann authored
      - MetaArgs is not needed, as variables are already meta data
      
      - Same goes for MetaVal - its only reason for existing seems to be to
        support LLVM's strange pretty-printing for meta-data annotations, and
        I feel that is better to keep the data structure clean and handle it in
        the pretty-printing instead.
      
      - Rename "MetaData" to "MetaAnnot". Meta-data is still meta-data when it
        is not associated with an expression or statement - for example compile
        unit data for debugging. I feel the old name was a bit misleading.
      
      - Make the renamed MetaAnnot a proper data type instead of a type alias
        for a pair.
      
      - Rename "MetaExpr" constructor to "MetaStruct". As the data is much more
        like a LLVM structure (not array, as it can contain values).
      
      - Fix a warning
      12148d91
    • dterei's avatar
      3b1d920e
    • dterei's avatar
      280a7ec6
  6. 25 Apr, 2013 1 commit
  7. 01 Feb, 2013 1 commit
  8. 31 Jan, 2012 2 commits
  9. 12 Jan, 2012 1 commit
  10. 31 May, 2011 1 commit
  11. 14 Jul, 2010 1 commit
  12. 12 Jul, 2010 1 commit
  13. 07 Jul, 2010 2 commits
  14. 02 Jul, 2010 1 commit
  15. 24 Jun, 2010 1 commit
  16. 21 Jun, 2010 1 commit
  17. 18 Jun, 2010 1 commit
    • dterei's avatar
      Add support of TNTC to llvm backend · 24a3fee9
      dterei authored
      We do this through a gnu as feature called subsections,
      where you can put data/code into a numbered subsection
      and those subsections will be joined together in descending
      order by gas at compile time.
      24a3fee9
  18. 15 Jun, 2010 1 commit