229Chapter8ConclusionThisdissertationhasexaminedtheconflictbetweenoptimizationanddebugging,culminatinginthedesignandimplementationofNavigator,aprototypedebuggingsystemthathandlestwosimplebutnontrivialoptimizations.TheNavigatorsystemdemonstratesthateffectiveinteractivesource-leveldebuggingcanbeprovidedforcontrol-flowoptimizedprogramsinrealproductionprogrammingenvironments.SolutiontechniquesdevelopedinChapter4suggestthatthisresultcanbeextendedtothegeneralclassofoptimizedprogramsinthefuture.8.1SummaryofresultsOptimizationdestroysthestraightforwardcorrespondencebetweenaprogram'ssourcetextanditsobjectcode.ThetechniquesdescribedingeneralinChapter4andexpandedintheNavigatorchaptersprovideforthecorrectimplementationofinteractivesource-leveldebuggersinthepresenceofmanycommonoptimizations.Themainjobofsuchadebuggeristohelpusersdebugoptimizedprogramswithoutforcingthemeithertodeducetheeffectsoftheoptimizationsortodisableoptimizationsbyrecompilingtheirprograms.Furthermore,thetechniquesusedtoaccomplishthisjobmustnotnullifytheimprovementsachievedbytheoptimizations.AsdiscussedinChapter1,thisdissertationaddressesthisneedinthreeways:9Itidentifiesinteractionsbetweenoptimizingtransformationsanddebuggingcapabilities,mappingoutthisnewproblemarea.9Itdevelopsgeneralsolutiontechniquesthatcanbecombinedinvariouswaystoprovideimproveddebuggingforoptimizedprograms.9ItdemonstratesthepracticalityofthesetechniquesbyimplementingsomeofthemintheNavigatorsystem,embeddedinarealprogrammingenvironment.Theremainderofthissectionelaboratesonthesecontributions.pg/M qV'A0P3& rI $'1, 1 9D@ AQ o "4(** 2q9?9A C >  !& -4K6 ;l<ADoG#;m^FT"'%X'-|35>7s50r1 !!k* 49;A\EH7.L "(*/V16Q7:=@}B+D+..j! +-( 3 ;AC EI(3 "%)+e-01.78q:=@lD&+nV#'9).05/79 BhDbFG#F RA $* 3J5 @EI@$/"c)+Z1tmerA$ !# *,x0 79 AEGe $2!&i-#./2 ;D wR !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.TwofallbackpositionsarerestrictingdebuggingrgIu Ggg!-r%Xgug&r'=gug(; 0@r3Lgug43r8gug:pgM va "B +.r]S_ %'-28 @C [ 8uFU%(,3/l037:`@qB(DG XJ7!V'+-39;BjHU[ !%(;.E14C8:L< E(HRlZ' .1e6<>\BxDPF;(=%[*/ 2z49>A=CFRMC3 '-W13:?DJ wP$'),/1~4`5 <>9DF\GYs!R"#'*.45;>DDUR#x%e(.2 547:<?DAi!& ),S/N1K6 >~B@DI5> y#C$''+ .</27M8l=>D;$  <" *,3 ;>DGI9%&E$&L(,28x @LBDI6cu b#&, 358#>CH73 ,U 5v:i@CD 0! #ju)00)R,.05B9=> D(HX. 6 "$'^+",.t2 3u7<=A+ G+]U#%2'*M 157F9+ v%] r!q*_$&r+ 368:ACwH" s"%w( /2:5I9 @C  "(+o 2K5:%?X #'4,R/4;l>KD F Q ) +f2H7<CH7u" *,/3'4<3>EjK%=',/95D7<#A I@ R,}!u0#% -02r54:=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.rgIu Ggg!-r%Xgug&r'=gug(; 0@r3Lgug43r8gug:pgM rb)b !"')W+^$&e,#.2=479>R@Bq ["&f, -0V6s9=?9DI5Y?h 1 &o*-28=J EHVM-{!3#&@)4,.1 8>4D-ESye J#& -4<?!ADI@PSK$*q--2839 AjCI@N ) ![" *02s4:B_ED !$(*-p 7#:)@i GZB- v49;>@C- 5{ "]-,4 <}>C2F_I@2v%(q,=2 9g?E2/>8* 0 8C;% D-6R! (+ 3%8 ?AClE*t>$+N0#3w5G: ADk' H "(+137u: > F$sc!%'W+/ 6:z<C?H"0zzo %,;13u7 ?mDa n m$#&),,#  h&179q BFH` $B&,s nz &( /58>B  b'w %'E* 1s3i=BE' 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.TheimprovementssuggestedinSectionsrgIu Ggg!-r%Xgug&r'=gug(; 0@r3Lgug43r8gug:pgM saO $r]  "C )/18M>S? GHyZu!'x)-M25X;?Cd X! (+>/2@ 9C>A5EUQ 5&_,387 =AHR ' /+04$ ;GACy O9"(j* 46d9]?B >q`F"])1/0 9s> @EEI@;@k"$H& (i-/3 ; ?AuG8m w'% .l13r:#?BDm6, g:"$l*w 146<Cd 3jb e $'-/2 :I?B L+ %(*0} :? EHyO "$' /#1$3 ; ? A H 3 !; g' -27J:"<BrH7q% $-*,24:X<>B 6 _!$' .9069=BG Y2"%R(.046@;>PBE> - Q " %(+q 14 =CE <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.rgIu Ggg!-r%Xgug&r'=gug(; 0@r3Lgug43r8gug:pgM rb)i "C#m& - 58:@ H_g bC#'S,/[ %+1{35 =ASBFsYnWt!#& / 8L9;>"A7 I@VO Muj! ),*,3W58$<9=C7 S _i $ +.1I4 <'AFIPM!&G(+t.3M7 %+1k35 =@DEIJu: %Q -f2 ;>a FvHG !'%'-. 7e: ACED 0#b' /167;AGB1 7' K#',=/57E9>; p #(.13 ;*=;  %)f-/5k9 ?@EjH 9   %),,058=9C D 6Wt!$C*(-_/348t @bB 3 :^ a#'*I-=23 :AV H 0B "$q(-2G49>@E.Xo (+-0Y2c3:W<@D5 +PX!P$%{ ,/2'5;R=BF(PI%&(.48: @BmD% "% ,256 = CEI# +u# # /r# !P#(3-3r8h>NC" snJrL l")0+025;p=yD\#)&,x2U8: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,theinvisiblebreakpointtechniqueforcollectingdynamicinformationcouldbeusedtocollectdatainformationrgIu Ggg!-r%Xgug&r'=gug(; 0@r3Lgug43r8gug:pgM va:w%^(0r]1 "/' 05+7zH7[  | '),S319?zACGeXJ F #=)/O2O4f5j9<<>tDa Up  $' ( / 69>AD R #0 */657\<>BUDP8O "')/}:'@@EIMCtq"$'C+-0x7:g= DJ#)$'Y 0\68M=>BD G   % .-158:?;= D D\  (-/58'> FfHB=\)!k%),.5,8Z9<@BBH7?| ;2 8"')/5i7s=DGGO9%  u9%9%"'e,"/4L5:vr9%=YAEH6c  !]#&*h-J 46m:=hBF3 &!%(+R./u5336$ <>{AFC{FG0r0B&+o/1a35 ; D.G  $* &(h,/d5< CD'*!%,p 3Q6<A H% ~ &(7, 3q7 ?E@GZ"E &*:, 3 ;J>8G 4 &J(+07 =C Db Ao( v:J '-358or ! $o&D(/T 9Y;> E{GO $&Z*046<3>D?DI@ R 6! ) 2a4":?<AbCEv  W ${* 15P7;:r<@eCd 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,thusprovidingtheoptimalmixrgIu Ggg!-r%Xgug&r'=gug(; 0@r3Lgug43r8gug:pgM rb)8 ! * 3c47U:? G_gA!%)A. 6 >C\E:G\  s!>#/YZ"'+/M03 :>[@D VNp!( /4 ;#> FXI@SO) $((d.2G :b?BDSGoIM5 "$*b-:02/ 8:= CBFI@JtT 4 '*m-/d379V:=r CF@HG/g "%)Dv ( ,2769K<>]@ I5A[= ),16q >CF>J!$),/4;=@D;"(_-7/68>B 9  ')/62}5(7>5 "[(p /v179>t1er2$ ]$' /O1 8x @KBkH I0$ " (*]-247u;AFHY.U$ "=/0.58:@E>')$w$&|, 4&68:>G#|{t #[% ,1 ;?=>,C = %')/" 68>7BE` !-028* @1E>Omtjj 8%c(.46z< DCEH } !K#$.'=,3{v~"$Z%x).28>;mAG6[ "%d(,t/ 7 >EZHt V"(l*,+]0{358:I= D8H 8 !# *f,1"27d:p@CH-TVm$CHAPTER8:CONCLUSIONSANDFUTUREWORK236ofoptimizationanddebuggingcapabilities,isaparticularlyimportantareaforfutureresearch.Finally,theoreticalstudiesoftheeffectsoflimitedgroupsofoptimizations(usingspecificmodelsofoptimization)upondebugginginformationorcomputationalbehaviorwouldprovideusefulsupportforthemorepracticalstudiessuggestedabove.Interestingoptimizationgroupsincludelocaloptimizationsusingaquadmodel,localoptimizationsusingadagmodel,andcodemotionalone.8.4ClosingremarksThisdissertationhasshownthatalthoughoptimizationanddebuggingconflict,programdevelopmentsystemscanprovideeffectivedebuggingformanyformsofoptimizedprograms.Suchdebuggerscanreducedebuggingtimeandprogrammerconfusion.Thesebenefitsareespeciallyimportantgiventheincreasingavailabilityofoptimizingcompilers.rgIu Ggg!-r%Xgug&r'=gug(; 0@r3Lgug43r8gug:pgM rb) K" )z*, 3X9<>C^ "$z' +-x2]79 AF[ F"( 02 ;AEY)d_!!&+177 >@ FhVO# #e$(),0 8<]=@DDGSsLrH ~$#'H-Z 58?E`F  H#6(/;1\5 8:u@GzCK+#&) 1 8= BND @CW ! (* 1[ TVm$2 TIMESROMANY TIMESROMANMATH TIMESROMAN TIMESROMAN TIMESROMAN HELVETICA # '/7I:j/= ;H[]<>NewerChap8 Tuesday, May 8, 1984 1:32 am PDT