Displaying 4 results from an estimated 4 matches for "sethascalls".
2005 Mar 22
2
[LLVMdev] Stack alignment problem
.../llvmdev/2004-July/001390.html
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 PrologEpilogInsert.cpp file always
explicitly calls setHasCalls with the value it computes, so whatever value I
set manually is just overwritten.
So, what's the right approach? As usual, I'll be willing to code a patch.
TIA,
Volodya
2006 May 16
1
[LLVMdev] Stack alignment in leaf functions
...r my target, the stack should be aligned even for leaf functions. In
particular, hardware interrupt can arrive at any time, and stack should be
8-byte aligned at the time of interrupt, otherwise things will break.
I can address this issue by using two tricks together:
1. Calling MachineFrameInfo::setHasCalls in my backend
2. Using the attached patch, so that value of setHasCalls is not reset to
false later.
Comments?
BTW, I've checked other uses of MachineFrameInfo::hasCalls. For example,
PPCRegisterInfo uses it to check if if callee save registers can be stored
in something called "red zon...
2004 Jul 01
1
[LLVMdev] Stack alignment problem
Hello,
it seems the Prolog/Epilog insertion does not correctly align stack for me.
Consider the PEI::calculateFrameObjectOffsets method. It only aligns the
stack if
FFI->hasCalls()
is true. The only place where
MachineFrameInfo::setHasCalls
is invoked is
PEI::saveCallerSavedRegisters
and the value 'true' is only passed when there are instructions with opcodes
equal to either RegInfo->getCallFrameSetupOpcode() or
RegInfo->getCallFrameDestroyOpcode(). I don't have such special opcode, so
hasCalls returns fal...
2005 Mar 22
0
[LLVMdev] Stack alignment problem
...r 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 PrologEpilogInsert.cpp file always
> explicitly calls setHasCalls with the value it computes, so whatever value I
> set manually is just overwritten.
>
> So, what's the right approach? As usual, I'll be willing to code a...