From: Chad Rosier Date: Tue, 29 Nov 2016 20:00:27 +0000 (+0000) Subject: [AArch64] Add a basic SchedMachineModel for Falkor. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d34c26eb08fb783b0bcb52d5410cfbd5cf32757b;p=platform%2Fupstream%2Fllvm.git [AArch64] Add a basic SchedMachineModel for Falkor. Differential Revision: https://reviews.llvm.org/D26972 llvm-svn: 288194 --- diff --git a/llvm/lib/Target/AArch64/AArch64.td b/llvm/lib/Target/AArch64/AArch64.td index 54369c6..c6afa55 100644 --- a/llvm/lib/Target/AArch64/AArch64.td +++ b/llvm/lib/Target/AArch64/AArch64.td @@ -144,8 +144,9 @@ include "AArch64SystemOperands.td" include "AArch64SchedA53.td" include "AArch64SchedA57.td" include "AArch64SchedCyclone.td" -include "AArch64SchedM1.td" +include "AArch64SchedFalkor.td" include "AArch64SchedKryo.td" +include "AArch64SchedM1.td" include "AArch64SchedVulcan.td" def ProcA35 : SubtargetFeature<"a35", "ARMProcFamily", "CortexA35", @@ -292,7 +293,7 @@ def : ProcessorModel<"cortex-a73", CortexA57Model, [ProcA73]>; def : ProcessorModel<"cyclone", CycloneModel, [ProcCyclone]>; def : ProcessorModel<"exynos-m1", ExynosM1Model, [ProcExynosM1]>; def : ProcessorModel<"exynos-m2", ExynosM1Model, [ProcExynosM2]>; -def : ProcessorModel<"falkor", NoSchedModel, [ProcFalkor]>; +def : ProcessorModel<"falkor", FalkorModel, [ProcFalkor]>; def : ProcessorModel<"kryo", KryoModel, [ProcKryo]>; def : ProcessorModel<"vulcan", VulcanModel, [ProcVulcan]>; diff --git a/llvm/lib/Target/AArch64/AArch64SchedFalkor.td b/llvm/lib/Target/AArch64/AArch64SchedFalkor.td new file mode 100644 index 0000000..19a6d6f --- /dev/null +++ b/llvm/lib/Target/AArch64/AArch64SchedFalkor.td @@ -0,0 +1,26 @@ +//==- AArch64SchedFalkor.td - Falkor Scheduling Definitions -*- tablegen -*-==// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines the machine model for Qualcomm Falkor to support +// instruction scheduling and other instruction cost heuristics. +// +//===----------------------------------------------------------------------===// + +//===----------------------------------------------------------------------===// +// Define the SchedMachineModel and provide basic properties for coarse grained +// instruction cost model. + +def FalkorModel : SchedMachineModel { + let IssueWidth = 4; // 4-wide issue for expanded uops. + let MicroOpBufferSize = 128; // Out-of-order with temporary unified issue buffer. + let LoopMicroOpBufferSize = 16; + let LoadLatency = 3; // Optimistic load latency. + let MispredictPenalty = 11; // Minimum branch misprediction penalty. + let CompleteModel = 0; +}