Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mu-impl-ref2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
5
Issues
5
List
Boards
Labels
Milestones
Merge Requests
2
Merge Requests
2
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
mu
mu-impl-ref2
Commits
34244646
Commit
34244646
authored
Jun 02, 2016
by
Kunshan Wang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move IRBuilder outside uvm.refimpl package.
parent
57d9be2c
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
25 additions
and
12 deletions
+25
-12
src/main/scala/uvm/ir/irbuilder/IRBuilder.scala
src/main/scala/uvm/ir/irbuilder/IRBuilder.scala
+4
-6
src/main/scala/uvm/ir/irbuilder/irBuilderNodes.scala
src/main/scala/uvm/ir/irbuilder/irBuilderNodes.scala
+1
-1
src/main/scala/uvm/refimpl/MicroVM.scala
src/main/scala/uvm/refimpl/MicroVM.scala
+4
-1
src/main/scala/uvm/refimpl/MuCtxIRBuilderPart.scala
src/main/scala/uvm/refimpl/MuCtxIRBuilderPart.scala
+12
-4
src/main/scala/uvm/refimpl/clientInterface.scala
src/main/scala/uvm/refimpl/clientInterface.scala
+3
-0
src/main/scala/uvm/refimpl/itpr/boxes.scala
src/main/scala/uvm/refimpl/itpr/boxes.scala
+1
-0
No files found.
src/main/scala/uvm/
refimpl
/IRBuilder.scala
→
src/main/scala/uvm/
ir/irbuilder
/IRBuilder.scala
View file @
34244646
package
uvm.
refimpl
package
uvm.
ir.irbuilder
import
scala.collection.mutable.ArrayBuffer
import
uvm.utils.IDFactory
import
uvm._
import
uvm.types._
import
uvm.ssavariables._
import
uvm.comminsts.CommInst
import
uvm.comminsts.CommInsts
object
DestKind
extends
Enumeration
{
val
NORMAL
,
EXCEPT
,
TRUE
,
FALSE
,
DEFAULT
,
DISABLED
,
ENABLED
=
Value
}
private
[
refimpl
]
object
IRBuilder
{
private
[
irbuilder
]
object
IRBuilder
{
type
BN
=
BundleNode
type
CN
[
+T
<:
Identified
]
=
ChildNode
[
T
]
...
...
@@ -48,9 +46,9 @@ class IRBuilder(globalBundle: GlobalBundle, idFactory: IDFactory) {
node
}
def
getNode
(
b
:
BN
,
id
:
Int
)
:
CN
[
_
]
=
{
def
getNode
(
b
:
BN
,
id
:
Int
)
:
CN
[
_
<:
Identified
]
=
{
val
ent
=
globalBundle
.
allNs
.
get
(
id
).
getOrElse
{
throw
new
UvmRuntime
Exception
(
"No entity has id %d"
.
format
(
id
))
throw
new
IllegalArgument
Exception
(
"No entity has id %d"
.
format
(
id
))
}
new
ChildNode
(
ent
)
...
...
src/main/scala/uvm/
refimpl
/irBuilderNodes.scala
→
src/main/scala/uvm/
ir/irbuilder
/irBuilderNodes.scala
View file @
34244646
package
uvm.
refimpl
package
uvm.
ir.irbuilder
import
uvm._
import
uvm.types._
...
...
src/main/scala/uvm/refimpl/MicroVM.scala
View file @
34244646
...
...
@@ -12,6 +12,7 @@ import uvm.refimpl.mem.TypeSizes.Word
import
uvm.refimpl.nat.NativeCallHelper
import
uvm.staticanalysis.StaticAnalyzer
import
uvm.utils.IDFactory
import
uvm.ir.irbuilder.IRBuilder
object
MicroVM
{
val
DEFAULT_SOS_SIZE
:
Word
=
2L
*
1024L
*
1024L
;
// 2MiB
...
...
@@ -49,7 +50,9 @@ class MicroVM(vmConf: VMConf) {
val
trapManager
=
new
TrapManager
()
val
contexts
=
new
HashSet
[
MuCtx
]()
val
irReader
=
new
UIRTextReader
(
new
IDFactory
(
MicroVM
.
FIRST_CLIENT_USABLE_ID
),
recordSourceInfo
=
vmConf
.
sourceInfo
)
val
idFactory
=
new
IDFactory
(
MicroVM
.
FIRST_CLIENT_USABLE_ID
)
val
irBuilder
=
new
IRBuilder
(
globalBundle
,
idFactory
)
val
irReader
=
new
UIRTextReader
(
idFactory
,
recordSourceInfo
=
vmConf
.
sourceInfo
)
val
hailScriptLoader
=
new
HailScriptLoader
(
recordSourceInfo
=
vmConf
.
sourceInfo
)
val
staticAnalyzer
=
new
StaticAnalyzer
()
...
...
src/main/scala/uvm/refimpl/MuCtxIRBuilderPart.scala
View file @
34244646
...
...
@@ -2,6 +2,7 @@ package uvm.refimpl
import
uvm._
import
uvm.refimpl.itpr._
import
uvm.ir.irbuilder._
/**
* Mix-in to MuCtx to support the IR building API.
...
...
@@ -12,11 +13,16 @@ trait MuCtxIRBuilderPart {
protected
def
addHandle
[
T
<:
MuValue
](
h
:
T
)
:
T
@inline
def
IRNODEREF
=
InternalTypes
.
IRNODEREF
private
def
IRNODEREF
=
InternalTypes
.
IRNODEREF
private
def
irBuilder
=
microVM
.
irBuilder
private
def
makeConcreteMuIRNode
(
node
:
IRNode
)
:
MuIRNode
=
{
???
}
def
newBundle
()
:
MuBundleNode
=
{
val
b
=
new
TrantientBundle
()
val
node
=
new
BundleNode
(
b
)
val
node
=
irBuilder
.
newBundle
()
addHandle
(
MuBundleNode
(
IRNODEREF
,
BoxIRNode
(
Some
(
node
))))
}
...
...
@@ -31,7 +37,9 @@ trait MuCtxIRBuilderPart {
}
def
getNode
(
b
:
MuBundleNode
,
id
:
Int
)
:
MuIRNode
=
{
???
require
(!
b
.
isNull
,
"bundle must not be NULL"
)
val
node
=
irBuilder
.
getNode
(
b
.
vb
.
node
.
get
.
asInstanceOf
[
BundleNode
],
id
)
addHandle
(
makeConcreteMuIRNode
(
node
))
}
def
getID
(
node
:
MuChildNode
)
:
Int
=
{
...
...
src/main/scala/uvm/refimpl/clientInterface.scala
View file @
34244646
...
...
@@ -8,6 +8,9 @@ import uvm.ssavariables._
import
uvm.ssavariables.AtomicRMWOptr._
import
uvm.ssavariables.MemoryOrder._
import
uvm.types._
import
uvm.ir.irbuilder.IRNode
import
uvm.ir.irbuilder.ChildNode
import
uvm.ir.irbuilder.BundleNode
object
MuValue
{
def
apply
(
ty
:
Type
,
vb
:
ValueBox
)
:
MuValue
=
(
ty
,
vb
)
match
{
...
...
src/main/scala/uvm/refimpl/itpr/boxes.scala
View file @
34244646
...
...
@@ -4,6 +4,7 @@ import uvm._
import
uvm.types._
import
uvm.refimpl._
import
uvm.refimpl.mem.TypeSizes.Word
import
uvm.ir.irbuilder.IRNode
abstract
class
ValueBox
{
def
copyFrom
(
other
:
ValueBox
)
:
Unit
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment