Skip to content

GC overhead limit exceeded, probably due to this output pattern. #3

@robstewart57

Description

@robstewart57

Hi Endri,

Given this actor:

actor fold() int img1 ==> int my_histogram :
  int hist[255][255][255];
  int height = 512;
  int width = 256;
  int i := 0;
   fold: action img1:[r,g,b] ==>
         guard i < (height * width)
         do
           hist[r][g][b] := hist[r][g][b] + 1;
           i := i+1 ;
         end

   send: action ==> my_histogram:[[hist[r][g][b] : for int r in 0 .. 254, for int g in 0 .. 254, for int b in 0 .. 254 ]] repeat (255 * 255 * 255)
         do
           i := 0;
         end

   schedule fsm fold:
     fold (fold) --> fold;
     fold (send) --> send;
     send (fold) --> fold;
   end

   priority fold > send;
   end
end

I'm getting the following error when attempting to compile with Xronos:

3:12:42 PM SEVERE:   - failed to compile: GC overhead limit exceeded
[java.lang.Integer.valueOf(Integer.java:642), org.xronos.orcc.design.visitors.StateVarVisitor.makeLogicalValueObject(StateVarVisitor.java:212), org.xronos.orcc.design.visitors.StateVarVisitor.makeLogicalValueObject(StateVarVisitor.java:185), org.xronos.orcc.design.visitors.StateVarVisitor.makeLogicalValueObject(StateVarVisitor.java:185), org.xronos.orcc.design.visitors.StateVarVisitor.makeLogicalValue(StateVarVisitor.java:123), org.xronos.orcc.design.visitors.StateVarVisitor.caseVar(StateVarVisitor.java:77), net.sf.orcc.ir.util.IrSwitch.doSwitch(IrSwitch.java:1088), org.eclipse.emf.ecore.util.Switch.doSwitch(Switch.java:53), net.sf.orcc.ir.util.AbstractIrVisitor.doSwitch(AbstractIrVisitor.java:214), org.xronos.orcc.design.visitors.DesignActor.caseActor(DesignActor.java:185), net.sf.orcc.df.util.DfSwitch.doSwitch(DfSwitch.java:142), org.eclipse.emf.ecore.util.Switch.doSwitch(Switch.java:53), net.sf.orcc.df.util.DfVisitor.doSwitch(DfVisitor.java:234), org.xronos.orcc.design.ActorToDesign.buildDesign(ActorToDesign.java:75), org.xronos.orcc.design.DesignEngine.buildLim(DesignEngine.java:123), org.xronos.openforge.app.Engine.begin(Engine.java:119), org.xronos.orcc.backend.XronosPrinter.printInstance(XronosPrinter.java:195), org.xronos.orcc.backend.Xronos.generateInstances(Xronos.java:347), org.xronos.orcc.backend.Xronos.doGenerateNetwork(Xronos.java:154), net.sf.orcc.backends.AbstractBackend.compile(AbstractBackend.java:335), net.sf.orcc.ui.launching.OrccRunLaunchDelegate$1.run(OrccRunLaunchDelegate.java:92), org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)]
3:12:42 PM SEVERE: -------------------------------------------------------------------------------
3:12:43 PM SEVERE: NOTE: 1 actor failed to compile
3:12:43 PM SEVERE: -------------------------------------------------------------------------------

I suspect it is to do with the output pattern for the send action, i.e.

my_histogram:[[hist[r][g][b] : for int r in 0 .. 254, for int g in 0 .. 254, for int b in 0 .. 254 ]] repeat (255 * 255 * 255)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions