HPFC
(High Performance Fortran Compiler)
datastructure

Fabien Coelho

CRI, École des mines de Paris

May 6, 2022

Introduction

import align from "hpf.newgen"

import distribute from "hpf.newgen"

import entity from "ri.newgen"

import entity_int from "ri.newgen"

import statement from "ri.newgen"

import reduction_operator from "reductions_private.newgen"

entities = list:entity*

entity_entities = entity->entities

renaming = old:entity x new:entity

statement_renamings = persistant statement->renaming*

statement_entities = persistant statement->entities

entitymap = entity->entity

overlap = lower:int x upper:int

overlapsmap = entity->overlap*

hpf_newdecl = { none , alpha , beta , gamma , delta }

hpf_newdecls = dimensions:hpf_newdecl*

alignmap = entity->align

distributemap = entity->distribute

newdeclmap = entity->hpf_newdecls

entity_status = new_host:entitymap x new_node:entitymap x old_host:entitymap x old_node:entitymap x referenced:entity_int

data_status = newdeclmap x alignmap x distributemap x arrays:entity* x templates:entity* x processors:entity*

numbers_status = numbermap:entity_int x arrays:int x templates:int x processors:int

dynamic_status = dynamics:entity_entities x primary:entitymap x renamings:statement_renamings x tokeep:statement_entities

remapping = renaming x referenced:entity*

hpfc_status = overlapsmap x data_status x numbers_status x entity_status x commons:entity* x dynamic_status x pures:entity* x ios:entity* x computed:remapping* x reductions:statement_entities

hpfc_reductions = initial:entity x replacement:entity x operator:reduction_operator