klee icon indicating copy to clipboard operation
klee copied to clipboard

Support LLVM 9.0

Open XVilka opened this issue 5 years ago • 0 comments

LLVM 9.0 was recently released, with many things inside:

  • The RISCV target is no longer “experimental” (see Changes to the RISCV Target below for more details).
  • Support for target-independent hardware loops in IR has been added, with PowerPC and Arm implementations.
  • Various optimisations

Changes to the LLVM IR

  • Added immarg parameter attribute. This indicates an intrinsic parameter is required to be a simple constant. This annotation must be accurate to avoid possible miscompiles.
  • The 2-field form of global variables @llvm.global_ctors and @llvm.global_dtors has been deleted. The third field of their element type is now mandatory. Specify i8* null to migrate from the obsoleted 2-field form.
  • The byval attribute can now take a type parameter: byval(<ty>). If present it must be identical to the argument’s pointee type. In the next release we intend to make this parameter mandatory in preparation for opaque pointer types.
  • atomicrmw xchg now allows floating point types
  • atomicrmw now supports fadd and fsub

Depends on https://github.com/klee/klee/issues/1136

XVilka avatar Sep 26 '19 06:09 XVilka