Na sua primeira versão, você teve instruções após uma instrução do Terminator, que estava incorreta, pois esta instrução nunca foi executada.
Na sua segunda versão (não mencionada aqui, use o StackOverflow em vez de e -mails privados ...) estão usando %de chamada (no Inst da loja) antes de defini -lo ( %Call = ...), então claramente sua definição não precede cada Use ... mas, como eu disse, a loja não deve estar após a invoque, porque a Invoke é um TerminatorInst.
A solução é colocar sua loja no próximo bloco básico (você pode criar um novo):
%invoke.cont
%call = invoke i8* @_ZNKSs5c_strEv(%"class.std::basic_string"* @loadedFile)
to label %invoke.cont2_before unwind label %lpad1
invoke.cont2_before: ; preds = %invoke.cont
store i8* %call, i8** %reduced_var
br label %invoke.cont2
invoke.cont2: ; preds = %main_block, %invoke.cont2_before
%call4 = invoke i32 @_ZStorSt13_Ios_OpenmodeS_(i32 8, i32 16)
to label %invoke.cont3_before unwind label %lpad1
etc ...