Changeset 14058


Ignore:
Timestamp:
Nov 14, 2019 5:18:12 PM (4 weeks ago)
Author:
molsson
Message:

#5876 Fixed bug in alias elimination.

Location:
branches/dev-jw-2695/Compiler/ModelicaMiddleEnd/src/jastadd/optimizations
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/dev-jw-2695/Compiler/ModelicaMiddleEnd/src/jastadd/optimizations/AliasElimination.jrag

    r13456 r14058  
    294294        if (isAlias()) {
    295295            aliasVars.add(this);
    296         } else if (aliasSortKeep()) { 
     296        } else if (aliasSortKeep()) {
    297297            nonAliasVars.add(this);
     298            AliasManager.AliasSet aliasSet = aliasSet();
     299            if (isDiscrete() && myPreVariable().isUnknown() && aliasSet != null && aliasSet.hasPreVariable()) {
     300                nonAliasVars.add(createPreVariable());
     301            }
    298302            this.propagateAttributesFromAlias();
    299303        }
  • branches/dev-jw-2695/Compiler/ModelicaMiddleEnd/src/jastadd/optimizations/AliasVariables.jadd

    r12978 r14058  
    453453                return aliases.size();
    454454            }
     455           
     456            public boolean hasPreVariable() {
     457                for (AliasVariable v : this) {
     458                    if (!v.getFVariable().myPreVariable().isUnknown()) {
     459                        return true;
     460                    }
     461                }
     462                return false;
     463            }
    455464           
    456465            @Override
Note: See TracChangeset for help on using the changeset viewer.