Path: blob/master/runtime/compiler/optimizer/HotFieldMarking.hpp
6000 views
/*******************************************************************************1* Copyright (c) 2020, 2020 IBM Corp. and others2*3* This program and the accompanying materials are made available under4* the terms of the Eclipse Public License 2.0 which accompanies this5* distribution and is available at https://www.eclipse.org/legal/epl-2.0/6* or the Apache License, Version 2.0 which accompanies this distribution and7* is available at https://www.apache.org/licenses/LICENSE-2.0.8*9* This Source Code may also be made available under the following10* Secondary Licenses when the conditions for such availability set11* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU12* General Public License, version 2 with the GNU Classpath13* Exception [1] and GNU General Public License, version 2 with the14* OpenJDK Assembly Exception [2].15*16* [1] https://www.gnu.org/software/classpath/license.html17* [2] http://openjdk.java.net/legal/assembly-exception.html18*19* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception20*******************************************************************************/2122#ifndef HOTFIELDMARKING_INCL23#define HOTFIELDMARKING_INCL2425#include <stdint.h> // for int32_t26#include "optimizer/Optimization.hpp" // for Optimization27#include "optimizer/OptimizationManager.hpp" // for OptimizationManager2829namespace TR { class Block; class Node; }3031class TR_HotFieldMarking : public TR::Optimization32{33public:34TR_HotFieldMarking(TR::OptimizationManager *manager)35: TR::Optimization(manager)36{}37static TR::Optimization *create(TR::OptimizationManager *manager)38{39return new (manager->allocator()) TR_HotFieldMarking(manager);40}4142/**43* @brief Perform the hot field marking pass44* @return 1 on success, 0 on failure or if hot field marking is disabled45*/46virtual int32_t perform();4748/**49* @brief Returns optimization string details50*/51virtual const char * optDetailString() const throw();5253/**54* @brief Return the hot field marking pass scaling factor based on the opt level of the current compilation55* @return Scaling factors can be overriden by environment variables; default scaling factors of 1 for opt level warm and below, 10 for opt level hot or very hot, and 100 for opt level scorching56*/57int32_t getUtilization();58};5960#endif616263