X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fcmm%2Fcmm-notes;h=a83a78109715eabfe233ee9d875ad3da38103e1f;hb=b06d623b2e367a572de5daf06d6a0b12c2740471;hp=2fab86fd6decefb9a740dcf5cb3ba8ba05eb24aa;hpb=545cdeb52fc4feea3fa9668706e05ad75041f8b0;p=ghc-hetmet.git diff --git a/compiler/cmm/cmm-notes b/compiler/cmm/cmm-notes index 2fab86f..a83a781 100644 --- a/compiler/cmm/cmm-notes +++ b/compiler/cmm/cmm-notes @@ -2,6 +2,28 @@ Notes on new codegen (Sept 09) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Things to do: + + + - All dataflow analyses are in the FuelMonad, even though they + are guarnteed to consume no fuel. This seems silly + + - CmmContFlowOpt.runCmmContFlowOptZs is not called! + - Why is runCmmOpts called from HscMain? Seems too "high up". + In fact HscMain calls (runCmmOpts cmmCfgOptsZ) which is what + runCmmContFlowOptZs does. Tidy up! + + + - AsmCodeGen has a generic Cmm optimiser; move this into new pipeline + + - AsmCodeGen has post-native-cg branch elimiator (shortCutBranches); + we ultimately want to share this with the Cmm branch eliminator. + + - At the moment, references to global registers like Hp are "lowered" + late (in AsmCodeGen.fixAssignTop and cmmToCmm). We should do this + early, in the new native codegen, much in the way that we lower + calling conventions. Might need to be a bit sophisticated about + aliasing. + - Refactor Cmm so that it contains only shared stuff Add a module MoribundCmm which contains stuff from Cmm for old code gen path