All Projects → etclabscore → evm_llvm

etclabscore / evm_llvm

Licence: other
Official repo of the EVM LLVM project

Projects that are alternatives of or similar to evm llvm

docker-opengl
Multi-Arch Docker - Mesa 3D OpenGL Software Rendering (Gallium) - LLVMpipe, and OpenSWR Drivers
Stars: ✭ 68 (-5.56%)
Mutual labels:  llvm
rain
A programming language.
Stars: ✭ 20 (-72.22%)
Mutual labels:  llvm
Contracts
All WiBX blockchain chain code
Stars: ✭ 20 (-72.22%)
Mutual labels:  evm
etk
evm toolkit
Stars: ✭ 244 (+238.89%)
Mutual labels:  evm
U-00DC-Sprache
"Ü" programming language development
Stars: ✭ 43 (-40.28%)
Mutual labels:  llvm
LLVMTemplate
LLVM + Swift template Xcode project
Stars: ✭ 12 (-83.33%)
Mutual labels:  llvm
dumb-obfuscator
Tutorial on how to write the dumbest obfuscator I could think of.
Stars: ✭ 147 (+104.17%)
Mutual labels:  llvm
adorad
Fast, Expressive, & High-Performance Programming Language for those who dare
Stars: ✭ 54 (-25%)
Mutual labels:  llvm
sycl
SYCL for Vitis: Experimental fusion of triSYCL with Intel SYCL oneAPI DPC++ up-streaming effort into Clang/LLVM
Stars: ✭ 80 (+11.11%)
Mutual labels:  llvm
awesome-ethereum-events
Inspired by the awesome list of awesome lists of awesome lists of...
Stars: ✭ 18 (-75%)
Mutual labels:  evm
flextool
C++ compile-time programming (serialization, reflection, code modification, enum to string, better enum, enum to json, extend or parse language, etc.)
Stars: ✭ 32 (-55.56%)
Mutual labels:  llvm
sooho
Toolbox for auditing and patching vulnerabilities in smart contracts.
Stars: ✭ 38 (-47.22%)
Mutual labels:  smart-contract
py-trueconsensus
python prototype for hybrid consensus
Stars: ✭ 48 (-33.33%)
Mutual labels:  evm
LLAST
A high level LLVM IR AST provider for GraphEngine JIT.
Stars: ✭ 21 (-70.83%)
Mutual labels:  llvm
minority
Ethereum 2.0 node multiplexer between consensus and execution
Stars: ✭ 94 (+30.56%)
Mutual labels:  evm
ethereum-crowdsale
0xcert protocol crowdsale contracts for Ethereum blockchain.
Stars: ✭ 15 (-79.17%)
Mutual labels:  smart-contract
pali-wallet
The Official Syscoin browser wallet. Open source, easy to use & multichain.
Stars: ✭ 30 (-58.33%)
Mutual labels:  evm
pa.llvm
Program Analysis for LLVM
Stars: ✭ 37 (-48.61%)
Mutual labels:  llvm
FPChecker
A dynamic analysis tool to detect floating-point errors in HPC applications.
Stars: ✭ 26 (-63.89%)
Mutual labels:  llvm
juce faustllvm
JUCE Module for the libfaust JIT compiler
Stars: ✭ 32 (-55.56%)
Mutual labels:  llvm

EVM LLVM Image

Working on smart contracts on EVM these days has a lot of limitations. The programming language, the performance, the cost, the analysis tools, are all limited due to the fact that the EVM platform is a very blockchain specific execution environment. It differs very much from our daily compilers. It is a stack machine; its resources are limited; it does not have a heap space; et cetera, et cetera. Because of those dicrepancies, the blockchain community had to rebuild smart contract infrastructures from scratch.

But to mature a software infrastructure takes a long time and tremendous efforts. With the fast-acting of blockchain upgrades, smart contract facilities are growing relatively slower than the rest of blockchain facilities. We would like to change that.

With this project, we prove that industry-strong, LLVM compiler frameworks are still compatible for the EVM platform, even though LLVM is not created specifically for such kind of architectures.

EVM LLVM is an EVM architecture backend for LLVM. With EVM LLVM you can generate EVM binary code with LLVM-based compilers. The project is a codegen backend, it does not assume language frontends, so developers should be able to plug in a new smart contract language frontend to generate EVM binary, as long as the frontend does not generate language/platform-specific instructions.

However, there are limitations introduced by the EVM architecture. As a software instruction set architecture, EVM opcodes aims at providing the best security measurements to the community, rather than performance. Because of this, we cannot assume programs running on nowadays x86 machines or cellphones can be ported easily to a blockchain which's execution environement is EVM.

At this moment, this project is based on LLVM 10. Some additional features have added to support EVM codegen.

References and materials

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].