DIRECTORY AssociativeCache, CacheModels, Convert, DirectMapCache, Rope, WrapDragoman; SimpleCompilerRuns: CEDAR PROGRAM IMPORTS AssociativeCache, Convert, DirectMapCache, Rope, WrapDragoman SHARES WrapDragoman = BEGIN TwoToTheTwo: PROC[n: INT] RETURNS[INT] = { IF n=0 THEN RETURN[1] ELSE RETURN[2*TwoToTheTwo[n-1]]}; FOR logquads: INT IN [0..5] DO rc, mc: CacheModels.Cache; handle: WrapDragoman.Handle _ WrapDragoman.Start[backingFile: Rope.Cat["SimpleCompilerRuns.", Convert.RopeFromInt[TwoToTheTwo[logquads]], ".ts"], instr: 1, data: 1]; rc _ DirectMapCache.NewCache[lines: 512*TwoToTheTwo[logquads], quadsPerLine: 1]; -- real cache mc _ AssociativeCache.NewCache[lines: 64*TwoToTheTwo[logquads], quadsPerLine: 1, wordsPerQuad: 1]; -- map cache WrapDragoman.SetInstructionCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 115, quadsPerLine: 1, wordsPerQuad: 4, lru: FALSE, realCache: rc, mapCache: mc]]; -- instruction cache WrapDragoman.SetDataCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 115, quadsPerLine: 1, wordsPerQuad: 4, lru: FALSE, realCache: rc, mapCache: mc]]; -- data cache WrapDragoman.MarkGFI[handle, "CommandToolUtilitiesImpl", "FileViewerOpsImpl", "FileStreamImpl", "FileNamesImpl", "FileImpl"]; WrapDragoman.MarkGFI[handle, "IOPrintImpl", "IOCommonImpl", "IOSimpleStreamsImpl", "IOConvertImpl", "ViewerIOImpl", "IOScanImpl"]; WrapDragoman.MarkGFI[handle, "FSLockImpl", "FSFileOpsImpl", "FSReportImpl", "FSOpenFileImpl", "FSStreamImpl", "FSNameImpl"]; WrapDragoman.MarkGFI[handle, "RopeImpl", "RopeImplExt", "ListImpl", "AtomImpl", "ConvertUnsafeImpl"]; WrapDragoman.MarkGFI[handle, "Compiler"]; WrapDragoman.Run[handle, "compile dummy dummyimpl"]; rc.print[rc, handle.tsOut, "Real cache"]; mc.print[mc, handle.tsOut, "Map cache"]; WrapDragoman.End[handle]; ENDLOOP; FOR logquads: INT IN [0..0] DO rc, mc: CacheModels.Cache; handle: WrapDragoman.Handle _ WrapDragoman.Start[backingFile: "SimCompSimple.115.ts", instr: 1, data: 1]; rc _ DirectMapCache.NewCache[lines: 512*TwoToTheTwo[logquads], quadsPerLine: 1]; -- real cache mc _ DirectMapCache.NewCache[lines: 64*TwoToTheTwo[logquads], quadsPerLine: 1, wordsPerQuad: 1]; -- map cache WrapDragoman.SetInstructionCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 115, quadsPerLine: 1, wordsPerQuad: 4, lru: FALSE, realCache: rc, mapCache: mc]]; -- instruction cache WrapDragoman.SetDataCache[handle: handle, number: 0, cache: AssociativeCache.NewCache[lines: 115, quadsPerLine: 1, wordsPerQuad: 4, lru: FALSE, realCache: rc, mapCache: mc]]; -- data cache WrapDragoman.MarkGFI[handle, "CommandToolUtilitiesImpl", "FileViewerOpsImpl", "FileStreamImpl", "FileNamesImpl", "FileImpl"]; WrapDragoman.MarkGFI[handle, "IOPrintImpl", "IOCommonImpl", "IOSimpleStreamsImpl", "IOConvertImpl", "ViewerIOImpl", "IOScanImpl"]; WrapDragoman.MarkGFI[handle, "FSLockImpl", "FSFileOpsImpl", "FSReportImpl", "FSOpenFileImpl", "FSStreamImpl", "FSNameImpl"]; WrapDragoman.MarkGFI[handle, "RopeImpl", "RopeImplExt", "ListImpl", "AtomImpl", "ConvertUnsafeImpl"]; WrapDragoman.MarkGFI[handle, "Compiler"]; WrapDragoman.Run[handle, "compile dummy dummyimpl"]; rc.print[rc, handle.tsOut, "Real cache"]; mc.print[mc, handle.tsOut, "Map cache"]; WrapDragoman.End[handle]; ENDLOOP; END. „SimpleCompilerRuns.mesa Created by Sindhu, April 27, 1985 9:45:39 am PST Last Edited by: Sindhu, May 4, 1985 9:29:21 pm PDT Κϋ˜code– "Cedar" stylešœ™K™0—J™2šΟk ˜ Kšœ=˜=Kšœ ˜ —K™šœœœ˜"Kšœ>˜EKšœ˜Kš˜š Οn œœœœœ˜*Kš œœœœœ˜7—K˜šœ œœ˜K˜Kšœ₯˜₯KšœQΟc ˜^JšœcŸ ˜oJšœœ!Ÿ˜ΚJšœ‰œ!Ÿ ˜ΌJšœ}˜}Jšœ‚˜‚Jšœ|˜|Jšœe˜eJšœ)˜)Jšœ4˜4Kšœ)˜)Kšœ(˜(Kšœ˜Kšœ˜—K˜šœ œœ˜K˜Kšœi˜iKšœQŸ ˜^JšœaŸ ˜mJšœœ!Ÿ˜ΚJšœ‰œ!Ÿ ˜ΌJšœ}˜}Jšœ‚˜‚Jšœ|˜|Jšœe˜eJšœ)˜)Jšœ4˜4Kšœ)˜)Kšœ(˜(Kšœ˜Kšœ˜—K˜Kšœ˜—K˜—…— κi