llvm-project/llvm/lib/Target/Hexagon
Reid Kleckner 9c2b72821b Move tail call disabling code to target independent code
When the "disable-tail-calls" attribute was added, checks were added for
it in various backends. Now this code has proliferated, and it is
something the target is responsible for checking. Move that
responsibility back to the ISels (fast, global, and SD).

There's no major functionality change, except for targets that never
implemented this check.

This LLVM attribute was originally added in
d9699bc7bd (2015).

Reviewers: echristo, MaskRay

Differential Revision: https://reviews.llvm.org/D72118
2020-01-03 11:27:41 -08:00
..
AsmParser [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
Disassembler [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
MCTargetDesc [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
TargetInfo [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
BitTracker.cpp [Hexagon] Fixes -Wrange-loop-analysis warnings 2019-12-22 19:35:02 +01:00
BitTracker.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CMakeLists.txt [Hexagon] Remove support for V4 2018-10-19 17:31:11 +00:00
Hexagon.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Hexagon.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonAsmPrinter.cpp Apply llvm-prefer-register-over-unsigned from clang-tidy to LLVM 2019-08-15 19:22:08 +00:00
HexagonAsmPrinter.h Include what you use in HexagonAsmPrinter.h 2019-06-03 11:41:18 +00:00
HexagonBitSimplify.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
HexagonBitTracker.cpp Apply llvm-prefer-register-over-unsigned from clang-tidy to LLVM 2019-08-15 19:22:08 +00:00
HexagonBitTracker.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonBlockRanges.cpp Finish moving TargetRegisterInfo::isVirtualRegister() and friends to llvm::Register as started by r367614. NFC 2019-08-01 23:27:28 +00:00
HexagonBlockRanges.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonBranchRelaxation.cpp [Alignment][NFC] Remove unneeded llvm:: scoping on Align types 2019-09-27 12:54:21 +00:00
HexagonCFGOptimizer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonCallingConv.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonCommonGEP.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
HexagonConstExtenders.cpp [Hexagon] Fixes -Wrange-loop-analysis warnings 2019-12-22 19:35:02 +01:00
HexagonConstPropagation.cpp Reland 'Fixed -Wdeprecated-copy warnings. NFCI.' 2019-11-23 23:09:39 +01:00
HexagonCopyToCombine.cpp Apply llvm-prefer-register-over-unsigned from clang-tidy to LLVM 2019-08-15 19:22:08 +00:00
HexagonDepArch.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonDepArch.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonDepDecoders.inc [Hexagon] Rename textually included file from .h to .inc 2019-01-31 21:58:42 +00:00
HexagonDepIICHVX.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonDepIICScalar.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonDepITypes.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonDepITypes.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonDepInstrFormats.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonDepInstrInfo.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonDepMapAsm2Intrin.td Hexagon: Fix missing tablegen mode comment 2019-12-27 17:05:04 -05:00
HexagonDepMappings.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonDepOperands.td Reapply r372285 "GlobalISel: Don't materialize immarg arguments to intrinsics" 2019-09-19 16:26:14 +00:00
HexagonDepTimingClasses.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonEarlyIfConv.cpp Make more use of MachineInstr::mayLoadOrStore. 2019-12-19 11:51:52 +00:00
HexagonExpandCondsets.cpp Make more use of MachineInstr::mayLoadOrStore. 2019-12-19 11:51:52 +00:00
HexagonFixupHwLoops.cpp [Alignment][NFC] Remove unneeded llvm:: scoping on Align types 2019-09-27 12:54:21 +00:00
HexagonFrameLowering.cpp [Hexagon] Fix vector spill expansion to use proper alignment 2019-11-12 09:43:21 -06:00
HexagonFrameLowering.h Use Align for TFL::TransientStackAlignment 2019-10-21 08:31:25 +00:00
HexagonGenExtract.cpp [IR] Split out target specific intrinsic enums into separate headers 2019-12-11 18:02:14 -08:00
HexagonGenInsert.cpp Reland 'Fixed -Wdeprecated-copy warnings. NFCI.' 2019-11-23 23:09:39 +01:00
HexagonGenMux.cpp [Hexagon] Validate the iterators before converting them to mux. 2019-11-14 13:01:16 -06:00
HexagonGenPredicate.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
HexagonHardwareLoops.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
HexagonHazardRecognizer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonHazardRecognizer.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonIICHVX.td [Hexagon] Avoid creating 5-instruction packets with vgather pseudos 2019-03-06 17:43:50 +00:00
HexagonIICScalar.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonISelDAGToDAG.cpp [SelectionDAG] Disallow indirect "i" constraint 2019-12-29 16:50:42 -08:00
HexagonISelDAGToDAG.h [Hexagon] Update PS_aligna with max stack alignment once isel completes 2019-11-12 11:47:29 -06:00
HexagonISelDAGToDAGHVX.cpp [IR] Split out target specific intrinsic enums into separate headers 2019-12-11 18:02:14 -08:00
HexagonISelLowering.cpp Move tail call disabling code to target independent code 2020-01-03 11:27:41 -08:00
HexagonISelLowering.h DAG: Add function context to isFMAFasterThanFMulAndFAdd 2019-11-19 19:25:26 +05:30
HexagonISelLoweringHVX.cpp [DAGCombine] Initialize the default operation action for SIGN_EXTEND_INREG for vector type as 'expand' instead of 'legal' 2020-01-03 03:26:41 +00:00
HexagonInstrFormats.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonInstrFormatsV5.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonInstrFormatsV60.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonInstrFormatsV65.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonInstrInfo.cpp Make more use of MachineInstr::mayLoadOrStore. 2019-12-19 11:51:52 +00:00
HexagonInstrInfo.h Use MCRegister in copyPhysReg 2019-11-11 14:42:33 +05:30
HexagonIntrinsics.td [Hexagon] Remove incorrect intrinsic definition and invalid testcase 2019-11-21 09:18:15 -06:00
HexagonIntrinsicsV5.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonIntrinsicsV60.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonLoopIdiomRecognition.cpp [Hexagon] Fixes -Wrange-loop-analysis warnings 2019-12-22 19:35:02 +01:00
HexagonMCInstLower.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonMachineFunctionInfo.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonMachineFunctionInfo.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonMachineScheduler.cpp Implementation of asm-goto support in LLVM 2019-02-08 20:48:56 +00:00
HexagonMachineScheduler.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonMapAsm2IntrinV62.gen.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonMapAsm2IntrinV65.gen.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonNewValueJump.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
HexagonOperands.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonOptAddrMode.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
HexagonOptimizeSZextends.cpp [IR] Split out target specific intrinsic enums into separate headers 2019-12-11 18:02:14 -08:00
HexagonPatterns.td Fix pattern error for S2_tstbit_i instruction 2019-10-30 11:21:48 -05:00
HexagonPatternsHVX.td [Hexagon] Bitcast v4i16 to v8i8, unify no-op casts between scalar and HVX 2019-09-23 14:33:27 +00:00
HexagonPatternsV65.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonPeephole.cpp Apply llvm-prefer-register-over-unsigned from clang-tidy to LLVM 2019-08-15 19:22:08 +00:00
HexagonPseudo.td [Hexagon] Fix vector spill expansion to use proper alignment 2019-11-12 09:43:21 -06:00
HexagonRDFOpt.cpp Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
HexagonRegisterInfo.cpp [Hexagon] Fix vector spill expansion to use proper alignment 2019-11-12 09:43:21 -06:00
HexagonRegisterInfo.h CodeGen: Introduce a class for registers 2019-06-24 15:50:29 +00:00
HexagonRegisterInfo.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonSchedule.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonScheduleV5.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonScheduleV55.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonScheduleV60.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonScheduleV62.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonScheduleV65.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonScheduleV66.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonSelectionDAGInfo.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonSelectionDAGInfo.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonSplitConst32AndConst64.cpp Apply llvm-prefer-register-over-unsigned from clang-tidy to LLVM 2019-08-15 19:22:08 +00:00
HexagonSplitDouble.cpp Make more use of MachineInstr::mayLoadOrStore. 2019-12-19 11:51:52 +00:00
HexagonStoreWidening.cpp Make more use of MachineInstr::mayLoadOrStore. 2019-12-19 11:51:52 +00:00
HexagonSubtarget.cpp Use a bit of relaxed constexpr to make FeatureBitset costant intializable 2019-08-24 15:02:44 +00:00
HexagonSubtarget.h [SVE][MVT] Fixed-length vector MVT ranges 2019-09-17 10:19:23 +00:00
HexagonTargetMachine.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
HexagonTargetMachine.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonTargetObjectFile.cpp Revert "Honor -fuse-init-array when os is not specified on x86" 2019-12-17 07:36:59 -08:00
HexagonTargetObjectFile.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonTargetStreamer.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
HexagonTargetTransformInfo.cpp [ARM] Teach the Arm cost model that a Shift can be folded into other instructions 2019-12-09 10:24:33 +00:00
HexagonTargetTransformInfo.h [ARM] Teach the Arm cost model that a Shift can be folded into other instructions 2019-12-09 10:24:33 +00:00
HexagonVExtract.cpp [Hexagon] Handle stack realignment in hexagon-vextract 2019-11-12 09:43:21 -06:00
HexagonVLIWPacketizer.cpp [Hexagon] Fixes -Wrange-loop-analysis warnings 2019-12-22 19:35:02 +01:00
HexagonVLIWPacketizer.h Prune two MachineInstr.h includes, fix up deps 2019-10-19 00:22:07 +00:00
HexagonVectorLoopCarriedReuse.cpp [IR] Split out target specific intrinsic enums into separate headers 2019-12-11 18:02:14 -08:00
HexagonVectorPrint.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RDFCopy.cpp Finish moving TargetRegisterInfo::isVirtualRegister() and friends to llvm::Register as started by r367614. NFC 2019-08-01 23:27:28 +00:00
RDFCopy.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RDFDeadCode.cpp Prune two MachineInstr.h includes, fix up deps 2019-10-19 00:22:07 +00:00
RDFDeadCode.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RDFGraph.cpp Apply llvm-prefer-register-over-unsigned from clang-tidy to LLVM 2019-08-15 19:22:08 +00:00
RDFGraph.h Hexagon RDF: Replace function template (plus explicit specializations) with non-template overloads 2019-03-11 23:10:33 +00:00
RDFLiveness.cpp [Hexagon] Fixes -Wrange-loop-analysis warnings 2019-12-22 19:35:02 +01:00
RDFLiveness.h Hexagon RDF: Replace function template (plus explicit specializations) with non-template overloads 2019-03-11 23:10:33 +00:00
RDFRegisters.cpp Finish moving TargetRegisterInfo::isVirtualRegister() and friends to llvm::Register as started by r367614. NFC 2019-08-01 23:27:28 +00:00
RDFRegisters.h Finish moving TargetRegisterInfo::isVirtualRegister() and friends to llvm::Register as started by r367614. NFC 2019-08-01 23:27:28 +00:00