• Michal Terepeta's avatar
    Support MO_{Add,Sub}IntC and MO_Add2 in the LLVM backend · b1d1c652
    Michal Terepeta authored
    This includes:
    
    - Adding new LlvmType called LMStructP that represents an unpacked
      struct (this is necessary since LLVM's instructions the
      llvm.sadd.with.overflow.* return an unpacked struct).
    
    - Modifications to LlvmCodeGen.CodeGen to generate the LLVM
      instructions for the primops.
    
    - Modifications to StgCmmPrim to actually use those three instructions
      if we use the LLVM backend (so far they were only used for NCG).
    
    Test Plan: validate
    
    Reviewers: austin, rwbarton, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: thomie, bgamari
    
    Differential Revision: https://phabricator.haskell.org/D991
    
    GHC Trac Issues: #9430
    b1d1c652
PpLlvm.hs 17.1 KB