What constitutes a replaceable use?

I am creating a temporary ValueRef (call it %temp) that I need to build uses of before
there is enough information tocreate the value it really needs to be, (call it %real).
After I create %real, I am calling LLVMReplaceAllUsesWith(%temp, %real).

Uses that were created by passing %temp as one of the actual parameters to LLVMBuildCall
are getting replaced. A use created by building a bitcast of %temp, then passing
that to the source value of a store are not.

Any advice on how to get the replace to happen?

This is llvm 3.6.1, using the Core C bindings for building llvm IR. Also, the
values I have tried for %temp are constants, just to avoid having unnecessary
stuff remaining.

I discovered a way to get around this experimentally. I tried using an alloca for %temp,
then got rid of it with LLVMInstructionEraseFromParent. It got replaced, as expected.

But that's only an anecdotal answer.