[cfe-dev] how to replace function call with actual code of function body?
Yonggang Chen via cfe-dev
cfe-dev at lists.llvm.org
Sat Jun 24 21:20:26 PDT 2017
Hello paulr,
>> I think Yonggang might be looking for a refactoring/source modification, rather than an optimization, but I'm not sure.
Yes, you are right. That’s what I meant. I’m looking for a refactoring modification.
Put the method's body into the body of its callers and remove the method.
int getRating() {
return (moreThanFiveLateDeliveries()) ? 2 : 1;
}
boolean moreThanFiveLateDeliveries() {
return _numberOfLateDeliveries > 5;
}
Then, the source code becomes the following:
int getRating() {
return (_numberOfLateDeliveries > 5) ? 2 : 1;
}
And it seems someone had achieved this, please check this link:
<https://github.com/goldsborough/clang-expand> clang-expand
https://github.com/goldsborough/clang-expand
Best regards
Yonggang Chen
From: David Blaikie [mailto:dblaikie at gmail.com]
Sent: Sunday, June 25, 2017 12:36 AM
To: Robinson, Paul <paul.robinson at sony.com>; Yonggang Chen <cyg19891102 at 163.com>
Cc: cfe-dev at lists.llvm.org
Subject: Re: [cfe-dev] how to replace function call with actual code of function body?
On Fri, Jun 23, 2017, 12:52 PM Robinson, Paul via cfe-dev <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org> > wrote:
You are describing "function inlining" which is an optimization done by LLVM. This optimization is performed on the intermediate representation (IR), not at the source level, if that's what you need to know.
I think Yonggang might be looking for a refactoring/source modification, rather than an optimization, but I'm not sure.
--paulr
From: cfe-dev [mailto:cfe-dev-bounces at lists.llvm.org <mailto:cfe-dev-bounces at lists.llvm.org> ] On Behalf Of Yonggang Chen via cfe-dev
Sent: Thursday, June 22, 2017 9:03 PM
To: cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
Subject: [cfe-dev] how to replace function call with actual code of function body?
Importance: High
Hello all,
int main()
{
auto n = 9;
auto x = cacul(n);
return 0;
}
int cacul(int x)
{
return x * x + 3;
}
Suppose I have function main(), in which cacul(int x) is called.
Now I want Clang help me do this:
int main()
{
auto n = 9;
auto x = n * n + 3;
return 0;
}
int cacul(int x)
{
return x * x + 3;
}
That’s to say, remove reference to cacul. Can Clang help me do that? If so, how to do it?
Best regards
Yonggang Chen
_______________________________________________
cfe-dev mailing list
cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170625/8a19f049/attachment.html>
More information about the cfe-dev
mailing list