Displaying 10 results from an estimated 10 matches for "framedestroyopcod".
Did you mean:
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 ADJCALLS...
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), "#ADJCALLSTAC...
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() == Fra...
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 r...
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-&...
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