- 05 Dec, 2016 1 commit
-
-
qinsoon authored
replacing most uses of HashMap with LinkedHashMap. This will reduce (if not eliminate) undeterminism in the compilation. Copied LinkedHashMap implementation to local so that I can implement encode/decode and other necessary methods
-
- 04 Dec, 2016 1 commit
-
-
qinsoon authored
-
- 24 Nov, 2016 1 commit
-
-
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)
-
- 23 Nov, 2016 2 commits
- 22 Nov, 2016 2 commits
- 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 1 commit
-
-
qinsoon authored
-
- 16 Nov, 2016 1 commit
-
-
qinsoon authored
-
- 15 Nov, 2016 1 commit
-
-
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
-
- 11 Nov, 2016 1 commit
-
-
qinsoon authored
-
- 04 Nov, 2016 1 commit
-
-
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.
-
- 02 Nov, 2016 1 commit
-
-
qinsoon authored
now
-
- 01 Nov, 2016 1 commit
-
-
qinsoon authored
-
- 28 Oct, 2016 1 commit
-
-
qinsoon authored
-
- 25 Oct, 2016 4 commits
- 20 Oct, 2016 1 commit
-
-
qinsoon authored
-
- 19 Oct, 2016 2 commits
- 17 Oct, 2016 2 commits
- 14 Oct, 2016 2 commits
- 11 Oct, 2016 2 commits
- 10 Oct, 2016 1 commit
-
-
qinsoon authored
-
- 05 Oct, 2016 1 commit
-
-
qinsoon authored
-
- 28 Sep, 2016 2 commits
- 22 Sep, 2016 1 commit
-
-
qinsoon authored
-
- 21 Sep, 2016 1 commit
-
-
qinsoon authored
cannot get it work by loading it dynamically. Rust mangles mu runtime functions in test executable (even if I stated #[no_mangle]), so the dynamic library cannot call mu runtime functions (symbols not found)
-
- 20 Sep, 2016 1 commit
-
-
qinsoon authored
(for blocks created during instruction selection)
-
- 16 Aug, 2016 1 commit
-
-
qinsoon authored
-
- 12 Aug, 2016 1 commit
-
-
qinsoon authored
-
- 09 Aug, 2016 1 commit
-
-
qinsoon authored
-
- 29 Jul, 2016 1 commit
-
-
qinsoon authored
-