llvm-6502/include/llvm/CodeGen
Frederic Riss 6eb7964b7d Totally forget deallocated SDNodes in SDDbgInfo.
What would happen before that commit is that the SDDbgValues associated with
a deallocated SDNode would be marked Invalidated, but SDDbgInfo would keep
a map entry keyed by the SDNode pointer pointing to this list of invalidated
SDDbgNodes. As the memory gets reused, the list might get wrongly associated
with another new SDNode. As the SDDbgValues are cloned when they are transfered,
this can lead to an exponential number of SDDbgValues being produced during
DAGCombine like in http://llvm.org/bugs/show_bug.cgi?id=20893

Note that the previous behavior wasn't really buggy as the invalidation made
sure that the SDDbgValues won't be used. This commit can be considered a
memory optimization and as such is really hard to validate in a unit-test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@221709 91177308-0d34-0410-b5e6-96231b3b80d8
2014-11-11 21:21:08 +00:00
..
PBQP [PBQP] Unique allowed-sets for nodes in the PBQP graph and use pairs of these 2014-10-27 17:44:25 +00:00
Analysis.h Refactor duplicated code. 2014-07-30 19:42:16 +00:00
AsmPrinter.h Make AsmPrinter::EmitLabelOffsetDifference a static helper and simplify. 2014-10-21 00:25:49 +00:00
CalcSpillWeights.h [PBQP] Tweak spill costs and coalescing benefits 2014-11-04 20:51:24 +00:00
CallingConvLower.h Renamed CCState members that appear to misspell 'Processed' as 'Proceed'. NFC. 2014-11-01 19:32:23 +00:00
CommandFlags.h Add Forward Control-Flow Integrity. 2014-11-11 21:08:02 +00:00
DAGCombine.h Refactor DAGCombinerInfo. Change the different booleans that indicate if we are before or after different runs of DAGCo, with the CombineLevel enum. 2012-12-27 06:47:41 +00:00
DFAPacketizer.h Remove the TargetMachine from DFAPacketizer since it was only 2014-10-14 01:03:16 +00:00
EdgeBundles.h [modules] "Specialize" a function by actually specializing a function template 2014-04-24 18:27:29 +00:00
FastISel.h [FastISel][AArch64] Add lowering support for frem. 2014-09-15 22:07:49 +00:00
ForwardControlFlowIntegrity.h Add Forward Control-Flow Integrity. 2014-11-11 21:08:02 +00:00
FunctionLoweringInfo.h Remove uses of the TargetMachine from FunctionLoweringInfo 2014-10-09 00:57:31 +00:00
GCMetadata.h Use unique_ptr to manage ownership of GCStrategy objects in GCMetadata 2014-04-15 05:34:49 +00:00
GCMetadataPrinter.h
GCs.h Test commit: Remove trailing whitespace. 2014-03-10 22:24:07 +00:00
GCStrategy.h Use unique_ptr to manage ownership of GCFunctionInfos in GCStrategy 2014-04-15 06:07:26 +00:00
IntrinsicLowering.h Rename some member variables from TD to DL. 2014-02-18 15:33:12 +00:00
ISDOpcodes.h Add minnum / maxnum codegen 2014-10-21 23:01:01 +00:00
JumpInstrTables.h Add Forward Control-Flow Integrity. 2014-11-11 21:08:02 +00:00
LatencyPriorityQueue.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
LexicalScopes.h [DebugInfo] Remove LexicalScopes::isCurrentFunctionScope and CSE a use of LexicalScopes::getCurrentFunctionScope 2014-10-23 00:06:27 +00:00
LinkAllAsmWriterComponents.h Add a GC plugin for Erlang 2013-03-25 13:47:46 +00:00
LinkAllCodegenComponents.h [C++] Use 'nullptr'. 2014-04-24 06:44:33 +00:00
LiveInterval.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
LiveIntervalAnalysis.h Access the subtarget off of the MachineFunction rather than 2014-10-14 06:26:53 +00:00
LiveIntervalUnion.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
LivePhysRegs.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
LiveRangeEdit.h Remove unnecessary getTarget call now that the subtarget is cached 2014-09-03 20:36:26 +00:00
LiveRegMatrix.h [C++11] Replace OwningPtr with std::unique_ptr in places where it doesn't break the API. 2014-04-21 09:34:48 +00:00
LiveStackAnalysis.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
LiveVariables.h CodeGen/LiveVariables: hoist out code in nested loops 2014-08-25 01:59:49 +00:00
MachineBasicBlock.h Fix missing const 2014-07-02 06:45:26 +00:00
MachineBlockFrequencyInfo.h blockfreq: Remove unnecessary template parameters 2014-04-11 23:21:02 +00:00
MachineBranchProbabilityInfo.h blockfreq: Use const in MachineBlockFrequencyInfo 2014-03-25 18:01:32 +00:00
MachineCombinerPattern.h MachineCombiner Pass for selecting faster instruction 2014-08-03 21:35:39 +00:00
MachineConstantPool.h CodeGen: Add a getSectionKind method to MachineConstantPoolEntry 2014-07-14 22:06:29 +00:00
MachineDominanceFrontier.h Try to fix MSVC build 2014-07-12 23:09:02 +00:00
MachineDominators.h [MachineDominatorTree] Provide a method to inform a MachineDominatorTree that a 2014-08-13 21:00:07 +00:00
MachineFrameInfo.h Replace calls to get the subtarget and TargetFrameLowering with 2014-10-08 08:46:34 +00:00
MachineFunction.h Remove unused member variable. 2014-10-14 18:53:16 +00:00
MachineFunctionAnalysis.h [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-07 09:26:03 +00:00
MachineFunctionPass.h [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-07 09:26:03 +00:00
MachineInstr.h Move the complex address expression out of DIVariable and into an extra 2014-10-01 18:55:02 +00:00
MachineInstrBuilder.h Work around bugs in MSVC "14" CTP 3's conversion logic 2014-10-31 23:19:46 +00:00
MachineInstrBundle.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
MachineJumpTableInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
MachineLoopInfo.h [C++11] Add 'override' keyword to virtual methods that override their base class. 2014-03-07 09:26:03 +00:00
MachineMemOperand.h AA metadata refactoring (introduce AAMDNodes) 2014-07-24 12:16:19 +00:00
MachineModuleInfo.h Move the complex address expression out of DIVariable and into an extra 2014-10-01 18:55:02 +00:00
MachineModuleInfoImpls.h
MachineOperand.h Add MachineOperand::ChangeToFPImmediate and setFPImm 2014-09-28 19:24:59 +00:00
MachinePassRegistry.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
MachinePostDominators.h Fix typos in comments, NFC 2014-08-29 21:53:01 +00:00
MachineRegionInfo.h Templatify RegionInfo so it works on MachineBasicBlocks 2014-07-19 18:29:29 +00:00
MachineRegisterInfo.h CodeGen: switch raw array to std::vector 2014-08-25 00:28:31 +00:00
MachineScheduler.h Cleanup: Delete seemingly unused reference to MachineDominatorTree from ScheduleDAGInstrs. 2014-08-20 20:57:26 +00:00
MachineSSAUpdater.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
MachineTraceMetrics.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
MachineValueType.h Teach the AArch64 backend about v4f16 and v8f16 2014-08-27 16:16:04 +00:00
MachORelocation.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
Passes.h Add Forward Control-Flow Integrity. 2014-11-11 21:08:02 +00:00
PBQPRAConstraint.h Add couple of missing 'override' keyword. NFC. 2014-10-10 17:34:30 +00:00
PseudoSourceValue.h Fix broken build of llvm using clang. 2014-04-15 08:10:46 +00:00
RegAllocPBQP.h [PBQP] Remove a spurious 'typename' keyword. This was causing an error on MSVC. 2014-10-27 17:59:51 +00:00
RegAllocRegistry.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
RegisterClassInfo.h [C++11] Replace OwningPtr with std::unique_ptr in places where it doesn't break the API. 2014-04-21 09:34:48 +00:00
RegisterPressure.h Move remaining LLVM_ENABLE_DUMP conditionals out of the headers 2014-07-01 21:19:13 +00:00
RegisterScavenging.h Changed the liveness tracking in the RegisterScavenger 2014-08-04 23:07:49 +00:00
ResourcePriorityQueue.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
RuntimeLibcalls.h Add minnum / maxnum codegen 2014-10-21 23:01:01 +00:00
ScheduleDAG.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
ScheduleDAGInstrs.h Cleanup: Delete seemingly unused reference to MachineDominatorTree from ScheduleDAGInstrs. 2014-08-20 20:57:26 +00:00
ScheduleDFS.h Move remaining LLVM_ENABLE_DUMP conditionals out of the headers 2014-07-01 21:19:13 +00:00
ScheduleHazardRecognizer.h Add two additional hazard recognizer functions 2013-12-11 22:33:43 +00:00
SchedulerRegistry.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
ScoreboardHazardRecognizer.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
SelectionDAG.h Totally forget deallocated SDNodes in SDDbgInfo. 2014-11-11 21:21:08 +00:00
SelectionDAGISel.h Cache TargetLowering on SelectionDAGISel and update previous 2014-10-08 07:32:17 +00:00
SelectionDAGNodes.h SelectionDAG: Assert if we truncate SDNode's NumOperands or NumValues 2014-11-07 22:39:11 +00:00
SlotIndexes.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
StackMapLivenessAnalysis.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
StackMaps.h The patchpoint lowering logic would crash with live constants equal to 2014-11-04 00:59:21 +00:00
StackProtector.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
TargetLoweringObjectFileImpl.h CodeGen: Stick constant pool entries in COMDAT sections for WinCOFF 2014-07-14 22:57:27 +00:00
TargetSchedule.h Change MCSchedModel to be a struct of statically initialized data. 2014-09-02 17:43:54 +00:00
ValueTypes.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
ValueTypes.td Implement aarch64 neon instruction set AdvSIMD (Across). 2013-10-05 08:22:10 +00:00
VirtRegMap.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00