Redundancy elimination techniques in sdcc have been a source of bugs and complaints about theri inefficeincy. I thus suggest to replace them all (AFAIk we currently have CSE, GCSE and LICM) by an implementation of livetime-optimal speculative partial redundancy elimination (lospre). lospre can do all that CSE, GCSE and LCIM do and more. See e.g. "A Lifetime Optimal Algorithm for Speculative PRE" by J. Xue and Q. Cai.
However the implementation (MC-PRE) proposed there seems rather complex and so is their proof for optimality. IMO a graph-structure-theretic approach could lead to a simpler, faster algorithm with a simpler proof of correctness.