llvm-project/llvm/lib/Target/Hexagon
Eli Friedman cfd2c5ce58 Untangle the mess which is MachineBasicBlock::hasAddressTaken().
There are two different senses in which a block can be "address-taken".
There can be a BlockAddress involved, which means we need to map the
IR-level value to some specific block of machine code.  Or there can be
constructs inside a function which involve using the address of a basic
block to implement certain kinds of control flow.

Mixing these together causes a problem: if target-specific passes are
marking random blocks "address-taken", if we have a BlockAddress, we
can't actually tell which MachineBasicBlock corresponds to the
BlockAddress.

So split this into two separate bits: one for BlockAddress, and one for
the machine-specific bits.

Discovered while trying to sort out related stuff on D102817.

Differential Revision: https://reviews.llvm.org/D124697
2022-08-16 16:15:44 -07:00
..
AsmParser [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
Disassembler [MCDisassembler] Disambiguate Size parameter in tryAddingSymbolicOperand() 2022-05-25 13:44:32 -07:00
MCTargetDesc [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
TargetInfo Fix shlib builds for all lib/Target/*/TargetInfo libs 2021-10-08 15:21:13 -07:00
BitTracker.cpp [llvm] Call *set::insert without checking membership first (NFC) 2022-06-18 08:32:54 -07:00
BitTracker.h
CMakeLists.txt
Hexagon.h
Hexagon.td [Hexagon] Introduce Hexagon v69 ISA 2021-12-23 08:46:03 -08:00
HexagonAsmPrinter.cpp [CodeGen] Move instruction predicate verification to emitInstruction 2022-07-14 09:33:28 +01:00
HexagonAsmPrinter.h Reapply [xray] add support for hexagon 2021-12-10 05:32:28 -08:00
HexagonBitSimplify.cpp [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
HexagonBitTracker.cpp [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
HexagonBitTracker.h
HexagonBlockRanges.cpp [llvm] Qualify auto (NFC) 2022-08-07 23:55:27 -07:00
HexagonBlockRanges.h
HexagonBranchRelaxation.cpp [llvm] Remove unneeded cl::ZeroOrMore for cl::opt options. NFC 2022-06-03 21:59:05 -07:00
HexagonCFGOptimizer.cpp [Target] Use range-based for loops (NFC) 2021-12-26 23:49:38 -08:00
HexagonCallingConv.td [Hexagon] Calling conventions for floating point vectors 2021-12-29 09:01:07 -08:00
HexagonCommonGEP.cpp Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options 2022-06-05 01:07:51 -07:00
HexagonConstExtenders.cpp [llvm] Remove unneeded cl::ZeroOrMore for cl::opt options. NFC 2022-06-03 21:59:05 -07:00
HexagonConstPropagation.cpp [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
HexagonCopyToCombine.cpp [llvm] Remove unneeded cl::ZeroOrMore for cl::opt options. NFC 2022-06-03 21:59:05 -07:00
HexagonDepArch.h [Hexagon] Move single-use global tables into their only user and turn them into StringSwitch 2022-03-06 19:23:09 +01:00
HexagonDepArch.td [Hexagon] Introduce Hexagon v69 ISA 2021-12-23 08:46:03 -08:00
HexagonDepDecoders.inc [Disassember][NFCI] Use strong type for instruction decoder 2022-03-25 18:53:59 -07:00
HexagonDepIICHVX.td [Hexagon] Introduce Hexagon v69 ISA 2021-12-23 08:46:03 -08:00
HexagonDepIICScalar.td [Hexagon] Introduce Hexagon v69 ISA 2021-12-23 08:46:03 -08:00
HexagonDepITypes.h
HexagonDepITypes.td
HexagonDepInstrFormats.td [Hexagon] Introduce Hexagon v69 ISA 2021-12-23 08:46:03 -08:00
HexagonDepInstrInfo.td [Hexagon] Introduce Hexagon v69 ISA 2021-12-23 08:46:03 -08:00
HexagonDepMapAsm2Intrin.td [Hexagon] Introduce Hexagon v69 ISA 2021-12-23 08:46:03 -08:00
HexagonDepMappings.td [Hexagon] Introduce Hexagon v69 ISA 2021-12-23 08:46:03 -08:00
HexagonDepMask.h
HexagonDepOperands.td
HexagonDepTimingClasses.h
HexagonEarlyIfConv.cpp [NFC][CodeGen] Rename some functions in MachineInstr.h and remove duplicated comments 2022-03-16 20:25:42 +08:00
HexagonExpandCondsets.cpp [Hexagon] Distribute disjoint intervals at the end of expand-condsets 2022-08-14 16:15:23 -05:00
HexagonFixupHwLoops.cpp
HexagonFrameLowering.cpp [llvm] Qualify auto in range-based for loops (NFC) 2022-08-13 12:55:42 -07:00
HexagonFrameLowering.h [Hexagon] Remove unused declaration adjustForCalleeSavedRegsSpillCall (NFC) 2022-07-31 15:17:06 -07:00
HexagonGenExtract.cpp
HexagonGenInsert.cpp Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options 2022-06-05 01:07:51 -07:00
HexagonGenMux.cpp [NFC][llvm][Hexagon] Inclusive Terms remove uses of sanity in Hexagon taget 2021-11-22 10:08:01 -05:00
HexagonGenPredicate.cpp [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
HexagonHardwareLoops.cpp Untangle the mess which is MachineBasicBlock::hasAddressTaken(). 2022-08-16 16:15:44 -07:00
HexagonHazardRecognizer.cpp [llvm] Use contains (NFC) 2022-06-11 11:46:16 -07:00
HexagonHazardRecognizer.h [Hexagon] HVX .new store uses different resources 2022-01-04 13:35:34 -08:00
HexagonIICHVX.td
HexagonIICScalar.td
HexagonISelDAGToDAG.cpp [llvm] Fix comment typos (NFC) 2022-08-07 00:16:14 -07:00
HexagonISelDAGToDAG.h [Hexagon] Remove unused declaration SelectZeroExtend (NFC) 2022-07-24 14:48:08 -07:00
HexagonISelDAGToDAGHVX.cpp [NFC] Add SmallVector constructor to allow creation of SmallVector<T> from ArrayRef of items convertible to type T 2022-08-05 13:35:41 +02:00
HexagonISelLowering.cpp [llvm] Remove unneeded cl::ZeroOrMore for cl::opt options. NFC 2022-06-03 21:59:05 -07:00
HexagonISelLowering.h [Hexagon] Remove unused declaration CanReturnSmallStruct (NFC) 2022-07-24 14:48:09 -07:00
HexagonISelLoweringHVX.cpp [NFC][CodeGen] Add a setTargetDAGCombine use ArrayRef 2022-03-29 09:53:24 +08:00
HexagonInstrFormats.td [Hexagon] Introduce Hexagon v69 ISA 2021-12-23 08:46:03 -08:00
HexagonInstrFormatsV60.td
HexagonInstrFormatsV65.td
HexagonInstrInfo.cpp [llvm] Fix comment typos (NFC) 2022-08-07 00:16:14 -07:00
HexagonInstrInfo.h [Hexagon] Remove isLateInstrFeedsEarlyInstr (NFC) 2022-07-24 22:55:14 -07:00
HexagonIntrinsics.td
HexagonIntrinsicsV5.td
HexagonIntrinsicsV60.td
HexagonLoopIdiomRecognition.cpp [AA] Make ModRefInfo a bitmask enum (NFC) 2022-08-03 10:05:55 +02:00
HexagonLoopIdiomRecognition.h
HexagonMCInstLower.cpp Reapply [xray] add support for hexagon 2021-12-10 05:32:28 -08:00
HexagonMachineFunctionInfo.cpp llvm-reduce: Add cloning of target MachineFunctionInfo 2022-06-07 10:14:48 -04:00
HexagonMachineFunctionInfo.h llvm-reduce: Add cloning of target MachineFunctionInfo 2022-06-07 10:14:48 -04:00
HexagonMachineScheduler.cpp [llvm][Hexagon] Generalize VLIWResourceModel, VLIWMachineScheduler, and ConvergingVLIWScheduler 2021-12-06 16:23:48 -06:00
HexagonMachineScheduler.h [llvm][Hexagon] Generalize VLIWResourceModel, VLIWMachineScheduler, and ConvergingVLIWScheduler 2021-12-06 16:23:48 -06:00
HexagonMapAsm2IntrinV62.gen.td
HexagonNewValueJump.cpp Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options 2022-06-05 00:31:44 -07:00
HexagonOperands.td
HexagonOptAddrMode.cpp [RDF] Use default TargetOperandInfo if not given in constructor 2022-08-06 14:32:52 -05:00
HexagonOptimizeSZextends.cpp [llvm] Use make_early_inc_range (NFC) 2021-11-10 19:56:35 -08:00
HexagonPatterns.td [Hexagon] Create an intrinsic to profile using a custom handler 2022-03-28 10:31:41 -05:00
HexagonPatternsHVX.td [Target] use getSubtarget<> instead of static_cast<>(getSubtarget()) 2022-05-26 11:22:41 -07:00
HexagonPatternsV65.td [Hexagon] Fix optimize address mode pass only handle BaseImmOffset mode 2022-01-14 15:45:23 -08:00
HexagonPeephole.cpp [llvm] Remove unneeded cl::ZeroOrMore for cl::opt options. NFC 2022-06-03 21:59:05 -07:00
HexagonPseudo.td [Hexagon] Create an intrinsic to profile using a custom handler 2022-03-28 10:31:41 -05:00
HexagonRDFOpt.cpp [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
HexagonRegisterInfo.cpp [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
HexagonRegisterInfo.h
HexagonRegisterInfo.td [Hexagon] Support BUILD_VECTOR of floating point HVX vectors 2021-12-28 14:59:08 -08:00
HexagonSchedule.td [Hexagon] Introduce Hexagon v69 ISA 2021-12-23 08:46:03 -08:00
HexagonScheduleV5.td
HexagonScheduleV55.td
HexagonScheduleV60.td
HexagonScheduleV62.td
HexagonScheduleV65.td
HexagonScheduleV66.td
HexagonScheduleV67.td
HexagonScheduleV67T.td
HexagonScheduleV68.td
HexagonScheduleV69.td [Hexagon] Introduce Hexagon v69 ISA 2021-12-23 08:46:03 -08:00
HexagonSelectionDAGInfo.cpp
HexagonSelectionDAGInfo.h
HexagonSplitConst32AndConst64.cpp [Hexagon] Use make_early_inc_range (NFC) 2021-11-04 08:51:05 -07:00
HexagonSplitDouble.cpp [llvm] LLVM_FALLTHROUGH => [[fallthrough]]. NFC 2022-08-08 11:24:15 -07:00
HexagonStoreWidening.cpp [llvm] Use range-based for loops (NFC) 2021-11-23 08:54:48 -08:00
HexagonSubtarget.cpp [Hexagon][bolt] Remove unneeded cl::ZeroOrMore for cl::opt options. NFC 2022-06-03 22:04:57 -07:00
HexagonSubtarget.h [Hexagon] Move single-use global tables into their only user and turn them into StringSwitch 2022-03-06 19:23:09 +01:00
HexagonTargetMachine.cpp [llvm] Use value_or instead of getValueOr (NFC) 2022-06-18 23:07:11 -07:00
HexagonTargetMachine.h mark getTargetTransformInfo and getTargetIRAnalysis as const 2022-02-25 14:30:44 -05:00
HexagonTargetObjectFile.cpp [llvm] Qualify auto in range-based for loops (NFC) 2022-08-13 12:55:42 -07:00
HexagonTargetObjectFile.h
HexagonTargetStreamer.h
HexagonTargetTransformInfo.cpp Recommit "[SLP][TTI] Refactoring of `getShuffleCost` `Args` to work like `getArithmeticInstrCost`" 2022-04-26 14:02:40 -07:00
HexagonTargetTransformInfo.h [AArch64][TTI][NFC] Overload method 'getVectorInstrCost' to provide vector instruction itself, as a context information for cost estimation. 2022-08-04 12:58:25 -07:00
HexagonVExtract.cpp [NFC][Alignment] Remove max functions between Align and MaybeAlign 2022-06-20 08:37:48 +00:00
HexagonVLIWPacketizer.cpp Remove unneeded cl::ZeroOrMore for cl::opt/cl::list options 2022-06-05 00:31:44 -07:00
HexagonVLIWPacketizer.h [Hexagon] Fix some issues with packetizing slot0-only instructions 2022-01-04 14:35:37 -08:00
HexagonVectorCombine.cpp [Hexagon] Remove unused declaration getByteVectorTy (NFC) 2022-07-23 19:40:44 -07:00
HexagonVectorLoopCarriedReuse.cpp Remove unneeded cl::ZeroOrMore for cl::opt options 2022-06-04 00:10:42 -07:00
HexagonVectorLoopCarriedReuse.h [llvm] Use = default (NFC) 2022-02-06 22:18:35 -08:00
HexagonVectorPrint.cpp [llvm] Remove unneeded cl::ZeroOrMore for cl::opt options. NFC 2022-06-03 21:59:05 -07:00
RDFCopy.cpp
RDFCopy.h
RDFDeadCode.cpp
RDFDeadCode.h