OLD | NEW |
---|---|
1 //===- subzero/src/IceGlobalContext.h - Global context defs -----*- C++ -*-===// | 1 //===- subzero/src/IceGlobalContext.h - Global context defs -----*- C++ -*-===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 /// | 9 /// |
10 /// \file | 10 /// \file |
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
475 | 475 |
476 void setDisposeGlobalVariablesAfterLowering(bool Value) { | 476 void setDisposeGlobalVariablesAfterLowering(bool Value) { |
477 DisposeGlobalVariablesAfterLowering = Value; | 477 DisposeGlobalVariablesAfterLowering = Value; |
478 } | 478 } |
479 /// @} | 479 /// @} |
480 | 480 |
481 LockedPtr<StringPool> getStrings() const { | 481 LockedPtr<StringPool> getStrings() const { |
482 return LockedPtr<StringPool>(Strings.get(), &StringsLock); | 482 return LockedPtr<StringPool>(Strings.get(), &StringsLock); |
483 } | 483 } |
484 | 484 |
485 LockedPtr<VariableDeclarationList> getGlobals() { | |
486 return LockedPtr<VariableDeclarationList>(&Globals, &InitAllocLock); | |
487 } | |
488 | |
485 /// Number of function blocks that can be queued before waiting for | 489 /// Number of function blocks that can be queued before waiting for |
486 /// translation | 490 /// translation |
487 /// threads to consume. | 491 /// threads to consume. |
488 static constexpr size_t MaxOptQSize = 1 << 16; | 492 static constexpr size_t MaxOptQSize = 1 << 16; |
489 | 493 |
490 private: | 494 private: |
491 // Try to ensure mutexes are allocated on separate cache lines. | 495 // Try to ensure mutexes are allocated on separate cache lines. |
492 | 496 |
493 // Destructors collaborate with Allocator | 497 // Destructors collaborate with Allocator |
494 ICE_CACHELINE_BOUNDARY; | 498 ICE_CACHELINE_BOUNDARY; |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
605 return LockedPtr<TimerList>(&Timers, &TimerLock); | 609 return LockedPtr<TimerList>(&Timers, &TimerLock); |
606 } | 610 } |
607 LockedPtr<DestructorArray> getDestructors() { | 611 LockedPtr<DestructorArray> getDestructors() { |
608 return LockedPtr<DestructorArray>(&Destructors, &DestructorsLock); | 612 return LockedPtr<DestructorArray>(&Destructors, &DestructorsLock); |
609 } | 613 } |
610 | 614 |
611 void accumulateGlobals(std::unique_ptr<VariableDeclarationList> Globls) { | 615 void accumulateGlobals(std::unique_ptr<VariableDeclarationList> Globls) { |
612 LockedPtr<VariableDeclarationList> _(&Globals, &InitAllocLock); | 616 LockedPtr<VariableDeclarationList> _(&Globals, &InitAllocLock); |
613 if (Globls != nullptr) { | 617 if (Globls != nullptr) { |
614 Globals.merge(Globls.get()); | 618 Globals.merge(Globls.get()); |
619 if (!BuildDefs::minimal() && Instrumentor != NULL) | |
Jim Stichnoth
2016/07/19 22:39:00
nullptr
tlively
2016/07/19 23:20:14
Done.
| |
620 Instrumentor->setHasSeenGlobals(); | |
615 } | 621 } |
616 } | 622 } |
617 | 623 |
618 void lowerGlobalsIfNoCodeHasBeenSeen() { | 624 void lowerGlobalsIfNoCodeHasBeenSeen() { |
619 if (HasSeenCode) | 625 if (HasSeenCode) |
620 return; | 626 return; |
621 constexpr char NoSuffix[] = ""; | 627 constexpr char NoSuffix[] = ""; |
622 lowerGlobals(NoSuffix); | 628 lowerGlobals(NoSuffix); |
623 HasSeenCode = true; | 629 HasSeenCode = true; |
624 } | 630 } |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
692 explicit OstreamLocker(GlobalContext *Ctx) : Ctx(Ctx) { Ctx->lockStr(); } | 698 explicit OstreamLocker(GlobalContext *Ctx) : Ctx(Ctx) { Ctx->lockStr(); } |
693 ~OstreamLocker() { Ctx->unlockStr(); } | 699 ~OstreamLocker() { Ctx->unlockStr(); } |
694 | 700 |
695 private: | 701 private: |
696 GlobalContext *const Ctx; | 702 GlobalContext *const Ctx; |
697 }; | 703 }; |
698 | 704 |
699 } // end of namespace Ice | 705 } // end of namespace Ice |
700 | 706 |
701 #endif // SUBZERO_SRC_ICEGLOBALCONTEXT_H | 707 #endif // SUBZERO_SRC_ICEGLOBALCONTEXT_H |
OLD | NEW |