Commit Graph

  • bf92e7c02f Allow pinned-vregs to be implicit liveins. (#30) Chris Fallin 2022-03-18 10:13:56 -07:00
  • b1a512dbf6 Checker analysis: change order of block processing for better efficiency. (#29) Chris Fallin 2022-03-10 10:35:08 -08:00
  • fe021ad6d4 Simplify pinned-vreg API: don't require slice of all pinned vregs. (#28) Chris Fallin 2022-03-04 15:12:16 -08:00
  • 14442df3fc Support for debug-labels. (#27) Chris Fallin 2022-03-03 16:58:33 -08:00
  • d9d97451f8 Merge pull request #26 from cfallin/new-checker Chris Fallin 2022-01-25 16:18:05 -08:00
  • 7ce69de5b0 Address review comments. Chris Fallin 2022-01-20 19:44:28 -08:00
  • 2133606366 Fix doc-tests: escape figure properly Chris Fallin 2022-01-20 17:21:32 -08:00
  • ccd6b4fc2c Remove DefAlloc -- no longer needed. Chris Fallin 2022-01-19 23:57:31 -08:00
  • 3b037f3c9e Rework checker to not require DefAlloc by tracking all vregs on each alloc. Chris Fallin 2022-01-19 23:31:32 -08:00
  • 56a8f844a8 Merge pull request #25 from Amanieu/perf Chris Fallin 2022-01-11 14:35:10 -08:00
  • 6b1a5e8b1b Address review feedback Amanieu d'Antras 2022-01-11 22:27:15 +00:00
  • be61078e4e Format Cargo.toml Amanieu d'Antras 2022-01-11 13:34:50 +00:00
  • ee4de54240 Guard trace! behind cfg!(debug_assertions) Amanieu d'Antras 2022-01-11 13:30:13 +00:00
  • 2d9d5dd82b Rearrange some struct fields to work better with u64_key/u128_key Amanieu d'Antras 2022-01-11 12:48:28 +00:00
  • 693fb6a975 Only emit DefAlloc edits when the "checker" feature is enabled. Amanieu d'Antras 2022-01-11 11:32:16 +00:00
  • d95a9d9399 Combine sort keys into u64/u128 Amanieu d'Antras 2022-01-11 10:38:50 +00:00
  • 053375f049 Remove PRegData::reg and use PReg::from_index instead Amanieu d'Antras 2022-01-11 04:07:05 +00:00
  • 74928b83fa Replace all assert! with debug_assert! Amanieu d'Antras 2022-01-11 03:54:08 +00:00
  • a27f93f01e Merge pull request #23 from Amanieu/iter Chris Fallin 2022-01-05 10:02:35 -08:00
  • 6f59cd407b Use block_insts_and_edits in the checker Amanieu d'Antras 2021-12-27 22:09:07 +01:00
  • 8ab44c383e Add a helper to iterate over insts and edits of a block in order Amanieu d'Antras 2021-12-27 21:33:43 +01:00
  • 8752a8c5bd Merge pull request #17 from Amanieu/fixed_stack Chris Fallin 2021-12-12 22:15:55 -08:00
  • 51493ab03a Apply review feedback Amanieu d'Antras 2021-12-12 00:33:30 +00:00
  • 38ffc479c2 Simplify the internal representation of PReg Amanieu d'Antras 2021-11-28 18:49:47 +00:00
  • 870e4729e1 Add fixed stack slots to the fuzzer Amanieu d'Antras 2021-11-28 17:52:50 +00:00
  • 8f435243e0 Properly handle fixed stack slots during multi-fixed-reg fixup Amanieu d'Antras 2021-11-28 17:52:50 +00:00
  • 707aacd818 Split up functions in liverange.rs Amanieu d'Antras 2021-11-28 17:52:50 +00:00
  • 4f8e115115 Refactor requirement computation Amanieu d'Antras 2021-11-28 17:52:50 +00:00
  • 77e6a9e0d7 Add support for fixed stack slots Amanieu d'Antras 2021-11-28 17:52:50 +00:00
  • 2f433929c4 Merge pull request #21 from cfallin/fuzzbug-20211204 Chris Fallin 2021-12-05 09:56:37 -08:00
  • ef6c8f3226 Fix fuzzbug: add checker metadata for new vreg on multi-fixed-reg fixup move. Chris Fallin 2021-12-04 23:30:30 -08:00
  • 822f2bc937 Merge pull request #18 from Amanieu/blockparam Chris Fallin 2021-12-01 10:24:12 -08:00
  • 6621a57cb7 Fix liveranges for branch parameters Amanieu d'Antras 2021-12-01 01:43:02 +00:00
  • 0cb3a8019f Rework the API for outgoing blockparams Amanieu d'Antras 2021-11-30 02:22:15 +00:00
  • fdd9913a7a Merge pull request #20 from cfallin/fuzzbug-fix Chris Fallin 2021-11-30 15:45:35 -08:00
  • c53fbb4a5c Fix fuzzbug related to bundle priority ordering. Chris Fallin 2021-11-30 14:27:35 -08:00
  • c7bc6c941c Merge pull request #15 from cfallin/relicensing Chris Fallin 2021-11-18 12:40:54 -08:00
  • 9774e97939 Merge pull request #16 from Amanieu/misc Chris Fallin 2021-11-15 17:50:47 -08:00
  • a516e6d6f3 Return safepoint_slots as Allocations instead of SpillSlots Amanieu d'Antras 2021-09-16 14:02:26 +01:00
  • a527a6d25a Remove unused clobbers vector Amanieu d'Antras 2021-11-01 00:08:18 +00:00
  • cf0d515709 Relicense fully to Apache-2.0 WITH LLVM-exception. Chris Fallin 2021-11-10 10:26:39 -08:00
  • 358c831b31 Remove regs from MachineEnv Amanieu d'Antras 2021-09-16 09:14:07 +01:00
  • af527aca88 Fix PReg indexing with >32 pregs Amanieu d'Antras 2021-09-16 14:49:23 +01:00
  • 44612690dc Merge pull request #13 from Amanieu/operand_encoding Chris Fallin 2021-09-14 08:56:07 -07:00
  • 9e2ab3d5f7 Address review feedback Amanieu d'Antras 2021-09-14 13:12:52 +01:00
  • 35ed2109b1 Adjust Operand encoding Amanieu d'Antras 2021-09-13 08:33:17 +01:00
  • ef2c9b3f26 Merge pull request #11 from Amanieu/requirement Chris Fallin 2021-09-09 10:37:17 -07:00
  • c56e695ff7 Merge pull request #9 from Amanieu/remove_is_call Chris Fallin 2021-09-09 10:36:58 -07:00
  • 448f210e32 Simplify Requirement by removing register classes Amanieu d'Antras 2021-09-05 19:15:54 +02:00
  • a243c4e575 Remove Function::is_call Amanieu d'Antras 2021-09-03 13:30:23 +02:00
  • 7724dc6f5a Merge pull request #10 from cfallin/cargo-deny-config Chris Fallin 2021-09-06 20:01:12 -07:00
  • 8191d6cbcf Add cargo-deny config. Chris Fallin 2021-09-03 09:04:20 -07:00
  • 57ccaefa04 Merge pull request #1 from cfallin/initial-regalloc Chris Fallin 2021-08-31 18:19:59 -07:00
  • 6f0893d69d Address review comments. Chris Fallin 2021-08-31 17:56:06 -07:00
  • 6389071e09 Address review comments. Chris Fallin 2021-08-31 17:42:50 -07:00
  • b19fa4857f Rename operand positions to Early and Late, and make weights f16/f32 values. Chris Fallin 2021-08-31 17:31:23 -07:00
  • 3a18564e98 Addressed more review comments. Chris Fallin 2021-08-30 17:51:55 -07:00
  • 6d313f2b56 Address review comments: more doc comments and some minor refactorings. Chris Fallin 2021-08-30 17:15:37 -07:00
  • e10bffbca8 Fix bug in refactored BitVec (found by @Amanieu). Chris Fallin 2021-08-14 13:40:43 -07:00
  • 69ad31f013 Replace remaining instances of use of debug feature with debug_assertions. Chris Fallin 2021-08-12 17:35:55 -07:00
  • 8ed83e3a57 Fix BitVec::get_or_insert to scan only once. Chris Fallin 2021-08-12 15:40:34 -07:00
  • f1a989f1b7 Add malloc/free optimization to TODO Chris Fallin 2021-08-12 14:53:53 -07:00
  • ffc06b2099 Debug output for Operands: omit default/most common positions. Chris Fallin 2021-08-12 14:49:42 -07:00
  • c071e44fc0 Derive PartialOrd/Ord/Hash for Operand. Chris Fallin 2021-08-12 14:43:13 -07:00
  • eaf8647fdf BitVec: remove zero words to avoid expanding when unnecessary. Chris Fallin 2021-08-12 14:40:18 -07:00
  • 82b7e6ba7b Review feedback: bitvec: struct-like enum variants, and factor out one-item cache. Chris Fallin 2021-08-12 14:33:35 -07:00
  • 7652b4b109 Review feedback. Chris Fallin 2021-08-12 14:27:20 -07:00
  • 2f856435f4 Review feedback. Chris Fallin 2021-08-12 14:08:10 -07:00
  • b76b7747d0 Fix comment in postorder.rs. Chris Fallin 2021-08-12 14:00:20 -07:00
  • 1f30958b5a Improve domtree as per @Amanieu's feedback. Chris Fallin 2021-08-12 12:13:56 -07:00
  • 3e1e0f39b6 Convert all log::debug to log::trace. Chris Fallin 2021-08-12 12:05:19 -07:00
  • 38323e0c27 Some more design-doc and TODO updates from @julian-seward1's feedback. Chris Fallin 2021-08-12 11:39:38 -07:00
  • 0c795842fd Add some more detail about spill bundles to design doc. Chris Fallin 2021-08-12 11:26:45 -07:00
  • a591535fe9 Use "vector" or "sequence" in lieu of "list" in DESIGN.md, except when referring to linked lists. Chris Fallin 2021-08-12 11:23:44 -07:00
  • 84285c26fb Rename OperandPolicy to OperandConstraint as per feedback from @julian-seward1. Chris Fallin 2021-08-12 11:17:52 -07:00
  • c9e8a87cea Update TODO with new items from private feedback from @julian-seward1. Chris Fallin 2021-08-12 11:17:37 -07:00
  • 4c193a9499 Fix heuristic-cost function overflow with high loop depth (found by @Amanieu). Chris Fallin 2021-07-28 12:37:32 -07:00
  • 66d6821c7b Fix perf issue with many safepoints. Chris Fallin 2021-06-22 14:06:59 -07:00
  • f27abc9c48 Remove infinite-loop check: it is not a high enough bound in some pathological cases (e.g., gc::many_live_refs test in wasmtime), and it has served its purpose in testing. We can rely on more detailed assertions, e.g. that splits actually shrink bundles and that bundles evict only lower-priority bundles, instead. Chris Fallin 2021-06-22 12:06:12 -07:00
  • 245c212289 Revert "Add fixed-non-allocatable operand support." Chris Fallin 2021-06-20 23:03:44 -07:00
  • 21fb233809 reduce nesting level in DESIGN.md to make pandoc-to-pdf happy Chris Fallin 2021-06-19 13:41:26 -07:00
  • a58d36fd94 TODO update: make note on idea for large-input support Chris Fallin 2021-06-19 13:20:11 -07:00
  • 22eed0a6ae Make bitvec public; it is used by regalloc.rs shim too. Chris Fallin 2021-06-19 12:47:02 -07:00
  • 736f636c36 Add fixed-non-allocatable operand support. Chris Fallin 2021-06-19 12:17:18 -07:00
  • 50eb6fc42f Keep internal modules private, but re-export under fuzzing feature flag Chris Fallin 2021-06-19 12:08:37 -07:00
  • caf7274efd Remove unused pred_pos Chris Fallin 2021-06-19 11:48:54 -07:00
  • 36975b8b6f Add doc-comment note on Edit that stack-to-stack moves are never generated. Chris Fallin 2021-06-19 11:34:05 -07:00
  • b36a563d69 Cleanup: split allocator implemntation into 11 files of more reasonable size. Chris Fallin 2021-06-18 16:51:08 -07:00
  • 6944bc4735 Fix typo (thanks @bjorn3). Chris Fallin 2021-06-18 15:24:11 -07:00
  • 6ec6207717 Add design document. Chris Fallin 2021-06-18 13:59:12 -07:00
  • a686d5a513 Always recompute prio when recomputing bundle properties; otherwise is zero on new bundles and causes spill weight to be zeroed Chris Fallin 2021-06-11 13:21:50 -07:00
  • ea814225a2 Update TODO list Chris Fallin 2021-06-10 23:34:18 -07:00
  • 1bd1248cb5 Avoid stack-to-stack moves by allocating an extra spillslot and re-using the scratch reg instead. Chris Fallin 2021-06-10 22:36:02 -07:00
  • 09b2dd4e73 TODO list update Chris Fallin 2021-06-10 17:34:04 -07:00
  • fcbf384d74 Use hashset to avoid linear scan in conflict-bundle-set deduplication Chris Fallin 2021-06-09 23:53:54 -07:00
  • 4ba7b2f57e Improve redundant-move elimination: don't skip the case where we don't hvae vreg metadata within a BB. Instead, keep the checker happy by feeding more metadata to it on every move. Chris Fallin 2021-06-09 23:29:48 -07:00
  • 2851ac80c7 Working redundant-move elimination Chris Fallin 2021-06-09 23:03:16 -07:00
  • f898b8dcbd Some fuzzbug fixes Chris Fallin 2021-06-09 20:58:54 -07:00
  • e33790d8e7 do not remove redundant move if we don't have local (within-basic-block) vreg tags, as this might throw off the checker Chris Fallin 2021-06-08 01:30:29 -07:00
  • 0f270e5bcc WIP. Chris Fallin 2021-06-08 01:14:10 -07:00