Project

General

Profile

Actions

Bug #5597

closed

[efsm] Processing of loops

Added by Mikhail Chupilko almost 10 years ago. Updated almost 10 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Target version:
Start date:
02/03/2015
Due date:
% Done:

100%

Estimated time:
Detected in build:
svn
Platform:
Published in build:
20150307

Description

Processing of loops seems having been unimplemented in cfg-cgaa transformer yet.

...
2015.02.03 15:34:52.283. WARNING: Loop is found
2015.02.03 15:34:52.283. WARNING: Loop is found
2015.02.03 15:34:52.283. WARNING: Loop is found
2015.02.03 15:34:52.284. INFO: Retrascope is shutting down
Exception in thread "main" java.lang.StackOverflowError
    at java.text.DecimalFormat.getPositivePrefixFieldPositions(DecimalFormat.java:2415)
    at java.text.DecimalFormat.subformat(DecimalFormat.java:1639)
    at java.text.DecimalFormat.format(DecimalFormat.java:712)
    at java.text.DecimalFormat.format(DecimalFormat.java:646)
    at java.text.SimpleDateFormat.zeroPaddingNumber(SimpleDateFormat.java:1393)
    at java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:1332)
    at java.text.SimpleDateFormat.format(SimpleDateFormat.java:966)
    at java.text.SimpleDateFormat.format(SimpleDateFormat.java:936)
    at java.text.DateFormat.format(DateFormat.java:345)
    at ru.ispras.retrascope.util.Log$LogFormatter.format(Log.java:52)
    at java.util.logging.StreamHandler.publish(StreamHandler.java:211)
    at java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:116)
    at java.util.logging.Logger.log(Logger.java:738)
    at java.util.logging.Logger.doLog(Logger.java:765)
    at java.util.logging.Logger.log(Logger.java:788)
    at ru.ispras.retrascope.engine.cfg.transformer.cgaa.CfgCgaaTransformerBuilder.onCaseBegin(CfgCgaaTransformerBuilder.java:591)
    at ru.ispras.retrascope.model.cfg.CfgWalker.visitCase(CfgWalker.java:235)
    at ru.ispras.retrascope.model.cfg.CfgWalker.visitNode(CfgWalker.java:149)
    at ru.ispras.retrascope.model.cfg.CfgWalker.visit(CfgWalker.java:119)
    at ru.ispras.retrascope.model.cfg.CfgWalker.visitSwitch(CfgWalker.java:222)
    at ru.ispras.retrascope.model.cfg.CfgWalker.visitNode(CfgWalker.java:155)
    at ru.ispras.retrascope.model.cfg.CfgWalker.visit(CfgWalker.java:119)
    at ru.ispras.retrascope.model.cfg.CfgWalker.visitMerge(CfgWalker.java:229)
    at ru.ispras.retrascope.model.cfg.CfgWalker.visitNode(CfgWalker.java:152)
    ...


Related issues 1 (0 open1 closed)

Related to Retrascope - Task #5161: [parser][cfg] Обработка циклов ClosedSergey Smolov07/28/2014

Actions
Actions #1

Updated by Mikhail Chupilko almost 10 years ago

Command to reach the bug:

src/test/verilog/fifo_mod/fifo.v --target efsm

Actions #2

Updated by Sergey Smolov almost 10 years ago

  • Status changed from New to Open
Actions #3

Updated by Sergey Smolov almost 10 years ago

  • Status changed from Open to Feedback

For 'while(true)' infinite loops the Verilog parser constructs Switch node of CFG, where an expression is stored at the NodeVariable object. This NodeVariable object keeps 'true' value too. The problem is that the CfgLoopBackend tries to check rather loop is infinite by calling ExprUtils.isSAT(Node expr) on Switch expression. Having NodeVariable as input, the method returns 'false' and this is incorrect. Here are the possible variants:

1) The Switch should keep NodeValue object rather than NodeVariable (and it looks much preferable);
2) The Fortress should be able to solve such NodeVariables, that also contain their values (we need to discuss it with Andrei Tatarnikov as Fortress main developer).

Actions #4

Updated by Sergey Smolov almost 10 years ago

The NodeVariable object keeps 'true' as a name. That's incorrect.

Actions #5

Updated by Sergey Smolov almost 10 years ago

  • Status changed from Feedback to Open

The problem will be fixed via Verilog Translator improvement (#5651).

Actions #6

Updated by Sergey Smolov almost 10 years ago

  • Status changed from Open to Resolved
  • % Done changed from 0 to 100
  • Published in build set to r1605

The fifo.v module was slightly modified.

Actions #7

Updated by Sergey Smolov almost 10 years ago

  • Status changed from Resolved to Closed
  • Published in build changed from r1605 to 20150307
Actions

Also available in: Atom PDF