Update llvm, clang and lldb to release_38 branch r257836.
This commit is contained in:
commit
98665a5875
@ -251,6 +251,10 @@ class MachineFrameInfo {
|
||||
/// opaque mechanism like inline assembly or Win32 EH.
|
||||
bool HasOpaqueSPAdjustment;
|
||||
|
||||
/// True if the function contains operations which will lower down to
|
||||
/// instructions which manipulate the stack pointer.
|
||||
bool HasCopyImplyingStackAdjustment;
|
||||
|
||||
/// True if the function contains a call to the llvm.vastart intrinsic.
|
||||
bool HasVAStart;
|
||||
|
||||
@ -288,6 +292,7 @@ public:
|
||||
LocalFrameMaxAlign = 0;
|
||||
UseLocalStackAllocationBlock = false;
|
||||
HasOpaqueSPAdjustment = false;
|
||||
HasCopyImplyingStackAdjustment = false;
|
||||
HasVAStart = false;
|
||||
HasMustTailInVarArgFunc = false;
|
||||
Save = nullptr;
|
||||
@ -493,6 +498,15 @@ public:
|
||||
bool hasOpaqueSPAdjustment() const { return HasOpaqueSPAdjustment; }
|
||||
void setHasOpaqueSPAdjustment(bool B) { HasOpaqueSPAdjustment = B; }
|
||||
|
||||
/// Returns true if the function contains operations which will lower down to
|
||||
/// instructions which manipulate the stack pointer.
|
||||
bool hasCopyImplyingStackAdjustment() const {
|
||||
return HasCopyImplyingStackAdjustment;
|
||||
}
|
||||
void setHasCopyImplyingStackAdjustment(bool B) {
|
||||
HasCopyImplyingStackAdjustment = B;
|
||||
}
|
||||
|
||||
/// Returns true if the function calls the llvm.va_start intrinsic.
|
||||
bool hasVAStart() const { return HasVAStart; }
|
||||
void setHasVAStart(bool B) { HasVAStart = B; }
|
||||
|
@ -160,9 +160,11 @@ namespace {
|
||||
(void) llvm::createPostOrderFunctionAttrsPass();
|
||||
(void) llvm::createReversePostOrderFunctionAttrsPass();
|
||||
(void) llvm::createMergeFunctionsPass();
|
||||
(void) llvm::createPrintModulePass(*(llvm::raw_ostream*)nullptr);
|
||||
(void) llvm::createPrintFunctionPass(*(llvm::raw_ostream*)nullptr);
|
||||
(void) llvm::createPrintBasicBlockPass(*(llvm::raw_ostream*)nullptr);
|
||||
std::string buf;
|
||||
llvm::raw_string_ostream os(buf);
|
||||
(void) llvm::createPrintModulePass(os);
|
||||
(void) llvm::createPrintFunctionPass(os);
|
||||
(void) llvm::createPrintBasicBlockPass(os);
|
||||
(void) llvm::createModuleDebugInfoPrinterPass();
|
||||
(void) llvm::createPartialInliningPass();
|
||||
(void) llvm::createLintPass();
|
||||
@ -186,10 +188,10 @@ namespace {
|
||||
|
||||
(void)new llvm::IntervalPartition();
|
||||
(void)new llvm::ScalarEvolutionWrapperPass();
|
||||
((llvm::Function*)1)->viewCFGOnly();
|
||||
llvm::Function::Create(nullptr, llvm::GlobalValue::ExternalLinkage)->viewCFGOnly();
|
||||
llvm::RGPassManager RGM;
|
||||
((llvm::RegionPass*)1)->runOnRegion((llvm::Region*)nullptr, RGM);
|
||||
llvm::AliasSetTracker X(*(llvm::AliasAnalysis*)nullptr);
|
||||
llvm::AliasAnalysis AA;
|
||||
llvm::AliasSetTracker X(AA);
|
||||
X.add(nullptr, 0, llvm::AAMDNodes()); // for -print-alias-sets
|
||||
(void) llvm::AreStatisticsEnabled();
|
||||
(void) llvm::sys::RunningOnValgrind();
|
||||
|
@ -2270,7 +2270,7 @@ public:
|
||||
}
|
||||
|
||||
/// Return true if the MachineFunction contains a COPY which would imply
|
||||
/// HasOpaqueSPAdjustment.
|
||||
/// HasCopyImplyingStackAdjustment.
|
||||
virtual bool hasCopyImplyingStackAdjustment(MachineFunction *MF) const {
|
||||
return false;
|
||||
}
|
||||
|
@ -634,7 +634,7 @@ bool SelectionDAGISel::runOnMachineFunction(MachineFunction &mf) {
|
||||
}
|
||||
|
||||
if (TLI->hasCopyImplyingStackAdjustment(MF))
|
||||
MFI->setHasOpaqueSPAdjustment(true);
|
||||
MFI->setHasCopyImplyingStackAdjustment(true);
|
||||
|
||||
// Freeze the set of reserved registers now that MachineFrameInfo has been
|
||||
// set up. All the information required by getReservedRegs() should be
|
||||
|
@ -20,7 +20,7 @@ class AMDGPUInstrPrinter;
|
||||
class AMDGPUSubtarget;
|
||||
class AMDGPUTargetMachine;
|
||||
class FunctionPass;
|
||||
class MachineSchedContext;
|
||||
struct MachineSchedContext;
|
||||
class MCAsmInfo;
|
||||
class raw_ostream;
|
||||
class ScheduleDAGInstrs;
|
||||
|
@ -91,7 +91,8 @@ bool X86FrameLowering::hasFP(const MachineFunction &MF) const {
|
||||
MFI->isFrameAddressTaken() || MFI->hasOpaqueSPAdjustment() ||
|
||||
MF.getInfo<X86MachineFunctionInfo>()->getForceFramePointer() ||
|
||||
MMI.callsUnwindInit() || MMI.hasEHFunclets() || MMI.callsEHReturn() ||
|
||||
MFI->hasStackMap() || MFI->hasPatchPoint());
|
||||
MFI->hasStackMap() || MFI->hasPatchPoint() ||
|
||||
MFI->hasCopyImplyingStackAdjustment());
|
||||
}
|
||||
|
||||
static unsigned getSUBriOpcode(unsigned IsLP64, int64_t Imm) {
|
||||
@ -943,11 +944,11 @@ void X86FrameLowering::emitPrologue(MachineFunction &MF,
|
||||
// push and pop from the stack.
|
||||
if (Is64Bit && !Fn->hasFnAttribute(Attribute::NoRedZone) &&
|
||||
!TRI->needsStackRealignment(MF) &&
|
||||
!MFI->hasVarSizedObjects() && // No dynamic alloca.
|
||||
!MFI->adjustsStack() && // No calls.
|
||||
!IsWin64CC && // Win64 has no Red Zone
|
||||
!MFI->hasOpaqueSPAdjustment() && // Don't push and pop.
|
||||
!MF.shouldSplitStack()) { // Regular stack
|
||||
!MFI->hasVarSizedObjects() && // No dynamic alloca.
|
||||
!MFI->adjustsStack() && // No calls.
|
||||
!IsWin64CC && // Win64 has no Red Zone
|
||||
!MFI->hasCopyImplyingStackAdjustment() && // Don't push and pop.
|
||||
!MF.shouldSplitStack()) { // Regular stack
|
||||
uint64_t MinSize = X86FI->getCalleeSavedFrameSize();
|
||||
if (HasFP) MinSize += SlotSize;
|
||||
StackSize = std::max(MinSize, StackSize > 128 ? StackSize - 128 : 0);
|
||||
|
@ -17458,7 +17458,7 @@ static SDValue LowerINTRINSIC_W_CHAIN(SDValue Op, const X86Subtarget *Subtarget,
|
||||
// We need a frame pointer because this will get lowered to a PUSH/POP
|
||||
// sequence.
|
||||
MachineFrameInfo *MFI = DAG.getMachineFunction().getFrameInfo();
|
||||
MFI->setHasOpaqueSPAdjustment(true);
|
||||
MFI->setHasCopyImplyingStackAdjustment(true);
|
||||
// Don't do anything here, we will expand these intrinsics out later
|
||||
// during ExpandISelPseudos in EmitInstrWithCustomInserter.
|
||||
return SDValue();
|
||||
|
@ -36,7 +36,7 @@ std::string getClangRepositoryPath() {
|
||||
|
||||
// If the SVN_REPOSITORY is empty, try to use the SVN keyword. This helps us
|
||||
// pick up a tag in an SVN export, for example.
|
||||
StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/trunk/lib/Basic/Version.cpp $");
|
||||
StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/branches/release_38/lib/Basic/Version.cpp $");
|
||||
if (URL.empty()) {
|
||||
URL = SVNRepository.slice(SVNRepository.find(':'),
|
||||
SVNRepository.find("/lib/Basic"));
|
||||
|
@ -20,7 +20,7 @@
|
||||
#include "lldb/Target/ThreadPlanCallFunction.h"
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/IR/Type.h"
|
||||
#include "llvm/IR/DerivedTypes.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
||||
|
@ -1000,7 +1000,8 @@ SBProcess::GetRestartedFromEvent (const SBEvent &event)
|
||||
bool ret_val = Process::ProcessEventData::GetRestartedFromEvent (event.get());
|
||||
|
||||
if (log)
|
||||
log->Printf ("SBProcess::%s (event.sp=%p) => %d", __FUNCTION__, event.get(), ret_val);
|
||||
log->Printf ("SBProcess::%s (event.sp=%p) => %d", __FUNCTION__,
|
||||
static_cast<void*>(event.get()), ret_val);
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user