llvm-6502/include/llvm/CodeGen
Juergen Ributzka 4a76317ebb [FastISel] Undo phi node updates when falling-back to SelectionDAG.
The included test case would fail, because the MI PHI node would have two
operands from the same predecessor.

This problem occurs when a switch instruction couldn't be selected. This happens
always, because there is no default switch support for FastISel to begin with.

The problem was that FastISel would first add the operand to the PHI nodes and
then fall-back to SelectionDAG, which would then in turn add the same operands
to the PHI nodes again.

This fix removes these duplicate PHI node operands by reseting the
PHINodesToUpdate to its original state before FastISel tried to select the
instruction.

This fixes <rdar://problem/18155224>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216640 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-28 02:06:55 +00:00
..
PBQP
Analysis.h
AsmPrinter.h
CalcSpillWeights.h CalcSpillWeights: allow overidding the spill weight normalizing function 2013-11-11 19:56:14 +00:00
CallingConvLower.h Revert "X86: Align the stack on word boundaries in LowerFormalArguments()" 2014-08-21 23:36:08 +00:00
CommandFlags.h
DAGCombine.h
DFAPacketizer.h
EdgeBundles.h [modules] "Specialize" a function by actually specializing a function template 2014-04-24 18:27:29 +00:00
FastISel.h
FunctionLoweringInfo.h
GCMetadata.h Use unique_ptr to manage ownership of GCStrategy objects in GCMetadata 2014-04-15 05:34:49 +00:00
GCMetadataPrinter.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:59:23 +00:00
GCs.h
GCStrategy.h Use unique_ptr to manage ownership of GCFunctionInfos in GCStrategy 2014-04-15 06:07:26 +00:00
IntrinsicLowering.h
ISDOpcodes.h
JITCodeEmitter.h Temporarily Revert "Nuke the old JIT." as it's not quite ready to 2014-08-07 22:02:54 +00:00
JumpInstrTables.h
LatencyPriorityQueue.h
LexicalScopes.h
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h
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
LiveIntervalUnion.h
LivePhysRegs.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
LiveRangeEdit.h
LiveRegMatrix.h
LiveStackAnalysis.h
LiveVariables.h
MachineBasicBlock.h Fix missing const 2014-07-02 06:45:26 +00:00
MachineBlockFrequencyInfo.h
MachineBranchProbabilityInfo.h blockfreq: Use const in MachineBlockFrequencyInfo 2014-03-25 18:01:32 +00:00
MachineCodeEmitter.h
MachineCodeInfo.h
MachineCombinerPattern.h MachineCombiner Pass for selecting faster instruction 2014-08-03 21:35:39 +00:00
MachineConstantPool.h
MachineDominanceFrontier.h
MachineDominators.h
MachineFrameInfo.h
MachineFunction.h
MachineFunctionAnalysis.h
MachineFunctionPass.h
MachineInstr.h
MachineInstrBuilder.h
MachineInstrBundle.h
MachineJumpTableInfo.h
MachineLoopInfo.h
MachineMemOperand.h
MachineModuleInfo.h
MachineModuleInfoImpls.h Rename virtual table anchors from Anchor() to anchor() for consistency with the rest of the tree. 2012-09-26 06:36:36 +00:00
MachineOperand.h Clean up language and grammar. 2014-05-20 17:11:11 +00:00
MachinePassRegistry.h
MachinePostDominators.h
MachineRegionInfo.h
MachineRegisterInfo.h
MachineRelocation.h [typo] An LLVM. 2013-08-16 23:30:19 +00:00
MachineScheduler.h
MachineSSAUpdater.h
MachineTraceMetrics.h
MachineValueType.h
MachORelocation.h
Passes.h
PseudoSourceValue.h
RegAllocPBQP.h Sure up ownership passing of the PBQPBuilder by passing unique_ptrs by value rather than lvalue reference. 2014-07-19 21:19:45 +00:00
RegAllocRegistry.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
RegisterClassInfo.h
RegisterPressure.h Move remaining LLVM_ENABLE_DUMP conditionals out of the headers 2014-07-01 21:19:13 +00:00
RegisterScavenging.h
ResourcePriorityQueue.h
RuntimeLibcalls.h
ScheduleDAG.h
ScheduleDAGInstrs.h
ScheduleDFS.h
ScheduleHazardRecognizer.h
SchedulerRegistry.h
ScoreboardHazardRecognizer.h
SelectionDAG.h
SelectionDAGISel.h Remove the TargetMachine forwards for TargetSubtargetInfo based 2014-08-04 21:25:23 +00:00
SelectionDAGNodes.h Repace SmallPtrSet with SmallPtrSetImpl in function arguments to avoid needing to mention the size. 2014-08-21 05:55:13 +00:00
SlotIndexes.h
StackMapLivenessAnalysis.h
StackMaps.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +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
TargetSchedule.h MachineCombiner Pass for selecting faster instruction 2014-08-03 21:35:39 +00:00
ValueTypes.h
ValueTypes.td
VirtRegMap.h