Commit graph

  • bc3e07536a fix comments in pmov Quentin Carbonneaux 2015-08-21 16:13:55 -04:00
  • 681a4c8e3b update dopm() Quentin Carbonneaux 2015-08-21 16:06:06 -04:00
  • 60b8b06aab write more tests for dopm() Quentin Carbonneaux 2015-08-21 16:05:50 -04:00
  • 13e04cd1de add helpful diagnostics Quentin Carbonneaux 2015-08-21 14:22:08 -04:00
  • dd805c38b1 add test scaffolding code Quentin Carbonneaux 2015-08-21 13:52:51 -04:00
  • c34cde0e6c start exhaustive testing dopm() Quentin Carbonneaux 2015-08-21 13:52:10 -04:00
  • a45aceacdb work in progress on parallel moves Quentin Carbonneaux 2015-08-20 17:23:41 -04:00
  • 3b708f506f use loop frequency in ties of rpo Quentin Carbonneaux 2015-08-20 13:49:49 -04:00
  • 7d36a71a22 fix two bugs in rega Quentin Carbonneaux 2015-08-20 13:38:32 -04:00
  • 1abed68cc3 change cmp $0, %reg, to test %reg, %reg Quentin Carbonneaux 2015-08-20 11:56:48 -04:00
  • fd31290dd3 fix emit(OCopy) and use pointers in max.ssa Quentin Carbonneaux 2015-08-20 11:51:59 -04:00
  • 328cdc448c alloc16 comes for free, iiuc the abi Quentin Carbonneaux 2015-08-19 15:16:14 -04:00
  • ce82136e96 remove non-critical diagnostics Quentin Carbonneaux 2015-08-19 15:10:07 -04:00
  • 2c6f6b4b2d add truncation operation Quentin Carbonneaux 2015-08-19 14:56:33 -04:00
  • 3c3175ca73 remove dead code from rega Quentin Carbonneaux 2015-08-19 13:59:23 -04:00
  • ad064eae9a remove old comment Quentin Carbonneaux 2015-08-19 13:56:39 -04:00
  • 9575c46feb the abi is unclear, practice suggests that change Quentin Carbonneaux 2015-08-19 13:16:26 -04:00
  • f48fc69f9e treat two instruction args uniformly in rega Quentin Carbonneaux 2015-08-19 11:41:05 -04:00
  • 95bcc46e15 OXTestw should not have 64bits arguments Quentin Carbonneaux 2015-08-19 10:58:04 -04:00
  • e361a51248 new NAlign constant and fix frame size computation Quentin Carbonneaux 2015-08-19 10:47:27 -04:00
  • 61d07bbb14 slight update to slot tests Quentin Carbonneaux 2015-08-18 21:35:19 -04:00
  • e9bb9e586b fix bug in alignment constraints of spill slots Quentin Carbonneaux 2015-08-18 21:23:32 -04:00
  • 6f09869ea1 move spill and emit to the new slot system Quentin Carbonneaux 2015-08-18 19:11:48 -04:00
  • 627e45e330 store the edit tag Quentin Carbonneaux 2015-08-18 18:19:45 -04:00
  • 17cba8793e add comment about variadic functions in abi Quentin Carbonneaux 2015-08-18 17:19:08 -04:00
  • f8cd43adc4 clarify the abi Quentin Carbonneaux 2015-08-18 17:15:47 -04:00
  • ff63704790 start summing up the abi Quentin Carbonneaux 2015-08-18 17:08:43 -04:00
  • 0f879b9b02 tweak block-border heuristic for reg. allocation Quentin Carbonneaux 2015-08-17 21:16:03 -04:00
  • a767351bdd remove obsolete comment Quentin Carbonneaux 2015-08-17 21:01:20 -04:00
  • 40d0582ee0 add sign/zero extension operations Quentin Carbonneaux 2015-08-17 19:00:51 -04:00
  • 5668e93147 refine the clobber code Quentin Carbonneaux 2015-08-16 19:18:40 -04:00
  • c62b175442 fix two heuristics in rega Quentin Carbonneaux 2015-08-16 17:43:35 -04:00
  • 0d5b5cefcb swap a test in collatz Quentin Carbonneaux 2015-08-16 17:40:02 -04:00
  • c334258427 compactify collatz test Quentin Carbonneaux 2015-08-16 14:42:27 -04:00
  • 6dc9646f5e remove obsolete comment about MEM Quentin Carbonneaux 2015-08-16 14:21:48 -04:00
  • 7bbd361083 add the mul instruction Quentin Carbonneaux 2015-08-16 14:19:54 -04:00
  • 27f4eae43e remove round-robin in ralloc (need preferences) Quentin Carbonneaux 2015-08-16 12:41:06 -04:00
  • e1725c0cdd make sure tests emitted are encodable Quentin Carbonneaux 2015-08-16 12:39:50 -04:00
  • ca8c320dec replace RMem refs with an OAddr opertation Quentin Carbonneaux 2015-08-16 12:12:19 -04:00
  • 16fe5c1366 compile branches on and using test Quentin Carbonneaux 2015-08-16 11:34:52 -04:00
  • ca3dc70ff3 add a large test Quentin Carbonneaux 2015-08-15 20:54:06 -04:00
  • 2b34ec6d24 forgot about phi nodes in the spiller Quentin Carbonneaux 2015-08-15 20:51:36 -04:00
  • bccfc34ca3 make sure eflags-writing do not disappear Quentin Carbonneaux 2015-08-15 20:49:20 -04:00
  • abbe53285f clobber check code was wrong in dopm() Quentin Carbonneaux 2015-08-15 20:48:30 -04:00
  • 4699fb7663 fix bug in parallel moves code Quentin Carbonneaux 2015-08-15 17:25:41 -04:00
  • 670604e91f handle OAnd in isel Quentin Carbonneaux 2015-08-15 17:25:20 -04:00
  • ae5fe31482 change strategy for phi nodes Quentin Carbonneaux 2015-08-14 21:43:29 -04:00
  • 730bce080c avoid depending on uninitialized r Quentin Carbonneaux 2015-08-14 16:12:25 -04:00
  • 67d3c2834d tentative support for fast allocs Quentin Carbonneaux 2015-08-14 15:54:25 -04:00
  • 0f3846e261 hack a slot-packing function and its tests Quentin Carbonneaux 2015-08-14 14:52:01 -04:00
  • 5ca5b74d07 use the same bitset for regs and tmps in rega() Quentin Carbonneaux 2015-08-13 16:30:20 -04:00
  • 5fc8104e00 major lifting: get rid of RReg Quentin Carbonneaux 2015-08-13 16:10:54 -04:00
  • 78bf28f56e add basic support for stack allocation Quentin Carbonneaux 2015-08-12 15:25:53 -04:00
  • 8be35bf2be minor size optimization for 0XSet Quentin Carbonneaux 2015-08-12 12:01:47 -04:00
  • 8020748fbf fix typos in selcmp and comment Quentin Carbonneaux 2015-08-12 10:14:59 -04:00
  • b6e9041a67 comment about immutables Quentin Carbonneaux 2015-08-11 21:24:44 -04:00
  • 79c3d8968b fail on constant comparisons Quentin Carbonneaux 2015-08-11 20:42:29 -04:00
  • 7ce4d334e5 add a small size optimization to emit Quentin Carbonneaux 2015-08-11 19:49:52 -04:00
  • d37db3970f support for large constants Quentin Carbonneaux 2015-08-11 19:37:26 -04:00
  • 0edafe814f store gcd result in a Quentin Carbonneaux 2015-08-11 16:41:27 -04:00
  • 06d6cc78f0 use proper store suffix in max test Quentin Carbonneaux 2015-08-11 16:39:05 -04:00
  • 1583f4bd32 split store into store{w,l} Quentin Carbonneaux 2015-08-11 16:26:12 -04:00
  • f6df9e55c5 prefix register macros Quentin Carbonneaux 2015-08-11 15:16:13 -04:00
  • ec5042148e fix my sloppy understanding of x86 assembly! Quentin Carbonneaux 2015-08-11 13:40:54 -04:00
  • 03785fbc9a use round-robin in ralloc Quentin Carbonneaux 2015-08-10 10:02:07 -04:00
  • 44329afff5 add funny little max ssa test Quentin Carbonneaux 2015-08-09 19:34:20 -04:00
  • 29c5f508b9 cosmetics Quentin Carbonneaux 2015-08-09 17:55:05 -04:00
  • 89039dcac1 movsb is not movsbl without suffix... Quentin Carbonneaux 2015-08-09 16:49:11 -04:00
  • 88d9573b76 attempt factoring store emission code Quentin Carbonneaux 2015-08-09 16:42:36 -04:00
  • e3b8ea4904 parse variants of store Quentin Carbonneaux 2015-08-09 16:42:12 -04:00
  • a69fe2c6c5 ugly support for store/load Quentin Carbonneaux 2015-08-09 12:13:19 -04:00
  • e234a7a188 parse operations with no result Quentin Carbonneaux 2015-08-09 12:12:03 -04:00
  • e5c68a88ce simplify parsing Quentin Carbonneaux 2015-08-08 18:32:03 -04:00
  • 76bf96b268 add nmem to opdesc for use in the spiller Quentin Carbonneaux 2015-08-08 18:06:47 -04:00
  • 9966a181c1 add some load/store operations Quentin Carbonneaux 2015-08-08 17:53:48 -04:00
  • a6bbd5c980 fix wrong instruction in emit Quentin Carbonneaux 2015-08-08 01:04:46 -04:00
  • 4b0a865fee forbid two memory operands for comparisons Quentin Carbonneaux 2015-08-08 00:31:52 -04:00
  • 1721fe4313 fix a bug in setloc Quentin Carbonneaux 2015-08-08 00:18:31 -04:00
  • 83131357f7 add very nice spilling stress test Quentin Carbonneaux 2015-08-07 20:28:21 -04:00
  • dcf07ba55c minor change in rpo walking Quentin Carbonneaux 2015-08-07 19:53:46 -04:00
  • 75eb0c3224 simplify frequent pred detection in rega Quentin Carbonneaux 2015-08-07 19:52:50 -04:00
  • 23846dd534 factor some comparison emitting code Quentin Carbonneaux 2015-08-07 16:43:43 -04:00
  • 0c5b683658 add some more specific comments Quentin Carbonneaux 2015-08-07 16:27:53 -04:00
  • 9d6e499132 the only wrong use count is the one of r Quentin Carbonneaux 2015-08-07 16:10:24 -04:00
  • e240ec3026 I forgot cmp as flag setting instruction! Quentin Carbonneaux 2015-08-07 16:04:07 -04:00
  • e65a615c90 jez becomes jnz, complete cmp+jmp contraction Quentin Carbonneaux 2015-08-07 16:01:07 -04:00
  • ad012e9d55 implement smarter compare+branch Quentin Carbonneaux 2015-08-07 14:27:20 -04:00
  • 7dc3e5dcf6 split cmp in two sizes Quentin Carbonneaux 2015-08-06 16:35:17 -04:00
  • 27f32f26b3 get rid of the iteration macro Quentin Carbonneaux 2015-08-06 14:18:35 -04:00
  • 2482f4dbbb fix two bugs in isel Quentin Carbonneaux 2015-08-06 13:08:31 -04:00
  • e5983ba1a2 fix 2 bad bugs in rega and improve substraction Quentin Carbonneaux 2015-08-05 21:46:15 -04:00
  • 7cb3e8587f use nreg only when != NReg Quentin Carbonneaux 2015-08-05 16:26:21 -04:00
  • 078522cf5d use a temporary for constant comparisons Quentin Carbonneaux 2015-08-05 16:13:18 -04:00
  • dba612623f fix limit bug in spill Quentin Carbonneaux 2015-08-05 16:08:23 -04:00
  • d673d8fcd2 remove useless TODO for now Quentin Carbonneaux 2015-08-05 14:51:56 -04:00
  • 9c7b06d68f quick fix for comparisons with constants Quentin Carbonneaux 2015-08-05 12:47:10 -04:00
  • 246a48ba94 start work on comparisons Quentin Carbonneaux 2015-08-05 11:37:10 -04:00
  • 1477dffe32 use cmp $0, it works with spill slots Quentin Carbonneaux 2015-08-04 19:39:01 -04:00
  • df358ad6d2 use correct sizes during reg allocation Quentin Carbonneaux 2015-08-03 14:06:59 -04:00
  • d586852552 print registers with numbers Quentin Carbonneaux 2015-08-03 14:06:10 -04:00