Extending NVCC optimization passes

Hi! I was wondering if it is possible to add compiler optimizer passes to NVCC somehow?
My understanding is NVCC is LLVM-based, where compiler passes are not too difficult to add: Writing an LLVM Pass — LLVM 15.0.0git documentation

But does NVCC support this in any way?

One use case is that “-5<=x & x<=5” expands to three instructions, but the equivalent line “abs(x)<=5” expands to a single SASS instruction - this is not done by automatically NVCC.
I would also like to experiment with software pipelining, which seems to never be automatically done by NVCC, but it can be superior to loop unrolling in many cases (in terms of less stall and register pressure, more instruction-level parallelism).