我如何对编译器说如何优化某些东西或调用什么函数。我的意思是像创建分配方法并让编译器优化它,因为它使用malloc
or优化它new
。
或者就像代码中某处调用函数 X 并且未使用它的返回值然后删除此调用。(来自 .lib 的函数,编译器对此一无所知)
有这方面的选择吗?
例如:
auto val=X(); //Use the return value
X(); //Don't use
auto t=allocate<T>(); //Allocate on heap
t->Show(val); //Run single function and don't use it's pointer somewhere (Save it after the function is exit)
并将其优化为:
X(); //First line, just call it
T().Show(val); //Combines third and fourth lines, Allocate on stack and run the single function
如果您问“为什么需要这个?” 我正在使用自己的 GC 和堆创建编程语言。(还有很多东西)
它翻译成 C++ 然后我不想在翻译时优化代码。(这会很痛苦)因为我可以在一些地方随机调用函数。(我无法检测它们的值是否被使用)