Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue warning or error if generated transformation cannot be applied #183

Open
clementval opened this issue Jun 13, 2017 · 0 comments
Open

Comments

@clementval
Copy link
Collaborator

<!-- CLAW default configuration. This file should not be edited ! -->
<claw version="0.3">
  <!-- Transformation parameters -->
  <global>
    <!-- Default general values -->
    <parameter key="default_target" value="gpu"/>
    <parameter key="default_directive" value="openacc"/>

    <!-- OpenACC default information -->
    <!-- Define the default values to be used for the clauses. If value set to 0, compiler default value used. -->
    <parameter key="openacc_vector_length" value="128"/> <!-- vector_length(128) -->
    <parameter key="openacc_num_gangs" value="8"/>       <!-- num_gangs(8) -->
    <parameter key="openacc_num_workers" value="8"/>     <!-- num_workers(8) -->
    <!-- Specify the order of generation of clauses when nested loops are generated -->
    <!-- possible values are vector_gang, gang_vector, vector, gang, none -->
    <parameter key="openacc_execution_mode" value="vector_gang"/>
  </global>
  <!-- Transformation groups -->
  <groups>
    <!-- Low-level transformations -->
    <group type="independent" name="internal-xcodeml"    class="cx2x.translator.transformation.utility.XcodeMLWorkaround" />
    <group type="independent" name="remove"              class="cx2x.translator.transformation.utility.UtilityRemove" />
    <group type="independent" name="primitive"           class="cx2x.translator.transformation.openacc.DirectivePrimitive" />
    <group type="independent" name="array-transform"     class="cx2x.translator.transformation.loop.ArrayTransform" />
    <group type="independent" name="loop-extract"        class="cx2x.translator.transformation.loop.LoopExtraction" />
    <group type="dependent"   name="loop-fusion"         class="cx2x.translator.transformation.loop.LoopFusion" />
    <group type="independent" name="loop-hoist"          class="cx2x.translator.transformation.loop.LoopHoist" />
    <group type="independent" name="loop-interchange"    class="cx2x.translator.transformation.loop.LoopInterchange" />
    <group type="independent" name="on-the-fly"          class="cx2x.translator.transformation.claw.ArrayToFctCall" />
    <group type="independent" name="kcache"              class="cx2x.translator.transformation.claw.Kcaching" />
    <group type="independent" name="if-extract"          class="cx2x.translator.transformation.loop.IfExtract" />
    <!-- High-level transformations -->
    <group type="independent" name="parallelize"         class="cx2x.translator.transformation.claw.parallelize.Parallelize" />
    <group type="independent" name="parallelize-forward" class="cx2x.translator.transformation.claw.parallelize.ParallelizeForward" />
  </groups>
</claw>
!$claw loop-fusion
DO i=1,10
END DO

!$claw loop-hoist(i) fusion
IF (.TRUE.) THEN
END IF
DO i=1,10
END DO

With this configuration, the fusion cannot be applied as the fusion transformations are applied before the hoisting transformations

@clementval clementval self-assigned this Jun 13, 2017
@clementval clementval added this to the version 1.0 milestone Jun 23, 2017
@clementval clementval removed this from the version 1.0 milestone Mar 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant