194edf029SEvandro Menezes //===- X86MacroFusion.h - X86 Macro Fusion --------------------------------===// 294edf029SEvandro Menezes // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 694edf029SEvandro Menezes // 794edf029SEvandro Menezes //===----------------------------------------------------------------------===// 894edf029SEvandro Menezes // 95f746c8eSFlorian Hahn /// \file This file contains the X86 definition of the DAG scheduling mutation 105f746c8eSFlorian Hahn /// to pair instructions back to back. 1194edf029SEvandro Menezes // 1294edf029SEvandro Menezes //===----------------------------------------------------------------------===// 1394edf029SEvandro Menezes 14c30340b2SArgyrios Kyrtzidis #ifndef LLVM_LIB_TARGET_X86_X86MACROFUSION_H 15c30340b2SArgyrios Kyrtzidis #define LLVM_LIB_TARGET_X86_X86MACROFUSION_H 16c30340b2SArgyrios Kyrtzidis 17*fd283ddbSSimon Pilgrim #include <memory> 1894edf029SEvandro Menezes 1994edf029SEvandro Menezes namespace llvm { 2094edf029SEvandro Menezes 21*fd283ddbSSimon Pilgrim class ScheduleDAGMutation; 22*fd283ddbSSimon Pilgrim 2394edf029SEvandro Menezes /// Note that you have to add: 2494edf029SEvandro Menezes /// DAG.addMutation(createX86MacroFusionDAGMutation()); 2594edf029SEvandro Menezes /// to X86PassConfig::createMachineScheduler() to have an effect. 2694edf029SEvandro Menezes std::unique_ptr<ScheduleDAGMutation> 2794edf029SEvandro Menezes createX86MacroFusionDAGMutation(); 2894edf029SEvandro Menezes 2994edf029SEvandro Menezes } // end namespace llvm 30c30340b2SArgyrios Kyrtzidis 31c30340b2SArgyrios Kyrtzidis #endif 32