mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Require a GC strategy be specified for functions which use gc.statepoint
This was discussed a while back and I left it optional for migration. Since it's been far more than the 'week or two' that was discussed, time to actually make this manditory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233357 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -442,27 +442,25 @@ static void lowerStatepointMetaArgs(SmallVectorImpl<SDValue> &Ops,
|
||||
// heap. This is basically just here to help catch errors during statepoint
|
||||
// insertion. TODO: This should actually be in the Verifier, but we can't get
|
||||
// to the GCStrategy from there (yet).
|
||||
if (Builder.GFI) {
|
||||
GCStrategy &S = Builder.GFI->getStrategy();
|
||||
for (const Value *V : Bases) {
|
||||
auto Opt = S.isGCManagedPointer(V);
|
||||
if (Opt.hasValue()) {
|
||||
assert(Opt.getValue() &&
|
||||
"non gc managed base pointer found in statepoint");
|
||||
}
|
||||
GCStrategy &S = Builder.GFI->getStrategy();
|
||||
for (const Value *V : Bases) {
|
||||
auto Opt = S.isGCManagedPointer(V);
|
||||
if (Opt.hasValue()) {
|
||||
assert(Opt.getValue() &&
|
||||
"non gc managed base pointer found in statepoint");
|
||||
}
|
||||
for (const Value *V : Ptrs) {
|
||||
auto Opt = S.isGCManagedPointer(V);
|
||||
if (Opt.hasValue()) {
|
||||
assert(Opt.getValue() &&
|
||||
"non gc managed derived pointer found in statepoint");
|
||||
}
|
||||
}
|
||||
for (const Value *V : Ptrs) {
|
||||
auto Opt = S.isGCManagedPointer(V);
|
||||
if (Opt.hasValue()) {
|
||||
assert(Opt.getValue() &&
|
||||
"non gc managed derived pointer found in statepoint");
|
||||
}
|
||||
for (const Value *V : Relocations) {
|
||||
auto Opt = S.isGCManagedPointer(V);
|
||||
if (Opt.hasValue()) {
|
||||
assert(Opt.getValue() && "non gc managed pointer relocated");
|
||||
}
|
||||
}
|
||||
for (const Value *V : Relocations) {
|
||||
auto Opt = S.isGCManagedPointer(V);
|
||||
if (Opt.hasValue()) {
|
||||
assert(Opt.getValue() && "non gc managed pointer relocated");
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -581,10 +579,8 @@ SelectionDAGBuilder::LowerStatepoint(ImmutableStatepoint ISP,
|
||||
// TODO: This if should become an assert. For now, we allow the GCStrategy
|
||||
// to be optional for backwards compatibility. This will only last a short
|
||||
// period (i.e. a couple of weeks).
|
||||
if (GFI) {
|
||||
assert(GFI->getStrategy().useStatepoints() &&
|
||||
"GCStrategy does not expect to encounter statepoints");
|
||||
}
|
||||
assert(GFI->getStrategy().useStatepoints() &&
|
||||
"GCStrategy does not expect to encounter statepoints");
|
||||
#endif
|
||||
|
||||
// Lower statepoint vmstate and gcstate arguments
|
||||
|
Reference in New Issue
Block a user