X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fcmm%2Fcmm-notes;h=084590086cdedb6753773fdf20ebea0178c71122;hb=cc94b30f3d854ed97ac6a7a54fa12247295219d4;hp=2fab86fd6decefb9a740dcf5cb3ba8ba05eb24aa;hpb=545cdeb52fc4feea3fa9668706e05ad75041f8b0;p=ghc-hetmet.git diff --git a/compiler/cmm/cmm-notes b/compiler/cmm/cmm-notes index 2fab86f..0845900 100644 --- a/compiler/cmm/cmm-notes +++ b/compiler/cmm/cmm-notes @@ -2,6 +2,31 @@ Notes on new codegen (Sept 09) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Things to do: + + - SDM (2010-02-26) can we remove the Foreign constructor from Convention? + Reason: we never generate code for a function with the Foreign + calling convention, and the code for calling foreign calls is generated + + - 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