Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mu-impl-fast
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
40
Issues
40
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
mu
mu-impl-fast
Commits
84e5d475
Commit
84e5d475
authored
Jul 20, 2016
by
qinsoon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
VM Options
parent
89ad018a
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
59 additions
and
23 deletions
+59
-23
asm_backend.rs
src/compiler/backend/arch/x86_64/asm_backend.rs
+3
-3
codegen.rs
src/compiler/backend/arch/x86_64/codegen.rs
+1
-1
inst_sel.rs
src/compiler/backend/arch/x86_64/inst_sel.rs
+2
-2
code_emission.rs
src/compiler/backend/code_emission.rs
+1
-1
mod.rs
src/compiler/backend/mod.rs
+2
-2
peephole_opt.rs
src/compiler/backend/peephole_opt.rs
+2
-2
liveness.rs
src/compiler/backend/reg_alloc/graph_coloring/liveness.rs
+2
-2
mod.rs
src/compiler/backend/reg_alloc/mod.rs
+1
-1
mod.rs
src/compiler/mod.rs
+1
-1
control_flow.rs
src/compiler/passes/control_flow.rs
+1
-1
def_use.rs
src/compiler/passes/def_use.rs
+1
-1
mod.rs
src/compiler/passes/mod.rs
+1
-1
trace_gen.rs
src/compiler/passes/trace_gen.rs
+1
-1
tree_gen.rs
src/compiler/passes/tree_gen.rs
+1
-1
mod.rs
src/utils/mod.rs
+2
-0
context.rs
src/vm/context.rs
+6
-0
mod.rs
src/vm/mod.rs
+7
-2
vm_options.rs
src/vm/vm_options.rs
+23
-0
test_ir.rs
tests/test_ir/test_ir.rs
+1
-1
No files found.
src/compiler/backend/arch/x86_64/asm_backend.rs
View file @
84e5d475
#
!
[
allow
(
unused_variables
)]
use
compiler
::
backend
;
use
compiler
::
backend
::
ByteSize
;
use
utils
::
ByteSize
;
use
compiler
::
backend
::
x86_64
;
use
compiler
::
backend
::
x86_64
::
CodeGenerator
;
use
vm
::
machine_code
::
MachineCode
;
use
vm
::
context
::
VMContext
;
use
vm
::
MachineCode
;
use
vm
::
VMContext
;
use
utils
::
string_utils
;
...
...
src/compiler/backend/arch/x86_64/codegen.rs
View file @
84e5d475
...
...
@@ -2,7 +2,7 @@ use ast::ptr::P;
use
ast
::
ir
::
*
;
use
ast
::
inst
::
*
;
use
vm
::
machine_code
::
MachineCode
;
use
vm
::
MachineCode
;
pub
trait
CodeGenerator
{
fn
start_code
(
&
mut
self
,
func_name
:
MuTag
);
...
...
src/compiler/backend/arch/x86_64/inst_sel.rs
View file @
84e5d475
...
...
@@ -8,8 +8,8 @@ use ast::inst::MemoryOrder;
use
ast
::
op
;
use
ast
::
types
;
use
ast
::
types
::
MuType_
;
use
vm
::
context
::
VMContext
;
use
vm
::
machine_code
::
CompiledFunction
;
use
vm
::
VMContext
;
use
vm
::
CompiledFunction
;
use
compiler
::
CompilerPass
;
use
compiler
::
backend
::
x86_64
;
...
...
src/compiler/backend/code_emission.rs
View file @
84e5d475
...
...
@@ -2,7 +2,7 @@
use
compiler
::
CompilerPass
;
use
ast
::
ir
::
*
;
use
vm
::
context
::
VMContext
;
use
vm
::
VMContext
;
use
compiler
::
backend
::
emit_code
;
pub
struct
CodeEmission
{
...
...
src/compiler/backend/mod.rs
View file @
84e5d475
...
...
@@ -3,7 +3,7 @@ pub mod reg_alloc;
pub
mod
peephole_opt
;
pub
mod
code_emission
;
pub
type
ByteSize
=
us
ize
;
use
utils
::
ByteS
ize
;
// X86_64
...
...
@@ -39,7 +39,7 @@ mod arm;
// common data structure with target specific info
use
vm
::
context
::
VMContext
;
use
vm
::
VMContext
;
use
ast
::
types
::
*
;
use
ast
::
ptr
::
*
;
pub
fn
resolve_backend_type_info
(
ty
:
&
MuType
,
vm
:
&
VMContext
)
->
BackendTypeInfo
{
...
...
src/compiler/backend/peephole_opt.rs
View file @
84e5d475
use
compiler
::
CompilerPass
;
use
ast
::
ir
::
*
;
use
vm
::
context
::
VMContext
;
use
vm
::
machine_code
::
CompiledFunction
;
use
vm
::
VMContext
;
use
vm
::
CompiledFunction
;
pub
struct
PeepholeOptimization
{
name
:
&
'static
str
...
...
src/compiler/backend/reg_alloc/graph_coloring/liveness.rs
View file @
84e5d475
extern
crate
nalgebra
;
use
vm
::
machine_code
::
CompiledFunction
;
use
vm
::
machine_code
::
MachineCode
;
use
vm
::
CompiledFunction
;
use
vm
::
MachineCode
;
use
ast
::
ir
::
*
;
use
ast
::
types
;
use
compiler
::
backend
;
...
...
src/compiler/backend/reg_alloc/mod.rs
View file @
84e5d475
...
...
@@ -4,7 +4,7 @@ use compiler::CompilerPass;
use
compiler
::
PassExecutionResult
;
use
compiler
;
use
ast
::
ir
::
*
;
use
vm
::
context
::
VMContext
;
use
vm
::
VMContext
;
use
compiler
::
backend
::
init_machine_regs_for_func
;
...
...
src/compiler/mod.rs
View file @
84e5d475
extern
crate
hprof
;
use
ast
::
ir
::
*
;
use
vm
::
context
::
VMContext
;
use
vm
::
VMContext
;
use
std
::
cell
::
RefCell
;
use
std
::
sync
::
Arc
;
...
...
src/compiler/passes/control_flow.rs
View file @
84e5d475
use
ast
::
ir
::
*
;
use
ast
::
inst
::
Instruction_
::
*
;
use
utils
::
vec_utils
::
as_str
as
vector_as_str
;
use
vm
::
context
::
VMContext
;
use
vm
::
VMContext
;
use
compiler
::
CompilerPass
;
...
...
src/compiler/passes/def_use.rs
View file @
84e5d475
use
ast
::
ir
::
*
;
use
ast
::
ptr
::
*
;
use
vm
::
context
::
VMContext
;
use
vm
::
VMContext
;
use
compiler
::
CompilerPass
;
...
...
src/compiler/passes/mod.rs
View file @
84e5d475
use
ast
::
ir
::
*
;
use
vm
::
context
::
VMContext
;
use
vm
::
VMContext
;
mod
def_use
;
mod
tree_gen
;
...
...
src/compiler/passes/trace_gen.rs
View file @
84e5d475
use
ast
::
ir
::
*
;
use
vm
::
context
::
VMContext
;
use
vm
::
VMContext
;
use
compiler
::
CompilerPass
;
pub
struct
TraceGen
{
...
...
src/compiler/passes/tree_gen.rs
View file @
84e5d475
...
...
@@ -2,7 +2,7 @@ use ast::ir::*;
use
ast
::
inst
::
*
;
use
ast
::
ir_semantics
::
*
;
use
vm
::
context
::
VMContext
;
use
vm
::
VMContext
;
use
compiler
::
CompilerPass
;
use
compiler
::
PassExecutionResult
;
...
...
src/utils/mod.rs
View file @
84e5d475
#
!
[
allow
(
dead_code
)]
pub
type
ByteSize
=
usize
;
mod
linked_hashset
;
pub
use
utils
::
linked_hashset
::
LinkedHashSet
;
pub
use
utils
::
linked_hashset
::
LinkedHashMap
;
...
...
src/vm/context.rs
View file @
84e5d475
extern
crate
immix_rust
as
gc
;
use
std
::
collections
::
HashMap
;
use
ast
::
ptr
::
P
;
...
...
@@ -6,6 +8,7 @@ use ast::types::*;
use
compiler
::
backend
;
use
compiler
::
backend
::
BackendTypeInfo
;
use
vm
::
machine_code
::
CompiledFunction
;
use
vm
::
vm_options
::
VMOptions
;
use
std
::
sync
::
RwLock
;
use
std
::
cell
::
RefCell
;
...
...
@@ -51,6 +54,9 @@ impl <'a> VMContext {
ret
.is_running
.store
(
false
,
Ordering
::
SeqCst
);
ret
.next_id
.store
(
RESERVED_NODE_IDS_FOR_MACHINE
,
Ordering
::
SeqCst
);
let
options
=
VMOptions
::
default
();
gc
::
gc_init
(
options
.immix_size
,
options
.lo_size
,
options
.n_gcthreads
);
ret
}
...
...
src/vm/mod.rs
View file @
84e5d475
pub
mod
context
;
mod
context
;
mod
vm_options
;
mod
machine_code
;
pub
mod
machine_code
;
pub
use
vm
::
context
::
VMContext
;
pub
use
vm
::
vm_options
::
VMOptions
;
pub
use
vm
::
machine_code
::
CompiledFunction
;
pub
use
vm
::
machine_code
::
MachineCode
;
\ No newline at end of file
src/vm/vm_options.rs
0 → 100644
View file @
84e5d475
use
std
::
default
::
Default
;
use
utils
::
ByteSize
;
pub
struct
VMOptions
{
// gc options
pub
immix_size
:
ByteSize
,
pub
lo_size
:
ByteSize
,
pub
n_gcthreads
:
usize
}
pub
const
DEFAULT_IMMIX_SIZE
:
ByteSize
=
1
<<
16
;
// 64Mb
pub
const
DEFAULT_LO_SIZE
:
ByteSize
=
1
<<
16
;
// 64Mb
pub
const
DEFAULT_N_GCTHREADS
:
usize
=
8
;
impl
Default
for
VMOptions
{
fn
default
()
->
VMOptions
{
VMOptions
{
immix_size
:
DEFAULT_IMMIX_SIZE
,
lo_size
:
DEFAULT_LO_SIZE
,
n_gcthreads
:
DEFAULT_N_GCTHREADS
}
}
}
\ No newline at end of file
tests/test_ir/test_ir.rs
View file @
84e5d475
...
...
@@ -5,7 +5,7 @@ use self::mu::ast::ir::*;
use
self
::
mu
::
ast
::
inst
::
*
;
use
self
::
mu
::
ast
::
ptr
::
*
;
use
self
::
mu
::
ast
::
op
::
*
;
use
self
::
mu
::
vm
::
context
::
*
;
use
self
::
mu
::
vm
::
*
;
use
std
::
cell
::
RefCell
;
use
std
::
collections
::
HashMap
;
...
...
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