xref: /llvm-project/llvm/lib/Target/X86/X86MacroFusion.h (revision fd283ddb9bd65581834ad3259c8f7f15a3ac15a0)
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