gollvm: sync with LLVM trunks
LLVM trunk D64183 wrapped MachineModuleInfo as MachineModuleInfoWrapperPass.
Trunk D68142 changed the argument type of LoadInst::setAlignment function from
unsigned to llvm::MaybeAlign.
Trunk D68268 changed the argument type of StoreInst::setAlignment function from
unsigned to llvm::MaybeAlign.
Trunk D68297 removed the second argument of function llvm::removeUnreachableBlocks.
This CL syncs gollvm with these four LLVM trunks.
Change-Id: Id4c587cf3319f90a4424d300e151d9de789a6d8b
Reviewed-on: https://go-review.googlesource.com/c/gollvm/+/201379
Reviewed-by: Than McIntosh <thanm@google.com>
diff --git a/bridge/go-llvm-builtins.cpp b/bridge/go-llvm-builtins.cpp
index f860161..6f0f0b2 100644
--- a/bridge/go-llvm-builtins.cpp
+++ b/bridge/go-llvm-builtins.cpp
@@ -419,7 +419,7 @@
llvmOrder(llvm::cast<llvm::ConstantInt>(args[1])->getZExtValue()) :
llvm::AtomicOrdering::SequentiallyConsistent;
load->setAtomic(o);
- load->setAlignment(sz);
+ load->setAlignment(llvm::MaybeAlign(sz));
return load;
}
@@ -449,7 +449,7 @@
llvmOrder(llvm::cast<llvm::ConstantInt>(args[2])->getZExtValue()) :
llvm::AtomicOrdering::SequentiallyConsistent;
store->setAtomic(o);
- store->setAlignment(sz);
+ store->setAlignment(llvm::MaybeAlign(sz));
return store;
}
diff --git a/driver/CompileGo.cpp b/driver/CompileGo.cpp
index d47ad5e..4d04c31 100644
--- a/driver/CompileGo.cpp
+++ b/driver/CompileGo.cpp
@@ -965,8 +965,8 @@
// Set PassConfig options provided by TargetMachine.
passConfig->setDisableVerify(noverify);
codeGenPasses.add(passConfig);
- MachineModuleInfo *MMI = new MachineModuleInfo(lltm);
- codeGenPasses.add(MMI);
+ MachineModuleInfoWrapperPass *MMIWP = new MachineModuleInfoWrapperPass(lltm);
+ codeGenPasses.add(MMIWP);
passConfig->addISelPasses();
passConfig->addMachinePasses();
passConfig->setInitialized();
@@ -977,7 +977,7 @@
if (enable_gc_)
codeGenPasses.add(createGoAnnotationPass());
- lltm->addAsmPrinter(codeGenPasses, *OS, nullptr, ft, MMI->getContext());
+ lltm->addAsmPrinter(codeGenPasses, *OS, nullptr, ft, MMIWP->getMMI().getContext());
codeGenPasses.add(createFreeMachineFunctionPass());
}
diff --git a/passes/GoStatepoints.cpp b/passes/GoStatepoints.cpp
index 9b272b9..bc3d81c 100644
--- a/passes/GoStatepoints.cpp
+++ b/passes/GoStatepoints.cpp
@@ -2122,7 +2122,7 @@
// statepoints surviving this pass. This makes testing easier and the
// resulting IR less confusing to human readers.
DomTreeUpdater DTU(DT, DomTreeUpdater::UpdateStrategy::Lazy);
- bool MadeChange = removeUnreachableBlocks(F, nullptr, &DTU);
+ bool MadeChange = removeUnreachableBlocks(F, &DTU);
// Rewrite all the calls that need statepoints to invokes, so we can
// attach a stack map through its landing pad.