forked from OSchip/llvm-project
[Statepoint Lowering] Update misleading comments about chains
llvm-svn: 353800
This commit is contained in:
parent
0686d1ae41
commit
b6dc6eb8bb
|
@ -366,10 +366,6 @@ spillIncomingStatepointValue(SDValue Incoming, SDValue Chain,
|
||||||
// We use TargetFrameIndex so that isel will not select it into LEA
|
// We use TargetFrameIndex so that isel will not select it into LEA
|
||||||
Loc = Builder.DAG.getTargetFrameIndex(Index, Builder.getFrameIndexTy());
|
Loc = Builder.DAG.getTargetFrameIndex(Index, Builder.getFrameIndexTy());
|
||||||
|
|
||||||
// TODO: We can create TokenFactor node instead of
|
|
||||||
// chaining stores one after another, this may allow
|
|
||||||
// a bit more optimal scheduling for them
|
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
// Right now we always allocate spill slots that are of the same
|
// Right now we always allocate spill slots that are of the same
|
||||||
// size as the value we're about to spill (the size of spillee can
|
// size as the value we're about to spill (the size of spillee can
|
||||||
|
@ -398,6 +394,9 @@ spillIncomingStatepointValue(SDValue Incoming, SDValue Chain,
|
||||||
static void lowerIncomingStatepointValue(SDValue Incoming, bool LiveInOnly,
|
static void lowerIncomingStatepointValue(SDValue Incoming, bool LiveInOnly,
|
||||||
SmallVectorImpl<SDValue> &Ops,
|
SmallVectorImpl<SDValue> &Ops,
|
||||||
SelectionDAGBuilder &Builder) {
|
SelectionDAGBuilder &Builder) {
|
||||||
|
// Note: We know all of these spills are independent, but don't bother to
|
||||||
|
// exploit that chain wise. DAGCombine will happily do so as needed, so
|
||||||
|
// doing it here would be a small compile time win at most.
|
||||||
SDValue Chain = Builder.getRoot();
|
SDValue Chain = Builder.getRoot();
|
||||||
|
|
||||||
if (ConstantSDNode *C = dyn_cast<ConstantSDNode>(Incoming)) {
|
if (ConstantSDNode *C = dyn_cast<ConstantSDNode>(Incoming)) {
|
||||||
|
@ -984,11 +983,11 @@ void SelectionDAGBuilder::visitGCRelocate(const GCRelocateInst &Relocate) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SDValue SpillSlot =
|
SDValue SpillSlot =
|
||||||
DAG.getTargetFrameIndex(*DerivedPtrLocation, getFrameIndexTy());
|
DAG.getTargetFrameIndex(*DerivedPtrLocation, getFrameIndexTy());
|
||||||
|
|
||||||
// Be conservative: flush all pending loads
|
// Note: We know all of these reloads are independent, but don't bother to
|
||||||
// TODO: Probably we can be less restrictive on this,
|
// exploit that chain wise. DAGCombine will happily do so as needed, so
|
||||||
// it may allow more scheduling opportunities.
|
// doing it here would be a small compile time win at most.
|
||||||
SDValue Chain = getRoot();
|
SDValue Chain = getRoot();
|
||||||
|
|
||||||
SDValue SpillLoad =
|
SDValue SpillLoad =
|
||||||
|
@ -998,7 +997,6 @@ void SelectionDAGBuilder::visitGCRelocate(const GCRelocateInst &Relocate) {
|
||||||
MachinePointerInfo::getFixedStack(DAG.getMachineFunction(),
|
MachinePointerInfo::getFixedStack(DAG.getMachineFunction(),
|
||||||
*DerivedPtrLocation));
|
*DerivedPtrLocation));
|
||||||
|
|
||||||
// Again, be conservative, don't emit pending loads
|
|
||||||
DAG.setRoot(SpillLoad.getValue(1));
|
DAG.setRoot(SpillLoad.getValue(1));
|
||||||
|
|
||||||
assert(SpillLoad.getNode());
|
assert(SpillLoad.getNode());
|
||||||
|
|
Loading…
Reference in New Issue