If your matrices are banded you can use BandedMatrices.jl
My impression is that there is confusion re- givens vs householder: a sparse givens and a sparse householder have the exact same fill-in. The only case where Givens wins that I can think of is 2x2, where there are less operations by avoiding the sign check.
At won’t point I changed BandedMatrices QR from Givens to Householder with a significant speed up.