1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
llvm-mirror/include/llvm/CodeGen
Jeremy Morse 6df259fb43 [InstrRef][X86] Drop debug instruction numbers from x87 instructions
Avoid a crash when using instruction referencing if x87 floating point
instructions are used. These instructions are significantly mutated when
they're rewritten from referring to registers, to referring to
floating-point-stack positions. As a result, their operands are re-ordered,
and (InstrRef) LiveDebugValues asserts when it sees a DBG_INSTR_REF
referring to a non-reg non-def register operand.

To fix this, drop the instruction numbers, and thus variable locations.
This patch adds a helper utility do do that.

Dropping the variable locations is sub-optimal, but applying DBG_VALUEs to
the $fp0 and similar registers is dropped on emission too. It seems we've
never done well at describing variables that live in x87 registers, at all.

Differential Revision: https://reviews.llvm.org/D105657
2021-07-19 15:08:27 +01:00
..
GlobalISel GlobalISel: Remove dead function 2021-07-16 08:59:25 -04:00
MIRParser [MIRParser] Add machine metadata. 2021-06-28 22:29:36 -04:00
PBQP
AccelTable.h [docs] Fix doxygen comments wrongly attached to the llvm namespace 2021-04-07 01:20:18 +02:00
Analysis.h
AntiDepBreaker.h
AsmPrinter.h Support GCC's -fstack-usage flag 2021-05-15 10:22:49 -07:00
AsmPrinterHandler.h
AtomicExpandUtils.h Copy syncscope when expanding atomicrmw into cmpxchg loop 2021-04-05 17:29:38 -07:00
BasicBlockSectionUtils.h
BasicTTIImpl.h [TTI] Remove IsPairwiseForm from getArithmeticReductionCost 2021-07-09 11:51:16 +01:00
CalcSpillWeights.h [RegAlloc] Fix "ran out of regs" with uses in statepoint 2021-03-24 10:25:34 +07:00
CallingConvLower.h [llvm][NFC] Remove CallingConvLower deprecated alignment functions 2021-05-06 07:46:19 +00:00
CodeGenPassBuilder.h [RemoveRedundantDebugValues] Add a Pass that removes redundant DBG_VALUEs 2021-07-14 04:29:42 -07:00
CommandFlags.h [IR] make stack-protector-guard-* flags into module attrs 2021-05-21 15:53:30 -07:00
CostTable.h
CSEConfigBase.h
DAGCombine.h
DbgEntityHistoryCalculator.h Reland [DWARF] Location-less inlined variables should not have DW_TAG_variable 2021-02-10 15:40:47 +00:00
DebugHandlerBase.h
DFAPacketizer.h
DIE.h
DIEValue.def
DwarfStringPoolEntry.h
EdgeBundles.h [NFC] Fix comment describing what EdgeBundles is 2021-03-24 11:04:05 +07:00
ExecutionDomainFix.h
ExpandReductions.h
ExpandVectorPredication.h Recommit "[VP,Integer,#2] ExpandVectorPredication pass" 2021-05-04 11:47:52 +02:00
FastISel.h [FastISel] Remove kill tracking 2021-04-03 15:50:13 +02:00
FaultMaps.h
FunctionLoweringInfo.h
GCMetadata.h [GC][NFC] Move GCStrategy from CodeGen to IR 2021-05-13 12:31:59 +07:00
GCMetadataPrinter.h
IndirectThunks.h [ARM][AArch64] SLSHardening: make non-comdat thunks possible 2021-05-20 17:07:05 +02:00
IntrinsicLowering.h
ISDOpcodes.h [llvm][clang][fpenv] Create new intrinsic llvm.arith.fence to control FP optimization at expression level 2021-06-28 12:26:52 -04:00
LatencyPriorityQueue.h
LazyMachineBlockFrequencyInfo.h
LexicalScopes.h
LinkAllAsmWriterComponents.h [GC][NFC] Move GCStrategy from CodeGen to IR 2021-05-13 12:31:59 +07:00
LinkAllCodegenComponents.h [GC][NFC] Move GCStrategy from CodeGen to IR 2021-05-13 12:31:59 +07:00
LiveInterval.h
LiveIntervalCalc.h [NFC] Fix typo 2021-06-21 14:59:30 +02:00
LiveIntervals.h
LiveIntervalUnion.h [regalloc] Ensure Query::collectInterferringVregs is called before interval iteration 2021-04-01 08:33:28 -07:00
LivePhysRegs.h [IfCvt] Don't use pristine register for counting liveins for predicated instructions. 2021-07-11 14:45:54 +01:00
LiveRangeCalc.h
LiveRangeEdit.h [NFC][Regalloc] Share the VirtRegAuxInfo object with LiveRangeEdit 2021-02-19 07:44:28 -08:00
LiveRegMatrix.h
LiveRegUnits.h
LiveStacks.h
LiveVariables.h
LoopTraversal.h
LowLevelType.h [docs] Fix doxygen comments wrongly attached to the llvm namespace 2021-04-07 01:20:18 +02:00
MachineBasicBlock.h [CSSPGO] Undoing the concept of dangling pseudo probe 2021-06-18 15:14:11 -07:00
MachineBlockFrequencyInfo.h
MachineBranchProbabilityInfo.h [Analaysis, CodeGen] Remove getHotSucc (NFC) 2021-07-17 07:31:36 -07:00
MachineCombinerPattern.h Revert "[AArch64] Add Machine InstCombiner patterns for FMUL indexed variant" 2021-04-12 16:28:49 +03:00
MachineConstantPool.h
MachineDominanceFrontier.h
MachineDominators.h
MachineFrameInfo.h [llvm] fix typo in comment 2021-06-17 14:30:52 +00:00
MachineFunction.h [Debug-info][InstrRef] Avoid an unnecessary map ordering 2021-07-09 15:43:13 +01:00
MachineFunctionPass.h
MachineInstr.h [InstrRef][X86] Drop debug instruction numbers from x87 instructions 2021-07-19 15:08:27 +01:00
MachineInstrBuilder.h [llvm, clang] Remove stdlib includes from .h files without std:: 2021-04-27 12:41:39 -04:00
MachineInstrBundle.h
MachineInstrBundleIterator.h
MachineJumpTableInfo.h
MachineLoopInfo.h [ARM] Allow findLoopPreheader to return headers with multiple loop successors 2021-05-24 12:22:15 +01:00
MachineLoopUtils.h
MachineMemOperand.h CodeGen: Store LLT instead of uint64_t in MachineMemOperand 2021-06-29 17:38:51 -04:00
MachineModuleInfo.h [WebAssembly] Added initial type checker to MC Assembler 2021-07-09 14:07:25 -07:00
MachineModuleInfoImpls.h [WebAssembly] Added initial type checker to MC Assembler 2021-07-09 14:07:25 -07:00
MachineModuleSlotTracker.h [MIRPrinter] Add machine metadata support. 2021-06-19 12:48:08 -04:00
MachineOperand.h [MachineFunction] Make comment for TracksLiveness more clearer 2021-04-30 12:10:36 -07:00
MachineOptimizationRemarkEmitter.h
MachineOutliner.h
MachinePassManager.h [NewPM] Hide pass manager debug logging behind -debug-pass-manager-verbose 2021-05-07 21:51:47 -07:00
MachinePassRegistry.def [RemoveRedundantDebugValues] Add a Pass that removes redundant DBG_VALUEs 2021-07-14 04:29:42 -07:00
MachinePassRegistry.h
MachinePipeliner.h [Pipeliner] Fixed optimization remarks and debug dumps Initiation 2021-02-17 12:28:37 -05:00
MachinePostDominators.h
MachineRegionInfo.h
MachineRegisterInfo.h [AIX][XCOFF] emit vector info of traceback table. 2021-06-14 11:15:22 -04:00
MachineScheduler.h [NFC][Scheduler] Refactor tryCandidate to return boolean 2021-07-01 14:31:47 +08:00
MachineSizeOpts.h
MachineSSAUpdater.h
MachineStableHash.h
MachineTraceMetrics.h
MachORelocation.h
MacroFusion.h
MBFIWrapper.h [NFC] Add missing includes for LLVM_ENABLE_MODULES builds 2021-06-03 23:29:03 +02:00
MIRFormatter.h
MIRFSDiscriminator.h [SampleFDO] New hierarchical discriminator for FS SampleFDO (ProfileData part) 2021-06-02 10:32:52 -07:00
MIRPrinter.h
MIRYamlMapping.h [DebugInfo][InstrRef][1/4] Support transformations that widen values 2021-07-01 11:19:27 +01:00
ModuloSchedule.h
MultiHazardRecognizer.h
NonRelocatableStringpool.h
ParallelCG.h
Passes.h [RemoveRedundantDebugValues] Add a Pass that removes redundant DBG_VALUEs 2021-07-14 04:29:42 -07:00
PBQPRAConstraint.h
PreISelIntrinsicLowering.h
PseudoSourceValue.h
RDFGraph.h
RDFLiveness.h
RDFRegisters.h
ReachingDefAnalysis.h
RegAllocCommon.h RegAlloc: Allow targets to split register allocation 2021-07-13 18:49:29 -04:00
RegAllocPBQP.h
RegAllocRegistry.h RegAlloc: Allow targets to split register allocation 2021-07-13 18:49:29 -04:00
Register.h
RegisterClassInfo.h [NFC] MCRegister fixes in RegisterClassInfo, and const-ed APIs 2021-02-26 08:53:57 -08:00
RegisterPressure.h
RegisterScavenging.h
RegisterUsageInfo.h
ReplaceWithVeclib.h [llvm] Fix header guards (NFC) 2021-02-14 08:36:18 -08:00
ResourcePriorityQueue.h
RuntimeLibcalls.h [CodeGen] Refactor libcall lookups for RTLIB::POWI_* 2021-06-02 11:40:34 +02:00
ScheduleDAG.h Replace uses of std::iterator with explicit using 2021-04-12 10:47:14 -07:00
ScheduleDAGInstrs.h
ScheduleDAGMutation.h
ScheduleDFS.h
ScheduleHazardRecognizer.h
SchedulerRegistry.h
ScoreboardHazardRecognizer.h
SDNodeProperties.td
SelectionDAG.h [X86] Remove incorrect use of known bits in shuffle simplification. 2021-07-18 18:13:11 -07:00
SelectionDAGAddressAnalysis.h
SelectionDAGISel.h [llvm][clang][fpenv] Create new intrinsic llvm.arith.fence to control FP optimization at expression level 2021-06-28 12:26:52 -04:00
SelectionDAGNodes.h [CodeGen] Remove isNON_TRUNCStore and isTRUNCStore (NFC) 2021-07-19 06:56:04 -07:00
SelectionDAGTargetInfo.h [AArch64][SVE] Add patterns to generate FMLA/FMLS/FNMLA/FNMLS/FMAD 2021-02-18 16:55:16 +00:00
SlotIndexes.h
Spiller.h [NFC][Regalloc] Share the VirtRegAuxInfo object with LiveRangeEdit 2021-02-19 07:44:28 -08:00
StableHashing.h
StackMaps.h
StackProtector.h
SwiftErrorValueTracking.h
SwitchLoweringUtils.h
TailDuplicator.h
TargetCallingConv.h IR+AArch64: add a "swiftasync" argument attribute. 2021-05-14 11:43:58 +01:00
TargetFrameLowering.h [CodeGen][NFC] Remove unused virtual function 2021-06-02 13:11:12 -07:00
TargetInstrInfo.h [X86FixupLEAs] Try again to transform the sequence LEA/SUB to SUB/SUB 2021-07-16 10:16:03 -07:00
TargetLowering.h [llvm][sve] Lowering for VLS truncating stores 2021-07-12 11:14:17 +01:00
TargetLoweringObjectFileImpl.h [AIX] Add traceback ssp canary bit support 2021-06-10 02:40:02 +00:00
TargetOpcodes.h
TargetPassConfig.h [X86] Support AMX fast register allocation 2021-05-08 14:21:11 +08:00
TargetRegisterInfo.h Retire TargetRegisterInfo::getSpillAlignment 2021-05-07 15:16:22 +02:00
TargetSchedule.h
TargetSubtargetInfo.h
TileShapeInfo.h [llvm, clang] Remove stdlib includes from .h files without std:: 2021-04-27 12:41:39 -04:00
UnreachableBlockElim.h
ValueTypes.h Revert "[WebAssembly] Implementation of global.get/set for reftypes in LLVM IR" 2021-07-02 11:49:51 +03:00
ValueTypes.td [ValueTypes] Define MVTs for v3i64/v3f64 to complement v6i32/v6f32 2021-06-24 12:41:22 +09:00
VirtRegMap.h [NFC] Const-ed 2 APIs in VirtRegMap 2021-02-26 09:32:42 -08:00
WasmEHFuncInfo.h [WebAssembly] Rename event to tag 2021-06-17 20:34:19 -07:00
WinEHFuncInfo.h