fdvmDDe (1158418), страница 2

Файл №1158418 fdvmDDe (Раздаточные материалы) 2 страницаfdvmDDe (1158418) страница 22019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)


next

control parent

ASSIGN_STAT

. . .

. . .


VAR_REF

...

+

...



VAR_REF

...

VAR_REF

...

a

...

b

...

c

...

Symbol Table

Fig. 4.4. Internal representation of the statement a = b + c.

5Detailed description of compiler modules

5.1Translating Fortran DVM constructs (module dvm.cpp)

The scheme of high level functions calls of the main module dvm.cpp is:

m ain initialize

initVariantNames

initLibNames

initDVM

TranslateFileDVMTransFunc

unparse (class File) InsertDebugStat

int main (

int
char

argc,
*argv[] );

The function processes the compilation parameters and sets compilation mode on. It initializes compiler data structures, calls the TranslateFileDVM( ) function to restructure parse tree according to the compilation mode, and calls the unparse( ) class SgFile member function for generating new source code from restructured internal form. The function returns 1 if there are found some errors in the program.

void TranslateFileDVM ( SgFile *f )

f

- pointer to the program file

If the compilation mode is a generating of parallel program then the TransFunc( ) function is called for each procedure of program else the InsertDebugStat( ) function is called.

void TransFunc ( SgStatement *func )

func

- pointer to the procedure header statement

The statements of procedure are scanned in lexical order until last statement of procedure.

Specification statements and directives processing.

A DISTRIBUTE directive is involved in list. The function builds the aligning trees processing ALIGN directives.

On scanning specification directives and statements, the LibDVM function calls for creating distributed arrays are generated and inserted in program before first executable statement. The GenDistArray( ) function creates distributed arrays (LibDVM object) for array with DISTRIBUTE attribute and all arrays immediately or ultimately aligned with it.

Executable statements and directives processing.

The distributed array element references in assignment, CALL , arithmetical IF, logical IF, IF-THEN, ELSE_IF, and computed GOTO statements are linearizing.

A DVM directive is replaced by sequence of Lib-DVM functions calls. When new statement is inserted in a program restructuring of the control graph (carrying or substituting label, replacement of logical IF statement by IF...THEN...ENDIF construct, and so on) is performed if necessary. The ReplaceContext( ), doAssignStmtAfter( ), InsertNewStatementAfter( ), InserNewStatementBefore( ) functions serve for inserting new statement in parse tree and restructuring it.

After processing last statement of procedure, the declaration statements for temporary variables that are used for argument passing, storing function value, buffering I/O, and addressing distributed arrays are created and inserted in specification part of procedure (DeclareVarDVM( )).

List of called functions:

TempVarDVM

ChangeDistArrayRef

DeclareVarDVM

ChangeDistArrayRef_Left

RTLInit

DebugVarArrayRef

RTLExit

DebugVarArrayRef_Left

BeginBlock

ChangeArg_DistArrayRef

EndBlock

DebugArg_VarArrayRef

GetAM

ReplaceAssignByIf

GetVM

ReplaceContext

doDisRuleArrays

ParallelLoop

GenDistArray

AddToGroupNameList

GenAlignArray

AllocateArray

AlignTree

AssignPointer

InsertNewStatementBefore

CreateBoundGroup

InsertNewStatementAfter

ShadowList

doAssignStmt

Calculate

doAssignStmtAfter

hasNewValueClause

doAssignTo_After

StartBound

Extract_Stmt

WaitBound

ContinueWithLabel

SendBoun

RemoteAccessEnd

CreateReductionGroup

GoRoundEntry

ReductionList

BeginBLockForEntry

StartRed

initMask

WaitRed

ReplaceDoLabel

ReductionVarsStart

Error

doAlignRule

err

RealignArray

addToStmtList

RealignArr

ReplaceDoNestLabel_Above

DistObjectRef

CloseDoInParLoop

RedistributeArray

CloseParLoop

control_list_open

EndParLoop

ReplaceByIfStmt

EndPl

InsertSendIOSTAT

isDoEndStmt

InsertSendInquire

CloseLoop

InsertSendInputList

DebugLoop

IOcontrol

SeqLoopBegin

TestIOList

SeqLoopEndInParLoop

IO_ThroughBuffer

OverLoopAnalyze

D_Skpbl

SeqLoopEnd

D_Lnumb

DeleteObject

D_Fname

OpenInterval

St_Binter

CloseInterval

St_Einter

Value

St_Biof

lastStmtOfDo

St_Eiof

AddRemoteAccess

St_Eloop

RemoteVariableList

BeginDebugFragment

RankOfSection

EndDebugFragment

Rank

ArrayHeader

isListOfArrays

TypeControl

ReconfPS

CreateTaskArray

InitGroups

SetDoVar

InitHeap

PSReference

hasOntoClause

SearchDistArrayRef

DebugTaskRegion

CloseTaskRegion

StartTask

isParallelLoopEndStmt

StopAM

CreateBG

doIfThenConstrForPrefetch

LoadBg

InitRemoteGroups

IsLIFReductionOp

INDLoopBegin

IsReductionOp

IEXLoopAnalyse

OffDoVarsOfNest

IndependentLoop

void InsertDebugStat ( SgStatement *func )

func

- pointer to the procedure header statement

The function generates the sequential program including Debugger and Performance Analyzer functions calls. Parameters of compilation (-e… and -d…) control the process of generating new statements.

Характеристики

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7021
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее