jacky860226
jacky860226
LLVM 13
- [x] LLVM 12 - [x] LLVM 13 - [x] Fix CreateLoad warning because it is DEPRECATED for some kinds. (https://llvm.org/doxygen/classllvm_1_1IRBuilderBase.html) - [x] Add Wno-redundant-move ? (ref : https://reviews.llvm.org/D70963)
For example, in function `CodeGenModule::emitCall`: https://github.com/second-state/SOLL/blob/master/lib/CodeGen/CodeGenModule.cpp#L2142 https://github.com/second-state/SOLL/blob/master/lib/CodeGen/CodeGenModule.cpp#L2156 Type of `AddressPtr` is determined by `isEVM()` or `isEWASM()`.
The caller of `let ptr := memoryguard(size)` (where `size` has to be a literal number) promises that they only use memory in either the range `[0, size)` or the unbounded...
``` let x := and("abc":uint32, add(3:uint256, 2:uint256)) ``` ``` { let zero:uint32 := 0:uint32 let v:uint256, t:uint32 := f() let x, y := g() } ```
`linkersymbol` is a placeholder for an address literal to be substituted by the linker.
`setimmutable(offset, "name", value)` assumes that the runtime code of the contract containing the given named immutable was copied to memory at offset `offset` and will write `value` to all positions...
Difference of 0.7.0 and 0.8.6: 0.7.0 ``` Literal = (NumberLiteral | StringLiteral | HexLiteral | TrueLiteral | FalseLiteral) ( ':' TypeName )? HexLiteral = 'hex' ('"' ([0-9a-fA-F]{2})* '"' | '\''...
The data object called `".metadata"` has a special meaning: It cannot be accessed from code and is always appended to the very end of the bytecode, regardless of its position...
The set of `verbatim...` builtin functions lets you create bytecode for opcodes that are not known to the Yul compiler.