- 30 Nov, 2016 3 commits
- 29 Nov, 2016 1 commit
-
-
qinsoon authored
a jump that directly is directly followed by a label of its target can be removed.
-
- 25 Nov, 2016 1 commit
-
-
qinsoon authored
-
- 24 Nov, 2016 3 commits
-
-
qinsoon authored
1. asm call do not use all argument registers (otherwise it will keep them alive) 2. spilling a register that is used and defined in one instruction will result in creating one new temporary, instead of two 3. spilling now deals with floating point 4. SELECT with int8 is implemented using conditional jump (cmov cannot take reg8) 5. postcall convention now deals correctly with fp return values 6. reg alloc conservative() was wrong in a few commits ago, fixed it 7. in liveness analysis, when finding a move between a temp and a register, find the color for the register (such as RAX for EAX)
-
qinsoon authored
-
qinsoon authored
-
- 23 Nov, 2016 3 commits
- 22 Nov, 2016 3 commits
-
-
qinsoon authored
for movl %edi %edi (where two operands are actually %edi %rdi), we will do a check, and ensure it get removed
-
qinsoon authored
changed a condition on coealescing. Fixed a bug in spilling rewrite. Currently test_extern_Func is broken
-
qinsoon authored
was using nalgebra::DMatrix to implement a graph
-
- 18 Nov, 2016 1 commit
-
-
qinsoon authored
1. see vm/vm_options.rs for usage and default values 2. added mu_fastimpl_new_with_opts under vm/api/api_impl/muvm.rs
-
- 17 Nov, 2016 2 commits
- 16 Nov, 2016 4 commits
- 15 Nov, 2016 3 commits
-
-
qinsoon authored
internally int1 is int8
-
qinsoon authored
1. compiler knows all the registers 2. but only 64bits register is a color (for reg alloc) 3. backend records the length of GPR for each operand during instruction selection 4. after reg alloc, when replacing temp with a color, find corresponding GPR for the length recorded before
-
qinsoon authored
-
- 14 Nov, 2016 3 commits
- 11 Nov, 2016 4 commits
- 10 Nov, 2016 1 commit
-
-
qinsoon authored
-
- 09 Nov, 2016 1 commit
-
-
qinsoon authored
Note: made two places in api implementation as unimplemented as the instruction/type chnaged.
-
- 08 Nov, 2016 2 commits
- 07 Nov, 2016 2 commits
- 04 Nov, 2016 2 commits
-
-
qinsoon authored
1. grow/shrink frame size in the pro/epilogue. Note: though we removed push/pop for unused callee saved registers, we still reserve frame space for them. Because we generate spill on frame before we know exactly how large a space is. The solution is to make spill locations patchable. 2. control flow will combine branches in switch instruction if they all target the same destination.
-
qinsoon authored
-
- 03 Nov, 2016 1 commit
-
-
qinsoon authored
-