LLVM 3.9: Vector types are supported only for pointers, integer and floating points.
...for all other tyoes throw an MethodNotAppropriateError error when one
try to create a vector (by means of #vector: message)
"
Copyright (C) 2015-now Jan Vrany
This code is not an open-source (yet). You may use this code
for your own experiments and projects, given that:
* all modification to the code will be sent to the
original author for inclusion in future releases
* this is not used in any commercial software
This license is provisional and may (will) change in
a future.
"
"{ Package: 'jv:llvm_s' }"
"{ NameSpace: Smalltalk }"
LLVMTypeScalar subclass:#LLVMTypeInteger
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'LLVM-S-Core-Types'
!
!LLVMTypeInteger class methodsFor:'documentation'!
copyright
"
Copyright (C) 2015-now Jan Vrany
This code is not an open-source (yet). You may use this code
for your own experiments and projects, given that:
* all modification to the code will be sent to the
original author for inclusion in future releases
* this is not used in any commercial software
This license is provisional and may (will) change in
a future.
"
! !
!LLVMTypeInteger methodsFor:'accessing'!
sizeInBits
"For integer, pointer, FP types, return the size in bits. For all
other types, throw an LLVMTypeError.
LLVMType int32 sizeInBits -> 32
LLVMType int1 sizeInBits -> 1
"
^ LLVM GetIntTypeWidth: self
"Created: / 13-08-2015 / 17:03:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMTypeInteger methodsFor:'converting'!
vector: numberOfElements
"Create a fixed-size vector whose elements are of type of receiver."
self assertIsIntegerUnsigned: numberOfElements.
^ LLVM VectorType: self _: numberOfElements
"Created: / 13-08-2015 / 18:59:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMTypeInteger methodsFor:'testing'!
isIntegerType
^ true
"Created: / 13-08-2015 / 16:51:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMTypeInteger class methodsFor:'documentation'!
version_HG
^ '$Changeset: <not expanded> $'
! !