
#9142: LLVM HEAD rejects aliases used by LLVM codegen -------------------------------------+------------------------------------ Reporter: bgamari | Owner: Type: bug | Status: new Priority: high | Milestone: Component: Compiler | Version: 7.8.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Unknown/Multiple Type of failure: None/Unknown | Difficulty: Unknown Test Case: | Blocked By: Blocking: 4213 | Related Tickets: -------------------------------------+------------------------------------ Comment (by scpmw): Function definitions aren't really the problem. Once we know the live global registers, we'd know their type (see `llvmFunTy`). We could /theoretically/ find these from a call in Cmm. However, I feel like this is the wrong approach anyway. Even if we could enumerate all offending Cmm constructs at this point, there is no telling whether we will have more problematic Cmm in the future. We don't want to get into a game of whack-a-mole just for a rather cosmetic feature like streaming. Bringing Stg into the fold would most likely to make that problem even worse. In my mind, we should wait for the LLVM situation to stabilize, then we'll implement either 1. What we have right now, with possibly minor changes 2. A step prepending aliases, if this is what LLVM likes better (unlikely, but I'll test it) 3. A search-and-replace step where we first emit placeholders, then later fill in the types (your option 3) 4. Remove streaming entirely (pretty much equivalent to your options 1 and 2) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9142#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler