If I activate the Inliner pass: Builder.Inliner = createFunctionInliningPass(Threshold); this is the result: LLVM ERROR: Program used external function 'llvm.lifetime.start' which could not be resolved! It happens on almost all my test cases, even at -O0. This JIT compiler does the same as `opt' wrt optimization passes. I'm using a LLVM snapshot from approx 4 months ago.
On Tue, Nov 22, 2011 at 8:26 PM, Óscar Fuentes <ofv at wanadoo.es> wrote:> If I activate the Inliner pass: > > Builder.Inliner = createFunctionInliningPass(Threshold); > > this is the result: > > LLVM ERROR: Program used external function 'llvm.lifetime.start' which could not be resolved! > > It happens on almost all my test cases, even at -O0. > > This JIT compiler does the same as `opt' wrt optimization passes. I'm > using a LLVM snapshot from approx 4 months ago.Yes, the inliner does introduce llvm.lifetime.start... and CodeGen should eliminate it. Are you using the interpreter? Otherwise, I have no clue how you could trigger that error. -Eli
Hello Eli. Eli Friedman <eli.friedman at gmail.com> writes:>> If I activate the Inliner pass: >> >> Builder.Inliner = createFunctionInliningPass(Threshold); >> >> this is the result: >> >> LLVM ERROR: Program used external function 'llvm.lifetime.start' which could not be resolved! >> >> It happens on almost all my test cases, even at -O0. >> >> This JIT compiler does the same as `opt' wrt optimization passes. I'm >> using a LLVM snapshot from approx 4 months ago. > > Yes, the inliner does introduce llvm.lifetime.start... and CodeGen > should eliminate it. Are you using the interpreter?No, I'm not using the interpreter. Is there any condition that prevents CodeGen from removing those intrinsics?> Otherwise, I have no clue how you could trigger that error.Ok, I'll investigate a bit further. Thanks.