LLVMMCJITCompilerOptions.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 06 Jul 2016 22:40:59 +0100
changeset 71 ab03b0a6d037
parent 60 146527d8dd66
permissions -rw-r--r--
Implemented LLVMType>>sizeInBits/sizeInBytes for all data types ...i.e., also for structures, vectors and arrays.

"
    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 }"

Object subclass:#LLVMMCJITCompilerOptions
	instanceVariableNames:'bytes mm'
	classVariableNames:''
	poolDictionaries:''
	category:'LLVM-S-Core'
!

!LLVMMCJITCompilerOptions 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.
"
! !

!LLVMMCJITCompilerOptions class methodsFor:'accessing'!

new
    ^ self basicNew initialize

    "Created: / 08-02-2016 / 13:53:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    "Modified: / 21-04-2016 / 11:31:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

sizeof
    "Returns size of undelaying structure in bytes"

    ^24
! !

!LLVMMCJITCompilerOptions methodsFor:'accessing'!

CodeModel
    "Returns ;; Line: 3682
(enum LLVMCodeModel
        (value (LLVMCodeModelDefault) 0)
        (value (LLVMCodeModelJITDefault) 1)
        (value (LLVMCodeModelSmall) 2)
        (value (LLVMCodeModelKernel) 3)
        (value (LLVMCodeModelMedium) 4)
        (value (LLVMCodeModelLarge) 5) )"

    ^bytes doubleWordAt:1 + 4

    "Modified: / 21-04-2016 / 11:46:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

CodeModel: value

    bytes doubleWordAt:1 + 4 put:value

    "Modified: / 21-04-2016 / 11:46:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

EnableFastISel
    "Returns ;; Line: 1141
(typedef 
        LLVMBool
                bool)"

    ^bytes at:1 + 12

    "Modified: / 21-04-2016 / 11:46:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

EnableFastISel: value

    bytes at:1 + 12 put:value

    "Modified: / 21-04-2016 / 11:46:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

MCJMM
    "Returns ;; Line: 3675
(typedef 
        LLVMMCJITMemoryManagerRef
                (pointer-to ;; Line: 4082
;; Class: LLVMOpaqueMCJITMemoryManager
))"
    ^ mm

    "Modified: / 21-04-2016 / 11:45:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

MCJMM: value
    mm := value.
    bytes pointerAt:1 + 16 put:value

    "Modified: / 21-04-2016 / 11:45:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

NoFramePointerElim
    "Returns ;; Line: 1141
(typedef 
        LLVMBool
                bool)"

    ^bytes at:1 + 8

    "Modified: / 21-04-2016 / 11:46:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

NoFramePointerElim: value

    bytes at:1 + 8 put:value

    "Modified: / 21-04-2016 / 11:46:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

OptLevel
    "Returns unsigned int"

    ^bytes longAt:1 + 0

    "Modified: / 21-04-2016 / 11:46:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

OptLevel: value

    bytes longAt:1 + 0 put:value

    "Modified: / 21-04-2016 / 11:46:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!LLVMMCJITCompilerOptions methodsFor:'converting'!

asExternalBytes
    ^ bytes

    "Created: / 21-04-2016 / 11:45:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!

getBytes
    ^ bytes

    "Created: / 21-04-2016 / 11:33:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!LLVMMCJITCompilerOptions methodsFor:'initialization'!

initialize
    bytes := ExternalBytes new: self class sizeof.
    LLVM InitializeMCJITCompilerOptions: bytes _: self class sizeof.

    "Modified: / 21-04-2016 / 11:33:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !

!LLVMMCJITCompilerOptions class methodsFor:'documentation'!

version_HG

    ^ '$Changeset: <not expanded> $'
! !