229Chapter8ConclusionThisdissertationhasexaminedtheconflictbetweenoptimizationanddebugging,culminatinginthedesignandimplementationofNavigator,aprototypedebuggingsystemthathandlestwosimplebutnontrivialoptimizations.TheNavigatorsystemdemonstratesthateffectiveinteractivesource-leveldebuggingcanbeprovidedforcontrol-flowoptimizedprogramsinrealproductionprogrammingenvironments.SolutiontechniquesdevelopedinChapter4suggestthatthisresultcanbeextendedtothegeneralclassofoptimizedprogramsinthefuture.8.1SummaryofresultsOptimizationdestroysthestraightforwardcorrespondencebetweenaprogram'ssourcetextanditsobjectcode.ThetechniquesdescribedingeneralinChapter4andexpandedintheNavigatorchaptersprovideforthecorrectimplementationofinteractivesource-leveldebuggersinthepresenceofmanycommonoptimizations.Themainjobofsuchadebuggeristohelpusersdebugoptimizedprogramswithoutforcingthemeithertodeducetheeffectsoftheoptimizationsortodisableoptimizationsbyrecompilingtheirprograms.Furthermore,thetechniquesusedtoaccomplishthisjobmustnotnullifytheimprovementsachievedbytheoptimizations.AsdiscussedinChapter1,thisdissertationaddressesthisneedinthreeways:9Itidentifiesinteractionsbetweenoptimizingtransformationsanddebuggingcapabilities,mappingoutthisnewproblemarea.9Itdevelopsgeneralsolutiontechniquesthatcanbecombinedinvariouswaystoprovideimproveddebuggingforoptimizedprograms.9ItdemonstratesthepracticalityofthesetechniquesbyimplementingsomeofthemintheNavigatorsystem,embeddedinarealprogrammingenvironment.Theremainderofthissectionelaboratesonthesecontributions.pïg/îM qïVÑî'Aî0ÍïP3î&£ rïI–î¤î îî‰î$Íî'1î, î1” î9‘î¯îD@ ïAQîâ î‘îoî î"4î(*î*Œ î2qî9î?9îA îCç ï>�îâ î‡ î!î&² î- î4Kî6 î;lî<³îAŽîDoîG#ï;Îîâîmî^îFîõîTî"'î%Xî'î-|î3�î5>î7�sï50îâîî”îîrï1î¤ îßî!î!kî*æ î4šî9òî;îA\îE•îH7ï.Lîâî¼îÕî÷îÏ î"«î(Õî*ƒî/Vî1î6Qî7†î:=î@}îB+îDŠï+‹îâî.îî.îjî!Ø î+“î-( î3³ î;îAƒîC îEIï(Éîâî‚î3îÊ î"ñî%°î)î+eî-î0î1.î7î8qî:î=î@lîD‚ï&îâî+înîVî#î'9î)î.î0©î5/î7î9´ îBhîDbîFGï#Fîâ îRîA î Êî$î*Ù î3Jî5� îÌî@°îE®îI@ïî$î/î"cî)î+Zî1ÆtïmîerïAî$î± î!î#� î*ªî,xî0 î7î9 îAîîE—îGeï î$îÒî2î!–î&iî-#î.Ñî/ûî2² î;D ï wîâîºîRî î¬î!I î'Àî)Æî-O ÿTVm$<CHAPTER8:CONCLUSIONSANDFUTUREWORK2308.1.1InteractionsbetweenoptimizationanddebuggingChapters2and3investigatetheessentialconflictbetweenoptimizationanddebugging.Chapter2focusesonthedebugginghalf:whatdoesauserexpectthedebuggertotellheraboutanexecutingprogram?Twoimportantlevelsofdebuggerbehaviorforoptimizedprogramsaredefined:expectedbehavior,inwhichthedebuggerhidestheeffectsoftheoptimizationsfromtheuser(bydoingextrabehind-the-scenesprocessing),andtruthfulbehavior,inwhichthedebuggeradmitstotheuserthattheexecutingprogramdiffersfromthesourceprogramandthattheanswertoadebuggingqueryisnotcompletelyknown.Whenthedebuggerprovidestruthfulbehavior,partialinformationmaybeavailableandtheusermaybeabletoparticipateindeducingthecorrectanswer.Thischaracterizationisausefultoolwhendesigningadebuggerforoptimizedprograms.Thedebuggingsupportsuggestedbymostpreviousresearchersfellshortofeventruthfulbehavior.Chapter3focusesontheoptimizationhalf:howdovariousoptimizationsaffecttheaspectsofacomputationthatareofinteresttotheuser?Firstofall,Chapter3providesathoroughcatalogueoftheproblematicaleffectsofoptimizationsondebuggingcapabilities.Thiscataloguewillbeausefulreferenceforfutureresearchinthisarea.Anotherimportantcontributionofthischapteristhedistinctionbetweensyntacticandsemanticdefinitionsofthemappingbetweensourceandobjectcodelocationsforcomputation-reorderingoptimizations.Neithermappingaloneissufficienttoanswerallcommondebuggingqueries.[Recallthatthesyntacticmappingreflectsastatement'spositionwithrespecttoothersurroundingstatementsandwithrespecttothedegreeofprogressthroughtheentirecomputation,whilethesemanticmappingreflectsthepositionoftheactualcomputationsspecifiedbythestatement.]8.1.2GeneralsolutiontechniquesChapter4providesavarietyofsolutiontechniquesthatcanbecombinedtocombattheproblemsidentifiedinChapter3.Thetechniquesfallintothreecategories:basictechniques,techniquesthatsupporttruthfulbehavior,andtechniquesthatsupportexpectedbehavior.Thebasictechniquessupportbothtruthfulandexpectedbehavior.Thecompilercancollectstaticinformationaboutoptimizationsinimprovedsymboltables,statementmaps,andspecial-purposetables.Staticinformationofthiskindismandatoryforprovidingeffectivedebuggingforoptimizedprograms.Inaddition,thedebuggercancollectdynamicinformationintheformofoldvaluesofvariablesorcontrol-flowhistory.Thecompilercanuseimprovedvariantsofoptimizationsthatimpactdebuggingless.TwofallbackpositionsarerestrictingdebuggingrïgîIuî Gïgïgî!-rî%Xïguïgî&rî'=ïguïgî(; î0@rî3Lïguïgî43rî8®ïguïgî:pïgîM vïaïîâîÏ îôî"B î+¶î.Ürï]Íî¤îÊîSî_îè î%î'µî-‚î2Áî8„ î@ÑîCÝ ï[ îâî8îuîFîUî½î%î(Îî,3î/lî0žî3Ÿî7øî:`î@qîB(îD�îG ïXJîâîðî7îî!Vî'Õî+¼î-“î3¹î9‡î;áîBjîH›ïUˆîâî[îî î!Îî%Üî(;î.Eî1äî4Cî8“î:Lî<« îE(îH�ïRÇîâîéîlîZîÚî' î. î1eî6‹î<¡î>\îBxîDåïPîâîFîèî;î(îêî=î%[î*Ýî/ î2zî4Íî9î>“îA=îCÿîFRïMCîâî¥îãî²î²î3î ¼ î'Íî-Wî1„î3øî:î?ºîDæïJ‚îâî î‹îwîPî$òî'’î)Ùî,ºî/¦î1~î4`î5ö î<£î>9îDîF\ïGÀîâîYîsî!Rî"½î#çî'ÿî*Ëî.€î4©î5Òî;Ûî>îD„ïDÿîâî«îUîRî#xî%eî(²î.2 î54î7Žî:ýî<§î?ÞîDçïAiî¤îèîîÓîÐî!& î)î,Sî/Nî1Kî6 î>~îB@îD–îI5ï>¨îâî÷ îÜî–îÕîyî#Cî$Ýî''î+ î.<î/àî2î7Mî8lî=çî>üîDÚï;æîâî°î$ îØî <î" î*œî,·î3… î;§î>ÖîDÿîG¿îIÅï9%îâîõîîî&îEî$£î&Lî(éî,³î2î8x î@LîBîD�îIƒï6cîâîu îbîî#Óî&¾î,¢ î3¤î5�î8#î>îC´îH7ï3¢îâîßî î©îÊî,U î5vî:iî@îC îDð ï0àîâî‹î!î î¶î#juî)ï0àï0àî)Rî,¯î.éî0Ëî5Bî9Ôî=›î>„ îD(îHXï.îâî¦îîø î6 î"¢î$Øî'^î+"î,„î.tî2 î3uî7×î<î=þîA+ îGÝï+]îâîÈîUîëî¶îœî#Ñî%2î'î*M î1î5¯î7Fî9+ vï%“îâîÏîî] rï!qî¤î*î—î_îÂî$�î&rî+í î3î6î8Ìî:öîA�îCwîH�ï¯îâî" îŽîsî"øî%wî(‡ î/šî2:î5Iî9 î@îCº ïîîâ î¾îŒî˜î"¯î(¸î+o î2Kî5î:%î?âïXî¤î‚îü îÞî#ñî'4î,Rî/î4Óî;lî>KîD îFžï—îâî îQîà î) î+fî2Hî7½î<¯îC“îH7ïÕîâîòîuî"ž î*…î,›î/šî3'î4ðî<3î>ÍîEjïîâîžîÝîKî%=î'î,×î/9î5Dî7Ñî<#îA´ îI@ï Rîâî,î}î!îuî�î0î#Öî%„ î-0î2rî54î:Úî=Oî?¯îEÎï �îâîÖ îŽî˜î!Zî(Oî,6î/–î4ýî:ÿî=� îD5 zTVm$ CHAPTER8:CONCLUSIONSANDFUTUREWORK231slightlyandrecompilingasmallportionoftheprogram.Toprovidetruthfulbehavior,thecompilercanshowtheusertheeffectsoftheoptimizationsinanewversionoftheentiresourceprogramorthedebuggercanpresentalocalizedreportofthechangesaffectingagivenprogrampoint.Tosupportdebuggervariablemodification,thenewsourcemustbequitedetailedandtheusermustbeverymotivated.Anotherapproachtotruthfulbehavioristoprovidetheuserwithspecializeddebuggingcommandsthatcanbeappliedtooptimizedprograms.Forexample,syntacticandsemanticversionsofbreakpointsareessentialtoprovidingthefunctionalityofaconventionaldebuggerinthepresenceofcomputation-reorderingoptimizations.Toprovideexpectedbehavior,thedebuggermustprocesstheadditionalstatic(andpossiblydynamic)informationtohidetheeffectsoftheoptimizations.Thenecessaryalgorithmsoftenresembleflowanalysisalgorithms.8.1.3Navigator:demonstrationofpracticalityinalimitedsettingChapter5presentsanoverviewofNavigator.Navigatorrestrictsitsviewtotwocontrol-flowoptimizationsandafewbasiclocation-orienteddebuggingcapabilities.Itsdesigngoalwastoprovideexpecteddebuggerbehavior.Forinlineprocedureexpansion,Navigatorprovidesexpectedbehaviorfortheselectedlocation-orienteddebuggingfunctions.Forcross-jumping,Navigatorprovidesexpectedbehaviorforbreakpointsandhigh-qualitytruthfulbehavioralistofthepossiblesourcealternativesforunplanneddebuggingactivity(thatis,programexceptionsandproceduretracebacks).Thisreductioninbehaviorwasnecessarytomeetthesystemperformancegoals:programexecutionspaceandspeedarealmosttotallyunaffectedwhennodebuggingrequestsareactive.Whendebuggingisrequested,Navigatorprovidesitsaddedfunctionalitywithoutnoticeabledegradationindebuggerresponsetimeformostprograms.Chapter6describestheNavigatorimplementation,includingthecomplicationscausedbythelanguage,thesystemenvironment,andmultipleoptimizations.Chapter7provesthecorrectnessofNavigator'scompileranddebuggerpathdeterminationalgorithms.Itanalyzestheefficiencyofthesealgorithmsonmultiply-mergedregionsanddiscussesimprovementstothem.rïgîIuî Gïgïgî!-rî%Xïguïgî&rî'=ïguïgî(; î0@rî3Lïguïgî43rî8®ïguïgî:pïgîM rïb)îâîªîb î÷î!î"¿î'žî)Wî+¶ï^’î¤îÎîÜî÷î$î&eî,#î.²î2=î4 î7�î9ÿî>Rî@îBq ï[Ðîâî¤îâîåîÁîŽîî"î&fî, î-âî0Vî6sî9î=ûî?9îDþîI5ïYîâî?îhî î1î ãî&oî*äî-î2î8î=J îE¤îHïVMîâî-î�î{îî!3î#åî&@î)4î,—î.ƒî1� î8Ëî>4îD-îE×ïSŒîâîÐîyîeî­î Jî#�î&Ù î-üî4óî<î?!îAêîDîI@ïPÊîâîSîKîûî$Ñî*qî--î2âî83î9ñ îAjîCÂîI@ïN îâî)î� î›î![î"Œ î*­î0¾î2sî4Úî:†îÄîB_îE¢ïDïîâî îÏî«î!óî$€î(ýî*ãî-p î7#î:)î@i îGZïB-îâî³îÍîâ vïî4£î9ºî;•î>Ñî@€îC- ï5{îâ î”î€îßîµî"]î-,î4 î<}î>®îC2îF_îI@ï2¹îâîÙî�îvî%Úî(qî,=î2¬ î9gî?·îE2ï/øîâîÉî>îÔî8î* î0ú î8Cî;% îDŠï-6îâîRîïî€î!ž î(ôî+Œ î3%î8 î?´îAÒîClîE¬ï*tîâî>î¡î$ˆî+Nî0#î3wî5Gî:â îA¨îDkï'³îâ îHî™î úî"ßî(Æî+¨î1òî3×î7uî: î>½ îFøï$ñîâîsî«îcî!î%î'Wî+¿î/û î6Ãî:zî<ƒîC?îH›ï"0îâîzîzîîo î%ïî,;î1²î3uî7� î?mîDa ïnîâ îmîî$î#Éî&ïî),î,ˆï×î¤îðî#î î hî&Ëî1î7î9q îBîF•îH�ïîâîî`îÛ î$Bî&ùî,s ïî¤îînî÷îz î&¥î(‚ î/æî5Æî8¡î>ÎîB ï½îâ îbîÊî'îw î%œî'Eî*¿ î1sî3iî=ÈîB€îE'ïüîâ îØî‡îTVm$åCHAPTER8:CONCLUSIONSANDFUTUREWORK2328.2LessonslearnedfromNavigatorConstructinganinteractivesource-leveldebuggerforoptimizedprogramsispossibleitisnoteasy.ThebasicideasbehindNavigatorarequitesimple.Thecompilercollectsstaticinformationabout"deleted"callstoinlineproceduresandaboutpathdeterminerlocationsforregionsmergedbycross-jumping.Italsomaintainsimprovedstatementmapsdescribingthesechanges.Thedebuggercollectsdynamiccontrol-flowinformationatpathdeterminerlocationsviabreakpointsthatareinvisibletotheuser.However,theimplementationislessthanstraightforward.Manydetailsmustbeconsidered,includingfeaturesofthelanguage,suchasnestedinlineproceduresandimportedinlineprocedures,andsystemenvironmentdetails,suchasrecursionandmultipleprocesses.Theinteractionsbetweenoptimizationscausedtwomajorproblems.First,itwasnecessarytoensurethatthedebuggingsolutionforoneoptimizationwasnotdestroyedbyalateroptimization.Ideally,theeffortofdesigningdebuggingsolutionstooptimizationsshouldberoughlylinearinthenumberofoptimizationsthatis,thesolutionforeachoptimizationshouldbeseparablefromboththeapplicationoftheremainingoptimizationsandthedebuggingsolutionsfortheremainingoptimizations.Thiscanbedonebydesigningappropriatewaystopropagatedebugginginformationthroughthecompiler,particularlytheexistenceofkeyinstructionsorlocationssuchaspathdeterminers.InNavigator,thisresponsibilitywasconcentratedintheroutinesforinsertinganddeletingcodecells,jumpcells,andlabelcellsfromthecodestream.Second,theinteractionsbetweenoptimizationsmadeithardtodeterminewhatprogramscouldlooklikeduringtheapplicationofanoptimization.Asaresult,itwasdifficulttoarrangefortheNavigatoralgorithmstoreportthecorrectsourcealternativeineverycross-jumpedregionandtoprovethattheydoso.Ingeneral,itwasnecessarytoassumethattheinputtothecross-jumpingandotherobjectcodeoptimizationswasanarbitraryflowgraphnicegraphpropertiesthatthesourceprogramsatisifies(suchasthereducibilityoftheflowgraph)couldnotnecessarilybeguaranteed.PreliminarytestsofthecompletedNavigatorsystemindicatethatthemodifiedcompileranddebuggerworkreasonablywell.However,asdescribedinChapter7,thepathdeterminationalgorithmasimplementedcanbequiteinefficientforprogramswithmanynearlyidenticalcodesequencesthatjoin.Althoughrare,suchprogramsdooccurinpractice:theactionsforcommontable-drivenparsingalgorithmsoftenhavethisstructure.TheimprovementssuggestedinSectionsrïgîIuî Gïgïgî!-rî%Xïguïgî&rî'=ïguïgî(; î0@rî3Lïguïgî43rî8®ïguïgî:pïgîM sïa¸îâîîOî î$¤rï]–î¤ î½î¡ î"C î)Àî/½î1îî8Mî>Sî?² îGîHyïZÔîâî¹î�îûîuî!î'xî)Çî-Mî2…î5Xî;î?ßîCd ïXîâîÀîòîþî©î!‡ î(Šî+>î/î2@ î9Cî>ûîA5îEúïUQîâî î5îäîèî&_î,Ëî38î7 î=ÞîAŸîHïR�îâîîùî¦ î'„ î/+î0àî4$ î;GîAîCy ïOÎîâîËî9îÌî–îî"î(jî*ä î4Ýî6dî9î]î?îBž ï>qîâîæî`îFîî"]î)1î/î0Û î9sî> î@îEEîI@ï;¯îâî@îkî"î$Hî& î(iî-©î/åî3 î; î?†îAuîG‡ï8îîâîîm îwî'îî%÷ î.lî1î3rî:#î?áîBîDmï6,îâ îþîúîgî:î"Žî$lî*w î1¸î4öî6†î<ÉîCd ï3jîâîbî îe î$öî'žî-Ãî/Äî2¡ î:Iîî?´îB ïLîâî¾î‚îÀî+ î%Íî(žî*³î0} î:ïî? îEœîH�ïŠîâîyîO îî"öî$ìî'’ î/#î1$î3Ë î; î? îAÝ îHþïÈîâ ï3î¤ î!î;îþî gî' î-Žî2î7Jî:"î<ŒîBrîH7ïqîâî%îÜ îïî$-î*œî,ƒî2èî4Ðî:Xî<î>¸îB ï°îâî6îù î_î!ÿî$î'¢ î.9î0‹î6²î9âî=ÁîBîG§ï îîâîYî2îïî"î%Rî(Žî.¬î0½î4ˆî6@î;æî>PîB÷îE>ï -îâ î†îQ î" î%™î(×î+q î1ùî4É î=¸îCåîE‹ <TVm$wCHAPTER8:CONCLUSIONSANDFUTUREWORK2337.3and7.4,particularlyaddingapathdeterminerminimizationpassorgroupingdeterminersintoequivalenceclasses,wouldhandletheseunusualcasesbetter.Attemptingtoprovideexpecteddebuggerbehaviorforanoptimizationgivesamuchclearerinsightintothepreciseeffectsoftheoptimization.Cross-jumpingisaveryeasyoptimizationtoimplement:itrequiresonlytheconnectivityoftheflowgraphandtheabilitytocompareinstructions.Nevertheless,itcrossesbasicblockboundariesandcanhavesurprisinglycomplexeffectsuponaprogram'scontrolflow.Theseeffectshadnotbeenstudiedbefore.Attemptingtoprovideexpecteddebuggerbehaviorforanoptimizationalsogivesadifferentviewoftheoptimization.Classicaloptimizationresearchcharacterizeseachoptimizationbytheamountofinformationthatisneededtoestablishitspreconditionsandcorrectnessandbywhetherthatinformationmustcrossbasicblockboundaries.Theabilitytodebugprogramsresultingfromanoptimizationisanaspectthatshouldreceivemoreattentioninthefuture.Itisinterestingtonotethattruthfulbehaviorforanoptimizationlikecross-jumpingevenhigh-qualitytruthfulbehaviorismucheasiertoprovidethanexpectedbehaviorforthatoptimization.Additionalexperiencewithusersmightrevealthattruthfulbehaviorissufficient,andthatthereforethecompileranddebuggerneednotworksohard.Nonetheless,theimplementedcombinationhasasatisfyingfeel.Whentheuserrequestsabreakpoint,Navigatorguaranteesthattheexactsourcealternativewillbeknown(unlesscontrolhasalreadyenteredthemergedregion).Whenaprogramexceptionisencountered,theusercantrytodeterminetheexactsourcealternativefromthelistsheisgiven.Ifthisisimpossible,theusermustabandonthecurrenterrorcontextbutneednotrecompiletheprogramtogetexpectedbehavior:settingabreakpointattheexceptionlocationwilldothetrick.Iftheuseranticipatesproblemswithaparticularprocedureinadvance,thespecialSUSPECTcommandwillensureexpectedbehaviorwithoutrequiringspecificbreakpoints.8.3FutureWorkThisdissertationhasonlyscratchedthesurfaceoftheproblemofdebuggingoptimizedprograms.Twoareasoffurtherresearchholdpromise:studyingandextendingNavigator,andinvestigatingbroaderaspectsoftheproblem.rïgîIuî Gïgïgî!-rî%Xïguïgî&rî'=ïguïgî(; î0@rî3Lïguïgî43rî8®ïguïgî:pïgîM rïb)îâîîÕîi î²î"Cî#mî&“ î-™ î5ôî8ìî:°î@Œ îHï_gîâ îbîîCî#Êî'Sî,€î/òï[Òî¤ îýî»îÕî%¢î+»î1{î3Èî5È î=ÑîASîBŒîFsïYîâînîWîÇîtî!Ôî#žî& î/ î8Lî9Éî;î>"îA7 îI@ïVOîâ îîMîuîjî!¤ î),î*Àî,ûî3Wî5êî8$î<9î=ÂîC7 ïSŽîâ î_îÇîiî îî$À î+ãî.¬î1Iî4¡ î<'îA½îFîIÅïPÌîâîMîîõî!÷î&Gî(ÿî+tî.Ñî3¥ïM7î¤ îúîµîÍî%—î+®î1kî3µî5³ î=¹î@“îDîEIïJuîâî:îîŒ îšî%Q î-fî2æ î;î>a îFvîH�ïG´îâîàî‹ îîÉî!'î%ãî'„î-î.Þ î7eî: îAîC²îE ïDòîâî« î0î’îõî#bî' î/î1Óî6î7°î;ÙîAçîG‡ïB1îâîÒ îËî7î'î Kî#î'–î,=î/Ðî5—î7Eî9¥ï>›î¤î;îÈ î¡îpî «î#šî(Òî.¢î1î3 î;*î=öï;Úîâ îî¤ î%î)fî-¿î/çî5kî9 î?@îEjîH ï9îâ îù îô î%ðî),î,Ëî0ãî5î8î=9îC îD˜ ï6Wîâîtîîàîî!±î$Cî*(î-_î/¯î3î4¦î8t î@bîB� ï3•îâ îËî:î^ î aî#Ýî'ïî*Iî-=î2�î3´ î:øîAV îH ï0ÔîâîBîËî îÕî"€î$qî(÷î-”î2Gî4¼î9�î>…î@åîEÚï.îâîÜîèîXîoî ½ î(Ðî+î-ìî0Yî2cî3óî:Wî<™î@îD5 ï+PîâîXîÆîî—îî¿î!Pî$î%{ î,°î/î2'î5žî;Rî=ÁîB™îFï(�îâîPî™îûîIî•î%î&¬î(áî.‹î4¡î8ôî: î@çîBmîD¹ï%Íîâîî¼î¿îîî œî"÷î%í î,®î2²î5Éî6î î= îCŸîEIï# îâî+uî�ï# ï# î/rï# îî!Pî#åî(3î-Ùî3rî8hî>NîC" sïnîâîîJrïLî¤î î§îlî"Öî)0î+àî0ãî2ìî5›î;pî=yîD‚ï‹îâîî\îûîÖî# î)&î,xî2Uî8î:àîAY îH7ïÉîâ îÛîüî ¤î"]î$½TVm$+CHAPTER8:CONCLUSIONSANDFUTUREWORK2348.3.1Theshortterm:studyingandextendingNavigatorTimeconstraintsandotherpracticalconsiderationslimitedtheamountofexperimentationandmeasurementthatcouldbeperformedonthecompletedNavigatorsystem.Asaresult,exactmeasurementsofcompilationanddebuggingresponsetimeforabroadrangeofprograms(includingsomeparticularlyhardcases)couldnotbecollected.Preliminarytestsshowedthatthetechniquesperformedsatisfactorily,butthetheoreticalanalysispresentedinChapter7pointsoutproblemswithexcessivepathdeterminergrowthincomplexmultiply-mergedregions.Furtherstudyisneededtodeterminetheeffectsofthisgrowthinrealprograms.ThepathdetermineralgorithmwouldbemoreefficientifsomeoftheimprovementsdescribedinChapter7wereimplemented,particularlyaddingapathdeterminerminimizationpass(whichhasyettobecompletelyspecified)orgroupingdeterminersintoequivalenceclasses.Thecompileranddebuggerperformance,aswellasthesizesofthedebuggingtables,couldthenbemeasuredoverawideclassofprogramsanddebuggingscenarios.Onecouldalsostudytheeffectsofdifferentmethodsofhandlingambiguityandothertroublesomesituations.[ThesedifferentmethodsweredescribedinChapter6.]Howoftendoesthecross-jumpingalgorithmhavetoinsertextranullinstructionstohandlethejoiningjump'ssourceorsentryinformationandhowmuchdoesthiscostatruntime?[Preliminarytestsshowthatthesenumbersaresmall.]Howmuchofcross-jumping'sbenefitwouldbelostbyinhibitingcross-jumpingwheneveroneofthesetroublesomesituationsarose?Navigatorcouldalsobeextendedtohandlethesecondarydebuggingfunctions,assuggestedattheendofChapter6.Forinlineprocedureexpansion,thesefunctionsincludedisplayingthevaluesoflocalvariablesorparametersofinlineprocedures,settingbreakpointsatprocedureentryandexit,callinganinlineprocedurefromthedebugger'sinterpreter,andsingle-steppingwithcoarsegranularity.Forcross-jumping,theonlyaffectedsecondarydebuggingfunctionisdisplayingthevaluesofvariables.8.3.2Thelongterm:investigatingbroaderaspectsoftheproblemThesolutiontechniquesusedintheNavigatorimplementationarealsoapplicableinothersituations.ItislikelythatmacrosinsourceprogramscouldbehandledbyamethodsimilartoNavigator'shandlingofinlineprocedures.Furthermore,asdiscussedinChapter4,theinvisiblebreakpointtechniqueforcollectingdynamicinformationcouldbeusedtocollectdatainformationrïgîIuî Gïgïgî!-rî%Xïguïgî&rî'=ïguïgî(; î0@rî3Lïguïgî43rî8®ïguïgî:pïgîM vïaïîâîÏî:îwîÜî%^î(…î0rï]Íî¤î1 îûî¡î"/î'£ î0‰î5+î7zîîH7ï[ îâ î„î�î|î œî'�î)Äî,Sî31î9Äî?zîAºîCîGeïXJîâ î³îF î «î#=î)Ðî/Oî2Oî4fî5jî9<î<àî>tîDa ïUˆîâîp îµîìî Óî$šî' î(ö î/„ î6óî9þî>îîA¸îD ïRÇîâîÂîî µî#0 î*î/6î5’î7\î<Æî>îBUîDæïPîâî8îOî± î"òî'Õî)¾î/}î:'î@@îE’îIƒïMCîâî¹îtîîqî"Îî$”î'Cî+øî-´î0xî7‚î:gî=› îD¯ïJ‚îâîîî¸îîŠî#)î$îî'Y î0\î6“î8Mî=¦î>çîBD ïGÀîâ î î§îÆîá î%Ý î.-î1î5—î8î:?î;ãî=È îD¹ ïDÿîâî“î\ îÔî ™ î(î-î/Úî5‚î8'î> îFfîHïB=îâî¤îî\î)î�î!kî%Äî)£î,Þî.ãî5,î8Zî9˜î<þî@BîBîH7ï?|îâîœ ï;æî¤îøîî2î 8î"èî'‰î)’î/‰î5iî7sî=îDGîGOï9%îâ î uîÉï9%ï9%îî"—î'eî,"î/î4Lî5îî:vrï9%î=YîAîEîH�ï6cîâ îÂî î!]î#î&ëî*hî-J î4´î6mî:þî=hîBîFŸï3¢îâî›î§ î&îÒî!Ëî%–î(»î+Rî.î/¡uî5Õï3¢ï3¢î6$ î<î>{îAFîC{îFGï0àîâî¬rï0àî˜îßîŸîBî&Þî+oî/‡î1aî3áî5Æ î;û îDºï.îâîŽîGîÐ î¨ î$Çï*‰î¤îîéîÀî ¼î&¯î(hî,úî/dî5Ûî<Ÿ îCîD¹ï'Èîâî�îÿîÉî”îõî*î!èî%Ûî,p î3Qî6íî<þîAð îH�ï%îâî îÃîî¾î~ î&‚î(7î, î3qî7Ô î?Eî@ÛîGZï"EîâîÐî î¦îÌîãî&œî*:î,Ð î3ì î;Jî>8îGÓïƒîâîø î î4 î&Jî(’î+”î0µî7 î=«îC îDb ïÁîâîAîoî( vïøîâîÏî:îåîJ î'Øî-×î3“î5—î8orïÕî¤î¢î î! î$oî&Dî(Êî/T î9Yî;Óî>Æ îE{îGOïîâ îî•îîëîÏî$—î&Zî*¿î0èî4Éî6Ðî<3î>Dî?„îD¥îI@ï Rîâ î6îîÒî!Æ î)Ð î2aî4"î:?î<îAbîCîEvï �îâ îÍîîW î${î* î1Šî5Pî7;î:rî<î@eîCd ÿÚTVm$tCHAPTER8:CONCLUSIONSANDFUTUREWORK235forhandlingthecodemotionoptimization.Alternatively,ifthecodemotionoptimizationwerealteredtosavetheoldvalueeverytime,dynamiccontrol-flowinformationsimilartothepathdeterminerinformationcouldbeused.Inaddition,theNavigatorsystemtestedonlyafewtechniquesfromtherichassortmentproposedinChapter4.Theremainingtechniquesdeserveattention,bothindividuallyandinconcert.Thereareseveralunexploredpointsregardingstaticinformation:exactlywhattosaveforagivensetofoptimizations,howtogenerateandstoreitefficientlyinthecompiler,andhowtoaccessitefficientlyfromthedebugger.Thetrickofstoringsomeofitandrecreatingtherestondemandthroughrecompilationcouldproveuseful.Regardingoptimizationrestrictions,specialattentionshouldbepaidtothedevelopmentofnewvariantsoftheclassicaloptimizationsthatprovidesimilaroptimizationbenefitsbutimpairdebuggingless,suchasthenewvariantofcodemotiondiscussedabove.Oncedesigned,implementationsofthesenewvariantsshouldbemeasuredtodeterminetheircompile-timeefficiencyandtheirrelativeeffectivenessatreducingcodesizeandexecutiontime.Therearealsounansweredquestionsconcerningtheprovisionoftruthfulbehavior:9Howcantheeffectsofoptimizationbeeffectivelydisplayed?InChapter4,Iconjecturedthatdisplayinganewversionoftheentireprogramwouldbelessusefulandmoreoverwhelmingthanalocalizedviewofanareaofcurrentinterest,suchasaproposedbreakpointlocation.Userstudieswouldshedlightonthisissue.9Whatothernewdebuggingcommandswouldbeuseful?Chapter4suggestssemanticandsyntacticversionsofstatementbreakpointsandafewotherexamples.Thelevelofuseracceptanceofhigh-qualitytruthfulbehaviorthatis,alocalizeddescriptionoftheeffectsoftheoptimizations,listsofpossiblealternativesforvariablevaluesandprogramlocations,andgooddebuggingcommandsshouldalsobestudied.High-qualitytruthfulbehaviorisgenerallymucheasiertoprovidethanexpectedbehavior,asNavigatorillustrates.Itmaybesufficientfortheconstructionofaveryeffectivedebuggingtool.Overall,itisclearthatthereisausefulmiddlegroundbetweenfullyoptimizedprogramswithnodebuggingcapabilitiesontheonehandandcompletelydebuggableprogramswithnooptimizationontheother.Theselectionofasuitablelevelofuseforeachtechnique,hidingtheeffectsofsomeoptimizationsanddisplayingtheeffectsofothers,thusprovidingtheoptimalmixrïgîIuî Gïgïgî!-rî%Xïguïgî&rî'=ïguïgî(; î0@rî3Lïguïgî43rî8®ïguïgî:pïgîM rïb)îâî8î î…îåî!¼ î* î3cî4Ýî7Uî:µî?‹ îG�ï_gîâî£î€î²îAîÙî!²î%•î)Aî.ÿ î6ï î>¨îC\îE:îGÈï\¦îâ îè îsî!>î#/ïYî¤î³îºîZî"ÿî'ºî+óî/Mî0·î3˜ î:´î>[î@ûîD ïVNîâîîñîpîãî!íî(Ÿ î/¬î4Ò î;#î>‘ îFXîI@ïS�îâïO÷î¤î¾î)îÒ î$(î(dî.¥î2G î:bî?îB�îDSîGoîIÅïM5îâî¸îöîÐ îÇî"ìî$¼î*bî-:î0¸î2/ î8½î:Œî= îCBîFîI@ïJtîâîöîT îÆî4î ›î'Žî*mî-¤î/dî3üî7–î9Vî:³î=r îCÚîF@îHèïG²îâî/îg î"î%èî)ÈïDî¤îv î “ î( î,«î2–î76î9Kî<Šî>]î@á îI5ïA[îâîöî=îî¡î þ î)¡î,•î1Æî6q î>�îCâîF‰ï>™îâîüîJîÜîêî!ªî$øî)õî,î/¶î4Óî;=î@ÛîDÛï;×îâî îµî™î"ãî(_î-7î/ƒî6î8î>ûîB� ï9îâ îîÎîîô î'íî)…î/6î2}î5(î7àî>ï5€î¤î¥îùîÅ î"[î(p î/vî1Öî7Ýî9–î>®tï1êîerï2¾î$îÑî­î ]î$ýî' î/Oî1� î8x î@KîBkîH îIæï0‰î$ îáî" î(áî*]î-žî2¸î4Ãî7uî;´îA•îFîHYï.Uî$ î½î"=î/î0.î5Êî8òî:˜îãî@îE>ï')î$îÛîwî$Ãî&|î,± î4&î6Þî8î:¨î>Gï#“î¤î|îÂî{ît î#[î% î,Ìî1ã î;?î=î>,îCÜ ï Òîâî¼î=î¯î‰î î%î'äî)¾î/" î6�î8ßî>7îB‡îE`ïîâ îëî™îî!°î-äî0§î2�î8* î@1îE>ïOîâîmîtîjîjî 8î%cî(¨î.„î4­î6zî<þ îDCîEÚîHþï�îâ îàîî} î!Kî#î$.î'=î,Áî3{ï÷î¤îÍîîvî¼î~î"ûî$Zî%xî)„î.î2Üî8>î;mîAÍîGÓï6îâî[îˆ î î"‘î%dî(‚î,tî/ž î7 î>ÔîEZîHèïtîâ îâîðîVîàî"¿î(lî*,î+]î0{î3Èî5ˆî8î:Iî=� îD8îH�ï ³îâî8îøî‘ î!î#Ó î*fî,Ìî1"î2âî7dî:pî@µîCîH-ÿÉTVm$‚CHAPTER8:CONCLUSIONSANDFUTUREWORK236ofoptimizationanddebuggingcapabilities,isaparticularlyimportantareaforfutureresearch.Finally,theoreticalstudiesoftheeffectsoflimitedgroupsofoptimizations(usingspecificmodelsofoptimization)upondebugginginformationorcomputationalbehaviorwouldprovideusefulsupportforthemorepracticalstudiessuggestedabove.Interestingoptimizationgroupsincludelocaloptimizationsusingaquadmodel,localoptimizationsusingadagmodel,andcodemotionalone.8.4ClosingremarksThisdissertationhasshownthatalthoughoptimizationanddebuggingconflict,programdevelopmentsystemscanprovideeffectivedebuggingformanyformsofoptimizedprograms.Suchdebuggerscanreducedebuggingtimeandprogrammerconfusion.Thesebenefitsareespeciallyimportantgiventheincreasingavailabilityofoptimizingcompilers.rïgîIuî Gïgïgî!-rî%Xïguïgî&rî'=ïguïgî(; î0@rî3Lïguïgî43rî8®ïguïgî:pïgîM rïb)îâî› î”îKî" î)zî*æî, î3Xî9ºî<³î>ðîCï^”î¤îß îËî"�î$zî' î+�î-xî2]î7î9 îA¯îFï[ÒîâîÈî« îFî"î(æ î0™î2† î;²îAŒîEãïYîâî)îdîÑî_î!!î&Õî+—î1ûî77 î>@ îFhïVOîâîÏî# î®î#eî$œî()î,Èî0 î8¦î<]î=•î@DîDâîG§ïSŽîâîŸsïLðîâîîórïHÎî¤î î³î~î$#î'Hî-Z î5©î8·î?ÇîE`ïF îâ îöîÙîHî#6î(žî/;î1\î5 î8Ùî:uî@ÄîGzïCKîâîˆî+î¿î#‘î&Ïî)ž î1™ î8ðî= îBNîDº ï@‰îâîCîøîW î!Î î(Èî*� î1[ ÿTVm$2ÿ TIMESROMANþYÿ TIMESROMANþæÿMATHþÿ TIMESROMANþÿ TIMESROMANþŸÿ TIMESROMANý…ÿ HELVETICAþŸÀ ¢# êÅ'/7I:j/= ;œÇH¡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ[]<>NewerChap8 Tuesday, May 8, 1984 1:32 am PDT