Changes in src/main.cc [11df881:9e23b446]
- File:
-
- 1 edited
-
src/main.cc (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/main.cc
r11df881 r9e23b446 10 10 // Created On : Fri May 15 23:12:02 2015 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Mon Jul 18 11:08:00 202213 // Update Count : 67 612 // Last Modified On : Tue Jun 7 13:29:00 2022 13 // Update Count : 674 14 14 // 15 15 … … 78 78 #include "Validate/CompoundLiteral.hpp" // for handleCompoundLiterals 79 79 #include "Validate/EliminateTypedef.hpp" // for eliminateTypedef 80 #include "Validate/EnumAndPointerDecay.hpp" // for decayEnumsAndPointers81 80 #include "Validate/FindSpecialDecls.h" // for findGlobalDecls 82 81 #include "Validate/FixQualifiedTypes.hpp" // for fixQualifiedTypes 83 #include "Validate/FixReturnTypes.hpp" // for fixReturnTypes84 82 #include "Validate/ForallPointerDecay.hpp" // for decayForallPointers 85 83 #include "Validate/GenericParameter.hpp" // for fillGenericParameters, tr... 86 84 #include "Validate/HoistStruct.hpp" // for hoistStruct 87 #include "Validate/HoistTypeDecls.hpp" // for hoistTypeDecls88 85 #include "Validate/InitializerLength.hpp" // for setLengthFromInitializer 89 86 #include "Validate/LabelAddressFixer.hpp" // for fixLabelAddresses 90 #include "Validate/LinkReferenceToTypes.hpp" // for linkReferenceToTypes91 #include "Validate/ReplaceTypedef.hpp" // for replaceTypedef92 87 #include "Validate/ReturnCheck.hpp" // for checkReturnStatements 93 #include "Validate/VerifyCtorDtorAssign.hpp" // for verifyCtorDtorAssign94 88 #include "Virtual/ExpandCasts.h" // for expandCasts 95 89 … … 330 324 Stats::Time::StopBlock(); 331 325 326 PASS( "Translate Exception Declarations", ControlStruct::translateExcept( translationUnit ) ); 327 if ( exdeclp ) { 328 dump( translationUnit ); 329 return EXIT_SUCCESS; 330 } // if 331 332 // add the assignment statement after the initialization of a type parameter 333 PASS( "Validate-A", SymTab::validate_A( translationUnit ) ); 334 335 // Must happen before auto-gen, because it uses the sized flag. 336 PASS( "Link Reference To Types", SymTab::linkReferenceToTypes( translationUnit ) ); 337 338 CodeTools::fillLocations( translationUnit ); 339 332 340 if( useNewAST ) { 341 CodeTools::fillLocations( translationUnit ); 342 333 343 if (Stats::Counters::enabled) { 334 344 ast::pass_visitor_stats.avg = Stats::Counters::build<Stats::Counters::AverageCounter<double>>("Average Depth - New"); … … 339 349 forceFillCodeLocations( transUnit ); 340 350 341 PASS( "Translate Exception Declarations", ControlStruct::translateExcept( transUnit ) ); 342 if ( exdeclp ) { 343 dump( move( transUnit ) ); 344 return EXIT_SUCCESS; 345 } 346 347 PASS( "Verify Ctor, Dtor & Assign", Validate::verifyCtorDtorAssign( transUnit ) ); 348 PASS( "Hoist Type Decls", Validate::hoistTypeDecls( transUnit ) ); 349 // Hoist Type Decls pulls some declarations out of contexts where 350 // locations are not tracked. Perhaps they should be, but for now 351 // the full fill solves it. 352 forceFillCodeLocations( transUnit ); 353 354 PASS( "Replace Typedefs", Validate::replaceTypedef( transUnit ) ); 355 PASS( "Fix Return Types", Validate::fixReturnTypes( transUnit ) ); 356 PASS( "Enum and Pointer Decay", Validate::decayEnumsAndPointers( transUnit ) ); 357 358 PASS( "Link Reference To Types", Validate::linkReferenceToTypes( transUnit ) ); 359 351 // Must happen after Link References To Types, 352 // because aggregate members are accessed. 360 353 PASS( "Fix Qualified Types", Validate::fixQualifiedTypes( transUnit ) ); 354 361 355 PASS( "Hoist Struct", Validate::hoistStruct( transUnit ) ); 362 356 PASS( "Eliminate Typedef", Validate::eliminateTypedef( transUnit ) ); 357 358 // Check as early as possible. Can't happen before 359 // LinkReferenceToType, observed failing when attempted 360 // before eliminateTypedef 363 361 PASS( "Validate Generic Parameters", Validate::fillGenericParameters( transUnit ) ); 362 364 363 PASS( "Translate Dimensions", Validate::translateDimensionParameters( transUnit ) ); 365 364 PASS( "Check Function Returns", Validate::checkReturnStatements( transUnit ) ); 365 366 // Must happen before Autogen. 366 367 PASS( "Fix Return Statements", InitTweak::fixReturnStatements( transUnit ) ); 368 367 369 PASS( "Implement Concurrent Keywords", Concurrency::implementKeywords( transUnit ) ); 370 371 // Must be after implement concurrent keywords; because uniqueIds 372 // must be set on declaration before resolution. 373 // Must happen before autogen routines are added. 368 374 PASS( "Forall Pointer Decay", Validate::decayForallPointers( transUnit ) ); 375 376 // Must happen before autogen routines are added. 369 377 PASS( "Hoist Control Declarations", ControlStruct::hoistControlDecls( transUnit ) ); 370 378 379 // Must be after enum and pointer decay. 380 // Must be before compound literals. 371 381 PASS( "Generate Autogen Routines", Validate::autogenerateRoutines( transUnit ) ); 372 382 … … 439 449 PASS( "Translate Tries", ControlStruct::translateTries( transUnit ) ); 440 450 PASS( "Gen Waitfor", Concurrency::generateWaitFor( transUnit ) ); 451 PASS( "Convert Specializations", GenPoly::convertSpecializations( transUnit ) ); // needs to happen before tuple types are expanded 452 441 453 442 454 translationUnit = convert( move( transUnit ) ); 443 455 } else { 444 PASS( "Translate Exception Declarations", ControlStruct::translateExcept( translationUnit ) ); 445 if ( exdeclp ) { 446 dump( translationUnit ); 447 return EXIT_SUCCESS; 448 } // if 449 450 // add the assignment statement after the initialization of a type parameter 451 PASS( "Validate", SymTab::validate( translationUnit ) ); 456 PASS( "Validate-B", SymTab::validate_B( translationUnit ) ); 457 PASS( "Validate-C", SymTab::validate_C( translationUnit ) ); 458 PASS( "Validate-D", SymTab::validate_D( translationUnit ) ); 459 PASS( "Validate-E", SymTab::validate_E( translationUnit ) ); 460 PASS( "Validate-F", SymTab::validate_F( translationUnit ) ); 452 461 453 462 if ( symtabp ) { … … 513 522 PASS( "Translate Tries", ControlStruct::translateTries( translationUnit ) ); 514 523 PASS( "Gen Waitfor", Concurrency::generateWaitFor( translationUnit ) ); 524 PASS( "Convert Specializations", GenPoly::convertSpecializations( translationUnit ) ); // needs to happen before tuple types are expanded 525 515 526 } 516 527 517 PASS( "Convert Specializations", GenPoly::convertSpecializations( translationUnit ) ); // needs to happen before tuple types are expanded 528 529 // PASS( "Convert Specializations", GenPoly::convertSpecializations( translationUnit ) ); // needs to happen before tuple types are expanded 518 530 519 531 PASS( "Expand Tuples", Tuples::expandTuples( translationUnit ) ); // xxx - is this the right place for this?
Note:
See TracChangeset
for help on using the changeset viewer.