[llvm-dev] getting nowhere with thinLTO
Davis, Alan via llvm-dev
llvm-dev at lists.llvm.org
Wed Nov 15 13:51:05 PST 2017
Tobias, thanks, and greetings.
> change this to: int t3(void);
Yes, in fact without the 'void' the bitcast is there. When I take your suggestion to add 'void', the inlining happens. There does seem to be a difference in behavior between x86 and ARM, though. On X86 there is no bitcast.
How is the linker-script-friendly LTO coming along?
From: Tobias Edler von Koch [mailto:tobias at codeaurora.org]
Sent: Tuesday, November 14, 2017 11:26 AM
To: Davis, Alan; Teresa Johnson
Cc: llvm-dev at lists.llvm.org; Peter Collingbourne
Subject: [EXTERNAL] Re: [llvm-dev] getting nowhere with thinLTO
On 11/10/2017 11:12 AM, Davis, Alan via llvm-dev wrote:
For whatever reason in this simple example t3 is not being inlined, but I can set that aside for now.
Does inlining happen if you change this to:
Without the void, it's a non-prototype declaration (a pre-ANSI C holdover) and will get compiled to "declare void t3(...)". I'm guessing you'll see a bitcast at the call site which the inliner can't look through.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project.
More information about the llvm-dev