summaryrefslogtreecommitdiff
path: root/src/mir/optimise.cpp
AgeCommit message (Expand)AuthorFilesLines
2017-04-29Add a custom intrinsic to reduce cost of [T]::lenJohn Hodge1-6/+8
2017-04-29MIR Optimise - Disable some dumpingJohn Hodge1-2/+2
2017-04-28MIR Optimise - Fix mis-optimisation in const propagationJohn Hodge1-22/+95
2017-04-22MIR Gen - Common lvalue for ifJohn Hodge1-0/+2
2017-04-22MIR Optimise - Unify ScopeEnd statementsJohn Hodge1-1/+26
2017-04-22MIR - Add ScopeEnd statement to indicate where a value will no longer be usedJohn Hodge1-10/+55
2017-04-17MIR Helpers - Move lifetime calculation to helpers so CheckFull can use itJohn Hodge1-438/+4
2017-03-16MIR Optimise - Fix mis-optimise with assignment propagationJohn Hodge1-4/+12
2017-03-10MIR Optimise - basic size_of replacemntJohn Hodge1-14/+17
2017-03-06MIR Optimise - Reduce debug and pedantic validationJohn Hodge1-2/+2
2017-03-06MIR Optimise - Fix lifetime trackingJohn Hodge1-35/+86
2017-03-05MIR Optimise - Use new value lifetime information in optimisation, fix unboun...John Hodge1-259/+147
2017-03-04MIR Optimise - Working (but unused) temporary value lifetime trackingJohn Hodge1-0/+261
2017-03-04MIR Optimise - Constant propagation using ParamJohn Hodge1-2/+186
2017-02-25MIR Gen - Use MIR::Param (and associated changes)John Hodge1-5/+28
2017-02-22MIR - Add types to integer constantsJohn Hodge1-1/+1
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-25/+79
2017-02-09MIR Optimise - Fix small incorrect comparisonJohn Hodge1-1/+1
2017-02-05MIR Optimise - Treat asm! outputs as assignmentsJohn Hodge1-0/+7
2017-02-05MIR Optimise - GC variables tooJohn Hodge1-7/+26
2017-02-05MIR Optimise - Clear unused bbs during iterationJohn Hodge1-0/+63
2017-02-05MIR Optimise - Fix incorrect optimisation when source is movedJohn Hodge1-3/+6
2017-02-04MIR Optimise - Little optimisations for a no-op intrinsicJohn Hodge1-3/+45
2017-02-04MIR Optimise - Planning for const propagation, tweak assignment propagationJohn Hodge1-2/+46
2017-02-01MIR Optimise - Fix edge case incorrect optimisationJohn Hodge1-3/+4
2017-01-31MIR Optimise - Handle empty loopsJohn Hodge1-1/+4
2017-01-30MIR Optimise - Eliminate variable assignments tooJohn Hodge1-5/+13
2017-01-30MIR Optimise - Drop flag GCJohn Hodge1-5/+42
2017-01-30MIR Optimise - Dead assignment elimination (minimal)John Hodge1-2/+36
2017-01-30MIR Optimise - Support detecting of borrows for value usage countsJohn Hodge1-88/+93
2017-01-30MIR Optimise - Remove known branchesJohn Hodge1-3/+74
2017-01-30TODOsJohn Hodge1-0/+1
2017-01-29MIR Optimise - Fix tripping on unconditional recursionJohn Hodge1-7/+25
2017-01-29MIR Optimise - Inline inherentJohn Hodge1-1/+24
2017-01-28MIR Optimise - Run cleanup after inlining (as it triggers monomorph)John Hodge1-26/+46
2017-01-28MIR Optimise - Inlining of UfcsKnown functionsJohn Hodge1-1/+77
2017-01-28MIR Optimise - EAT during inliningJohn Hodge1-26/+69
2017-01-28MIR Optimise - Inlining implementedJohn Hodge1-13/+268
2017-01-26MIR Optimise - Start on inlining supportJohn Hodge1-1/+86
2017-01-26MIR Optimise - FiddlingJohn Hodge1-13/+70
2017-01-22MIR Optimise - Validate before GCJohn Hodge1-0/+2
2017-01-22MIR Optimise - Fixed replacement of unified temporariesJohn Hodge1-7/+10
2017-01-22MIR Optimise - Reverse propagation of assignmentsJohn Hodge1-12/+93
2017-01-22MIR Optimise - Untested temporary and BB unificationJohn Hodge1-120/+641
2017-01-20MIR - Drop flags (incomplete, doesn't pass validation)John Hodge1-0/+2
2016-12-31MIR Optimise - Fiddling with RValue propagationJohn Hodge1-16/+22
2016-12-31MIR Optimise - Structure for rvalue replacementsJohn Hodge1-35/+69
2016-12-31MIR Optimise - Move call output to after assignment propagationJohn Hodge1-54/+55
2016-12-31MIR Optimise - Allow assignment elimination with variablesJohn Hodge1-17/+22