summaryrefslogtreecommitdiff
path: root/src/mir
AgeCommit message (Collapse)AuthorFilesLines
2019-06-02MIR - Refactor LValue to reduce size and linked-list-ness (seems to have had ↵John Hodge13-1250/+1394
a ~10% reduction in memory usage)
2019-05-25MIR - Condense LValue debug formatJohn Hodge1-8/+8
2019-05-19All - Switch to using interned (de-duplicated) RcString-s instead of ↵John Hodge4-14/+13
std::string for paths/identifiers
2019-05-14Trans Enumerate - Cache paths used by functionJohn Hodge2-1/+19
2019-05-09MIR Optimise - Work around De-Temporary bug that was mis-optimising Vec::retainJohn Hodge1-0/+14
2019-05-05MIR - Wrap HIR::Path-s in MIR::Constant in unique_ptrJohn Hodge7-44/+91
2019-05-04Match Ergonomics - Auto-deref in `ref` patterns to get `&T`John Hodge2-2/+9
2019-05-03Lower MIR - (minor) Replace TU_MATCH with TU_MATCH_HDRJohn Hodge1-29/+26
2019-04-28MIR Gen - Support `match` in a `match` guard armJohn Hodge3-9/+51
2019-04-28MIR Optimise - Fix (and detect) a recursive inline, remove drops of GC'd ↵John Hodge1-2/+57
locals, disable a really expensive pass
2019-04-25MIR - Reduce size of LValue::Static by putting the HIR::Path behind a pointerJohn Hodge7-11/+67
2019-04-21MIR Lower - Fix wrong type used for validation return typeJohn Hodge1-2/+2
2019-03-22MIR From HIR - TODO for try-catch handlingJohn Hodge1-0/+5
2019-03-22Common - Add another `ord` overload, fix breakage from thatJohn Hodge2-2/+2
2019-03-02Lower MIR - Wildcard pattern handlingJohn Hodge1-21/+23
2019-03-02MIR Gen - Handle extern types in matchJohn Hodge1-15/+20
2019-02-03HIR - Minimally-tested support for `extern { type }`John Hodge2-0/+18
2019-02-03HIR Expr - Have _StructLiteral take a HIR::Path (to allow associated types ↵John Hodge1-15/+20
to be used)
2019-01-20HIR Misc - Local asserts with patternsJohn Hodge1-0/+2
2019-01-20MIR Gen - (minor) Commented-out post-gen dumpJohn Hodge1-0/+1
2019-01-04Constant Evaluate - More handling of Defer constantsJohn Hodge1-1/+1
2019-01-03Lower MIR - Allow "+" at the start of asm output specifiersJohn Hodge1-1/+1
2019-01-01Match ergonomics - Fixes and expansionJohn Hodge1-0/+5
2018-12-30MIR Optimise - constant evaluation: additionJohn Hodge1-59/+69
2018-12-29Lower MIR - Handing of irrefutable enum matches, some other tweaksJohn Hodge2-35/+57
2018-12-29Misc MIR generation fixesJohn Hodge3-4/+8
2018-12-27Lower MIR - Match ergonomics (and a little bit of cleanup/fixes).John Hodge3-58/+82
- liballoc building, up to libstd
2018-12-27Lower MIR - Rough handling of 1.29 `box` operatorJohn Hodge1-0/+100
2018-12-22MIR Cleanup - Misc commenting on handling of Defer literalsJohn Hodge1-8/+7
2018-12-22MIR Cleanup - Better error reporting for bugs around unevaluated Literal::DeferJohn Hodge1-4/+22
2018-10-03Merge branch 'master' into nightly-1.29John Hodge7-53/+146
2018-09-22Misc - Fix some failing testsJohn Hodge1-1/+5
2018-09-22All - Generate MIR for constant evaluation (has too many const_cast calls, ↵John Hodge7-51/+140
but it's less ugly) - Also includes some MIR optimisation changes to reduce some compile times (hopefully) - Removed duplicated MIR consteval and now-unused HIR consteval
2018-08-12MIR From HIR - Fix incorrect types in `<-` loweringJohn Hodge1-1/+1
2018-08-04Trans - Add auto-generated Clone impls (only for Copy types currently)John Hodge2-5/+12
2018-07-04All - Dump full contents of asm! in AST/MIRJohn Hodge2-3/+3
2018-07-01HIR/MIR - Truncate usize constants to 32-bits on 32-bit machinesJohn Hodge1-1/+22
2018-06-04MIR Helpers - Handle ItemAddr to enum/struct constructorsJohn Hodge2-0/+48
2018-06-02All - Warning cleanup when built with clangJohn Hodge2-3/+3
2018-05-27MIR Optimise - Propagate constants into callsJohn Hodge1-0/+6
2018-05-12MIR Cleanup - Remove cast of PhantomDataJohn Hodge1-8/+2
2018-05-05MIR Optimise - Reorder code a bit for easier readingJohn Hodge1-225/+240
2018-05-05MIR Optimise - Short-circuit fail CommonStatements to hopefully avoid ↵John Hodge1-1/+4
excessive runtime
2018-03-17VTables - Rename vtable static to have the # at the end (helps parsing in mmir)John Hodge1-2/+2
2018-03-17MIR Optimise - Slight cleanup for faster compilesJohn Hodge1-7/+10
2018-03-17Trans - Move monomorphisation from codegen pass to its own pass, and do a ↵John Hodge2-4/+109
second inlining pass after monomorph.
2018-02-25MIR Gen - Replace infinite loop for default in match generation with a ↵John Hodge1-1/+3
diverge terminator
2018-02-25MIR Optimise - Remove no-op assignmentsJohn Hodge1-0/+51
2018-02-18Standalone MIRI - Implement BinOp comparisons and Terminator::IfJohn Hodge1-2/+2
2018-02-18MIR Optimise - Some work on const propagationJohn Hodge1-22/+77