Changes in / [05587c2:e56cfdb0]


Ignore:
Location:
src
Files:
2 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • src/GenPoly/module.mk

    r05587c2 re56cfdb0  
    2222       GenPoly/Specialize.cc \
    2323       GenPoly/CopyParams.cc \
    24        GenPoly/FindFunction.cc \
    25        GenPoly/InstantiateGeneric.cc
     24       GenPoly/FindFunction.cc
  • src/Makefile.in

    r05587c2 re56cfdb0  
    121121        GenPoly/cfa_cpp-CopyParams.$(OBJEXT) \
    122122        GenPoly/cfa_cpp-FindFunction.$(OBJEXT) \
    123         GenPoly/cfa_cpp-InstantiateGeneric.$(OBJEXT) \
    124123        InitTweak/cfa_cpp-InitModel.$(OBJEXT) \
    125124        InitTweak/cfa_cpp-InitExpander.$(OBJEXT) \
     
    348347        GenPoly/ScrubTyVars.cc GenPoly/Lvalue.cc GenPoly/Specialize.cc \
    349348        GenPoly/CopyParams.cc GenPoly/FindFunction.cc \
    350         GenPoly/InstantiateGeneric.cc InitTweak/InitModel.cc \
    351         InitTweak/InitExpander.cc InitTweak/Mutate.cc \
    352         InitTweak/Association.cc InitTweak/RemoveInit.cc \
    353         Parser/parser.yy Parser/lex.ll Parser/TypedefTable.cc \
    354         Parser/ParseNode.cc Parser/DeclarationNode.cc \
    355         Parser/ExpressionNode.cc Parser/StatementNode.cc \
    356         Parser/InitializerNode.cc Parser/TypeData.cc \
    357         Parser/LinkageSpec.cc Parser/parseutility.cc Parser/Parser.cc \
     349        InitTweak/InitModel.cc InitTweak/InitExpander.cc \
     350        InitTweak/Mutate.cc InitTweak/Association.cc \
     351        InitTweak/RemoveInit.cc Parser/parser.yy Parser/lex.ll \
     352        Parser/TypedefTable.cc Parser/ParseNode.cc \
     353        Parser/DeclarationNode.cc Parser/ExpressionNode.cc \
     354        Parser/StatementNode.cc Parser/InitializerNode.cc \
     355        Parser/TypeData.cc Parser/LinkageSpec.cc \
     356        Parser/parseutility.cc Parser/Parser.cc \
    358357        ResolvExpr/AlternativeFinder.cc ResolvExpr/Alternative.cc \
    359358        ResolvExpr/Unify.cc ResolvExpr/PtrsAssignable.cc \
     
    554553        GenPoly/$(DEPDIR)/$(am__dirstamp)
    555554GenPoly/cfa_cpp-FindFunction.$(OBJEXT): GenPoly/$(am__dirstamp) \
    556         GenPoly/$(DEPDIR)/$(am__dirstamp)
    557 GenPoly/cfa_cpp-InstantiateGeneric.$(OBJEXT): GenPoly/$(am__dirstamp) \
    558555        GenPoly/$(DEPDIR)/$(am__dirstamp)
    559556InitTweak/$(am__dirstamp):
     
    787784        -rm -f GenPoly/cfa_cpp-FindFunction.$(OBJEXT)
    788785        -rm -f GenPoly/cfa_cpp-GenPoly.$(OBJEXT)
    789         -rm -f GenPoly/cfa_cpp-InstantiateGeneric.$(OBJEXT)
    790786        -rm -f GenPoly/cfa_cpp-Lvalue.$(OBJEXT)
    791787        -rm -f GenPoly/cfa_cpp-PolyMutator.$(OBJEXT)
     
    897893@AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/cfa_cpp-FindFunction.Po@am__quote@
    898894@AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/cfa_cpp-GenPoly.Po@am__quote@
    899 @AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/cfa_cpp-InstantiateGeneric.Po@am__quote@
    900895@AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/cfa_cpp-Lvalue.Po@am__quote@
    901896@AMDEP_TRUE@@am__include@ @am__quote@GenPoly/$(DEPDIR)/cfa_cpp-PolyMutator.Po@am__quote@
     
    13621357@am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-FindFunction.obj `if test -f 'GenPoly/FindFunction.cc'; then $(CYGPATH_W) 'GenPoly/FindFunction.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/FindFunction.cc'; fi`
    13631358
    1364 GenPoly/cfa_cpp-InstantiateGeneric.o: GenPoly/InstantiateGeneric.cc
    1365 @am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-InstantiateGeneric.o -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-InstantiateGeneric.Tpo -c -o GenPoly/cfa_cpp-InstantiateGeneric.o `test -f 'GenPoly/InstantiateGeneric.cc' || echo '$(srcdir)/'`GenPoly/InstantiateGeneric.cc
    1366 @am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-InstantiateGeneric.Tpo GenPoly/$(DEPDIR)/cfa_cpp-InstantiateGeneric.Po
    1367 @AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/InstantiateGeneric.cc' object='GenPoly/cfa_cpp-InstantiateGeneric.o' libtool=no @AMDEPBACKSLASH@
    1368 @AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    1369 @am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-InstantiateGeneric.o `test -f 'GenPoly/InstantiateGeneric.cc' || echo '$(srcdir)/'`GenPoly/InstantiateGeneric.cc
    1370 
    1371 GenPoly/cfa_cpp-InstantiateGeneric.obj: GenPoly/InstantiateGeneric.cc
    1372 @am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT GenPoly/cfa_cpp-InstantiateGeneric.obj -MD -MP -MF GenPoly/$(DEPDIR)/cfa_cpp-InstantiateGeneric.Tpo -c -o GenPoly/cfa_cpp-InstantiateGeneric.obj `if test -f 'GenPoly/InstantiateGeneric.cc'; then $(CYGPATH_W) 'GenPoly/InstantiateGeneric.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/InstantiateGeneric.cc'; fi`
    1373 @am__fastdepCXX_TRUE@   $(am__mv) GenPoly/$(DEPDIR)/cfa_cpp-InstantiateGeneric.Tpo GenPoly/$(DEPDIR)/cfa_cpp-InstantiateGeneric.Po
    1374 @AMDEP_TRUE@@am__fastdepCXX_FALSE@      source='GenPoly/InstantiateGeneric.cc' object='GenPoly/cfa_cpp-InstantiateGeneric.obj' libtool=no @AMDEPBACKSLASH@
    1375 @AMDEP_TRUE@@am__fastdepCXX_FALSE@      DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    1376 @am__fastdepCXX_FALSE@  $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -c -o GenPoly/cfa_cpp-InstantiateGeneric.obj `if test -f 'GenPoly/InstantiateGeneric.cc'; then $(CYGPATH_W) 'GenPoly/InstantiateGeneric.cc'; else $(CYGPATH_W) '$(srcdir)/GenPoly/InstantiateGeneric.cc'; fi`
    1377 
    13781359InitTweak/cfa_cpp-InitModel.o: InitTweak/InitModel.cc
    13791360@am__fastdepCXX_TRUE@   $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(cfa_cpp_CXXFLAGS) $(CXXFLAGS) -MT InitTweak/cfa_cpp-InitModel.o -MD -MP -MF InitTweak/$(DEPDIR)/cfa_cpp-InitModel.Tpo -c -o InitTweak/cfa_cpp-InitModel.o `test -f 'InitTweak/InitModel.cc' || echo '$(srcdir)/'`InitTweak/InitModel.cc
  • src/Parser/TypeData.cc

    r05587c2 re56cfdb0  
    799799          case DeclarationNode::Struct:
    800800                at = new StructDecl( aggregate->name );
    801                 buildForall( aggregate->params, at->get_parameters() );
    802801                break;
    803802          case DeclarationNode::Union:
    804803                at = new UnionDecl( aggregate->name );
    805                 buildForall( aggregate->params, at->get_parameters() );
    806804                break;
    807805          case DeclarationNode::Context:
    808806                at = new ContextDecl( aggregate->name );
    809                 buildList( aggregate->params, at->get_parameters() );
    810807                break;
    811808          default:
    812809                assert( false );
    813810        } // switch
    814 //      buildList( aggregate->params, at->get_parameters() );
     811        buildList( aggregate->params, at->get_parameters() );
    815812        buildList( aggregate->fields, at->get_members() );
    816813
  • src/SymTab/Validate.cc

    r05587c2 re56cfdb0  
    629629        Declaration *makeStructAssignment( StructDecl *aggregateDecl, StructInstType *refType, unsigned int functionNesting ) {
    630630                FunctionType *assignType = new FunctionType( Type::Qualifiers(), false );
    631 
    632                 // Make function polymorphic in same parameters as generic struct, if applicable
    633                 std::list< TypeDecl* >& genericParams = aggregateDecl->get_parameters();
    634                 for ( std::list< TypeDecl* >::const_iterator param = genericParams.begin(); param != genericParams.end(); ++param ) {
    635                         assignType->get_forall().push_back( (*param)->clone() );
    636                 }
    637631 
    638632                ObjectDecl *returnVal = new ObjectDecl( "", DeclarationNode::NoStorageClass, LinkageSpec::Cforall, 0, refType->clone(), 0 );
  • src/SynTree/ReferenceToType.cc

    r05587c2 re56cfdb0  
    5959std::string StructInstType::typeString() const { return "struct"; }
    6060
    61 std::list<TypeDecl*>& StructInstType::get_baseParameters() { return baseStruct->get_parameters(); }
    62 
    6361void StructInstType::lookup( const std::string &name, std::list< Declaration* > &foundDecls ) const {
    6462        assert( baseStruct );
     
    6765
    6866std::string UnionInstType::typeString() const { return "union"; }
    69 
    70 std::list<TypeDecl*>& UnionInstType::get_baseParameters() { return baseUnion->get_parameters(); }
    7167
    7268void UnionInstType::lookup( const std::string &name, std::list< Declaration* > &foundDecls ) const {
  • src/SynTree/Type.h

    r05587c2 re56cfdb0  
    237237        StructDecl *get_baseStruct() const { return baseStruct; }
    238238        void set_baseStruct( StructDecl *newValue ) { baseStruct = newValue; }
    239 
    240         /// Accesses generic parameters of base struct
    241         std::list<TypeDecl*>& get_baseParameters();
    242        
    243         /// Looks up the members of this struct named "name" and places them into "foundDecls".
    244         /// Clones declarations into "foundDecls", caller responsible for freeing
     239       
     240        // a utility function
    245241        void lookup( const std::string &name, std::list< Declaration* > &foundDecls ) const;
    246242
     
    264260        UnionDecl *get_baseUnion() const { return baseUnion; }
    265261        void set_baseUnion( UnionDecl *newValue ) { baseUnion = newValue; }
    266 
    267         /// Accesses generic parameters of base union
    268         std::list<TypeDecl*>& get_baseParameters();
    269        
    270         /// looks up the members of this union named "name" and places them into "foundDecls"
    271         /// Clones declarations into "foundDecls", caller responsible for freeing
     262       
     263        // a utility function
    272264        void lookup( const std::string &name, std::list< Declaration* > &foundDecls ) const;
    273265
  • src/SynTree/TypeSubstitution.cc

    r05587c2 re56cfdb0  
    126126Type *TypeSubstitution::handleType( TypeClass *type ) {
    127127        BoundVarsType oldBoundVars( boundVars );
    128         // bind type variables from forall-qualifiers
    129128        if ( freeOnly ) {
    130129                for ( std::list< TypeDecl* >::const_iterator tyvar = type->get_forall().begin(); tyvar != type->get_forall().end(); ++tyvar ) {
     
    132131                } // for
    133132        } // if
    134         Type *ret = Mutator::mutate( type );
    135         boundVars = oldBoundVars;
    136         return ret;
    137 }
    138 
    139 template< typename TypeClass >
    140 Type *TypeSubstitution::handleAggregateType( TypeClass *type ) {
    141         BoundVarsType oldBoundVars( boundVars );
    142         // bind type variables from forall-qualifiers
    143         if ( freeOnly ) {
    144                 for ( std::list< TypeDecl* >::const_iterator tyvar = type->get_forall().begin(); tyvar != type->get_forall().end(); ++tyvar ) {
    145                         boundVars.insert( (*tyvar )->get_name() );
    146                 } // for
    147         } // if
    148         // bind type variables from generic type instantiations
    149         for ( std::list< TypeDecl* >::const_iterator tyvar = type->get_baseParameters().begin(); tyvar != type->get_baseParameters().end(); ++tyvar ) {
    150                 boundVars.insert( (*tyvar)->get_name() );
    151         } // for
    152133        Type *ret = Mutator::mutate( type );
    153134        boundVars = oldBoundVars;
     
    176157
    177158Type * TypeSubstitution::mutate( StructInstType *aggregateUseType ) {
    178         return handleAggregateType( aggregateUseType );
     159        return handleType( aggregateUseType );
    179160}
    180161
    181162Type * TypeSubstitution::mutate( UnionInstType *aggregateUseType ) {
    182         return handleAggregateType( aggregateUseType );
     163        return handleType( aggregateUseType );
    183164}
    184165
  • src/SynTree/TypeSubstitution.h

    r05587c2 re56cfdb0  
    5858        virtual Type* mutate(TypeInstType *aggregateUseType);
    5959        virtual Expression* mutate(NameExpr *nameExpr);
    60 
    61         /// Records type variable bindings from forall-statements
     60       
    6261        template< typename TypeClass > Type *handleType( TypeClass *type );
    63         /// Records type variable bindings from forall-statements and instantiations of generic types
    64         template< typename TypeClass > Type *handleAggregateType( TypeClass *type );
    6562       
    6663        virtual Type* mutate(VoidType *basicType);
  • src/main.cc

    r05587c2 re56cfdb0  
    2424#include "SynTree/Declaration.h"
    2525#include "SynTree/Visitor.h"
    26 #include "GenPoly/InstantiateGeneric.h"
    2726#include "GenPoly/Lvalue.h"
    2827#include "GenPoly/Specialize.h"
     
    269268                }
    270269
    271                 OPTPRINT( "instantiateGeneric" )
    272                 GenPoly::instantiateGeneric( translationUnit );
    273270                OPTPRINT( "copyParams" );
    274271                GenPoly::copyParams( translationUnit );
Note: See TracChangeset for help on using the changeset viewer.