summaryrefslogtreecommitdiff
path: root/src/mir/mir_builder.cpp
AgeCommit message (Collapse)AuthorFilesLines
2019-11-24Misc - Warning tweaks to make MSVC be quietJohn Hodge1-1/+2
2019-06-08MIR Gen - Fix clobbering of value state when fields are reassignedJohn Hodge1-19/+13
2019-06-08MIR Gen - Casts moveJohn Hodge1-1/+1
2019-06-02MIR - Refactor LValue to reduce size and linked-list-ness (seems to have had ↵John Hodge1-318/+279
a ~10% reduction in memory usage)
2019-04-28MIR Gen - Support `match` in a `match` guard armJohn Hodge1-6/+45
2019-04-25MIR - Reduce size of LValue::Static by putting the HIR::Path behind a pointerJohn Hodge1-4/+4
2018-12-29Misc MIR generation fixesJohn Hodge1-1/+5
2018-12-27Lower MIR - Match ergonomics (and a little bit of cleanup/fixes).John Hodge1-0/+2
- liballoc building, up to libstd
2018-09-22All - Generate MIR for constant evaluation (has too many const_cast calls, ↵John Hodge1-0/+1
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
2017-11-26HIR/MIR - Error checking for assigning into ! (as opposed to from !)John Hodge1-5/+21
2017-11-21MIR Gen - Fix use-after-move when partially moved in one arm and optionally ↵John Hodge1-1/+16
moved in another
2017-11-01HIR - Refactor enums to only embed a single field (and give variants types)John Hodge1-31/+12
2017-09-08MIR Gen - Fix box drop flagsJohn Hodge1-19/+3
2017-07-06MIR Gen - Reset drop flags on entry to a loop (instead of after use)John Hodge1-16/+20
2017-07-02MIR Gen - Make mutating state (other than the if condition) within a match ↵John Hodge1-0/+25
guard an error
2017-07-02MIR Gen - Track states for arguments (and directly use arguments where possible)John Hodge1-80/+145
2017-06-23MIR Gen - Disable argument replacement until argument states are tracked fullyJohn Hodge1-3/+15
2017-06-22MIR Gen - Remove arguments that are just assigned from argumentsJohn Hodge1-0/+10
2017-06-16MIR optimise - Fix a few little bugsJohn Hodge1-2/+4
2017-06-16MIR - Unify temporaries and variablesJohn Hodge1-373/+170
2017-06-10MIR Gen - Fix incorrect codegen due to defaulting to 0 not ~0John Hodge1-2/+2
2017-06-04Merge branch 'master' of https://github.com/thepowersgang/mrustcJohn Hodge (bugs)1-32/+60
2017-06-03HIR Typecheck - Validate traits after typecheckJohn Hodge1-0/+2
2017-05-15MIR Gen - Don't emit drop for union valuesJohn Hodge1-0/+7
2017-05-15MIR - Handle Union field accessJohn Hodge1-32/+51
2017-05-14Visual Studio compile fixesJohn Hodge (bugs)1-1/+1
2017-05-12MIR - Fixed optimisation and scopring issuesJohn Hodge1-4/+10
2017-05-08MIR Gen - Fix incorrect scoping of temporaries in expression part of a blockJohn Hodge1-30/+159
2017-04-28MIR Gen - Reset all drop flags to defaults after useJohn Hodge1-1/+15
2017-04-28MIR Gen - MakeDst moves both valuesJohn Hodge1-1/+1
2017-04-22MIR Gen - Common lvalue for ifJohn Hodge1-0/+3
2017-04-22MIR - Add ScopeEnd statement to indicate where a value will no longer be usedJohn Hodge1-15/+24
2017-04-17MIR Gen - Handle MovedOutJohn Hodge1-5/+67
2017-04-16MIR Gen - Handle move out of unionsJohn Hodge1-36/+69
2017-04-16MIR Gen - Refactor value tracking to split move-out and destructureJohn Hodge1-295/+526
2017-03-25MIR Gen - Fix a slight bug in borrow promotion, validate during `Lower MIR`John Hodge1-6/+39
2017-03-18MIR Gen - Fix scoping of values in let bindingsJohn Hodge1-16/+66
2017-03-18MIR Gen - Extend lifetimes of variables borrowed in let bindingsJohn Hodge1-1/+3
2017-03-16MIR Gen - Fix incorrect scoping of temporariesJohn Hodge1-62/+84
2017-03-04MIR Gen - Patch around edge case where an arm can end up with the drop flag ↵John Hodge1-3/+5
incorrectly set
2017-03-02MIR Gen - Reset drop flags to defaults after useJohn Hodge1-0/+12
2017-02-25MIR Gen - Use MIR::Param (and associated changes)John Hodge1-0/+23
2017-02-22MIR - Make MakeDst ptr a ParamJohn Hodge1-1/+1
2017-02-22MIR - add Param type for places where a lvalue is readJohn Hodge1-16/+25
2017-02-12MIR Gen - Alter handling of scopes to support diverging expressionsJohn Hodge1-10/+11
2017-02-04MIR Gen - Tweak to handle `foo(break)`John Hodge1-1/+5
2017-01-23MIR Gen - Fix incorrect handling of split scopes in loopsJohn Hodge1-16/+55
2017-01-22MIR Builder - Drop flags for PartialJohn Hodge1-1/+9
2017-01-22MIR Optimise - Untested temporary and BB unificationJohn Hodge1-1/+2
2017-01-21MIR Gen - Fix drop generationJohn Hodge1-43/+98