ADT
        ast-experimental
        enum
        pthread-emulation
        qualifiedEnum
      
      
        
          | Last change
 on this file since a76202d was             7583c02, checked in by Fangren Yu <f37yu@…>, 5 years ago | 
        
          | 
partially improve #226: resolver environment size reduced to O(n)
 
generated code still has exponential size. should cache resolved implicitsand reuse thunks to reduce generated code size.
 assertion fails cannot exit early and may have a minor performance
 reduction.
 
 | 
        
          | 
              
Property                 mode
 set to                 100644 | 
        
          | File size:
            1.2 KB | 
      
      
| Line |  | 
|---|
| 1 | // | 
|---|
| 2 | // Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo | 
|---|
| 3 | // | 
|---|
| 4 | // The contents of this file are covered under the licence agreement in the | 
|---|
| 5 | // file "LICENCE" distributed with Cforall. | 
|---|
| 6 | // | 
|---|
| 7 | // RenameVars.h -- | 
|---|
| 8 | // | 
|---|
| 9 | // Author           : Richard C. Bilson | 
|---|
| 10 | // Created On       : Sun May 17 12:10:28 2015 | 
|---|
| 11 | // Last Modified By : Peter A. Buhr | 
|---|
| 12 | // Last Modified On : Sat Jul 22 09:33:54 2017 | 
|---|
| 13 | // Update Count     : 4 | 
|---|
| 14 | // | 
|---|
| 15 |  | 
|---|
| 16 | #pragma once | 
|---|
| 17 |  | 
|---|
| 18 | #include <list>               // for list | 
|---|
| 19 | #include <map>                // for map | 
|---|
| 20 | #include <string>             // for string | 
|---|
| 21 |  | 
|---|
| 22 | #include "SynTree/SynTree.h"  // for Visitor Nodes | 
|---|
| 23 | #include "SynTree/Visitor.h"  // for Visitor | 
|---|
| 24 |  | 
|---|
| 25 | namespace ast { | 
|---|
| 26 | class Type; | 
|---|
| 27 | } | 
|---|
| 28 |  | 
|---|
| 29 | namespace ResolvExpr { | 
|---|
| 30 | /// Provides a consistent renaming of forall type names in a hierarchy by prefixing them with a unique "level" ID | 
|---|
| 31 | void renameTyVars( Type * ); | 
|---|
| 32 |  | 
|---|
| 33 | enum RenameMode { | 
|---|
| 34 | GEN_USAGE, // for type in VariableExpr | 
|---|
| 35 | GEN_EXPR_ID // for type in decl | 
|---|
| 36 | }; | 
|---|
| 37 | const ast::Type * renameTyVars( const ast::Type *, RenameMode mode = GEN_USAGE, bool reset = true ); | 
|---|
| 38 |  | 
|---|
| 39 |  | 
|---|
| 40 | /// resets internal state of renamer to avoid overflow | 
|---|
| 41 | void resetTyVarRenaming(); | 
|---|
| 42 |  | 
|---|
| 43 |  | 
|---|
| 44 | } // namespace ResolvExpr | 
|---|
| 45 |  | 
|---|
| 46 | // Local Variables: // | 
|---|
| 47 | // tab-width: 4 // | 
|---|
| 48 | // mode: c++ // | 
|---|
| 49 | // compile-command: "make install" // | 
|---|
| 50 | // End: // | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.