//===-- X86PfmCounters.td - X86 Hardware Counters ----------*- tablegen -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This describes the available hardware counters for various subtargets. // //===----------------------------------------------------------------------===// let SchedModel = SandyBridgeModel in { def SBCycleCounter : PfmCycleCounter<"unhalted_core_cycles">; def SBPort0Counter : PfmIssueCounter; def SBPort1Counter : PfmIssueCounter; def SBPort23Counter : PfmIssueCounter; def SBPort4Counter : PfmIssueCounter; def SBPort5Counter : PfmIssueCounter; } let SchedModel = HaswellModel in { def HWCycleCounter : PfmCycleCounter<"unhalted_core_cycles">; def HWPort0Counter : PfmIssueCounter; def HWPort1Counter : PfmIssueCounter; def HWPort2Counter : PfmIssueCounter; def HWPort3Counter : PfmIssueCounter; def HWPort4Counter : PfmIssueCounter; def HWPort5Counter : PfmIssueCounter; def HWPort6Counter : PfmIssueCounter; def HWPort7Counter : PfmIssueCounter; } let SchedModel = BroadwellModel in { def BWCycleCounter : PfmCycleCounter<"unhalted_core_cycles">; def BWPort0Counter : PfmIssueCounter; def BWPort1Counter : PfmIssueCounter; def BWPort2Counter : PfmIssueCounter; def BWPort3Counter : PfmIssueCounter; def BWPort4Counter : PfmIssueCounter; def BWPort5Counter : PfmIssueCounter; def BWPort6Counter : PfmIssueCounter; def BWPort7Counter : PfmIssueCounter; } let SchedModel = SkylakeClientModel in { def SKLCycleCounter : PfmCycleCounter<"unhalted_core_cycles">; def SKLPort0Counter : PfmIssueCounter; def SKLPort1Counter : PfmIssueCounter; def SKLPort2Counter : PfmIssueCounter; def SKLPort3Counter : PfmIssueCounter; def SKLPort4Counter : PfmIssueCounter; def SKLPort5Counter : PfmIssueCounter; def SKLPort6Counter : PfmIssueCounter; def SKLPort7Counter : PfmIssueCounter; } let SchedModel = SkylakeServerModel in { def SKXCycleCounter : PfmCycleCounter<"unhalted_core_cycles">; def SKXPort0Counter : PfmIssueCounter; def SKXPort1Counter : PfmIssueCounter; def SKXPort2Counter : PfmIssueCounter; def SKXPort3Counter : PfmIssueCounter; def SKXPort4Counter : PfmIssueCounter; def SKXPort5Counter : PfmIssueCounter; def SKXPort6Counter : PfmIssueCounter; def SKXPort7Counter : PfmIssueCounter; } let SchedModel = BtVer2Model in { def JCycleCounter : PfmCycleCounter<"cpu_clk_unhalted">; }