| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- #pragma once
- // class for the backend to use to access CodeGenWorkItem properties
- class JITTimeWorkItem
- {
- public:
- JITTimeWorkItem(CodeGenWorkItemIDL * workItemData);
- CodeGenWorkItemType Type() const;
- ExecutionMode GetJitMode() const;
- uint GetLoopNumber() const;
- const JITLoopHeaderIDL * GetLoopHeader() const;
- intptr_t GetLoopHeaderAddr() const;
- bool IsLoopBody() const;
- bool IsJitInDebugMode() const;
-
- intptr_t GetCallsCountAddress() const;
- intptr_t GetJittedLoopIterationsSinceLastBailoutAddr() const;
- void InitializeReader(
- Js::ByteCodeReader * reader,
- Js::StatementReader<Js::FunctionBody::ArenaStatementMapList> * statementReader, ArenaAllocator* alloc);
- JITTimeFunctionBody * GetJITFunctionBody();
- uint16 GetProfiledIterations() const;
- CodeGenWorkItemIDL* GetWorkItemData();
- JITTimePolymorphicInlineCacheInfo * GetPolymorphicInlineCacheInfo();
- JITTimePolymorphicInlineCacheInfo * GetInlineePolymorphicInlineCacheInfo(intptr_t funcBodyAddr);
- void SetJITTimeData(FunctionJITTimeDataIDL * jitData);
- FunctionJITTimeInfo * GetJITTimeInfo() const;
- bool TryGetValueType(uint symId, ValueType * valueType) const;
- bool HasSymIdToValueTypeMap() const;
- private:
- Js::FunctionBody::ArenaStatementMapList * m_fullStatementList;
- CodeGenWorkItemIDL * m_workItemData;
- JITTimeFunctionBody m_jitBody;
- Js::SmallSpanSequence m_statementMap;
- };
|