
#14359: C-- pipeline/NCG fails to optimize simple repeated addition -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: low | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Runtime | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by alexbiehl): Actually compiling `PrimOps.cmm` with `-O` already results in the desired constant folding: {{{ $ ghc -ddump-asm -c rts/PrimOps.cmm | less ... stg_newPinnedByteArrayzh: _cv: movq 888(%r13),%rax cmpq $0,16(%rax) je _cl _cn: movq g0@GOTPCREL(%rip),%rax movq (%rax),%rax movq 56(%rax),%rax movq large_alloc_lim@GOTPCREL(%rip),%rcx cmpq (%rcx),%rax jae _cl _co: subq $8,%rsp leaq -24(%r13),%rax leaq 38(%rbx),%rsi <- see here shrq $3,%rsi movq %rax,%rdi xorl %eax,%eax call allocatePinned addq $8,%rsp testq %rax,%rax ... }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14359#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler