c1/DragonFly__C1LLVMTypes.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 17 Jun 2016 17:25:15 +0100
changeset 26 8eb6716029aa
parent 23 c1/DragonFly__C1LLVMMTypes.st@d2d9a2d4d6bf
parent 18 c1/DragonFly__C1LLVMMTypes.st@81ed8ce0852f
child 27 73e7acbd16ff
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
23
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
     1
"
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
     2
    Copyright (C) 2016-now Jan Vrany
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
     3
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
     4
    This code is not an open-source (yet). You may use this code
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
     5
    for your own experiments and projects, given that:
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
     6
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
     7
    * all modification to the code will be sent to the
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
     8
      original author for inclusion in future releases
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
     9
    * this is not used in any commercial software
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    10
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    11
    This license is provisional and may (will) change in
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    12
    a future.
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    13
"
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
"{ Package: 'jv:dragonfly/c1' }"
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
"{ NameSpace: DragonFly }"
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    18
SharedPool subclass:#C1LLVMTypes
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
	instanceVariableNames:''
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    20
	classVariableNames:'TyInstance TyInstanceFields TyInstanceFieldIndexClass
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    21
		TyInstanceFieldIndexSize TyInstanceFieldIndexSpace
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    22
		TyInstanceFieldIndexFlags TyInstanceFieldIndexAge
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    23
		TyInstanceFieldIndexHashLow TyOBJ TyInlineCache
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    24
		TyInlineCacheIndexFunc TyInlineCacheIndexClass
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    25
		TyInlineCacheIndexLineNo TyInlineCachePtr TyOBJFUNC TyOBJFUNCs
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    26
		TyContextFields TyContextFieldIndexStack TyContexts
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    27
		TyContextFieldIndexFlags TyContextFieldIndexSenderS
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    28
		TyContextFieldIndexHome TyContextFieldIndexReceiver
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    29
		TyContextFieldIndexSelector TyContextFieldIndexSearchClass
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    30
		TyContextFieldIndexMethod TyContextFieldIndexLineNr
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    31
		TyContextFieldIndexRetvalTemp TyContextFieldIndexHandleS'
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
	poolDictionaries:''
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
	category:'DragonFly-C1'
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
!
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
26
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    36
!C1LLVMTypes class methodsFor:'documentation'!
23
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    37
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    38
copyright
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    39
"
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    40
    Copyright (C) 2016-now Jan Vrany
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    41
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    42
    This code is not an open-source (yet). You may use this code
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    43
    for your own experiments and projects, given that:
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    44
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    45
    * all modification to the code will be sent to the
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    46
      original author for inclusion in future releases
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    47
    * this is not used in any commercial software
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    48
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    49
    This license is provisional and may (will) change in
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    50
    a future.
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    51
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    52
"
d2d9a2d4d6bf Added README, licenses and copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    53
! !
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    55
!C1LLVMTypes class methodsFor:'initialization'!
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
initialize
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    "Invoked at system start or when the class is dynamically loaded."
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    "/ please change as required (and remove this comment)
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    TyInstance := LLVMType named: '__instance'.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
    TyOBJ := TyInstance pointer.
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    64
    TyInstanceFields := {
26
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    65
	TyOBJ.                      "/ o_class
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    66
	LLVMType int32.             "/ o_size
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    67
	LLVMType int8.              "/ o_space
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    68
	LLVMType int8.              "/ o_flags
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    69
	LLVMType int8.              "/ o_age
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    70
	LLVMType int8.              "/ o_hashLow
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
    }.
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    72
    TyInstance elementTypes: TyInstanceFields.
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    73
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    TyInstanceFieldIndexClass := 0.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    TyInstanceFieldIndexSize := 1.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
    TyInstanceFieldIndexSpace := 2.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
    TyInstanceFieldIndexFlags := 3.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
    TyInstanceFieldIndexAge := 4.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
    TyInstanceFieldIndexHashLow := 5.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    81
    TyContextFields := TyInstanceFields , (Context instVarNames collect: [ :nm | nm last == $* ifTrue:[ LLVMType intptr pointer ] ifFalse:[ TyOBJ ] ]).
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    82
    TyContextFieldIndexFlags := TyInstanceFields size - 1 + (Context instVarIndexFor: #flags).
26
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    83
    TyContextFieldIndexSenderS  := TyInstanceFields size - 1 + (Context instVarIndexFor: #'sender*').
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    84
    TyContextFieldIndexHome  := TyInstanceFields size - 1 + (Context instVarIndexFor: #home).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    85
    TyContextFieldIndexReceiver  := TyInstanceFields size - 1 + (Context instVarIndexFor: #receiver).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    86
    TyContextFieldIndexSelector  := TyInstanceFields size - 1 + (Context instVarIndexFor: #selector).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    87
    TyContextFieldIndexSearchClass  := TyInstanceFields size - 1 + (Context instVarIndexFor: #searchClass).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    88
    TyContextFieldIndexMethod  := TyInstanceFields size - 1 + (Context instVarIndexFor: #method).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    89
    TyContextFieldIndexLineNr  := TyInstanceFields size - 1 + (Context instVarIndexFor: #lineNr).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    90
    TyContextFieldIndexRetvalTemp  := TyInstanceFields size - 1 + (Context instVarIndexFor: #retvalTemp).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    91
    TyContextFieldIndexHandleS := TyInstanceFields size - 1 + (Context instVarIndexFor: #'handle*').
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    92
    TyContextFieldIndexStack := TyInstanceFields size + Context instSize.
26
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    93
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    94
    TyContexts := #().
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
    95
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
    TyInlineCache := LLVMType named: 'inlineCache'.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
    TyInlineCachePtr := TyInlineCache pointer.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    TyOBJFUNC := LLVMType function: {
26
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
    99
	TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   100
	TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   101
	TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   102
	TyInlineCachePtr .          "/ pIlc
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
    } varargs: true returning: TyOBJ.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
    TyInlineCache elementTypes: {
26
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   106
	TyOBJFUNC pointer .         "/ ilc_func
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   107
	TyOBJ.                      "/ ilc_class
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   108
	TyInlineCachePtr .          "/ ilc_link
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   109
	TyOBJ .                     "/ ilc_lineNo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   110
	LLVMType char pointer .     "/ ilc_poly
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
    }.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
    TyInlineCacheIndexFunc := 0.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
    TyInlineCacheIndexClass := 1.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
    TyInlineCacheIndexLineNo := 3.
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
    TyOBJFUNCs := {
26
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   117
	"/ 0 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   118
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   119
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   120
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   121
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   122
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   123
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   124
	"/ 1 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   125
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   126
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   127
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   128
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   129
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   130
	    TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   131
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   132
	"/ 2 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   133
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   134
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   135
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   136
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   137
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   138
	    TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   139
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   140
	"/ 3 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   141
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   142
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   143
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   144
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   145
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   146
	    TyOBJ . TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   147
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   148
	"/ 4 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   149
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   150
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   151
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   152
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   153
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   154
	    TyOBJ . TyOBJ . TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   155
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   156
	"/ 5 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   157
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   158
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   159
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   160
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   161
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   162
	    TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   163
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   164
	"/ 6 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   165
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   166
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   167
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   168
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   169
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   170
	    TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   171
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   172
	"/ 7 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   173
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   174
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   175
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   176
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   177
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   178
	    TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   179
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   180
	"/ 8 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   181
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   182
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   183
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   184
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   185
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   186
	    TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   187
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   188
	"/ 9 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   189
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   190
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   191
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   192
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   193
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   194
	    TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   195
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   196
	"/ 10 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   197
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   198
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   199
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   200
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   201
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   202
	    TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   203
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   204
	"/ 11 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   205
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   206
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   207
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   208
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   209
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   210
	    TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   211
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   212
	"/ 12 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   213
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   214
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   215
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   216
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   217
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   218
	    TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   219
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   220
	"/ 13 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   221
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   222
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   223
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   224
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   225
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   226
	    TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   227
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   228
	"/ 14 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   229
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   230
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   231
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   232
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   233
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   234
	    TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   235
	} returning: TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   236
	"/ 16 args
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   237
	LLVMType function: {
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   238
	    TyOBJ.                      "/ self
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   239
	    TyOBJ.                      "/ selector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   240
	    TyOBJ.                      "/ searchClass or nil
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   241
	    TyInlineCachePtr .          "/ pIlc
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   242
	    TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ . TyOBJ .
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   243
	} returning: TyOBJ .
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
    }
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   246
    "Modified: / 21-04-2016 / 08:34:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   247
! !
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   249
!C1LLVMTypes class methodsFor:'accessing'!
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   250
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   251
tyContext: size
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   252
    "Return a type for context with given `size`. Size should
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   253
     be numArgs + numVars + numTemps"
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   254
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   255
    | tyContext |
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   256
26
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   257
    TyContexts size < (size + 1) ifTrue:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   258
	| tmp |
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   259
26
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   260
	tmp := Array new: size + 1.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   261
	tmp replaceFrom: 1 to: TyContexts size with: TyContexts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   262
	TyContexts := tmp.
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   263
    ].
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   264
    tyContext := TyContexts at: size + 1.
26
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   265
    tyContext isNil ifTrue:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   266
	tyContext := LLVMType named: '__context' , size printString.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   267
	size == 0 ifTrue:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   268
	    tyContext elementTypes: TyContextFields
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   269
	] ifFalse:[
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   270
	    tyContext elementTypes: (TyContextFields copyWith: (LLVMType arrayOf: TyOBJ size: size))
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   271
	].
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 23 18
diff changeset
   272
	TyContexts at: size + 1 put: tyContext.
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   273
    ].
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   274
    ^ tyContext
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   275
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   276
    "
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   277
    DragonFly::C1LLVMTypes tyContext: 3
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   278
    "
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   279
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   280
    "Created: / 20-04-2016 / 23:06:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   281
    "Modified (comment): / 21-04-2016 / 08:41:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   282
! !
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   283
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   284
!C1LLVMTypes class methodsFor:'documentation'!
17
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   285
version_HG
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   286
    ^ '$Changeset: <not expanded> $'
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   287
! !
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   288
54798ae989cc Initial work on LLVM-based C1 compiler
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   289
18
81ed8ce0852f C1: Added context setup code.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17
diff changeset
   290
C1LLVMTypes initialize!