查看埃姆吉特代码,我注意到LLVM优化器实际上是在虚拟机执行契约之前使用的。我还注意到,Solidity编译器有自己的优化器来优化字节码。
所以我想知道..。在Solidity编译器中使用字节码优化器与完全依赖虚拟机中的LLVM优化器有什么好处?
发布于 2017-04-11 19:39:07
不管合同是如何执行的,EVM的会计才是重要的。
协议不知道您是在执行x86协议、ARM7协议、6502协议还是笔和纸协议。它所知道的是EVM中的每一步的成本是多少,这是相同的。Solidity的优化,通过优化EVM级别的代码,使得合同在天然气方面更便宜。任何客户端优化器都会使物理计算机资源中的合同更便宜。
发布于 2017-05-03 14:30:14
我在此得出的结论是,在LLVM执行过程中执行相同的优化并在理论上减少Gas是完全可能的。然而,这可能是一个棘手的问题,在实践中,由于性质的LLVM IR,即它是太低的水平,以这项工作。需要一个不同的编译器抽象,以使这种优化更容易实现,并且更健壮,而稳健编译器正是这样做的。但是,在我看来,稳健优化器的IR并没有被很好地定义,而且是临时的。我想知道是否有计划在未来对此进行改进,并构建一个允许第三方优化器模块(类似于LLVM)的优化器。
https://ethereum.stackexchange.com/questions/15082
复制相似问题