search for: framedestroyopcode

Displaying 10 results from an estimated 10 matches for "framedestroyopcode".

2005 Mar 23
2
[LLVMdev] Stack alignment problem
...hich computes the hasCalls flag: bool HasCalls = false; for (MachineFunction::iterator BB = Fn.begin(), E = Fn.end(); BB != E; ++BB) for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) if (I->getOpcode() == FrameSetupOpcode || I->getOpcode() == FrameDestroyOpcode) { ......... HasCalls = true; ........ So, stack is aligned only if there is instruction with FrameSetupOpcode or FrameDestroyOpcode. In X86, it's defined as def ADJCALLSTACKDOWN : I<0, Pseudo, (ops), "#ADJCALLSTACKDOWN">; def ADJCALLST...
2013 Sep 25
2
[LLVMdev] Register scavenger and SP/FP adjustments
...TargetRegisterInfo &TRI = *TM.getRegisterInfo(); const TargetFrameLowering *TFI = TM.getFrameLowering(); bool StackGrowsDown = TFI->getStackGrowthDirection() == TargetFrameLowering::StackGrowsDown; int FrameSetupOpcode = TII.getCallFrameSetupOpcode(); int FrameDestroyOpcode = TII.getCallFrameDestroyOpcode(); if (RS && !FrameIndexVirtualScavenging) RS->enterBasicBlock(BB); for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) { if (I->getOpcode() == FrameSetupOpcode || I->getOpcode() == FrameDestroyOpcode) {...
2005 Mar 25
0
[LLVMdev] Stack alignment problem
...lag: > > bool HasCalls = false; > > for (MachineFunction::iterator BB = Fn.begin(), E = Fn.end(); BB != E; ++BB) > for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) > if (I->getOpcode() == FrameSetupOpcode || > I->getOpcode() == FrameDestroyOpcode) { > ......... > HasCalls = true; > ........ > > So, stack is aligned only if there is instruction with FrameSetupOpcode or > FrameDestroyOpcode. In X86, it's defined as > > def ADJCALLSTACKDOWN : I<0, Pseudo, (ops), "#ADJCALLSTACK...
2013 Sep 26
0
[LLVMdev] Register scavenger and SP/FP adjustments
...o &TRI = *TM.getRegisterInfo(); > const TargetFrameLowering *TFI = TM.getFrameLowering(); > bool StackGrowsDown = > TFI->getStackGrowthDirection() == > TargetFrameLowering::StackGrowsDown; > int FrameSetupOpcode = TII.getCallFrameSetupOpcode(); > int FrameDestroyOpcode = TII.getCallFrameDestroyOpcode(); > > if (RS && !FrameIndexVirtualScavenging) RS->enterBasicBlock(BB); > > for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) { > > if (I->getOpcode() == FrameSetupOpcode || > I->getOpcode()...
2013 Sep 26
2
[LLVMdev] Register scavenger and SP/FP adjustments
...sterInfo(); >> const TargetFrameLowering *TFI = TM.getFrameLowering(); >> bool StackGrowsDown = >> TFI->getStackGrowthDirection() == >> TargetFrameLowering::StackGrowsDown; >> int FrameSetupOpcode = TII.getCallFrameSetupOpcode(); >> int FrameDestroyOpcode = TII.getCallFrameDestroyOpcode(); >> >> if (RS && !FrameIndexVirtualScavenging) RS->enterBasicBlock(BB); >> >> for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) { >> >> if (I->getOpcode() == FrameSetupOpcode || >>...
2013 Sep 26
0
[LLVMdev] Register scavenger and SP/FP adjustments
...t;> const TargetFrameLowering *TFI = TM.getFrameLowering(); >>> bool StackGrowsDown = >>> TFI->getStackGrowthDirection() == >>> TargetFrameLowering::StackGrowsDown; >>> int FrameSetupOpcode = TII.getCallFrameSetupOpcode(); >>> int FrameDestroyOpcode = TII.getCallFrameDestroyOpcode(); >>> >>> if (RS && !FrameIndexVirtualScavenging) RS->enterBasicBlock(BB); >>> >>> for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) { >>> >>> if (I->getOpcode() == Fram...
2007 Sep 06
1
[LLVMdev] Prolog/Epilog Insertion Question
...for pologue/epilogoue generation and noticed this oddity: void PEI::replaceFrameIndices(MachineFunction &Fn) { [...] for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) { [...] if (I->getOpcode() == FrameSetupOpcode || I->getOpcode() == FrameDestroyOpcode) { [...] } else { [...] for (unsigned i = 0, e = MI->getNumOperands(); i != e; ++i) if (MI->getOperand(i).isFrameIndex()) { // If this instruction has a FrameIndex operand, we need to use // that // target machine re...
2013 Sep 26
1
[LLVMdev] Register scavenger and SP/FP adjustments
...rameLowering *TFI = TM.getFrameLowering(); >>>> bool StackGrowsDown = >>>> TFI->getStackGrowthDirection() == >>>> TargetFrameLowering::StackGrowsDown; >>>> int FrameSetupOpcode = TII.getCallFrameSetupOpcode(); >>>> int FrameDestroyOpcode = TII.getCallFrameDestroyOpcode(); >>>> >>>> if (RS && !FrameIndexVirtualScavenging) RS->enterBasicBlock(BB); >>>> >>>> for (MachineBasicBlock::iterator I = BB->begin(); I != BB->end(); ) { >>>> >>>> if (I-&g...
2005 Mar 22
0
[LLVMdev] Stack alignment problem
On Tue, 22 Mar 2005, Vladimir Prus wrote: > The PrologEpilogInserter.cpp file aligns the stack only if > MachineFrameInfo::hasCalls returns true, which happens only if the function > has "call frame setup instruction" which my backend does not generate. > Chris suggested adding explicit MachineFrameInfo::setHasCalls call, which I've > tried, but it does not help. The
2005 Mar 22
2
[LLVMdev] Stack alignment problem
Hi, I have a problem getting a properly aligned stack for my LLVM backend. I've asked about this previously, but unfortunately only now could try the suggested solution. For reference, here's the original message from me: http://mail.cs.uiuc.edu/pipermail/llvmdev/2004-July/001388.html And here's reply from Chris: http://mail.cs.uiuc.edu/pipermail/llvmdev/2004-July/001390.html The