1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 05:23:45 +02:00
llvm-mirror/lib/Target/AArch64
Jessica Paquette 09730f1b79 [MachineOutliner] NFC: Change IsTailCall to a call class + frame class
This commit

- Removes IsTailCall and replaces it with a target-defined unsigned
- Refactors getOutliningCallOverhead and getOutliningFrameOverhead so that they don't use IsTailCall
- Adds a call class + frame class classification to OutlinedFunction and Candidate respectively

This accomplishes a couple things.

Firstly, we don't need the notion of *tail call* in the general outlining algorithm.

Secondly, we now can have different "outlining classes" for each candidate within a set of candidates.
This will make it easy to add new ways to outline sequences for certain targets and dynamically choose
an appropriate cost model for a sequence depending on the context that that sequence lives in.

Ultimately, this should get us closer to being able to do something like, say avoid saving the link
register when outlining AArch64 instructions.

llvm-svn: 309475
2017-07-29 02:55:46 +00:00
..
AsmParser [TargetParser] Use enum classes for various ARM kind enums. 2017-07-27 16:27:56 +00:00
Disassembler [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
InstPrinter AArch64: lower "fence singlethread" to a pure compiler barrier. 2017-04-20 21:57:45 +00:00
MCTargetDesc [COFF, ARM64] Fix symbol offsets in ADRP/ADD/LDR/STR relocations 2017-07-26 11:19:17 +00:00
TargetInfo
Utils
AArch64.h [AArch64][Falkor] Avoid HW prefetcher tag collisions (step 2) 2017-07-18 16:14:22 +00:00
AArch64.td [AArch64] Adjust the feature set for Exynos M2 2017-07-18 22:51:25 +00:00
AArch64A53Fix835769.cpp
AArch64A57FPLoadBalancing.cpp LiveRegUnits: Rename accumulateBackward()->accumulate() 2017-07-07 03:02:17 +00:00
AArch64AdvSIMDScalarPass.cpp
AArch64AsmPrinter.cpp [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64CallingConvention.h
AArch64CallingConvention.td [AArch64] Implement support for windows style vararg functions 2017-07-13 17:03:12 +00:00
AArch64CallLowering.cpp Add extra operand to CALLSEQ_START to keep frame part set up previously 2017-05-09 13:35:13 +00:00
AArch64CallLowering.h [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64CleanupLocalDynamicTLSPass.cpp fix trivial typos in comments; NFC 2017-07-03 06:32:59 +00:00
AArch64CollectLOH.cpp
AArch64CondBrTuning.cpp [AArch64] Fix -Wimplicit-fallthrough warnings. NFCI. 2017-07-07 13:03:28 +00:00
AArch64ConditionalCompares.cpp [AArch64] Update successor probabilities after ccmp-conversion 2017-06-27 15:00:22 +00:00
AArch64ConditionOptimizer.cpp [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64DeadRegisterDefinitionsPass.cpp [AArch64] Standardize suffixes for LSE Atomics mnemonics (NFCI) 2017-07-28 14:09:24 +00:00
AArch64ExpandPseudoInsts.cpp [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64FalkorHWPFFix.cpp [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64FastISel.cpp [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64FrameLowering.cpp [AArch64] Extend CallingConv::X86_64_Win64 to AArch64 as well 2017-07-17 20:05:19 +00:00
AArch64FrameLowering.h
AArch64GenRegisterBankInfo.def
AArch64InstrAtomics.td [AArch64] Standardize suffixes for LSE Atomics mnemonics (NFCI) 2017-07-28 14:09:24 +00:00
AArch64InstrFormats.td [AArch64] Standardize suffixes for LSE Atomics mnemonics (NFCI) 2017-07-28 14:09:24 +00:00
AArch64InstrInfo.cpp [MachineOutliner] NFC: Change IsTailCall to a call class + frame class 2017-07-29 02:55:46 +00:00
AArch64InstrInfo.h [MachineOutliner] NFC: Change IsTailCall to a call class + frame class 2017-07-29 02:55:46 +00:00
AArch64InstrInfo.td [AArch64] Add an SVE target feature to the backend and TargetParser. 2017-07-13 15:19:56 +00:00
AArch64InstructionSelector.cpp Recommit: GlobalISel: select G_EXTRACT and G_INSERT instructions on AArch64. 2017-07-20 22:58:38 +00:00
AArch64ISelDAGToDAG.cpp [AArch64] Avoid selecting XZR inline ASM memory operand 2017-07-14 21:46:16 +00:00
AArch64ISelLowering.cpp [AArch64] Fix legality info passed to demanded bits for TBI opt. 2017-07-27 21:27:25 +00:00
AArch64ISelLowering.h TargetLowering: Change isShuffleMaskLegal's mask argument type to ArrayRef<int>. NFCI. 2017-07-26 08:06:58 +00:00
AArch64LegalizerInfo.cpp [globalisel][tablegen] Enable the import of rules involving fma. 2017-07-18 14:10:07 +00:00
AArch64LegalizerInfo.h
AArch64LoadStoreOptimizer.cpp [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64MachineFunctionInfo.h [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64MacroFusion.cpp [AArch64] Fix order of checks in shouldScheduleAdjacent. 2017-06-19 13:45:41 +00:00
AArch64MacroFusion.h Recommit rL305677: [CodeGen] Add generic MacroFusion pass 2017-06-19 12:53:31 +00:00
AArch64MCInstLower.cpp [AArch64] Make assert messages uniform and general [NFC] 2017-06-28 19:37:38 +00:00
AArch64MCInstLower.h [COFF, ARM64] Add support for Windows ARM64 COFF format 2017-06-27 23:58:19 +00:00
AArch64PBQPRegAlloc.cpp Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
AArch64PBQPRegAlloc.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
AArch64PerfectShuffle.h
AArch64PromoteConstant.cpp [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64RedundantCopyElimination.cpp [AArch64] Redundant Copy Elimination - remove more zero copies. 2017-07-23 16:38:08 +00:00
AArch64RegisterBankInfo.cpp GlobalISel: map 128-bit values to an FPR by default. 2017-07-28 17:11:01 +00:00
AArch64RegisterBankInfo.h [RegisterBankInfo] Uniquely allocate instruction mapping. 2017-05-05 22:48:22 +00:00
AArch64RegisterBanks.td
AArch64RegisterInfo.cpp [COFF, ARM64, CodeView] Add support to emit CodeView debug info for ARM64 COFF 2017-07-20 20:20:00 +00:00
AArch64RegisterInfo.h
AArch64RegisterInfo.td
AArch64SchedA53.td
AArch64SchedA57.td fix trivial typos in comment, NFC 2017-06-24 16:00:26 +00:00
AArch64SchedA57WriteRes.td
AArch64SchedCyclone.td
AArch64SchedFalkor.td [AArch64][Falkor] Fix some sched details. 2017-05-28 21:48:31 +00:00
AArch64SchedFalkorDetails.td [AArch64][Falkor] Remove some non-existent opcodes from sched detail regexes. NFC. 2017-06-23 21:59:09 +00:00
AArch64SchedKryo.td
AArch64SchedKryoDetails.td [AArch64][Kryo] Add missing write latency for LDAXP, LDXP second destination. 2017-06-19 21:57:42 +00:00
AArch64SchedM1.td [AArch64] Adjust the cost model for Exynos M1 and M2 2017-07-26 21:28:15 +00:00
AArch64SchedThunderX2T99.td [AArch64] Performance enhancements for Cavium ThunderX2 T99 2017-06-27 20:44:55 +00:00
AArch64SchedThunderX.td
AArch64Schedule.td
AArch64SelectionDAGInfo.cpp
AArch64SelectionDAGInfo.h
AArch64StorePairSuppress.cpp
AArch64Subtarget.cpp [COFF, ARM64] Reserve X18 register by default 2017-07-18 20:41:33 +00:00
AArch64Subtarget.h [AArch64] Extend CallingConv::X86_64_Win64 to AArch64 as well 2017-07-17 20:05:19 +00:00
AArch64SystemOperands.td
AArch64TargetMachine.cpp [AArch64] Remove outdated comment. NFC. 2017-07-27 21:27:58 +00:00
AArch64TargetMachine.h Update the comments on default subtargets based on feedback. 2017-07-25 22:21:08 +00:00
AArch64TargetObjectFile.cpp Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
AArch64TargetObjectFile.h [COFF, ARM64] Add support for Windows ARM64 COFF format 2017-06-27 23:58:19 +00:00
AArch64TargetTransformInfo.cpp [AArch64][Falkor] Attempt to fix Windows buildbots 2017-06-28 19:36:10 +00:00
AArch64TargetTransformInfo.h [AArch64] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-07-25 23:51:02 +00:00
AArch64VectorByElementOpt.cpp
CMakeLists.txt [AArch64][Falkor] Avoid HW prefetcher tag collisions (step 1) 2017-07-14 21:44:12 +00:00
LLVMBuild.txt